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.
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:
Por tanto, NFA sería:
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:
Debería ir seguido inmediatamente del doble 0.
Entonces,
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
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:
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
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:
Por lo tanto, siempre obtenemos el tercer símbolo desde el extremo derecho como '0'. La NFA puede ser:
La imagen de arriba es una NFA porque en el estado q0 con entrada 0, podemos ir al estado q0 o q1.