SlideShare una empresa de Scribd logo
Autómatas Finitos No Determinísticos
Minimización de Autómatas Finitos Determinísticos
Ciencias de la Computación I
Agosto 2007
Autómatas Finitos
Determinísticos
Para cada estado y para cada símbolo se determina unívocamente un
solo estado:
e0 e1
b
a, c
a, c b
No Determinísticos
Para algunos estados, dado un símbolo a, existe un conjunto de
estados siguientes para elegir
Dada una cadena w existe sólo
una forma de recorrer el diagrama
de transición de estados del AF
e0 e1
b
a, b, c
Desde e0 con b podemos
quedarnos en e0 ó pasar a e1
Autómatas Finitos No Determinísticos
Formalmente, un AF reconocedor no determinístico (AFND)
se define como una quintupla
M = <E, A, , ei, F>
 E es un conjunto finito de estados; E  
 A es el alfabeto de entrada
  es la función de transición de estados; : E x A  P(E)
P(E) conjunto potencia de E
 F es el conjunto de estados finales o de aceptación; F  E
En general
(ej, a) = {ek, es, et, … }
El AF puede pasar del estado ej al ek ó al estado es ó al estado et
después de leer el símbolo a en la cinta (ej, ek,es, et,  E; a  A)
Autómatas Finitos No Determinísticos
Ejemplo:
AFND que reconoce el lenguaje
L = { x / x  {a, b}* y x contiene la subcadena ab }
e0 e2
b
a, b a, b
e1
a
AFND = <{e0, e1 , e2}, {a, b}, , e0, {e2}>
Las cadenas aaba y baa, ¿pertenecen o no a L(AFND)?
Aceptación de cadena por AFND
Un AFND acepta una cadena si existe alguna secuencia de
transiciones que a partir del primer símbolo de la cadena y
empezando en el estado inicial, permite alcanzar un estado
final luego de leer todos los símbolos de la cadena.
Determinismo y No determinismo
Determinismo  término importante en muchas áreas de
Teoría de la Computación
Determinismo  existe una alternativa válida, o no hay alternativa.
No Determinismo  puede haber varias alternativas válidas.
Importante distinguir si el no determinismo agrega o no poder
computacional
En los Autómatas Finitos, todo se puede resolver con un
Autómata Finito Determinístico
Equivalencia entre AFND y AFD
Teorema:
Sea L un lenguaje aceptado por un AFND. Entonces existe un AFD que
acepta el mismo lenguaje L. Es decir, L(AFND) = L(AFD)
Algoritmo para obtener AFD a partir de AFND:
Dado el autómata finito no determinístico MND = <END, A, ND, e0ND, FND>,
se define el autómata finito determinístico correspondiente
MD= <ED, A, D, e0D, FD> como sigue:
-ED = P(END) (conjunto potencia de END).
Cada elemento de ED se representa como [e1, e2, ..., ei] donde e1,
e2, ..., ei  END.
[e1, e2, ..., ei] es un único estado de MD
- A: alfabeto de entrada
Equivalencia entre AFND y AFD
Algoritmo para obtener AFD a partir de AFND:
-FD: conjunto de todos los estados de ED que contienen al menos un
estado final de MND.
- e0D = [e0ND] (estado inicial)
-D: ED x A  ED, se define como
D([e1, e2, ..., ei], a) = [el, em, ..., ek] sii
ND({e1, e2, ..., ei}, a) = G ({e1, e2, ..., ei}, a) = {el, em, ..., ek},
G (C, a) =   (p, a) y G (, a) =  (C: conj. de estados)
p  C
D aplicada a un elemento [e1, e2, ..., ei] de ED se calcula aplicando
ND a cada estado de END que está en [e1, e2, ..., ei].
Equivalencia entre AFND y AFD
Sea AFND = <{e0, e1}, {a, b, c}, , e0, {e1}> tal que
L(AFND) = { x / x  {a, b, c}* y x termina en b}
ND a b c
e0 {e0} {e0, e1} {e0}
e1   
D a b c
[e0] [e0] [e0, e1] [e0]
[e0, e1] [e0] [e0, e1] [e0]
Función de transición
determinística
e0 e1
b
a, b, c
a, c
e0 e0,e1
b
a, c b
Función de transición
no determinística
Minimización de AFD
Teorema
Para cada AFD existe un AFD con cantidad mínima de
estados que acepta el mismo lenguaje.
Algoritmo para minimizar un AFD
(divide al conjunto de estados del AFD en clases de
estados equivalentes)
Dado un AFD = <E, A, , e0, F>, dos estados p, q  E son
equivalentes sí y sólo sí para toda cadena x  A*,
* (p,x)  F  * (q,x)  F ó * (p,x)  F  * (q,x)  F
(Si las transiciones desde p con la cadena x llegan a un estado final, las de q con esa
misma cadena x también tienen que llegar, lo mismo si no se llega a un estado final)
Minimización de AFD
Algoritmo para minimizar un AFD
1) Eliminar los estados no alcanzables desde el estado inicial.
2) Eliminar los estados desde los que no es posible alcanzar un estado final.
3) Construir una partición 0 del conjunto de estados, que consiste en dos
grupos: estados finales y estados no finales.
4) Sea K = 0.
5) Definir K+1 de la siguiente manera:
para cada grupo G de una partición K, dividir a G en subgrupos tales que
dos estados s y t están en el mismo grupo sí y sólo sí para todo símbolo a
del alfabeto de entrada, los estados s y t van al mismo grupo de K.
6) K = K + 1.
7) Si K  K-1 volver al paso 5. En caso contrario, terminar.

Más contenido relacionado

Similar a AUTOMATAS.PPT

Analizador LÉxico
Analizador LÉxicoAnalizador LÉxico
Analizador LÉxico
FARIDROJAS
 
No determinista autómatas finitos
No determinista autómatas finitosNo determinista autómatas finitos
No determinista autómatas finitos
Juan Garcia
 
Analisis lexico 2
Analisis lexico 2Analisis lexico 2
Analisis lexico 2
perlallamas
 
Representecion-EspectraDAxz<x<zx<zxz<l.pptx
Representecion-EspectraDAxz<x<zx<zxz<l.pptxRepresentecion-EspectraDAxz<x<zx<zxz<l.pptx
Representecion-EspectraDAxz<x<zx<zxz<l.pptx
SANTOS400018
 
Automatas y compiladores clase4
Automatas y compiladores clase4Automatas y compiladores clase4
Automatas y compiladores clase4
Germania Rodriguez
 

Similar a AUTOMATAS.PPT (20)

Clase afd
Clase afdClase afd
Clase afd
 
Lenguajes Regulares.
Lenguajes Regulares.Lenguajes Regulares.
Lenguajes Regulares.
 
automatas finitos
 automatas finitos automatas finitos
automatas finitos
 
Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacion
 
Apunte4
Apunte4Apunte4
Apunte4
 
Automatas finitos
Automatas finitosAutomatas finitos
Automatas finitos
 
Analizador LÉxico
Analizador LÉxicoAnalizador LÉxico
Analizador LÉxico
 
Autómata de pila (AP)
Autómata de pila (AP)Autómata de pila (AP)
Autómata de pila (AP)
 
Automatas Infinitos
Automatas Infinitos Automatas Infinitos
Automatas Infinitos
 
No determinista autómatas finitos
No determinista autómatas finitosNo determinista autómatas finitos
No determinista autómatas finitos
 
Matematica discreta1
Matematica discreta1Matematica discreta1
Matematica discreta1
 
Autómatas finitos no deterministas actualizado
Autómatas finitos no deterministas actualizadoAutómatas finitos no deterministas actualizado
Autómatas finitos no deterministas actualizado
 
Analisis lexico 2
Analisis lexico 2Analisis lexico 2
Analisis lexico 2
 
Representecion-EspectraDAxz<x<zx<zxz<l.pptx
Representecion-EspectraDAxz<x<zx<zxz<l.pptxRepresentecion-EspectraDAxz<x<zx<zxz<l.pptx
Representecion-EspectraDAxz<x<zx<zxz<l.pptx
 
Automatas y compiladores clase4
Automatas y compiladores clase4Automatas y compiladores clase4
Automatas y compiladores clase4
 
Apunte mt 2
Apunte mt 2Apunte mt 2
Apunte mt 2
 
Trabajo colaborativo 1
Trabajo colaborativo 1Trabajo colaborativo 1
Trabajo colaborativo 1
 
La máquina sin memoria
La máquina sin memoriaLa máquina sin memoria
La máquina sin memoria
 
Cuadro descriptivo
Cuadro descriptivoCuadro descriptivo
Cuadro descriptivo
 
509 259-1-pb
509 259-1-pb509 259-1-pb
509 259-1-pb
 

AUTOMATAS.PPT

  • 1. Autómatas Finitos No Determinísticos Minimización de Autómatas Finitos Determinísticos Ciencias de la Computación I Agosto 2007
  • 2. Autómatas Finitos Determinísticos Para cada estado y para cada símbolo se determina unívocamente un solo estado: e0 e1 b a, c a, c b No Determinísticos Para algunos estados, dado un símbolo a, existe un conjunto de estados siguientes para elegir Dada una cadena w existe sólo una forma de recorrer el diagrama de transición de estados del AF e0 e1 b a, b, c Desde e0 con b podemos quedarnos en e0 ó pasar a e1
  • 3. Autómatas Finitos No Determinísticos Formalmente, un AF reconocedor no determinístico (AFND) se define como una quintupla M = <E, A, , ei, F>  E es un conjunto finito de estados; E    A es el alfabeto de entrada   es la función de transición de estados; : E x A  P(E) P(E) conjunto potencia de E  F es el conjunto de estados finales o de aceptación; F  E En general (ej, a) = {ek, es, et, … } El AF puede pasar del estado ej al ek ó al estado es ó al estado et después de leer el símbolo a en la cinta (ej, ek,es, et,  E; a  A)
  • 4. Autómatas Finitos No Determinísticos Ejemplo: AFND que reconoce el lenguaje L = { x / x  {a, b}* y x contiene la subcadena ab } e0 e2 b a, b a, b e1 a AFND = <{e0, e1 , e2}, {a, b}, , e0, {e2}> Las cadenas aaba y baa, ¿pertenecen o no a L(AFND)? Aceptación de cadena por AFND Un AFND acepta una cadena si existe alguna secuencia de transiciones que a partir del primer símbolo de la cadena y empezando en el estado inicial, permite alcanzar un estado final luego de leer todos los símbolos de la cadena.
  • 5. Determinismo y No determinismo Determinismo  término importante en muchas áreas de Teoría de la Computación Determinismo  existe una alternativa válida, o no hay alternativa. No Determinismo  puede haber varias alternativas válidas. Importante distinguir si el no determinismo agrega o no poder computacional En los Autómatas Finitos, todo se puede resolver con un Autómata Finito Determinístico
  • 6. Equivalencia entre AFND y AFD Teorema: Sea L un lenguaje aceptado por un AFND. Entonces existe un AFD que acepta el mismo lenguaje L. Es decir, L(AFND) = L(AFD) Algoritmo para obtener AFD a partir de AFND: Dado el autómata finito no determinístico MND = <END, A, ND, e0ND, FND>, se define el autómata finito determinístico correspondiente MD= <ED, A, D, e0D, FD> como sigue: -ED = P(END) (conjunto potencia de END). Cada elemento de ED se representa como [e1, e2, ..., ei] donde e1, e2, ..., ei  END. [e1, e2, ..., ei] es un único estado de MD - A: alfabeto de entrada
  • 7. Equivalencia entre AFND y AFD Algoritmo para obtener AFD a partir de AFND: -FD: conjunto de todos los estados de ED que contienen al menos un estado final de MND. - e0D = [e0ND] (estado inicial) -D: ED x A  ED, se define como D([e1, e2, ..., ei], a) = [el, em, ..., ek] sii ND({e1, e2, ..., ei}, a) = G ({e1, e2, ..., ei}, a) = {el, em, ..., ek}, G (C, a) =   (p, a) y G (, a) =  (C: conj. de estados) p  C D aplicada a un elemento [e1, e2, ..., ei] de ED se calcula aplicando ND a cada estado de END que está en [e1, e2, ..., ei].
  • 8. Equivalencia entre AFND y AFD Sea AFND = <{e0, e1}, {a, b, c}, , e0, {e1}> tal que L(AFND) = { x / x  {a, b, c}* y x termina en b} ND a b c e0 {e0} {e0, e1} {e0} e1    D a b c [e0] [e0] [e0, e1] [e0] [e0, e1] [e0] [e0, e1] [e0] Función de transición determinística e0 e1 b a, b, c a, c e0 e0,e1 b a, c b Función de transición no determinística
  • 9. Minimización de AFD Teorema Para cada AFD existe un AFD con cantidad mínima de estados que acepta el mismo lenguaje. Algoritmo para minimizar un AFD (divide al conjunto de estados del AFD en clases de estados equivalentes) Dado un AFD = <E, A, , e0, F>, dos estados p, q  E son equivalentes sí y sólo sí para toda cadena x  A*, * (p,x)  F  * (q,x)  F ó * (p,x)  F  * (q,x)  F (Si las transiciones desde p con la cadena x llegan a un estado final, las de q con esa misma cadena x también tienen que llegar, lo mismo si no se llega a un estado final)
  • 10. Minimización de AFD Algoritmo para minimizar un AFD 1) Eliminar los estados no alcanzables desde el estado inicial. 2) Eliminar los estados desde los que no es posible alcanzar un estado final. 3) Construir una partición 0 del conjunto de estados, que consiste en dos grupos: estados finales y estados no finales. 4) Sea K = 0. 5) Definir K+1 de la siguiente manera: para cada grupo G de una partición K, dividir a G en subgrupos tales que dos estados s y t están en el mismo grupo sí y sólo sí para todo símbolo a del alfabeto de entrada, los estados s y t van al mismo grupo de K. 6) K = K + 1. 7) Si K  K-1 volver al paso 5. En caso contrario, terminar.