Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Autmata de Estados Finitos (AF): Describen, reconocen y definen a los Lenguajes Regulares.
Modelo Matemtico de un sistema con estados y salidas discretas.
- Autmata Finito No Determinista (AFN). Puede estar en varios estados al mismo tiempo.
Nota: En los AFD debe cumplirse que: Para toda a que esta en existe exactamente una
transicin de salida de cada estado.
b) Funcin de transicin
Ejemplo: Dado el lenguaje L = { x | x en {0,1} y x comienza con 0 }, es decir todas las cadenas
binarias que comienzan con 0. El AFD que lo reconoce es el siguiente:
M = (Q ,, , q0 , F)
0 1
--> q0 q1 q2
*q1 q1 q1
q2 q2 q2
Funcin de transicin
(q0,0) = q1
(q0,1) = q2
(q1,0) = q1
(q1,1) = q1
(q2,0) = q2
(q2,1) = q2
Las tres representaciones de la funcin de transicin son equivalentes, y cada suficiente para
dar el AF. Puede escoger una representacin pero comprendiendo la relacin entre ellas.
= Q x * Q
1) (q,) = q
2) Para todo w en * y a en (q,wa) = ((q,w),a)
Por ejemplo: Dado el AFD anterior que reconoce el lenguaje L = { x | x en {0,1} y x comienza
con 0 } , pruebe si las cadenas w1 = 010 y w2 = 101 estn en el lenguaje L
Nota importante: Para poder verificar si la cadena w esta (es aceptada) o no (no es
aceptada) en L se debe terminar de procesarse la cadena w.
M = (Q, , , q0, F)
= {0,1} , Q = {q0,q1,q2,q3}
F = { q3 }
(q0,0101) = ((q0,010),1) = (
((q0,01),0),1) = ( ( ((q0,0),1),0),1) =
( ( ( ((q0,),0),1),0),1)
( ( ( (q0,0),1),0),1) ( ( ( (q1,1),0),1) ( (q3,0),1) (q2,1) = q0, Acepto al
terminar de procesar la cadena y quedar en un estado de aceptacin q0 (q0 esta en F es
verdadero)
Ejercicios AFD:
Para = {0,1} construya un AFD que acepte los siguientes lenguajes:
b) El conjunto de todas las cadenas cuyo tercer elemento desde el extremo izquierdo sea
un 1.
e) El conjunto vaco.
1) (q,) = {q}
2) (q,xa) = { r | para algn p en (q,x), (p,a) = r }
Entonces:
.
.
.
Extensin para Q* x
L(M)= { w | w en * y (q0,w) F}
Es el conjunto de cadenas pertenecientes a * tal que ejecutar el AFN desde el estado inicial
q0 con la cadena w, la funcin de transicin extendida (q0,w) contiene al menos un estado
de aceptacin (es diferente del vaco la interseccin con F).
Ejemplo:
Dado el lenguaje L= { x | x en {0,1} y termina en 01}, hallar el AFN que lo reconozca
L={ 01, 0001, 101, 1001, 10101, }
A = (Q, , , q0, F)
Q = { q0, q1, q2 }
= { 0,1 }
F = {q2}
1 0 1 0 1
(q0,01) = ((q0,0),1) = ( ((q0,), 0),1) ((q0, 0),1) ({q0, q1},1) = (q0,1) U (q1,1) =
{q0} U {q2} = {q0,q2} , Acepto porque {q0,q2} {q2} , es decir al menos uno de los
estados del autmata, luego de procesar la cadena, es de aceptacin
Ejercicios AFN:
- Tienen casi el mismo nmero de estados. El AFD ms grande puede tener 2n estados y el
AFN mas pequeo solo tiene n estados.
Teorema: Si L es aceptado por un AFN entonces existe un AFD que acepta L (es decir, ambos
aceptan la misma clase de lenguaje).
Algoritmo:
- son iguales de N y D.
*
- QD es el conjunto de los subconjuntos de QN, (QD ) conjunto potencia. No todos los
estados de QD son accesibles desde q0, esos son eliminados.
N 0 1
q0 {q0,q1} {q0}
q1 {q1}
q3
Para w= 10101 en *
D({q0},10101) = D (D({q0},1010),1) = D (D (D (D (D (D({q0},),1),0),1),0),1)
D (D (D (D (D ({q0},1),0),1),0),1) = D (D (D (D (D ({q0},1),0),1),0),1) = D (D (D
(D({q0},0),1),0),1) = D (D (D ({q0,q1},1),0),1) = D (D ({q0,q2},0),1) = D ({q0,q1},1) = {q0,q2}
Acepto porque {q0,q2} esta en FD
La demostracin de este algoritmo esta en el libro [1]: Se demuestra por induccin sobre el
tamao de w, donde el caso base N(q0, ) = D({q0}, ) y para el caso inductivo N(q0, w) =
D({q0}, w)
AFN :
1 0
Ejecucin de un AFN-:
Dada una cadena y un AFN-, para reconocer dicha cadena se debe aplicar la funcin
Extendida para cadena ^: Q x * Q*
Donde ^(q,w) es el conjunto de todos los estados pi tal que se puede ir de q a cada pi por un
camino etiquetado w que puede incluir arcos etiquetados . Para calcular este camino es
necesario definir el trmino -clausura de un estado.
-clausura (q) = es el conjunto de todos los estados a los cuales se puede llegar a partir de q
siguiendo un camino de arcos etiquetados con nicamente.
1) ^(q0,) = -clausura(q0)
R es subconjunto de Q:
3) (R,a) =
4)
^
Entonces (q,w) = ^(q,x) = {r1,r2,...,rk} con w = xa .
-clausura(q0) = { q0,q1,q2}
-clausura(q1) = {q1,q2}
-clausura(q2) = {q2}
L(E)= { w | ^(q0,w) F}
Teorema: Si L es aceptado por un AFN con transiciones entonces L es aceptado por un AFN
sin -transiciones.
q0D = -clausura(q0E)
QD = QE *, es decir el conjunto de
subconjuntos de QE
FD = { s | s en QD y S FE }
D (S,a) para todo a en y S en QD =
{ }=
D =( , , , )
( )=
( )=
( )=
Ejercicios:
1. Obtenga un diagrama de transicin de un AFN que acepte las cadenas de 0s y 1s que
tengan 2 ceros separados por una cadena cuya longitud es 3i para algn i 0.Usando
el algoritmo visto en clase, convierta este autmata en un AFD.
2. Obtenga un autmata finito (de cualquier tipo) para reconocer los siguientes lenguajes:
cadenas acabadas en 00
cadenas con dos unos consecutivos
cadenas que no contengan dos unos consecutivos
cadenas con dos ceros consecutivos o dos unos consecutivos
cadenas con dos ceros consecutivos y dos unos consecutivos
cadenas acabadas en 00 o 11
cadenas con un 1 en la antepenltima posicin
cadenas de longitud 4
0 1
p {p, q} {p}
q {r} {r}
r {s} {}
*s {s} {s}
0 1
p {q, s} {q}
*q {r} {q,r}
r {s} {p}
*s {} {p}
E = (Q, , , p, F)
Q = { p, q, r }
= { a, b, c }
F={r}
a b c
p {p} {q} {r}
a b
q0 {q1,q2} {q1,q3} {}
q1 {} {} {q3}
q2 {q4} {} {}
q3 {} {q4} {}
q4 {} {} {}
a b c
q0 {q0,q1} {} {} {q2}
q1 {} {q1,q3} {} {}
q2 {} {q2} {} {q3}
q3 {} {} {q3} {}
Preguntas
Determine las diferencias entre un AFD y un AFN.
Piense en aplicaciones de la vida real que pueden ser vistos como AF.
Referencias
[1] John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman. (2002), Introduccin a la Teora de
Autmatas y Lenguajes Formales. PrenticeHall.