logo

Příklady NFA

Příklad 1:

Navrhněte NFA pro tabulku přechodů, jak je uvedeno níže:

hashmap java
Současný stát 0 1
→q0 q0, q1 q0, q2
q1 q3 E
q2 q2, q3 q3
→q3 q3 q3

Řešení:

Diagram přechodu lze nakreslit pomocí funkce mapování, jak je uvedeno v tabulce.

Příklady NFA

Tady,

 δ(q0, 0) = {q0, q1} δ(q0, 1) = {q0, q2} Then, δ(q1, 0) = {q3} Then, δ(q2, 0) = {q2, q3} δ(q2, 1) = {q3} Then, δ(q3, 0) = {q3} δ(q3, 1) = {q3} 

Příklad 2:

Navrhněte NFA s ∑ = {0, 1} akceptuje všechny řetězce končící na 01.

Řešení:

Příklady NFA

NFA by tedy bylo:

Příklady NFA

Příklad 3:

Navrhněte NFA s ∑ = {0, 1}, ve kterém dvojitá '1' následuje dvojitá '0'.

Řešení:

FA s double 1 je následující:

typ v jazyce Java
Příklady NFA

Bezprostředně po něm musí následovat dvojnásobek 0.

Pak,

Příklady NFA

Nyní před double 1 může být libovolný řetězec 0 a 1. Podobně po double 0 může být libovolný řetězec 0 a 1.

NFA se tedy stává:

Příklady NFA

Nyní uvažujeme řetězec 01100011

 q0 → q1 → q2 → q3 → q4 → q4 → q4 → q4 

Příklad 4:

Navrhněte NFA, ve kterém celý řetězec obsahuje podřetězec 1110.

léčit nástroj gimp

Řešení:

Jazyk se skládá ze všech řetězců obsahujících podřetězec 1010. Diagram částečného přechodu může být:

Příklady NFA

Nyní jako podřetězec může být 1010. Proto přidáme vstupy 0 a 1, aby bylo možné zachovat podřetězec 1010 jazyka. NFA se tedy stává:

hiba bukhari
Příklady NFA

Přechodová tabulka pro výše uvedený přechodový diagram může být uvedena níže:

Současný stát 0 1
→q1 q1 q1, q2
q2 q3
q3 q4
q4 q5
*q5 q5 q5

Uvažujme řetězec 111010,

 δ(q1, 111010) = δ(q1, 1100) = δ(q1, 100) = δ(q2, 00) 

Uvízl! Protože pro vstupní symbol 0 neexistuje cesta z q2. Řetězec 111010 můžeme zpracovat jiným způsobem.

 δ(q1, 111010) = δ(q2, 1100) = δ(q3, 100) = δ(q4, 00) = δ(q5, 0) = δ(q5, ε) 

Jako stav q5 je stav přijetí. Dostaneme kompletní skenování a dostali jsme se do konečného stavu.

Příklad 5:

Navrhněte NFA s ∑ = {0, 1} akceptuje všechny řetězce, ve kterých je třetí symbol od pravého konce vždy 0.

Řešení:

Příklady NFA

Třetí symbol tedy dostaneme z pravého konce jako '0' vždy. NFA může být:

Příklady NFA

Výše uvedený obrázek je NFA, protože ve stavu q0 se vstupem 0 můžeme přejít buď do stavu q0 nebo q1.