Як NFA використовує переходи епсілону?


12

На малюнку нижче я намагаюся зрозуміти, що саме приймає ця NFA.

введіть тут опис зображення

Що мене бентежить - стрибок у .ϵq0

  • Якщо введено , чи система переходить до та (стан прийняття)?0q0 q1

  • Якщо введено , чи система переміщується як на і на ?1q1q2

  • Чи переходить система лише до (прийняти стан), якщо не вказано введення (порожній рядок)?q1


2
Поверніться до визначень: NFA приймає слово, якщо будь-яке обчислення на ньому приймає. NFAs самі по собі не є "алгоритмами" у сенсі DFA.
Рафаель

Відповіді:


10

Кожен раз, коли ви перебуваєте у стані, який має перехід , це означає, що ви автоматично перебуваєте у державах BOTH, щоб спростити це вам:ϵ

Якщо рядок то ваші автомати закінчуються як у і вϵq0q1

Якщо ваш рядок дорівнює "0", він буде знову в таq0q1

Якщо ваш рядок дорівнює "1", це буде лише в , тому що якщо ви дивитесь з точки , у вас є перехід "1" до , але ви також повинні подивитися, якщо ви перебуваєте у ( якщо ви були в ви також завжди були в ), тоді немає переходу "1", тому цей альтернативний шлях просто "вмирає".q2q0q2q1q0q1

Просто переглянувши ці випадки, легко зрозуміти, що ваші автомати приймають , і переходять від до , єдиний спосіб досягти - , тож це відновить ваші автомати до , ,ϵ0q0q1q20111ϵ00111

Сподіваюсь, це допомогло вам, якщо у вас є якісь подальші сумніви, просто запитайте!


7
"це означає, що ви автоматично знаходитесь у державах ДНІ" - я не вважаю, що це корисна інтуїція, тобто вона представляє недетермінізм неправильно.
Рафаель

Чому це представляє це неправильно? Що ж, за визначенням дельти щодо недетермінізму ви отримуєте набір стану замість лише 1 правильно? Це може означати лише те, що ви перебуваєте в обох штатах.
H_DANILO

Це пропагує ідею, що недетерміновані машини "випробовують усі рішення паралельно". Це не так, алгоритмічно кажучи. Недетермінізм - це описовий формалізм, а не алгоритмічний прийом.
Рафаель

Я намагався викласти це зрозумілим способом, оскільки Хес намагався зрозуміти теоретичний принцип недетермінізму
H_DANILO

@Raphael Що, на вашу думку, було б кориснішою інтуїцією?
Андрій Портний

6

У стані не читаючи жодного вводу, NFA обидва залишається в і (в альтернативному всесвіті, якщо ви хочете), він також переходить у стан . Це схоже на те, що відбудеться в NFA, який мав два переходи в різні стани на вході символу. Зокрема, ваш NFA приймає порожню рядок, оскільки при жодному введенні він може зробити перехід у стан прийняття .q0q0q1q1

Продовжуючи ваш приклад, із стану бачачи вхід , він буде споживати цей символ, залишаючись у стані (цикл), а також переходити до стану , приймаючи таким чином вхід . У стані зчитування входу , NFA перейде в стан . Він також може не спожити , змінити стан в іншому Всесвіті і застрягнути там (і не прийняти, оскільки він не прочитав увесь вхід), оскільки немає переходу від на .q00q0q10q01q21q1q11

Подивіться, чи можете ви переконати себе, що мова, прийнята цією машиною, позначається регулярним виразом , тобто будь-який рядок, що складається з нуля або більше с, а потім або взагалі нічого, або два або більше с.0+011101


До речі, існує алгоритм, який приймає NFA з -move і виробляє еквівалентну NFA без -moves, про яку я, напевно, ви дізнаєтесь незабаром.ϵϵ


-1

Я спробував побудувати DFA для цього NFA

- набір алфавіту

Q -станов

σ(Q×(ϵ))P(Q) функцію стану

q0=q0

FQ,F={q0}

Оскільки кожна NFA має рівну DFA, можна побудувати DFA для цієї заданої NFA.M

алфавіт - те саме

Q=P(Q) - стани

Поточний станRP(Q)

E(R) - набір повернень із закриттям epsilon станів, доступних понад нуль або більше - з'єднання для кожногоϵrR

σ(R,a)=rRE(σ(r,a)) -переходи

q0=E({q0})

F=P(Q)÷F

Деякі обчислення на цій FSM

1. ϵ на вході: початковий стан включає тому FSM приймаєq0=E({q0})={q0,q1}q1ϵ

2. 0 на вході: тому FSM приймаєσ({q0,q1},0)=E(σ(q0,0))E(σ(q1,0))={q0,q1}{}={q0,q1}0

принаймні{ϵ,0}L(M)

Завдяки Девіда Річербі


Дякую за те, що подякували мені, але я не дуже розумію, як це відповідає на питання. Ви не встановили, яку мову приймає машина, і ви не вирішили жодне з трьох запитаних питань.
Девід Річербі

1) коли вхід (порожня рядок), стан FSM дорівнює 2), коли вхід або навіть стан FSM є обидва ці теми початкових питань, це не воно? { q 0 , q 1 } 0 0 { q 0 , q 1 }ϵ{q0,q1}00{q0,q1}
OrangeFish
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.