Python で DFA を最小化するアルゴリズムを見つけようとしています。私はいくつかの例を見つけましたが、それらはすべてコードにクラスがあります。現在、.txt ファイルに配置されている DFA の定義を転送してそれらのクラスに配置する方法がわかりません。.txt は次の方法でフォーマットされます。
- 行: コンマで区切られた一連の州を辞書順に並べたもの
- 行: コンマで区切られた一連のアルファベット記号を辞書順に並べたもの
- 行: コンマで区切られた許容可能な状態のセットで、辞書順に並べられています
- 行: 最初の状態
- その他のすべての行: 現在の状態、アルファベット記号->次の状態の形式の伝達関数
定義の例:
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()