logo

NFA pavyzdžiai

1 pavyzdys:

Sukurkite NFA pereinamojo laikotarpio lentelei, kaip parodyta toliau:

Dabartinė valstybė 0 1
→q0 q0, q1 q0, q2
q1 3 k e
2 k q2, q3 3 k
→ Q3 3 k 3 k

Sprendimas:

Perėjimo diagramą galima nubraižyti naudojant atvaizdavimo funkciją, kaip nurodyta lentelėje.

NFA pavyzdžiai

Čia

registro perdavimo logika
 δ(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} 

2 pavyzdys:

Sukurkite NFA, kai ∑ = {0, 1}, priima visas eilutes, kurios baigiasi 01.

Sprendimas:

NFA pavyzdžiai

Taigi NFA būtų:

lygiagretus apdorojimas
NFA pavyzdžiai

3 pavyzdys:

Sukurkite NFA su ∑ = {0, 1}, kuriame dvigubas „1“ seka dvigubas „0“.

Sprendimas:

FA su dvigubu 1 yra toks:

NFA pavyzdžiai

Iš karto po jo turėtų būti įrašytas dvigubas 0.

Tada

NFA pavyzdžiai

Dabar prieš dvigubą 1 gali būti bet kokia eilutė iš 0 ir 1. Panašiai po dvigubo 0 gali būti bet kokia eilutė iš 0 ir 1.

Taigi NFA tampa:

NFA pavyzdžiai

Dabar atsižvelgiant į eilutę 01100011

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

4 pavyzdys:

Sukurkite NFA, kurioje visoje eilutėje yra poeilutė 1110.

dvejetainis medis java

Sprendimas:

Kalbą sudaro visa eilutė, kurioje yra poeilutė 1010. Dalinio perėjimo diagrama gali būti:

NFA pavyzdžiai

Dabar 1010 galėtų būti poeilutė. Taigi pridėsime įvestis 0 ir 1, kad būtų galima išlaikyti kalbos poeilelę 1010. Taigi NFA tampa:

tinklo architektūra
NFA pavyzdžiai

Aukščiau pateiktos perėjimo diagramos perėjimo lentelę galima pateikti žemiau:

Dabartinė valstybė 0 1
→ Q1 q1 q1, q2
2 k 3 k
3 k 4 k
4 k 5 k
*Q5 5 k 5 k

Apsvarstykite eilutę 111010,

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

Įstrigo! Kadangi įvesties simboliui 0 nėra kelio iš q2. Eilutę 111010 galime apdoroti kitu būdu.

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

Kadangi būsena q5 yra priėmimo būsena. Gauname visą nuskaitymą ir pasiekėme galutinę būseną.

5 pavyzdys:

Sukurkite NFA su ∑ = {0, 1} priima visas eilutes, kuriose trečiasis simbolis nuo dešiniojo galo visada yra 0.

Sprendimas:

NFA pavyzdžiai

Taigi trečiąjį simbolį iš dešinės pusės visada gauname kaip „0“. NFA gali būti:

NFA pavyzdžiai

Aukščiau pateiktas vaizdas yra NFA, nes būsenoje q0 su įvestimi 0 galime pereiti į būseną q0 arba q1.