teoriacomputacion3
TRANSCRIPT
-
Autmatas y Lenguajes Formales
Clase 2: Autmatas Finitos
Dr. Wladimir RodrguezPostgrado en Computacin
-
Dr. Wladimir Rodrguez Teora de la Computacin2
Contenido
Autmata Finito Determinista Autmata Finito No-Determinista Autmata Finito con Transiciones Nulas Expresiones Regulares Gramticas Regulares Autmatas con Salida: Mquinas de Moore y
Mealy
-
Dr. Wladimir Rodrguez Teora de la Computacin3
Autmata Finito Determinista
Un Autmata Finito es una quntupla M = (Q, A, , q0, F) donde
Q es un conjunto finito llamado conjunto de estados A es un alfabeto llamado alfabeto de entrada es una aplicacin llamada funcin de transicin
: Q A Q
q0 es un elemento de Q llamado estado inicial F es un subconjunto de Q, llamado conjunto de estados
finales
-
Dr. Wladimir Rodrguez Teora de la Computacin4
Ejemplo
Sea el autmata M = (Q, A, , q0, F), donde Q = {q0, q1, q2} A = {a, b} La funcin de transicin viene dada por:
(q0, a) = q1, (q0, b) = q2,
(q1, a) = q1, (q1, b) = q2,
(q2, a) = q1, (q2, b) = q0,
F = {q1}
-
Dr. Wladimir Rodrguez Teora de la Computacin5
Diagrama de Transicin Es un grafo en el que: Hay un nodo por cada estado Por cada transicin (q, a) = p hay un arco de q a p con
la etiqueta a.
El estado inicial est indicado con una flecha entrante. Los estados finales estn indicados con una doble circunferencia.
qo
q2
a
b
a
b
b
q1 a
-
Dr. Wladimir Rodrguez Teora de la Computacin6
Clculo Asociado. Traza
qo q1
0
1
1 0
1 0 0
qo q1
1 0 0
qo q1
1 0 0
qo q1
1 0 0
qo q1
-
Dr. Wladimir Rodrguez Teora de la Computacin7
Proceso de Clculo
Autmata M = (Q, A, , q0, F)
Descripcin Instantnea o Configuracin: Un elemento de Q A*: (q, u). Configuracin Inicial para u A*: (q0, u) Relacin paso de clculo entre dos configuraciones
((q, u) (p, v)) ((u = av) y (q, a) = p) De una configuracin slo se puede pasar a lo
mximo a una configuracin en un paso de clculo.
-
Dr. Wladimir Rodrguez Teora de la Computacin8
Proceso de Clculo
Relacin de clculo entre dos configuraciones: ((q, u) * (p, v)) si y slo si existe una sucesin de
configuraciones C0, . . . , Cn tales que
C0 = (q, u), Cn = (p,v) y i n - 1, Ci Ci+1 1
Lenguaje Aceptado por un Autmata Finito
L(M) = {u A* : (q0, u) * (q, ), q F}
Las palabras de L(M) se dicen aceptadas por el
-
Dr. Wladimir Rodrguez Teora de la Computacin9
Ejemplos
qo q1
1
1
0 0
1
2
3
letra
dgito
dgito
letra
-
Dr. Wladimir Rodrguez Teora de la Computacin10
Constantes Reales Gramtica G = (V, T, P, S), donde T = {+, -, E, o, 1, 2, 3, 4, 5, 6, 7, 8, 9, .} V = {,,,,} S = P contiene las siguientes producciones + 0123456789 . . .E
-
Dr. Wladimir Rodrguez Teora de la Computacin11
Autmata Finito
q2
qo
q1
q3
q4
q6
q5
q8
q7
+,-
0,...,9
0,...,9
.
0,...,9
0,...,9
0,...,9
E 0,...,9
0,...,9
+,-
0,...,9
+,-,E
+,-,.
E,+,-,.
T
E,.
E,+,-,.
E,+,-,.
E,.
-
Dr. Wladimir Rodrguez Teora de la Computacin12
Ejercicios
Dibujar autmatas finitos deterministas que reconozcan los siguientes conjuntos de cadenas construidas sobre el alfabeto A = {0, 1}
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
-
Dr. Wladimir Rodrguez Teora de la Computacin13
Autmatas Finitos No Deterministas
Un Autmata Finito no deterministaes es una quntupla M = (Q, A, , q0, F) donde
Q es un conjunto finito llamado conjunto de estados A es un alfabeto llamado alfabeto de entrada es una aplicacin llamada funcin de transicin
: Q A (Q)
q0 es un elemento de Q llamado estado inicial F es un subconjunto de Q, llamado conjunto de estados
finales
-
Dr. Wladimir Rodrguez Teora de la Computacin14
Ejemplo
q0 q1 q2 q3 q4 q6q5
0 1 0 0 1 0
0,1 0,1
r0
r2
r1
a c
b
-
Dr. Wladimir Rodrguez Teora de la Computacin15
Ejemplos
r0
r2
r1
a c
b
r0 r2r1a c
b
r3
b,c
a
a,b,c
a,b,c
-
Dr. Wladimir Rodrguez Teora de la Computacin16
Ejemplos
q2
qo
q1
q3
q4
q6
q5
q7
+,-
0,...,9
0,...,9
.
0,...,9
0,...,9
0,...,9
E 0,...,9
0,...,9
+,-
0,...,9
-
Dr. Wladimir Rodrguez Teora de la Computacin17
Proceso de Clculo
Autmata no determinista M = (Q, A, , q0, F)
Descripcin Instantnea o Configuracin: Un elemento de Q A*: (q, u). Configuracin Inicial para u A*: (q0, u) Relacin paso de clculo entre dos configuraciones
((q, u) (p, v)) ((u = av) y p (q, a)) De una configuracin slo se puede pasar varias
configuraciones distintas en un paso de clculo, e incluso a ninguna
-
Dr. Wladimir Rodrguez Teora de la Computacin18
Proceso de Clculo
Relacin de clculo entre dos configuraciones: ((q, u) * (p, v)) si y slo si existe una sucesin de
configuraciones C0, . . . , Cn tales que
C0 = (q, u), Cn = (p,v) y i n - 1, Ci Ci+1
Lenguaje Aceptado por un AF no-determinista
L(M) = {u A* : q F, (q0, u) * (q, ), }
Las palabras de L(M) se dicen aceptadas por el
-
Dr. Wladimir Rodrguez Teora de la Computacin19
Definiciones
Dado un autmata M = (Q, A, , q0, F), definimos
Si B Q,*(B,a) = (q,a)
qB Si B Q, *(B,) = B *(B,au) = *(*(B,a),u) *(q,u) = *({q},u)
-
Dr. Wladimir Rodrguez Teora de la Computacin20
AFND AFD
Dado un AFND M = (Q, A, , q0, F) se llama autmata determinista asociado o equivalente a M, al autmata M = (Q, A, , q0, F) dado por
Q = (Q) q0 = {q0} (B,a) = *(B,a) = qB (q,a) F = {B (Q)BF }
-
Dr. Wladimir Rodrguez Teora de la Computacin21
AFND AFD
Dado un autmata no determinista se le hace corresponder uno determinista que recorre todos los caminos al mismo tiempo
Un autmata no-determinista y su determinista asociado o equivalente aceptan el mismo lenguaje
-
Dr. Wladimir Rodrguez Teora de la Computacin22
Ejemplo
q1 q2 q3 q4 q5 q6q00 1 0 0 1 0
0,1 0,1
{q0}
-
Dr. Wladimir Rodrguez Teora de la Computacin23
q1 q2 q3 q4 q5 q6q00 1 0 0 1 0
0,1 0,1
{q0} {q0, q1}0
1
Ejemplo
-
Dr. Wladimir Rodrguez Teora de la Computacin24
q1 q2 q3 q4 q5 q6q00 1 0 0 1 0
0,1 0,1
{q0} {q0, q1}0
1 0
Ejemplo
-
Dr. Wladimir Rodrguez Teora de la Computacin25
q1 q2 q3 q4 q5 q6q00 1 0 0 1 0
0,1 0,1
{q0} {q0, q1}0
1 0
{q0, q2}1
Ejemplo
-
Dr. Wladimir Rodrguez Teora de la Computacin26
q1 q2 q3 q4 q5 q6q00 1 0 0 1 0
0,1 0,1
{q0} {q0, q1}0
1 0
{q0, q2}1
{q0, q1, q3}
0
Ejemplo
-
Dr. Wladimir Rodrguez Teora de la Computacin27
q1 q2 q3 q4 q5 q6q00 1 0 0 1 0
0,1 0,1
{q0} {q0, q1}0
1 0
{q0, q2}1
{q0, q1, q3}
0
1
Ejemplo
-
Dr. Wladimir Rodrguez Teora de la Computacin28
q1 q2 q3 q4 q5 q6q00 1 0 0 1 0
0,1 0,1
{q0} {q0, q1}0
1 0
{q0, q2}1
{q0, q1, q3}
0
1
{q0, q1, q4}
0
Ejemplo
-
Dr. Wladimir Rodrguez Teora de la Computacin29
q1 q2 q3 q4 q5 q6q00 1 0 0 1 0
0,1 0,1
{q0} {q0, q1}0
1 0
{q0, q2}1
{q0, q1, q3}
0
1
{q0, q1, q4}
01
Ejemplo
-
Dr. Wladimir Rodrguez Teora de la Computacin30
q1 q2 q3 q4 q5 q6q00 1 0 0 1 0
0,1 0,1
{q0} {q0, q1}0
1 0
{q0, q2}1
{q0, q1, q3}
0
1
{q0, q1, q4}
010
Ejemplo
-
Dr. Wladimir Rodrguez Teora de la Computacin31
q1 q2 q3 q4 q5 q6q00 1 0 0 1 0
0,1 0,1
{q0} {q0, q1}0
1 0
{q0, q2}1
{q0, q1, q3}
0
1
{q0, q1, q4}
010
{q0, q2, q5} 1
Ejemplo
-
Dr. Wladimir Rodrguez Teora de la Computacin32
q1 q2 q3 q4 q5 q6q00 1 0 0 1 0
0,1 0,1
{q0} {q0, q1}0
1 0
{q0, q2}1
{q0, q1, q3}
0
1
{q0, q1, q4}
010
{q0, q2, q5} 1
{q0, q1, q3, q6}
0
Ejemplo
-
Dr. Wladimir Rodrguez Teora de la Computacin33
q1 q2 q3 q4 q5 q6q00 1 0 0 1 0
0,1 0,1
{q0} {q0, q1}0
1 0
{q0, q2}1
{q0, q1, q3}
0
1
{q0, q1, q4}
010
{q0, q2, q5} 1
{q0, q1, q3, q6}
0
{q0, q1, q4, q6} 0
Ejemplo
-
Dr. Wladimir Rodrguez Teora de la Computacin34
q1 q2 q3 q4 q5 q6q00 1 0 0 1 0
0,1 0,1
{q0} {q0, q1}0
1 0
{q0, q2}1
{q0, q1, q3}
0
1
{q0, q1, q4}
010
{q0, q2, q5} 1
{q0, q1, q3, q6}
0
{q0, q1, q4, q6} 0
{q0, q2, q6}
1
Ejemplo
-
Dr. Wladimir Rodrguez Teora de la Computacin35
q1 q2 q3 q4 q5 q6q00 1 0 0 1 0
0,1 0,1
{q0} {q0, q1}0
1 0
{q0, q2}1
{q0, q1, q3}
0
1
{q0, q1, q4}
010
{q0, q2, q5} 1
{q0, q1, q3, q6}
0
{q0, q1, q4, q6} 0
{q0, q2, q6}
1
{q0, q1, q6}0
Ejemplo
-
Dr. Wladimir Rodrguez Teora de la Computacin36
q1 q2 q3 q4 q5 q6q00 1 0 0 1 0
0,1 0,1
{q0} {q0, q1}0
1 0
{q0, q2}1
{q0, q1, q3}
0
1
{q0, q1, q4}
010
{q0, q2, q5} 1
{q0, q1, q3, q6}
0
{q0, q1, q4, q6} 0
{q0, q2, q6}
1
{q0, q1, q6}0
{q0, q2, q5, q6}
1
Ejemplo
-
Dr. Wladimir Rodrguez Teora de la Computacin37
q1 q2 q3 q4 q5 q6q00 1 0 0 1 0
0,1 0,1
{q0} {q0, q1}0
1 0
{q0, q2}1
{q0, q1, q3}
0
1
{q0, q1, q4}
010
{q0, q2, q5} 1
{q0, q1, q3, q6}
0
{q0, q1, q4, q6} 0
{q0, q2, q6}
1
{q0, q1, q6}0
{q0, q2, q5, q6}
1 0
Ejemplo
-
Dr. Wladimir Rodrguez Teora de la Computacin38
q1 q2 q3 q4 q5 q6q00 1 0 0 1 0
0,1 0,1
{q0} {q0, q1}0
1 0
{q0, q2}1
{q0, q1, q3}
0
1
{q0, q1, q4}
010
{q0, q2, q5} 1
{q0, q1, q3, q6}
0
{q0, q1, q4, q6} 0
{q0, q2, q6}
1
{q0, q1, q6}0
{q0, q2, q5, q6}
1 0
{q0, q6}
1
Ejemplo
-
Dr. Wladimir Rodrguez Teora de la Computacin39
q1 q2 q3 q4 q5 q6q00 1 0 0 1 0
0,1 0,1
{q0} {q0, q1}0
1 0
{q0, q2}1
{q0, q1, q3}
0
1
{q0, q1, q4}
010
{q0, q2, q5} 1
{q0, q1, q3, q6}
0
{q0, q1, q4, q6} 0
{q0, q2, q6}
1
{q0, q1, q6}0
{q0, q2, q5, q6}
1 0
{q0, q6}
1
0
Ejemplo
-
Dr. Wladimir Rodrguez Teora de la Computacin40
q1 q2 q3 q4 q5 q6q00 1 0 0 1 0
0,1 0,1
{q0} {q0, q1}0
1 0
{q0, q2}1
{q0, q1, q3}
0
1
{q0, q1, q4}
010
{q0, q2, q5} 1
{q0, q1, q3, q6}
0
{q0, q1, q4, q6} 0
{q0, q2, q6}
1
{q0, q1, q6}0
{q0, q2, q5, q6}
1 0
{q0, q6}
1
0
1
Ejemplo
-
Dr. Wladimir Rodrguez Teora de la Computacin41
q1 q2 q3 q4 q5 q6q00 1 0 0 1 0
0,1 0,1
{q0} {q0, q1}0
1 0
{q0, q2}1
{q0, q1, q3}
0
1
{q0, q1, q4}
010
{q0, q2, q5} 1
{q0, q1, q3, q6}
0
{q0, q1, q4, q6} 0
{q0, q2, q6}
1
{q0, q1, q6}0
{q0, q2, q5, q6}
1 0
{q0, q6}
1
0
1
0
Ejemplo
-
Dr. Wladimir Rodrguez Teora de la Computacin42
q1 q2 q3 q4 q5 q6q00 1 0 0 1 0
0,1 0,1
{q0} {q0, q1}0
1 0
{q0, q2}1
{q0, q1, q3}
0
1
{q0, q1, q4}
010
{q0, q2, q5} 1
{q0, q1, q3, q6}
0
{q0, q1, q4, q6} 0
{q0, q2, q6}
1
{q0, q1, q6}0
{q0, q2, q5, q6}
1 0
{q0, q6}
1
0
1
0
1
Ejemplo
-
Dr. Wladimir Rodrguez Teora de la Computacin43
q1 q2 q3 q4 q5 q6q00 1 0 0 1 0
0,1 0,1
{q0} {q0, q1}0
1 0
{q0, q2}1
{q0, q1, q3}
0
1
{q0, q1, q4}
010
{q0, q2, q5} 1
{q0, q1, q3, q6}
0
{q0, q1, q4, q6} 0
{q0, q2, q6}
1
{q0, q1, q6}0
{q0, q2, q5, q6}
1 0
{q0, q6}
1
0
1
0
1
0
Ejemplo
-
Dr. Wladimir Rodrguez Teora de la Computacin44
q1 q2 q3 q4 q5 q6q00 1 0 0 1 0
0,1 0,1
{q0} {q0, q1}0
1 0
{q0, q2}1
{q0, q1, q3}
0
1
{q0, q1, q4}
010
{q0, q2, q5} 1
{q0, q1, q3, q6}
0
{q0, q1, q4, q6} 0
{q0, q2, q6}
1
{q0, q1, q6}0
{q0, q2, q5, q6}
1 0
{q0, q6}
1
0
1
0
1
01
Ejemplo