Automata-theory-constructing-fa-from-re

提供:Dev Guides
移動先:案内検索

REからのFAの構築

トンプソンの構築を使用して、正規表現から有限オートマトンを見つけることができます。 正規表現を最小の正規表現に減らし、これらをNFAに変換し、最終的にDFAに変換します。

いくつかの基本的なRA表現は次のとおりです-

*_ケース1_* -正規表現「a」の場合、次のFAを構築できます-

REの有限オートマトン

*_ケース2_* -正規表現「ab」の場合、次のFAを構築できます-

RE1の有限オートマトン

*_ケース3_* -正規表現(a + b)の場合、次のFAを構築できます-

RE2の有限オートマトン

*_ケース4_* -正規表現(a + b)*の場合、次のFAを構築できます-

RE3の有限オートマトン

方法

  • ステップ1 *指定された正規表現からNull移動を使用してNFAを構築します。
  • ステップ2 * NFAからNullトランジションを削除し、同等のDFAに変換します。

問題

次のRAを同等のDFA − 1(0 + 1)* 0に変換します

溶液

3つの式「1」、「(0 + 1)*」、「0」を連結します

RAのNullトランジションを含むNDFA

ここで、*ε*遷移を削除します。 NDFAから*ε*遷移を削除すると、次のようになります-

RA1のNullトランジションを使用したNDFA

RE-1(0 + 1)* 0に対応するNDFAです。 DFAに変換する場合は、第1章で説明したNDFAをDFAに変換する方法を適用してください。

ヌル移動を伴う有限オートマトン(NFA-ε)

null移動(FA-ε)のある有限オートマトンは、アルファベットセットからの入力を行った後だけでなく、入力シンボルもなしに通過します。 入力のないこの遷移は null move と呼ばれます。

NFA-εは、形式的に5タプル(Q、∑、δ、q〜0〜、F)で表されます。

  • Q -状態の有限セット
  • -入力シンボルの有限セット
  • δ-遷移関数δ:Q×(∑∪\ {ε})→2 ^ Q ^
  • * q〜0〜*-初期状態q〜0〜∈Q
  • F -Qの最終状態/状態のセット(F⊆Q)。

ヌル移動を伴う有限オートマトン

上記の*(FA-ε)*は文字列セットを受け入れます-\ {0、1、01}

有限オートマトンからのヌル移動の削除

NDFAでは、頂点Xと頂点Yの間にbetween-移動がある場合、次の手順を使用して削除できます-

  • Yからのすべての発信エッジを見つけます。
  • エッジラベルを変更せずに、Xから始まるこれらすべてのエッジをコピーします。
  • Xが初期状態の場合、Yも初期状態にします。
  • Yが最終状態の場合、Xも最終状態にします。

問題

次のNFA-εをヌル移動なしでNFAに変換します。

ヌル移動を伴う有限オートマトン1

溶液

  • ステップ1 *-

ここで、ε遷移は* q〜1〜 q〜2〜の間であるため、 q〜1〜は *X で、* q〜f〜は *Y です。

ここで、q〜f〜からの出力エッジは、入力0および1のq〜f〜です。

  • ステップ2 *-

ここで、q〜f〜からエッジを変更せずにq〜1〜からこれらのすべてのエッジをコピーし、次のFAを取得します-

ステップ2後のNDFA

  • ステップ3 *-

ここで、q〜1〜は初期状態なので、q〜f〜も初期状態にします。

したがって、FAは-

ステップ3後のNDFA

  • ステップ4 *-

ここでq〜f〜は最終状態なので、q〜1〜も最終状態にします。

したがって、FAは-

ヌル移動なしの最終NDFA