¿Cómo utiliza una NFA las transiciones epsilon?


12

En la imagen a continuación, estoy tratando de averiguar qué es exactamente lo que esta NFA está aceptando.

ingrese la descripción de la imagen aquí

Lo que me confunde es el salto en .q 0ϵq0

  • Si se ingresa un , ¿el sistema se mueve a y (el estado de aceptación)?q 0 q 10q0 q1

  • Si se ingresa un , ¿se mueve el sistema a y ?q 1 q 21q1q2

  • ¿El sistema solo se mueve a (aceptar estado), si no se proporciona ninguna entrada (cadena vacía)?q1


2
Regrese a las definiciones: un NFA acepta una palabra si cualquier cálculo en ella acepta. Los NFA no son, per se, "algoritmos" en el sentido de que DFA sí lo son.
Raphael

Respuestas:


10

Cada vez que se encuentra en un estado que tiene una transición , significa que automáticamente está en AMBOS estados, para simplificar esto:ϵ

Si la cadena es , su autómata termina en yq 0 q 1ϵq0q1

Si su cadena es '0', volverá a estar en yq 1q0q1

Si su cadena es '1', estará solo en , porque si mira desde el punto de , tiene una transición '1' a , pero también debe mirar si está en ( si estabas en siempre estabas en también) entonces no hay transición '1', por lo que esta ruta alternativa simplemente "muere".q 0 q 2 q 1 q 0 q 1q2q0q2q1q0q1

Con solo mirar estos casos, es fácil ver que su autómata acepta , , y yendo de a , la única forma de llegar a es , entonces, esto reanuda su autómata a , ,0 q 0 q 1 q 2 0 11 1 ϵ 0 0 11 1ϵ0q0q1q20111ϵ00111

Espero que esto te haya ayudado, si tienes más dudas, ¡solo pregunta!


77
"significa que automáticamente estás en AMBOS estados". No creo que sea una intuición útil, es decir, que representa el no determinismo de manera incorrecta.
Raphael

¿Por qué lo representa mal? Bueno, según la definición de delta en el no determinismo, ¿obtienes un conjunto de estados en lugar de solo 1 correctamente? Esto puede significar solo que usted está en ambos estados.
H_DANILO

Promueve la idea de que las máquinas no deterministas "prueban todas las soluciones en paralelo". Eso no es lo que sucede, algorítmicamente hablando. El no determinismo es un formalismo descriptivo, no una técnica algorítmica.
Raphael

Traté de ponerlo en una forma comprensible, ya que hes tratando de entender los principios de no determinismo de una manera teórico
H_DANILO

@Raphael ¿Cuál sería una intuición más útil, en tu opinión?
Andrey Portnoy

6

En el estado sin leer ninguna entrada, el NFA permanece en y (en un universo alternativo, si lo desea) también se mueve al estado . Esto es similar a lo que sucedería en un NFA que tuviera dos transiciones a diferentes estados en una entrada de un personaje. En particular, su NFA acepta la cadena vacía, ya que en ninguna entrada puede hacer una transición al estado de aceptación .q0q0q1q1

Continuando con su ejemplo, desde el estado viendo la entrada , consumiría ese símbolo, permanecería en el estado (el bucle) y también iría al estado , aceptando así la entrada . En el estado leyendo la entrada , el NFA iría al estado . Es posible que tampoco consuma el , cambie al estado en otro universo y se quede atascado allí (y no acepte, ya que no había leído toda la entrada), ya que no hay transición de en un .q00q0q10q01q21q1q11

Vea si puede convencerse de que el lenguaje aceptado por esta máquina se denota con la expresión regular , es decir, cualquier cadena que consta de cero o más s seguido de nada en absoluto o dos o más s.0+011101


Por cierto, hay un algoritmo que toma un NFA con -moves y produce un NFA equivalente sin -moves, que espero que aprenda pronto.ϵϵ


-1

Traté de construir DFA para este NFA

- conjunto de alfabeto

QConjunto de estados

σ(Q×(ϵ))P(Q) función de estado

q0=q0

FQ,F={q0}

Debido a que cada NFA tiene DFA igual, podemos construir DFA para este NFA dado.M

alfabeto - lo mismo

Q=P(Q) - estados

El estado actual esRP(Q)

E(R) : conjunto de estados de retorno de cierre de epsilon accesible a cero o más : conexiones para cadaϵrR

σ(R,a)=rRE(σ(r,a)) -transiciones

q0=E({q0})

F=P(Q)÷F

Algunos cálculos en este FSM

1. ϵ en la entrada: el estado inicial incluye para que FSM acepteq0=E({q0})={q0,q1}q1ϵ

2. 0 en la entrada: para que FSM acepteσ({q0,q1},0)=E(σ(q0,0))E(σ(q1,0))={q0,q1}{}={q0,q1}0

al menos{ϵ,0}L(M)

Gracias a David Richerby.


Gracias por agradecerme, pero realmente no veo cómo esto responde la pregunta. No ha establecido qué idioma acepta la máquina y no ha abordado ninguna de las tres preguntas con viñetas.
David Richerby

1) cuando la entrada es (cadena vacía), el estado FSM es 2) cuando la entrada es o incluso estado FSM es ambos temas de preguntas iniciales, ¿No lo es? { q 0 , q 1 } 0 0 { q 0 , q 1 }ϵ{q0,q1}00{q0,q1}
OrangeFish
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.