logo

Voorbeelden van NFA

Voorbeeld 1:

Ontwerp een NFA voor de transitietabel, zoals hieronder weergegeven:

Huidige staat 0 1
→q0 q0, q1 q0, q2
q1 Q3 e
Q2 q2, q3 Q3
→q3 Q3 Q3

Oplossing:

Java-variabele variabele

Het overgangsdiagram kan worden getekend met behulp van de mappingfunctie zoals weergegeven in de tabel.

Voorbeelden van NFA

Hier,

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

Voorbeeld 2:

Ontwerp een NFA met ∑ = {0, 1} accepteert alle tekenreeksen die eindigen op 01.

Oplossing:

Voorbeelden van NFA

NFA zou dus zijn:

Voorbeelden van NFA

Voorbeeld 3:

Ontwerp een NFA met ∑ = {0, 1} waarin dubbel '1' wordt gevolgd door dubbel '0'.

Oplossing:

De FA met dubbel 1 is als volgt:

Voorbeelden van NFA

Het moet onmiddellijk worden gevolgd door dubbel 0.

genezing tool gimp

Dan,

Voorbeelden van NFA

Vóór dubbel 1 kan er elke reeks van 0 en 1 zijn. Op dezelfde manier kan er na dubbel 0 elke reeks van 0 en 1 zijn.

Daarom wordt de NFA:

Voorbeelden van NFA

Kijk nu naar de string 01100011

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

Voorbeeld 4:

Ontwerp een NFA waarin alle strings een substring 1110 bevatten.

Oplossing:

De taal bestaat uit de gehele tekenreeks die subtekenreeks 1010 bevat. Het gedeeltelijke overgangsdiagram kan er als volgt uitzien:

polymorfisme Java
Voorbeelden van NFA

Nu zou 1010 de subtekenreeks kunnen zijn. Daarom zullen we de ingangen 0's en 1's optellen, zodat de substring 1010 van de taal behouden kan blijven. Daarom wordt de NFA:

Java-constante
Voorbeelden van NFA

Overgangstabel voor het bovenstaande overgangsdiagram vindt u hieronder:

Huidige staat 0 1
→q1 q1 q1, q2
Q2 Q3
Q3 Q4
Q4 Q5
*q5 Q5 Q5

Beschouw een string 111010,

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

Zat vast! Omdat er geen pad vanuit q2 is voor invoersymbool 0, kunnen we string 111010 op een andere manier verwerken.

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

Omdat toestand q5 de acceptatietoestand is. We krijgen de volledige scan en we hebben de eindtoestand bereikt.

Voorbeeld 5:

Ontwerp een NFA met ∑ = {0, 1} accepteert alle strings waarin het derde symbool vanaf de rechterkant altijd 0 is.

Oplossing:

Voorbeelden van NFA

We krijgen dus het derde symbool van rechts altijd als '0'. De NFA kan zijn:

Voorbeelden van NFA

De bovenstaande afbeelding is een NFA omdat we in toestand q0 met invoer 0 naar toestand q0 of q1 kunnen gaan.