Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Aut
omatas finitos
2.1.
Aut
omatas finitos deterministas (AFD)
Los aut
omatas finitos son maquinas abstractas que procesan cadenas, las cuales
son aceptadas o rechazadas:
El automata act
ua leyendo los smbolos escritos sobre una cinta semi-infinita,
dividida en celdas o casillas, sobre la cual se escribe una cadena de entrada u, un
smbolo por casilla. El automata posee una unidad de control que inicialmente
escanea o lee la casilla del extremo izquierdo de la cinta.
19
20
Teora de la Computacion
2003-II
Ejemplo
= {a, b}.
Q = {q0 , q1 , q2 }.
q0 : estado inicial.
F = {q0 , q2 }, estados de aceptacion.
Funcion de transicion :
q0 q 0 q 1
q1 q 1 q 2
q2 q 1 q 1
(q0 , a) = q0
(q0 , b) = q1
(q1 , a) = q1
(q1 , b) = q2
(q2 , a) = q1
(q2 , b) = q1 .
Captulo 2
Automatas finitos
21
22
Teora de la Computacion
2.2.
2003-II
Un automata finito se puede representar por medio de un grafo dirigido y etiquetado. Recuerdese que un grafo es un conjunto de vertices o nodos unidos por
arcos o conectores; si los arcos tienen tanto direccion como etiquetas, el grafo se
denomina grafo dirigido y etiquetado o digrafo etiquetado.
El grafo de un automata se obtiene siguiendo las siguientes convenciones:
Los vertices o nodos son los estados del automata.
El estado q se representa por:
El estado inicial q0 se representa por:
= {a, b}.
Q = {q0 , q1 , q2 }.
q0 : estado inicial.
F = {q0 , q2 }, estados de aceptacion.
Funcion de transicion :
q0 q0 q1
q1 q1 q2
q2 q1 q1
(q0 , a) = q0
(q0 , b) = q1
(q1 , a) = q1
(q1 , b) = q2
(q2 , a) = q1
(q2 , b) = q1
Captulo 2
2.3.
Automatas finitos
23
Dise
no de aut
omatas
Para automatas deterministas se adopta la siguiente convencion adicional con respecto a los diagramas de estados: se supone los arcos no dibujadas explcitamente
conducen a un estado limbo de no-aceptacion. Es decir, en el diagrama de estados se indican u
nicamente los arcos que conduzcan a trayectorias de aceptacion.
Esto permite simplificar considerablemente los diagramas.
En este captulo abordaremos dos tipos de problemas:
1.
2.
Version simplificada:
Version simplificada:
24
Teora de la Computacion
2003-II
lenguajes:
Ejercicios
Dise
nar automatas finitos deterministas que acepten los siguientes
Captulo 2
Automatas finitos
25
Ejercicios
2.
3.
26
Teora de la Computacion
2003-II
4.
2.4.
Aut
omatas finitos no deterministas (AFN)
Los aut
omatas finitos no-deterministas (AFN) se asemejan a los AFD, excepto por el hecho de que para cada estado q Q y cada a , la transicion
(q, a) puede consistir en mas de un estado o puede no estar definida. Concretamente, un AFN esta definido por M = (, Q, q0 , F, ) donde:
1. es el alfabeto de cinta.
2. Q es un conjunto (finito) de estados.
3. q0 Q es el estado inicial.
4. 6= F Q es el conjunto de estados finales o estados de aceptacion.
5.
: Q (Q)
(q, a) 7 (q, a) = {qi1 , qi2 , . . . , qik }
donde
Captulo 2
27
Automatas finitos
Ejemplo
q0
{q0 , q1 , q3 }
q1
{q1 }
{q2 }
q2
{q1 , q2 }
q3
{q3 }
28
Teora de la Computacion
2003-II
Un AFN que acepta el mismo lenguaje y que es, tal vez, mas facil de concebir, es
el siguiente:
Captulo 2
Automatas finitos
29
+
Ejemplo Considerese el lenguaje L = ab a sobre el alfabeto = {a, b}. El
siguiente AFN M satisface L(M ) = L.
Otro AFN que acepta el mismo lenguaje y que tiene solo tres estados es el siguiente:
jes:
Ejercicios
Dise
nar automatas AFD o AFN que acepten los siguientes lengua-
30
Teora de la Computacion
2003-II
2.5.
En esta seccion se mostrara que los modelos AFD y AFN son computacionalmente
equivalentes. En primer lugar, es facil ver que un AFD M = (, Q, q0 , F, ) puede
ser considerado como un AFN M 0 = (, Q, q0 , F, ) definiendo (q, a) = {(q, a)}
para cada q Q y cada a . Para la afirmacion recproca tenemos el siguiente
teorema.
2.5.1 Teorema. Dado un AFN M = (, Q, q0 , F, ) se puede construir un AFD
M 0 equivalente a M , es decir, tal que L(M ) = L(M 0 ).
Este teorema, cuya demostracion se dara en detalle mas adelante, establece
que el no-determinismo se puede eliminar. Dicho de otra manera, los automatas
deterministas y los no deterministas aceptan los mismos lenguajes. La idea de la
demostracion consiste en considerar cada conjunto de estados {p1 , . . . , pj }, que
aparezca en la tabla de la funcion del automata no-determinista, como un
u
nico estado del nuevo automata determinista. La tabla de se completa hasta
que no aparezcan nuevas combinaciones de estados. Los estados de aceptacion
del nuevo automata son los conjuntos de estados en los que aparece por lo menos
un estado de aceptacion del automata original. El siguiente ejemplo ilustra el
procedimiento.
Captulo 2
31
Automatas finitos
q0
{q1 , q2 }
q1
{q1 }
q2
{q2 }
q0
{q1 , q2 }
q1
{q1 }
q2
{q2 }
{q1 , q2 }
{q2 }
{q1 }
Los estados de aceptacion son aquellos en los que aparezcan q1 o q2 , que son los
estados de aceptacion del automata original.
32
Teora de la Computacion
2003-II
Para mayor simplicidad, podemos cambiar los nombres de los estados del nuevo
automata:
q0
{q1 }
q1
{q0 , q2 }
q2
{q0 }
{q0 , q2 }
{q0 , q1 }
{q0 , q1 }
{q1 }
{q0 , q2 }
Captulo 2
Automatas finitos
33
Ejercicios
1.
Dise
nar AFD equivalentes a los siguientes AFN:
34
Teora de la Computacion
2003-II
2.
(q, ) = q, q Q,
b a) = (q, a), q Q, a ,
(q,
b
b w), a), q Q, a , w .
(q, wa) = ((q,
b 0 , w) es el estado
Seg
un esta definicion, para una cadena de entrada w , (q
en el que el automata termina el procesamiento de w. Por lo tanto, podemos
describir el lenguaje aceptado por M de la siguiente forma:
b 0 , w) F }.
L(M ) = {w : (q
b w) se notara simNotaci
on. Sin peligro de ambig
uedad, la funcion extendida (q,
plemente (q, w).
2.5.3 Definici
on. Sea M = (, Q, q0 , F, ) un AFN. La funcion de transicion
: Q (Q) se extiende inicialmente a conjuntos de estados. Para a
y S F se define
[
(S, a) :=
(q, a).
qS
b ) = {q}, q Q,
(q,
b
(q, a) = (q, a), q Q, a ,
[
b wa) = ((q,
b w), a) =
(p, a), q Q, a , w .
(q,
b
p(q,w)
Captulo 2
Automatas finitos
35
b 0 , w) es el conjunto
Seg
un esta definicion, para una cadena de entrada w , (q
de los posibles estados en los que terminan los computos completos de w. Si el
b 0 , w) = .
computo se aborta durante el procesamiento de w, se tendra (q
b el lenguaje aceptado por M se puede describir
Usando la funcion extendida ,
de la siguiente forma:
b 0 , w) contiene un estado de aceptacion}.
L(M ) = {w : (q
b w) se notara simNotaci
on. Sin peligro de ambig
uedad, la funcion extendida (q,
plemente (q, w).
Demostracion del Teorema 2.5.1:
Dado el AFN M = (, Q, q0 , F, ), construimos el AFD M 0 as:
M 0 = (, (Q), {q0 }, F 0 , )
donde
: (Q) (Q)
(S, a) 7 (S, a) := (S, a).
F 0 = {S (Q) : S contiene al menos un estado de aceptacion}.
(definicion de la extension de )
(hipotesis de induccion)
(definicion de )
(definicion de la extension de )
(definicion de la extension de )
36
2.6.
Teora de la Computacion
2003-II
Aut
omatas con transiciones (AFN-)
Un aut
omata finito con transiciones (AFN-) es un automata no-determinista
M = (, Q, q0 , F, ) en el que la funcion de transicion esta definida como:
: Q ( {}) (Q).
La transicion (q, ) = {pi1 , . . . , pin }, llamada transici
on o transici
on nula,
tiene el siguiente significado computacional: estando en el estado q, el automata
puede cambiar a uno cualquiera de los estados pi1 , . . . , pin , independientemente
del smbolo ledo y sin mover la unidad de control. Dicho de otra manera, las
transiciones permiten al automata cambiar internamente de estado sin procesar
o consumir el smbolo ledo sobre la cinta.
En el diagrama de estados, las transiciones dan lugar a arcos con etiquetas
. Una cadena de entrada w es aceptada por un AFN- si existe por lo menos
una trayectoria cuyas etiquetas son exactamente los smbolos de w, intercalados
con cero, uno o mas s.
El modelo AFN-, al igual que el AFN, permite m
ultiples computos para una
misma cadena de entrada, as como computos abortados. Pero, a diferencia de
los AFD y los AFN, en los AFN- pueden existir computos infinitos, es decir
computos que nunca terminan.
Ejemplo
M:
Captulo 2
Automatas finitos
37
Ejemplo = {a, b}. L = lenguaje de todas las cadenas sobre que tienen un
n
umero par de aes o un n
umero par de bes.
AFD que acepta el lenguaje de las cadenas con un n
umero par de aes:
38
Teora de la Computacion
2003-II
Ejercicios
Dise
nar AFN- que acepten los siguientes lenguajes:
Captulo 2
2.7.
Automatas finitos
39
En esta seccion se mostrara que el modelo AFN- es computacionalmente equivalente al modelo AFN. O dicho mas graficamente, las transiciones se pueden
eliminar, a
nadiendo transiciones que las simulen, sin alterar el lenguaje aceptado.
En primer lugar, un AFN M = (, Q, q0 , F, ) puede ser considerado como
un AFN- en el que, simplemente, hay cero transiciones . Para la afirmacion
recproca tenemos el siguiente teorema:
2.7.1 Teorema. Dado un AFN- M = (, Q, q0 , F, ), se puede construir un
AFN M 0 equivalente a M , es decir, tal que L(M ) = L(M 0 ).
Bosquejo de la demostracion. Para construir M 0 a partir de M se requiere la
nocion de -clausura de un estado. Para un estado q Q, la -clausura de q,
notada [q], es el conjunto de estados de M a los que se puede llegar desde q por
0, 1 o mas transiciones . Notese que, en general, [q] 6= (q, ). Por definicion,
q [q]. La -clausura de un conjunto de estados {q1 , . . . , qk } se define por:
[{q1 , . . . , qk }] := [q1 ] [qk ].
Ademas, [] := . Sea M 0 = (, Q, q0 , F 0 , 0 ) donde
0 : Q
(q, a) 7
(Q)
0 (q, a) := ([q], a) .
40
Teora de la Computacion
2003-II
=
=
=
=
=
=
=
=
=
Ejercicios
1.
Captulo 2
Automatas finitos
41
2.
2.8.
42
Teora de la Computacion
2003-II
Expresion regular R
Procedimiento
algortmico
M
AFN-
Demostracion: Puesto que la definicion de las expresiones regulares se hace recursivamente, la demostracion se lleva a cabo razonando por induccion sobre R.
Para las expresiones regulares basicas, podemos construir facilmente automatas
que acepten los lenguajes representados. As, el automata
Captulo 2
Automatas finitos
43
44
Teora de la Computacion
2003-II
Automata que acepta R . Los estados finales del nuevo automata son los
estados finales de M1 junto con el estado inicial.
Esto concluye la demostracion de la parte I del teorema de Kleene. En la siguiente seccion se presentan ejemplos concretos del procedimiento utilizado en la
demostracion.
2.9.
Captulo 2
Automatas finitos
45
46
Teora de la Computacion
2003-II
Captulo 2
Automatas finitos
47
Ejercicios
Dise
nar automatas AFN- que acepte los siguientes lenguajes so-
2.10.
Lema de Arden
48
Teora de la Computacion
2003-II
[
n0
An B =
An B X.
n0
nica X = a b ab.
Ejemplo La ecuacion X = aX b ab tiene solucion u
solucion u
nica X = (ab a) (a b b a).
Captulo 2
49
Automatas finitos
Ejercicios
1. X = aX bX.
2. X = aX b ab bX a .
2.11.
on
Ejercicio Demostrar de si A, entonces Y es una solucion de la ecuaci
X = AX B si y solo si Y = A (B D) para alg
un D .
si qi
6 F,
{aAj : qj (qi , a)},
a
(2.1)
Ai = S
A = C A C A C A
()
n
n1
n2
nn
50
Teora de la Computacion
2003-II
comenzando con la u
ltima ecuacion, se escribe An en terminos de los demas
Ai , para lo cual se usa el lema de Arden si es necesario. Este valor de An se
reemplaza en las demas ecuaciones y el sistema se reduce a n ecuaciones con n
incognitas. Similarmente, An1 se escribe en terminos de los demas Ai , usando el
lema de Arden si es necesario, y tal valor se reemplaza en las ecuaciones restantes.
Prosiguiendo de esta manera, el sistema original se reduce a una sola ecuacion
cuya incognita es precisamente A0 . Esta ecuacion se soluciona recurriendo una
vez mas al lema de Arden. Puesto que los coeficientes Cij diferentes de son
smbolos de , se obtiene una expresion regular R tal que L(M ) = A0 = R.
2.12.
A2 = (a b)A2 .
A2 = (a b) = (a b) .
Captulo 2
(6)
Automatas finitos
51
A1 = a(a b) .
A0 = (a b)A0 a2 (a b) .
(1) A0 = aA1
(2) A1 = aA2
(3) A2 = bA2 bA3
(5) A = aA aA
4
2
3
Reemplazando (5) en (4):
(6)
52
(10)
Teora de la Computacion
A2 =
2003-II
b b(a ba) ba b(a ba) b .
(2) A = aA bA
1
0
3
A2 = a2 A2 abA1 bA0 .
A1 = aA0 baA2 b2 A1 .
Captulo 2
(7)
Automatas finitos
53
2
2
= ba(a ) ab b A1 aA0 ba(a ) bA0 .
Aplicando el Lema de Arden en (8):
(10)
A1 = ba(a2 ) ab b2
= ba(a2 ) ab b2 aA0 ba(a2 )ab b2 ba(a2 ) bA0 .
Haciendo R = ba(a2 ) ab b2 , (10) se puede escribir como
(11)
A0 = b(a2 ) b
aA1 b(a2 ) abA1
= b(a2 ) b aA1 b(a2 ) b b(a2 ) abA1 b(a2 ) b .
Haciendo S = b(a2 ) b , (12) se puede escribir como:
(13)
54
Teora de la Computacion
2003-II
Ejercicios
Ejercicios
1.
2.
Captulo 2
3.
Automatas finitos
55