Exemple 1:
Dissenyeu un NFA per a la taula de transició tal com es mostra a continuació:
Estat actual | 0 | 1 |
---|---|---|
→q0 | q0, q1 | q0, q2 |
q1 | q3 | e |
q2 | q2, q3 | q3 |
→q3 | q3 | q3 |
Solució:
El diagrama de transició es pot dibuixar utilitzant la funció de mapeig tal com es mostra a la taula.
Aquí,
δ(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}
Exemple 2:
Dissenyar un NFA amb ∑ = {0, 1} accepta totes les cadenes que acaben amb 01.
mysql no és igual
Solució:
Per tant, NFA seria:
Exemple 3:
Dissenyeu un NFA amb ∑ = {0, 1} en què el doble '1' sigui seguit del doble '0'.
Solució:
piles de java
El FA amb doble 1 és el següent:
Hauria d'anar seguit immediatament d'un doble 0.
Llavors,
Ara, abans del doble 1, pot haver-hi qualsevol cadena de 0 i 1. De la mateixa manera, després del doble 0, pot haver-hi qualsevol cadena de 0 i 1.
Per tant, la NFA es converteix en:
: en java
Ara tenint en compte la cadena 01100011
q0 → q1 → q2 → q3 → q4 → q4 → q4 → q4
Exemple 4:
Dissenyeu una NFA en què tota la cadena contingui una subcadena 1110.
Solució:
El llenguatge consta de tota la cadena que conté la subcadena 1010. El diagrama de transició parcial pot ser:
Ara com 1010 podria ser la subcadena. Per tant, afegirem les entrades 0 i 1 perquè es pugui mantenir la subcadena 1010 del llenguatge. Per tant, la NFA es converteix en:
interfície en java
La taula de transicions del diagrama de transició anterior es pot donar a continuació:
Estat actual | 0 | 1 |
---|---|---|
→q1 | q1 | q1, q2 |
q2 | q3 | |
q3 | q4 | |
q4 | q5 | *q5 | q5 | q5 |
Considereu una cadena 111010,
δ(q1, 111010) = δ(q1, 1100) = δ(q1, 100) = δ(q2, 00)
Va quedar encallat! Com que no hi ha cap camí des de q2 per al símbol d'entrada 0. Podem processar la cadena 111010 d'una altra manera.
δ(q1, 111010) = δ(q2, 1100) = δ(q3, 100) = δ(q4, 00) = δ(q5, 0) = δ(q5, ε)
Com que l'estat q5 és l'estat d'acceptació. Aconseguim l'escaneig complet i arribem a l'estat final.
Exemple 5:
Dissenyar un NFA amb ∑ = {0, 1} accepta totes les cadenes en què el tercer símbol de l'extrem dret és sempre 0.
multiplexor
Solució:
Així obtenim el tercer símbol de l'extrem dret com a '0' sempre. La NFA pot ser:
La imatge de dalt és una NFA perquè a l'estat q0 amb entrada 0, podem anar a l'estat q0 o q1.