Transformación de autómata finito no determinista a autómata finito determinista

Transformación de AFND a AFD
Concepto:Algoritmo que permite encontrar a partir de un AFND un AFD equivalente.

Transformación de autómata finito no determinista a autómata finito determinista. Todo AFND estricto, o sea un AFND que no es AFND-V, puede ser transformado a AFD utilizando un algoritmo que transforma los estados del AFND en nuevos estados que son subconjuntos de los estados originales y aplica a los mismos la clausura para confirmar la conexidad entre cada uno de los componentes y así eliminar el indeterminismo.

Este algoritmo aunque siempre obtiene un AFD equivalente no puede decirse que sea la versión minimal del mismo, para ello deben aplicarse otras transformaciones.

Algoritmo

Sea un autómata finito estrictamente no determinista (AFND) definido por la 5-tupla A=<Q, T, g, F, q0>, donde Q es el conjunto de estados, T el alfabeto de símbolos terminales, la relación de transiciones ó (léase: del estado qi mediante el terminal x se va a qj), F son los estados finales o de llegada dentro de Q, q0 es el estado inicial o de partida

  1. A se transforma en AAFD=<QA,T, gA,FA,q0A>', tal que:
    1. VA=P(V)-{{}}, con P(V) que es el conjunto potencia de los vértices de A.
    2. FA={x | }.
    3. gA={<r,x,q> | }.
    4. q0A={q0}.
  2. Luego se eliminan de AAFD todos los estados y sus correspondientes transiciones inalcanzables desde el estado inicial q0A.

Ejemplo

Véase el proceso de transformación de AFND a AFD del autómata A=<{q0,q1,f},{a,b},{<q0,a,q0>,<q0,b,q0>,<q0,a,q1>,<q1,b,f>},{f},q0>, que reconoce a las cadenas de as y bs que comienzan con cualquiera cantidad de estas letras y terminan forzosamente en ab. El siguiente puede ser su diagrama de estados:

Primero se obtiene autómata derivado AAFD=<VAFD,TAFD,gAFD,FAFD,{q0}> a partir del conjunto potencia de los estados de A donde:

  • VAFD={{q0},{q1},{f},{q0,q1},{q0,f},{q1,f}, {q0,q1,f}}.
  • TAFD={a,b}.
  • FAFD={{f},{q0,f},{q1,f}, {q0,q1,f}}.

Cuyo diagrama sería:

Luego se retiran los estados inaccesibles {q1}, {f}, {q1,f}, {q0,q1,f}, determinados mediante la clausura de {q0}, y queda:

  • AAFD={{q0,{q0,q1},{q0,f}},{a,b},{<{q0},b,{q0}>,<{q0},a,{q0,q1}>,<{q0,q1},a,{q0,q1}>,<{q0,q1},b,{q0,f}>,<{q0,f},a,{q0,q1}>,<{q0,f},b,{q0}>},{ {q0,f} },{q0}}.

Consecuencias

La existencia de este método permite la conversión de cualquier AFND a un AFD equivalente, es decir la eliminación del indeterminismo estricto (el mismo símbolo terminal conduce a más de un estado desde un origen común), aunque no garantiza que sea el AFD equivalente minimal. Para ello deben seguirse otros pasos de reducción del AF.

Otra situación pudiera darse en el caso que se desee, por ejemplo, a partir de una expresión regular se desee obtener su autómata finito determinista, mediante el algoritmo de Thompson se obtiene el AFND-V, luego se procede por el método de la clausura-xi a su conversión a AFND y entonces puede aplicársele al autómata la transformación a AFD.

Vease también

Fuentes

  1. Tanembaum, A. Compilers: Principles, Tecniques, and Tools. Tomo 1. ACM Press. 5ta Edición.
  2. Conferencias de la Asignatura "Compilación 1" del Departamento de Ciencias de la Computación de la Universidad de Oriente. Santiago de Cuba, 2000.
  3. Autómata finito en Wikipedia. Consultado el 25 de noviembre de 2013.
  4. Acevedo Martínez, Liesner; Osorio Ramírez, Karel. Manual de apoyo a la docencia. Técnicas de Compilación: Manual Práctico para estudiantes de Informática. Libro electrónico en PDF. UCI. La Habana, 2011.
This article is issued from Ecured. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.