NFAはイプシロン遷移をどのように使用しますか?


12

下の写真では、このNFAが何を受け入れているかを正確に把握しようとしています。

ここに画像の説明を入力してください

私を混乱させているのは、ジャンプ。ϵq0

  • 場合は入力すると、両方のシステムに移動しと(状態を受け入れますか)?0q0 q1

  • が入力された場合、システムは両方の移動します1q1とq2ますか?

  • 入力がない場合(空の文字列)、システムはq1(状態を受け入れる)にのみ移動しますか


2
定義に戻る次の場合NFAは言葉を受け入れる任意のそれの計算が受け入れます。NFA自体は、DFAの意味での「アルゴリズム」ではありません。
— ラファエル

回答:


9

遷移のある状態になるたびに、自動的に両方の状態になり、これが簡単になります:ϵ

文字列の場合、あなたのオートマトンは、両方で終わるのq 0とqは1ϵq0q1

文字列が「0」の場合、再びとq 1になりますq0q1

あなたの文字列が「1」である場合、それが唯一のでしょうあなたがのポイントから見た場合ので、Q 0、あなたが「1」に移行持っQ 2を、しかし、あなたが持っているあなたがいる場合を見ても、でQ 1(あなたがしていた場合は、Q 0あなたはいつもしていたQ 1、その後何の「1」の遷移は、この代替パスので、ちょうど「ダイス」、存在しないも)。q2q0q2q1q0q1

これらのケースを見るだけで、オートマトンが、0 ∗を受け入れ、q 0からq 1に進むことがわかりやすいため、q 2に到達する唯一の方法は0 ∗ 11 ∗ 1なので、オートマトンはtoに戻ります、0 ∗、0 ∗ 11 ∗ 1ϵ0∗q0q1q20∗11∗1ϵ0∗0∗11∗1

これがお役に立てば幸いです。さらに疑問がある場合は、お問い合わせください!


7
「それは自動的に両方の状態にあることを意味します」-それは有用な直観であるとは思いません。つまり、それは間違った方法で非決定論を表します。
— ラファエル

なぜそれが間違っているのですか?さて、非決定論のデルタの定義により、1つだけではなく、一連の状態を正しく取得できますか?これは、両方の状態にあることだけを意味します。
— H_DANILO

非決定的なマシンが「すべてのソリューションを並行して試す」という考えを促進します。アルゴリズム的に言えば、それは起こりません。非決定論は記述的形式主義であり、アルゴリズム手法ではありません。
— ラファエル

HESはtheoric方法で非決定性の原理を理解するのに苦労するので、私は理解しやすい方法でそれを入れてみました
— H_DANILO

@Raphaelあなたの意見では、より有用な直観は何ですか?
— アンドレイ

5

入力をまったく読み取らない状態では、NFAは両方ともq 0にとどまり、(場合によっては代替ユニバースで)状態q 1に移動します。これは、キャラクターの入力で異なる状態への2つの遷移があったNFAで起こることと似ています。特に、NFAは空の文字列を受け入れます。入力がない場合、受け入れ状態q 1に遷移できるからです。q0q0q1q1

あなたの例を続けると、状態から入力見る0を、それは、そのシンボルを消費する状態での滞在qは0(ループ)と、状態に行き、Q 1、それによって入力受付、0を。入力1を読み取る状態q 0では、NFAは状態q 2になります。また、消費しない可能性があります1の状態に、変更Q 1からの移行がないことから、別の宇宙のをして(それがすべての入力を読んでいなかったことから、そして受け入れない)が立ち往生Q 1の1。q00q0q10q01q21q1q11

このマシンで受け入れられる言語が正規表現で示されていることを確信できるかどうかを確認します。つまり、0個以上の0の後にゼロまたは2個以上のいずれかが続く文字列1 s。0∗+0∗11∗101


ところで、とNFAをとるアルゴリズムがあります -movesとせずに同等のNFAを生成ε私はあなたがすぐに学ぶ期待-movesは、。ϵϵ


-1

このNFAのDFAを構築してみました

アルファベットセット∑

状態セットQ

状態FUNCσ(Q×(∑∪ϵ))→P(Q)

q0=q0

F⊆Q、F={q0}

すべてのNFAはDFAが等しいため、この特定のNFAに対してDFA を構築できます。M′

アルファベット-同じ

-状態Q′=P(Q)

R∈P(Q)

E(R)ϵr∈R

σ′(R、a)=⋃r∈RE(σ(r、a))

q0′=E({q0})

F′=P(Q)÷F

このFSMで計算するもの

1。 ϵq0′=E({q0})={q0、q1}q1ϵ

2。 0∗σ′({q0、q1}、0)=E(σ(q0、0))∪E(σ(q1、0))={q0、q1}∪{}={q0、q1}0∗

{ϵ、0∗}⊂L(M′)

おかげでデビッドRicherby


私に感謝しますが、これがどのように質問に答えるかはわかりません。マシンが受け入れる言語を確立しておらず、3つの箇条書きの質問のいずれにも対処していません。
— デビッドリチャービー16

ϵ{q0、q1}00∗{q0、q1}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.