我正在尝试找到一种在 python 中最小化 DFA 的算法。我找到了一些例子,它们都有代码类。现在,我不知道如何转发放置在 .txt 文件中的 DFA 定义并将它们放入这些类中。.txt 格式如下:
- line:由逗号分隔的状态集,按字典顺序排列
- line:一组用逗号分隔的字母符号,按字典顺序排列
- line:以逗号分隔的可接受状态集,按字典顺序排列
- 行:第一个状态
- 和所有其他行:格式为当前状态的传递函数,字母符号->下一个状态
定义示例:
dyny,fllf,gdci,gwtj,knos,kole,mjnw,msdl,mtfz,nbat,njgb,nzwx,rzpn,vcsc,zgfx
b,d,e,f,g,k,l,m,n,o,p,q,r,t,u,w
dyny,njgb,zgfx
mtfz
dyny,b->rzpn
dyny,d->msdl
dyny,e->gdci
.
.
.
类的例子
class DFA:
def __init__(self, states, alphabet, delta, start, accepts):
self.states = states
self.start = start
self.delta = delta
self.accepts = accepts
self.alphabet = alphabet
self.current_state = start
我加载 .txt 文件
f = open('definition.txt','r')
lines = f.readlines()