Automata-theory-constructing-fa-from-re
REからのFAの構築
トンプソンの構築を使用して、正規表現から有限オートマトンを見つけることができます。 正規表現を最小の正規表現に減らし、これらをNFAに変換し、最終的にDFAに変換します。
いくつかの基本的なRA表現は次のとおりです-
*_ケース1_* -正規表現「a」の場合、次のFAを構築できます-
*_ケース2_* -正規表現「ab」の場合、次のFAを構築できます-
*_ケース3_* -正規表現(a + b)の場合、次のFAを構築できます-
*_ケース4_* -正規表現(a + b)*の場合、次のFAを構築できます-
方法
- ステップ1 *指定された正規表現からNull移動を使用してNFAを構築します。
- ステップ2 * NFAからNullトランジションを削除し、同等のDFAに変換します。
問題
次のRAを同等のDFA − 1(0 + 1)* 0に変換します
溶液
3つの式「1」、「(0 + 1)*」、「0」を連結します
ここで、*ε*遷移を削除します。 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 *-
ここで、ε遷移は* q〜1〜と q〜2〜の間であるため、 q〜1〜は *X で、* q〜f〜は *Y です。
ここで、q〜f〜からの出力エッジは、入力0および1のq〜f〜です。
- ステップ2 *-
ここで、q〜f〜からエッジを変更せずにq〜1〜からこれらのすべてのエッジをコピーし、次のFAを取得します-
- ステップ3 *-
ここで、q〜1〜は初期状態なので、q〜f〜も初期状態にします。
したがって、FAは-
- ステップ4 *-
ここでq〜f〜は最終状態なので、q〜1〜も最終状態にします。
したがって、FAは-