logo

Ejemplos de NFA

Ejemplo 1:

Diseñe una NFA para la tabla de transición como se indica a continuación:

Estado actual 0 1
→q0 q0,q1 q0, q2
q1 q3 mi
q2 q2, q3 q3
→q3 q3 q3

Solución:

El diagrama de transición se puede dibujar utilizando la función de mapeo como se indica en la tabla.

Ejemplos de NFA

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} 

Ejemplo 2:

Diseñar una NFA con ∑ = {0, 1} acepta todas las cadenas que terminan en 01.

Sistema operativo

Solución:

Ejemplos de NFA

Por tanto, NFA sería:

Ejemplos de NFA

Ejemplo 3:

Diseñe un AFN con ∑ = {0, 1} en el que al doble '1' le siga el doble '0'.

Solución:

mapa de árbol

La FA con doble 1 queda de la siguiente manera:

Ejemplos de NFA

Debería ir seguido inmediatamente del doble 0.

Entonces,

Ejemplos de NFA

Ahora, antes del doble 1, puede haber cualquier cadena de 0 y 1. De manera similar, después del doble 0, puede haber cualquier cadena de 0 y 1.

Por tanto, la NFA se convierte en:

patrón de diseño del método de fábrica
Ejemplos de NFA

Ahora considerando la cadena 01100011

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

Ejemplo 4:

Diseñe una NFA en la que toda la cadena contenga una subcadena 1110.

Solución:

El lenguaje consta de toda la cadena que contiene la subcadena 1010. El diagrama de transición parcial puede ser:

Ejemplos de NFA

Ahora bien, 1010 podría ser la subcadena. Por lo tanto, agregaremos las entradas 0 y 1 para que se pueda mantener la subcadena 1010 del idioma. Por tanto, la NFA se convierte en:

matriz c cadena
Ejemplos de NFA

La tabla de transición para el diagrama de transición anterior se puede proporcionar a continuación:

Estado actual 0 1
→q1 q1 q1, q2
q2 q3
q3 q4
q4 q5
*q5 q5 q5

Considere una cadena 111010,

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

¡Quedó atascado! Como no hay una ruta desde q2 para el símbolo de entrada 0, podemos procesar la cadena 111010 de otra manera.

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

Como estado q5 es el estado de aceptación. Obtenemos el escaneo completo y llegamos al estado final.

Ejemplo 5:

Diseñar un NFA con ∑ = {0, 1} acepta todas las cadenas en las que el tercer símbolo desde el extremo derecho es siempre 0.

operadores en programación python

Solución:

Ejemplos de NFA

Por lo tanto, siempre obtenemos el tercer símbolo desde el extremo derecho como '0'. La NFA puede ser:

Ejemplos de NFA

La imagen de arriba es una NFA porque en el estado q0 con entrada 0, podemos ir al estado q0 o q1.