logo

Príklady NFA

Príklad 1:

Navrhnite NFA pre tabuľku prechodu, ako je uvedené nižšie:

Súčasný štát 0 1
→q0 q0, q1 q0, q2
q1 q3 e
q2 q2, q3 q3
→q3 q3 q3

Riešenie:

Diagram prechodu možno nakresliť pomocou funkcie mapovania, ako je uvedené v tabuľke.

Príklady NFA

Tu,

 δ(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} 

Príklad 2:

Navrhnite NFA s ∑ = {0, 1} akceptuje všetky reťazce končiace na 01.

Riešenie:

Príklady NFA

NFA by teda bolo:

Príklady NFA

Príklad 3:

Navrhnite NFA s ∑ = {0, 1}, v ktorom po dvojitej '1' nasleduje dvojitá '0'.

Riešenie:

FA s dvojitou 1 je nasledovná:

Príklady NFA

Bezprostredne za ním by mala nasledovať dvojitá 0.

potom

Príklady NFA

Teraz pred dvojitou 1 môže byť ľubovoľný reťazec 0 a 1. Podobne po dvojitej 0 môže byť ľubovoľný reťazec 0 a 1.

NFA sa teda stáva:

Príklady NFA

Teraz uvažujeme reťazec 01100011

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

Príklad 4:

Navrhnite NFA, v ktorom celý reťazec obsahuje podreťazec 1110.

Riešenie:

reťazec v porovnaní s

Jazyk pozostáva zo všetkých reťazcov obsahujúcich podreťazec 1010. Čiastočný prechodový diagram môže byť:

Príklady NFA

Teraz ako podreťazec môže byť 1010. Preto pridáme vstupy 0 a 1, aby bolo možné zachovať podreťazec 1010 jazyka. NFA sa teda stáva:

Príklady NFA

Prechodová tabuľka pre vyššie uvedený prechodový diagram môže byť uvedená nižšie:

Súčasný štát 0 1
→q1 q1 q1, q2
q2 q3
q3 q4
q4 q5
*q5 q5 q5

Uvažujme reťazec 111010,

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

Uviazol! Keďže pre vstupný symbol 0 neexistuje cesta z q2. Reťazec 111010 môžeme spracovať aj iným spôsobom.

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

Ako stav q5 je stav prijatia. Získali sme kompletné skenovanie a dostali sme sa do konečného stavu.

Príklad 5:

Navrhnite NFA s ∑ = {0, 1} akceptuje všetky reťazce, v ktorých je tretí symbol od pravého konca vždy 0.

Riešenie:

Príklady NFA

Takto dostaneme tretí symbol z pravého konca ako '0' vždy. NFA môže byť:

Príklady NFA

Vyššie uvedený obrázok je NFA, pretože v stave q0 so vstupom 0 môžeme prejsť buď do stavu q0 alebo q1.