Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Analizador lxico
AUTMATA FINITO
Autmata finito
Ejemplo
La maquina de refresco:
Caractersticas:
Ejemplo:
Ejemplo
Los nodos del diagrama se denominan estados y se utilizan para sealar hasta
donde se ha analizado la cadena.
Las aristas se denominan transiciones y se etiquetan con los smbolos del
alfabeto.
Diagramas de Estado
El diagrama de estado de un AFD es un grafo dirigido-etiquetado
en el cual los nodos representan los estados de la mquina y los
arcos son obtenidos de la funcin de transicin.
Otra definicin es la siguiente:
El diagrama de estado de un AFD M = (Q, S, d, q0, F) es un
grafo etiquetado G definido por las sig. condiciones:
i) Los nodos de G son los elementos de Q.
ii) Las etiquetas sobre los arcos de G son elementos de S.
iii) q0 es el nodo inicial, representado con >
iv) F es el conjunto de nodos aceptadores; cada nodo acaptador
se representa con
Construccin de diagramas de
transicin
Para construir un diagrama de transiciones a partir de una
descripcin de un autmata, se procede como sigue.
Se dibujan nodos para cada estado del autmata, luego se
trazan flechas desde cada estado qi hacia el qj etiquetndolas
con el smbolo de entrada correspondiente, se marca el estado
inicial y los estados de aceptacin.
Autmata determinstico
A = ({q0, q1, q2}, {a, b}, , q0, {q0, q1})
(q0, a)= q0
(q0, b)= q1
(q1, a)= q2
(q1, b)= q1
(q2, a)= q2
(q2, b)= q2
Ejemplo
Solucin:
Se construye el diagrama de estados, colocando en
primer lugar todos los estados dentro de crculos,
marcando con doble crculo el estado final. El estado
inicial se indica con una flecha que lo seala con la
palabra INICIO encima. Para construir las ramas, nos
situamos en el primer estado de la tabla de transiciones
y se observa que f(q1,a)=q2, entonces se traza una
flecha entre q1 y q2, apuntando a q2, y se coloca
encima de la flecha el smbolo del vocabulario de
entrada a. De igual forma se recorre la tabla de
transiciones para cada estado y entrada completndose
el diagrama de Moore.
Teora computacional
Clase 08: Autmatas finitos
Prof. Edgardo Adrin Franco Martnez
[A-Za- z_]
[0-9]
letra_ ( letra_ |
dgito)*
Teora computacional
Clase 08: Autmatas finitos
Prof. Edgardo Adrin Franco Martnez
Ejemplo
Teora computacional
Clase 08: Autmatas finitos
Prof. Edgardo Adrin Franco Martnez
Ejemplo:
Considrese
el
determinstico
siguiente
autmata
M = (Q,,,q0,F), donde
Q = {qo,q1}
= {a, b}
qo = estado inicial
F = { qo }
y es la funcin tabulada a continuacin:
finito
Entonces:
Ejemplo:
S es el smbolo inicial.
S genera una A, seguida de una B y
finalmente una C.
A genera solamente una a.
B genera una b seguida de una B genera
la cadena vaca (ningn carcter).
C genera una c.
Las letras maysculas representan la parte de la
cadena final que an no ha sido sustituida por su
correspondiente lado derecho.
1) ab*baa*
q0
2) xyz(zy)*
q0
Expresiones regulares
b
a
q1
q1
q2
q2
3) 01(10)*
q0
q1
q2
q3
z
q3
q2
y
q3
AFD
q0
q1
q2
q0
q1
q2
q1
q2
q2
AFND
a
q0
estados
q1
q2
estados
q0
q0 q1
q2
q1
q2
q2
Proceso computacional
w = 10101
Formalizado:
d 0
q0 q1
q1 q0
1
q0
q1
w = 10101
Formalizado:
d 0
q0 q1
q1 q0
1
q0
q1
w = 10101
Formalizado:
d 0
q0 q1
q1 q0
1
q0
q1
Estado actual: q0
Letra actual:
w = 10101
Formalizado:
d 0
q0 q1
q1 q0
1
q0
q1
Estado actual: q0
Letra actual: 1
w = 10101
Formalizado:
d 0
q0 q1
q1 q0
1
q0
q1
Estado actual: q0
d(q0, 1) = q0
Letra actual: 1
w = 10101
Formalizado:
d 0
q0 q1
q1 q0
1
q0
q1
Estado actual: q0
d(q0, 1) = q0
Letra actual: 1
w = 10101
Formalizado:
d 0
q0 q1
q1 q0
1
q0
q1
Estado actual: q0
d(q0, 1) = q0
Letra actual: 0
w = 10101
Formalizado:
d 0
q0 q1
q1 q0
1
q0
q1
Estado actual: q0
d(q0, 1) = q0
d(q0, 0) = q1
Letra actual: 0
w = 10101
Formalizado:
d 0
q0 q1
q1 q0
1
q0
q1
Estado actual: q1
d(q0, 1) = q0
d(q0, 0) = q1
Letra actual: 1
w = 10101
Formalizado:
d 0
q0 q1
q1 q0
1
q0
q1
Estado actual: q1
d(q0, 1) = q0
d(q0, 0) = q1
d(q1, 1) = q1
Letra actual: 1
w = 10101
Formalizado:
d 0
q0 q1
q1 q0
1
q0
q1
Estado actual: q1
d(q0, 1) = q0
d(q0, 0) = q1
d(q1, 1) = q1
Letra actual: 0
w = 10101
Formalizado:
d 0
q0 q1
q1 q0
1
q0
q1
Estado actual: q1
d(q0, 1) = q0
d(q0, 0) = q1
d(q1, 1) = q1
d(q1, 0) = q0
Letra actual: 0
w = 10101
Formalizado:
d 0
q0 q1
q1 q0
1
q0
q1
Estado actual: q0
d(q0, 1) = q0
d(q0, 0) = q1
d(q1, 1) = q1
d(q1, 0) = q0
Letra actual: 1
w = 10101
Formalizado:
d 0
q0 q1
q1 q0
1
q0
q1
Estado actual: q0
d(q0, 1) = q0
d(q0, 0) = q1
d(q1, 1) = q1
d(q1, 0) = q0
d(q0, 1) = q0
Letra actual: 1
w = 10101
Formalizado:
d 0
q0 q1
q1 q0
1
q0
q1
Estado actual: q0
d(q0, 1) = q0
d(q0, 0) = q1
d(q1, 1) = q1
d(q1, 0) = q0
d(q0, 1) = q0
Letra actual: l
w = 10101
Formalizado:
d 0
q0 q1
q1 q0
1
q0
q1
Estado actual: q0
d(q0, 1) = q0
d(q0, 0) = q1
d(q1, 1) = q1
d(q1, 0) = q0
d(q1, 1) = q0
Letra actual: l
q0 F?
w = 10101
Formalizado:
d 0
q0 q1
q1 q0
1
q0
q1
Estado actual: q0
d(q0, 1) = q0
d(q0, 0) = q1
d(q1, 1) = q1
d(q1, 0) = q0
d(q1, 1) = q0
Letra actual: l
q0 F?
w = 10101
Formalizado:
d 0
q0 q1
q1 q0
1
q0
q1
Estado actual: q0
d(q0, 1) = q0
d(q0, 0) = q1
d(q1, 1) = q1
d(q1, 0) = q0
d(q1, 1) = q0
Letra actual: l
q0 F?
La palabra
10101 es
aceptada.
ESTADOS INACCESIBLES
Ejemplo:
AUTMATA CONEXO
binario
1
decimal
11
111
101
1001
1011
1101
5
9
11
13
q0
1
1
0
q1
Disear un autmata finito determinstico que acepte todas las palabras sobre
{0,1} que tengan un nmero impar de 1s.
q0
q1
Disear un autmata finito determinstico que acepte todas las palabras sobre
{0,1} que terminan con 01.
q0
q1
0
1
q2
q0
q1
q2
q0
q1
q2
q2
q0
q2
[q0, abab]
-[q0, bab]
-[q1, ab]
-[q0, b]
-[q1, l]
rechazado
a
q0
q1
a
q2
q0
q1
q2
q1
q2
q2
q2
q0
q2
b
q0
b
a,b
q2
q1
a
Ejemplo
q0
S = {a, b}
F = {q0}
y d se define por la tabla
s = q0
d
q0
q1
q2
q1
a,b
q1
q2
q2
q2
q2
q0
q2
Construir un AFD que acepte el ={0,1} donde las cadenas validas son aquellas
donde los 1s son mltiplos de 3.
0
1
q0
q1
q2
q3
Disear un AFD que acepte el = {0,1} donde las cadenas vlidas son aquellas que
terminan en xx.
y
q0
x
y
q1
q2
Disear un AFD que acepte el = {0,1} donde las cadenas vlidas son aquellas que
terminan en 0101.
q0
q1
q2
0
0
q3
q4
0
0
q1
1
1
q3
Ejemplo
Sea el autmata finito A1, donde E={a,b} u {};
Q={q1,q2,q3,q4} y la funcin f viene dada por la
siguiente tabla y el conjunto de estados finales es
f={q3}
f
a
b
q1
q2
q4
q3
q4
q3
q2
q4
q2
q4
q3
q4
f(q1,a) =q2
Entonces se traza la flecha q1 y q2, apuntando a q2 y se
coloca encima de la flecha el smbolo del vocabulario de
entrada a. De igual forma se recorre la tabla de
transiciones para cada estado y entrada completndose
el diagrama de moore.
Ejemplo
Sea ={a, b}, Q = {0, 1, 2}, q0 =0, F = {2}, y viene definida as:
Qi/
0
1
2
a
1
2
2
b
0
0
2
Ejemplo
Hacer el autmata que reconozca este lenguaje:
(a|b)aba*
Ejemplo
Hacer el diagrama de transiciones con esta
definicin del autmata:
Q={0,1,2,3}
={a, b}
q 0 =0
F={0, 1, 2}
Q={q 0 ,q 1 }
={0, 1} F={q 0 }
q 0 =q 0
Ejemplo
Suponiendo ={0, 1}, dibujar los diagramas
de transicin que reconozcan.
Cadenas terminadas en 00
Ejemplo
Disear un AFD para una mquina despachadora de dulces que acepta monedas de $1,
$2, y $10. El valor de los dulces es de $10. La mquina no esta diseada para dar
cambio.
10
10
10
10
q0
q1
2
q2
2
q3
2
q4
2
q5
2
10
q6
2
q7
10
q8
2
q9
2
10
10
q10
Disear un AFD que acepte el = {0,1} donde las cadenas vlidas son
donde los unos aparecen en forma par
0
q0
0
q1
1
1
0
q2
2)
q0
q0
q1
q1
q2
q2
q3
a
q1
q0
3)
b
q2
L= a*ab ( ba* ab )*
L= b|abb*
q3
q4
b
L= a(aa)*bb*a(aa*b)*
0
q0
q1
q2
binario
Decimal
1010
10
101
10100
101000
1010000
20
40
80
q3
Resumen