Teoria de La Computacion (Automatas)
Teoria de La Computacion (Automatas)
Teoria de La Computacion (Automatas)
Lenguajes formales
1.1.
Alfabetos y palabras
Ejemplo Sea = {a, b} el alfabeto que consta de los dos smbolos a y b. Las
siguientes son palabras sobre :
aba
ababaaa
aaaab
Observese que aba 6= aab. El orden de los smbolos en una palabra es significativo
ya que las palabras se definen como sucesiones, es decir, conjuntos secuencialmente ordenados.
El conjunto de todas las palabras sobre un alfabeto , incluyendo la palabra
vaca, se denota por .
Ejemplo
= {, a, b, c, aa, ab, ac, ba, bb, bc, ca, cb, cc, aaa, aab, abc, baa, . . .}.
Observaciones:
1. Si bien un alfabeto es un conjunto finito, es siempre un conjunto
1
2003-I.
{}
{}
3. La teora de lenguajes se hace con referencia a un alfabeto fijo (pero
arbitrario).
Notaci
on usada en la teora de lenguajes
a, b, c, d, e,. . .
u, v, w, x, y, z,. . .
A,B,C,. . . ,L,M,N,. . .
1.2.
denota un alfabeto.
denota el conjunto de todas las palabras que se
pueden formar con los smbolos de .
denotan smbolos del alfabeto .
denotan palabras, es decir, sucesiones finitas de
smbolos de .
denota la palabra vaca, es decir, la u
nica palabra
Concatenaci
on de palabras
Captulo 1
Lenguajes formales
2. u (va) = (u v)a.
Propiedad. La concatenacion de palabras es una operacion asociativa. Es decir,
si u, v, w , entonces
(uv)w = u(vw).
Demostracion: Se puede hacer escribiendo explcitamente las palabras u, v, w y
usando la definicion descriptiva de concatenacion. Tambien se puede dar una
demostracion inductiva usando la definicion recursiva de concatenacion (ejercicio
opcional).
1.3.
Ejercicio
1.4.
Ejemplo
Ejemplo
|aba| = 3, |baaa| = 4.
Si w , n, m N, demostrar que
|wn+m | = |wn | + |wm |
Solucion:
Caso n, m 1. |wn+m | = | ww
w} | = (n + m)|w|. Por otro lado,
| {z
n+m veces
|wn | + |wm | = | ww
w} | + | ww
w} | = n|w| + m|w|.
| {z
| {z
n veces
m veces
2003-I.
1.5.
Ejercicio
Ejercicio
para u, .
1.6.
Captulo 1
Lenguajes formales
Ejemplo
Prefijos de u :
b
bc
bcb
bcba
bcbaa
bcbaad
bcbaadb
1.7.
Sufijos de u :
b
db
adb
aadb
baadb
cbaadb
bcbaadb
Lenguajes
(Lenguaje vaco)
(Lenguaje de todas las palabras sobre )
Ejemplos
1.8.
2003-I.
Puesto que los lenguajes sobre son subconjuntos de , las operaciones usuales
entre conjuntos son tambien operaciones validas entre lenguajes. As, si A y B
son lenguajes sobre (es decir A, B ), entonces los siguientes tambien son
lenguajes sobre :
AB
AB
AB
A = A
Union
Interseccion
Diferencia
Complemento
1.9.
Concatenaci
on de lenguajes
La concatenaci
on de dos lenguajes A y B sobre , notada A B o simplemente
AB se define como
AB = {uv : u A, v B}
En general AB 6= BA.
Ejemplo
Ejemplo
, es decir A, B, C . Entonces
Captulo 1
Lenguajes formales
1. A = A = .
2. A {} = {} A = A.
3. Propiedad Asociativa.
A (B C) = (A B) C.
4. Distributividad de la concatenacion con respecto a la union.
A (B C) = A B A C.
(B C) A = B A C A.
5. Propiedad distributiva generalizada. Si {Bi }iI es una familia cualquiera de
lenguajes sobre , entonces
S
S
A Bi = (A Bi )
iI
iI
Bi A =
iI
(Bi A).
iI
Demostracion:
1. A = {uv : u A, v } = .
2. A {} = {uv : u A, v {}} = {u : u A} = A.
3. Se sigue de la asociatividad de la concatenacion de palabras.
4. Caso particular de la propiedad general, demostrada a continuacion.
S
S
5. Demostracion de la igualdad A Bi = (A Bi ):
iI
S
x = u v, con u A & v iI Bi
x = u v, con u A & v Bj , para alg
un j I
xA
un j I
S Bj , para alg
x iI (A Bi ).
S
S
La igualdad
Bi A = (Bi A) se demuestra de forma similar.
xA
iI
iI
iI
Bi
iI
2003-I.
Observaciones:
La propiedad asociativa permite escribir concatenaciones de tres o mas lenguajes sin necesidad de usar parentesis.
En general, no se cumple que A (B C) = A B A C. Es decir, la concatenacion no es distributiva con respecto a la interseccion. Contraejemplo:
A = {a, }, B = {}, C = {a}.
Se tiene: A (B C) = {a, } = . Por otro lado,
A B A C = {a, } {} {a, } {a} = {a, } {a2 , a} = {a}.
1.10.
Potencias de un lenguaje
1.11.
Ai = A0 A1 A2 An
(Descripcion 1)
i0
(Descripcion 2)
Captulo 1
Lenguajes formales
Ai = A1 A2 A n
i1
A A = A (A0 A1 A2 )
= A 1 A 2 A3
= A+ .
Similarmente se demuestra que A A = A+ .
10
2003-I.
0
1
2
= A A A
= {} A A A
= A .
7.
A+
1
2
3
= A (A (A
= A A A
= A .
0
1
2
= A+ A+ A +
= {} A+ A+ A+
= A (conjuntos contenidos en A+ )
= A
+
1
2
3
= A+ A+ A + ,
= A+ (conjuntos contenidos en A+ )
= A+
A+
8.
+
Contraejemplo de A+ A+ = A+ .
Sea = {a, b}, A = {a}. Se tiene
A+ = A1 A2 = {a} {aa} {aaa} = {an : n 1}
Por otro lado,
A+ A+ = {a, a2 , a3 , . . . } {a, a2 , a3 , . . . } = {a2 , a3 , a4 , . . . } = {an : n 2}.
Captulo 1
Lenguajes formales
Observaci
on:
11
Seg
un las definiciones dadas, tiene dos significados:
Ejercicio
(1.1)
1.12.
Inverso de un lenguaje
4. (A1 )
= A.
5. (A )1 = (A1 ) .
1
6. (A+ )
= (A1 ) .
Demostracion:
1.
x (A B)1
x = u1 , donde u A B.
x = u1 , donde u = vw, v A, w B.
x = (vw)1 , donde v A, w B.
x = w1 v 1 , donde v A, w B.
x B 1 A1
12
2.
3.
4.
Ejercicio
Ejercicio
Ejercicio
2003-I.
5.
x (A )1
6.
Ejercicio
x = u1 , donde u A .
x = (u1 u2 un )1 , donde los ui A, n 0.
1
x = un1 u1
2 u1 , donde los ui A, n 0.
x (A1 ) .
1.13.
Lenguajes regulares
Los lenguajes regulares sobre un alfabeto dado son todos los lenguajes que
se pueden formar a partir de los lenguajes basicos , {}, {a}, a , por medio
de las operaciones de union, concatenacion y estrella de Kleene.
Podemos dar una definicion recursiva de los lenguajes regulares. Sea un alfabeto.
1. , {} y {a}, para cada a , son lenguajes regulares sobre . Estos son
los denominados lenguajes regulares basicos.
2. Si A y B son lenguajes regulares sobre , tambien lo son
AB
AB
A
(union)
(concatenacion)
(estrella de Kleene)
Ejemplos
Captulo 1
Lenguajes formales
13
1.14.
Expresiones regulares
Las expresiones regulares representan lenguajes regulares y su proposito es simplificar la escritura de los lenguajes regulares.
La siguiente es la definicion recursiva de las expresiones regulares sobre un
alfabeto dado.
1. Expresiones regulares basicas:
es una expresion regular que representa al lenguaje .
es una expresion regular que representa al lenguaje {}.
a es una expresion regular que representa al lenguaje {a}, a .
2. Si R y S son expresiones regulares sobre , tambien lo son:
RS
RS
R
RS representa la concatenacion de los lenguajes representados por R y S;
RS representa su union, y R representa la clausura de Kleene del lenguaje
representado por R.
Ejemplo
14
Ejemplo
2003-I.
Ejemplos
(a b )
Ejemplos
Captulo 1
Lenguajes formales
15
Ejercicio
16
2003-I.
8. (Opcional, Difcil!) = {a, b}. Lenguaje de todas las palabras que tienen
un n
umero par de as y un n
umero impar de bs.
Observaci
on:
No todos los lenguajes sobre un alfabeto dado son regulares. Mas adelante se
mostrara que el lenguaje
L = {, ab, aabb, aaabbb, . . . } = {an bn : n 0}
sobre = {a, b} no se puede representar por medio de una expresion regular, y
por lo tanto, no es un lenguaje regular.
Captulo 2
Aut
omatas finitos
2.1.
Aut
omatas finitos deterministas
Los aut
omatas finitos son maquinas abstractas que procesan palabras, las cuales son aceptadas o rechazadas.
El automata act
ua leyendo los smbolos escritos sobre una cinta semi-infinita,
dividida en casillas, sobre la cual se escribe una palabra de entrada u, un smbolo por casilla. El automata posee una cabeza lectora o control finito, que
inicialmente escanea o lee la casilla del extremo izquierdo de la cinta.
Ejemplo
= {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 q 1
(q0 , a) = q0
(q0 , b) = q1
(q1 , a) = q1
(q1 , b) = q2
(q2 , a) = q1
(q2 , b) = q1
2.2.
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
aristas o conectores; si las aristas 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:
Un estado final q se representa por:
La transicion = (q, a) = p se representa en la forma:
q0 q 0 q1
q1 q 1 q2
q2 q 1 q1
(q0 , a) = q0
(q0 , b) = q1
(q1 , a) = q1
(q1 , b) = q2
(q2 , a) = q1
(q2 , b) = q1
2.3.
Dise
no de aut
omatas
Version simplificada:
Version simplificada:
lenguajes:
Ejercicios
Dise
nar automatas finitos deterministas que acepten los siguientes
2.4.
Aut
omatas finitos no deterministas
: Q (Q)
(q, a) 7 (q, a) = {qi1 , qi2 , . . . , qik }
donde
q0
{q0 , q1 , q3 }
q1
{q1 }
{q2 }
q2
{q1 , q2 }
q3
{q3 }
Un AFN que acepta el mismo lenguaje y que es, tal vez, mas facil de concebir, es
el siguiente:
+
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:
Ejercicios
Dise
nar AFDs o AFNs que acepten los siguientes lenguajes:
4. = {a, b, c}, L = a b c .
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 } del
automata no-determinista como un u
nico estado del nuevo automata determinista. El siguiente ejemplo ilustra el procedimiento.
q0
{q1 , q2 }
q1
{q1 }
q2
{q2 }
q0
{q1 , q2 }
q1
{q1 }
q2
{q2 }
{q1 , q2 }
{q2 }
{q1 }
Para mayor simplicidad, podemos cambiar los nombres de los estados de este
automata:
en la secci
on 2.4.
Ejercicios
Dise
nar AFDs equivalentes a los ejemplos de AFNs construidos
b ) = q, q Q,
(q,
b a) = (q, a), q Q, a ,
(q,
b wa) = ((q,
b w), a), q Q, a , w .
(q,
b 0 , w) es el estado
Seg
un esta definicion, para una palabra 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
q Q, a , w .
b
p(q,w)
b 0 , w) es el conjunto
Seg
un esta definicion, para una palabra 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
Podemos describir el lenguaje aceptado por M de la siguiente forma:
b 0 , w) F 6= }.
L(M ) = {w : (q
b w) se notara simNotaci
on. Sin peligro de ambig
uedad, la funcion extendida (q,
plemente (q, w).
A continuacion se hara la demostracion del teorema 2.5.1
Demostracion: Dado el AFN M = (, Q, q0 , F, ), construimos el AFD M 0 as:
M 0 = (, (Q), {q0 }, F, )
donde
: (Q) (Q)
(S, a) 7 (S, a) := (S, a).
F 0 = {S (Q) : S F 6= }.
(({q0 }, w), a)
(({q0 }, w), a)
(({q0 }, w), a)
({q0 }, wa)
(q0 , wa)
(definicion de la extension de )
(hipotesis de induccion)
(definicion de )
(definicion de la extension de )
(definicion de la extension de )
2.6.
Aut
omatas con transiciones
Un aut
omata finito con transiciones (AFN-) es un AFN M
M = (, Q, q0 , F, )
en el que la funcion de transicion esta definida como
: Q ( {}) (Q).
La transicion (q, ) = {pi1 , . . . , pin }, llamada transicion , 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 cabeza lectora. Dicho de otra manera, las transiciones permiten al
automata cambiar internamente de estado sin consumir el smbolo ledo sobre
la cinta.
En el diagrama de estados, las transiciones dan lugar a aristas con etiquetas .
Una palabra 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 palabra 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 :
Ejemplo = {a, b, c}. L =lenguaje de todas las palabras sobre que tienen
un n
umero par de as o un n
umero par de bs.
AFD que acepta el lenguaje de las palabras con un n
umero par de as:
Ejercicios
Dise
nar AFN- que acepten los siguientes lenguajes:
2.7.
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 )
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 ] [qn ].
Ademas, [] := . El AFN M 0 se define como
M 0 = (, Q, q0 , F 0 , 0 )
donde
0 : Q
(q, a) 7
(Q)
0 (q, a) := ([q], a) .
y
F 0 = {q Q : [q] F 6= }.
Es decir, los estados finales de M 0 incluyen los estados finales de M y aquellos
estados desde los cuales se puede llegar a un estado final por medio de una o mas
transiciones .
Como se puede apreciar, la construccion de M 0 a partir de M es puramente
algortmica.
=
=
=
=
=
=
=
=
=
2.
3.
2.8.
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.
El automata
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.
Ejercicios
Dise
nar automatas AFN- que acepte los siguientes lenguajes so-
2.10.
Lema de Arden
[
n0
An B =
An B X.
n0
nica X = a b ab.
Ejemplo La ecuacion X = aX b ab tiene solucion u
X = (ab a) (a b b a).
siguientes ecuaciones.
Ejercicios
1. X = aX bX.
2. X = aX b ab bX a .
3. Demostrar de si A, entonces Y es una solucion de la ecuacion
X = AX B si y solo si Y = A (B D) para alg
un D .
2.11.
si qi 6 F,
{aAj : qj (qi , a)},
a
Ai = S
(2.1)
.
.
A = C A C A C A ()
n
n1 0
n2 1
nn n
donde cada coeficiente Cij o es o es un smbolo de . El termino se a
nade a
una ecuacion solamente si el estado correspondiente es un estado de aceptacion.
Utilizando sucesivas veces el lema de Arden, se puede mostrar que este sistema
de ecuaciones siempre se puede solucionar y su solucion es u
nica. En efecto,
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)
(5) en (2):
(6)
A1 = a(a b)
(6) en (1):
(7)
A0 = (a b)A0 a2 (a b)
A0 = (a b) a2 (a b)
(1) A0 = aA1
(2) A1 = aA2
(3) A2 = bA2 bA3
A3 = (a ba) (baA2 b)
= (a ba) baA2 (a ba) b
(7) en (3):
(8)
(1) A0
(2) A
1
(3) A2
(4) A3
sistema de ecuaciones:
= aA1 bA2
= aA0 bA3
= aA3 bA0
= aA2 bA1
(4) en (3):
(5)
A2 = a2 A2 abA1 bA0
(4) en (2):
(6)
A1 = aA0 baA2 b2 A1
(5) A = a2 A abA bA
2
2
1
0
(7) en (6):
(8)
(7) en (1):
(9)
2
2
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)
(13)
b(a2 ) b
aA1 b(a2 ) abA1
(12)
= b(a2 ) b aA1 b(a2 ) b b(a2 ) abA1 b(a2 ) b
Haciendo S = b(a2 ) b , (12) se puede escribir como:
A0 =
Ejercicios
Ejercicios
respectivo.
1. AFN:
2. AFN:
3. AFN:
Captulo 3
Otras propiedades de los
lenguajes regulares
3.1.
Lema de bombeo
Notese que tanto u como x pueden ser la palabra vaca , pero v 6= . Ademas,
la palabra v se puede bombear, en el sentido de que uv i x es aceptada por M
para todo i 0. En el diagrama de estados, se puede visualizar esta propiedad
de bombeo de v:
Uso del lema de bombeo. El lema de bombeo se puede usar para concluir
que un cierto lenguaje dado L no es regular, recurriendo a un razonamiento
por contradiccion (o reduccion al absurdo). El razonamiento empleado tiene la
siguiente forma:
1. Si L fuera regular, existira una constante de bombeo n para L.
2. Se escoge una palabra adecuada w L y se aplica la propiedad (B) del
lema de bombeo, descomponiendo w como
w = uvx,
v 6= ,
|uv| n.
Ejercicios
3.3.
Propiedades de clausura
El siguiente teorema establece que la coleccion R ( ) de los lenguajes regulares sobre un alfabeto es cerrada bajo todas las operaciones booleanas.
3.3.1 Teorema. Si L, L1 y L2 son lenguajes regulares sobre un alfabeto ,
tambien lo son:
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
L1 L 2
L1 L2
L
L+
L = \ L
L1 L 2
L1 \ L2
L1 L 2
(union)
(concatenacion)
(estrella de Kleene)
(clausura positiva)
(complemento)
(interseccion)
(diferencia)
(diferencia simetrica)
Demostracion:
(1), (2) y (3) se siguen de la definicion de los lenguajes regulares.
(4) Por (2), (3) y L+ = L L.
(5) Por el Teorema de Kleene y por los teoremas de equivalencia de los modelos
AFD, AFN y AFN-, existe un AFD M = (, Q, q0 , F, ) tal que L(M ) = L. Para
L1 L 2
L1 L2
L
L+
(5)
(6)
(7)
(8)
L = \ L
L1 L2
L 1 \ L2
L 1 L2
: (Q1 Q2 ) Q1 Q2
((qi , qj ), a) = (1 (qi , a), 2 (qj , a))
((q1 , q2 ), w) F1 F2
(1 (q1 , w), 2 (q2 , w)) F1 F2
(q1 , w) F1 & (q2 , w) F2
w L(M1 ) & w L(M2 )
w L(M1 ) L(M2 )
es
((q1 , q2 ), a) = (1 (q1 , a), 2 (q2 , a)) = (q3 , q2 )
((q1 , q2 ), b) = (1 (q1 , b), 2 (q2 , b)) = (q1 , q4 )
((q1 , q4 ), a) = (1 (q1 , a), 2 (q4 , a)) = (q3 , q4 )
((q1 , q4 ), b) = (1 (q1 , b), 2 (q4 , b)) = (q1 , q2 )
((q3 , q2 ), a) = (1 (q3 , a), 2 (q2 , a)) = (q1 , q2 )
((q3 , q2 ), b) = (1 (q3 , b), 2 (q2 , b)) = (q3 , q4 )
((q3 , q4 ), a) = (1 (q3 , a), 2 (q4 , a)) = (q1 , q4 )
((q3 , q4 ), b) = (1 (q3 , b), 2 (q4 , b)) = (q3 , q2 )
El diagrama de estados del automata as obtenido es un viejo conocido nuestro:
Ejercicios
Dise
nar automatas finitos que acepten los siguientes los siguientes
3.6.
Algoritmos de decisi
on
El argumento empleado en la demostracion del lema de bombeo sirve para obtener otras conclusiones importantes sobre los lenguajes aceptados por automatas
finitos.
3.6.1 Teorema. Sea M un AFD con n estados y sea L = L(M ).
1. L 6= si y solo si M acepta una palabra w tal que |w| < n.
2. L es infinito si y solo si M acepta una palabra w tal que n |w| < 2n.
Demostracion:
1. La parte si es obvia. Para la otra implicacion, sea w una palabra de
longitud mnima en L(M ). Entonces |w| < n ya que si |w| n, seg
un la
demostracion del lema de bombeo, w se podra descomponer como w = uvx,
donde |uv| n, v 6= . La palabra ux L y |ux| < |w|, lo que contradice
la minimalidad de |w|.
2. Si w M y n |w| < 2n, entonces por la demostracion del lema de
bombeo, w se puede descomponer como w = uvx, donde |uv| n, v 6= .
M acepta infinitas palabras: uv i x para todo i 0.
Recprocamente, si L es infinito, existe w L con |w| n. Por la demostracion del lema de bombeo, w = uvx donde |uv| n, v 6= . Si |w| < 2n
la demostracion esta terminada. Si |w| 2n, puesto que |v| |uv| n,
se tendra |ux| n y ux L . De nuevo, si |ux| < 2n, la demostracion
termina; en caso contrario, se prosigue de esta forma hasta encontrar una
palabra en L cuya longitud ` satisfaga n ` < 2n.
3.6.2 Corolario. Sea un alfabeto dado. Existen algoritmos para los siguientes
problemas de decision referentes a aut
omatas finitos sobre :
1. Dado un automata finito M , Es L(M ) 6= ?
2. Dado un automata finito M , Es L(M ) infinito?
3. Dados dos automatas finitos M1 y M2 , L(M1 ) = L(M2 )?
Demostracion:
1. Algoritmo: construir un AFD M 0 que acepte el lenguaje L(M ) y chequear
la aceptacion o rechazo de todas las palabras w tales que |w| < n,
donde n = # de estados de M 0 .
problemas de decisi
on referentes a automatas finitos sobre :
Ejercicios
3.10.
Observaciones finales
Ejercicio Demostrar que a b es la union de dos lenguajes disyuntos no
regulares.
Captulo 4
Lenguajes independientes del
contexto
Como lo hemos visto, los automatas son mecanismos que procesan palabras de entrada. En captulos posteriores consideraremos modelos de automatas con mayor
poder computacional que el de los modelos AFD-, AFN y AFD. En el presente
captulo iniciaremos el estudio de las gram
aticas generativas, que son mecanismos para generar palabras a partir de un smbolo inicial.
Los automatas procesan palabras
Las gramaticas generan palabras
4.1.
Gram
aticas independientes del contexto (GIC)
Una gram
atica independiente del contexto (GIC) es una cuadrupla,
G = (V, , S, P )
formada por:
1. Un alfabeto V cuyos elementos se llaman variables o smbolos no-terminales.
2. Un alfabeto cuyos elementos se llaman smbolos terminales.
3. Una variable especial S V , llamada smbolo inicial de la gramatica.
4. Un conjunto finito P V (V ) de producciones o reglas de reescritura.
Notaci
on y definiciones. Las variables se denotan con letras may
usculas A, B,
C, . . . Los elementos de , o smbolos terminales, se denotan con letras min
usculas
a, b, c, . . . Una produccion (A, w) P de G se denotara por A w. Si u, v
(V ) y A w es una produccion, se dice que uwv se deriva directamente
de uAv, lo cual se denota por
uAv uwv.
Si se quiere hacer referencia a la gramatica G, se escribe
uAv G uwv.
Si u1 , u2 , . . . , un son palabras en (V ) y hay una sucesion de derivaciones
directas
u1 G u2 , u2 G u3 , . . . , un1 G un
L(G) := {w : S w}.
Un lenguaje L sobre un alfabeto se dice que es un lenguaje independiente
del contexto (LIC) si existe una GIC G tal que L(G) = L. Dos GIC G1 y G2
son equivalentes si L(G1 ) = L(G2 ).
Se tiene S y
S aS a aS a a.
Por consiguiente, L(G) = a .
De manera mas simple, podemos presentar una gramatica GIC listando sus producciones y separando con el smbolo | las producciones de una misma variable.
Se asume siempre que las letras may
usculas representan variables y las letras
min
usculas representan smbolos terminales.
S aS | bA |
A bA | b |
S aS a aS a a.
S bA b bA b b.
S aS a aS a abA a ab bA a ab b.
Por consiguiente L(G) = a b .
Las siguientes gramaticas tambien generan el lenguaje a b y son, por lo tanto,
equivalentes a G:
S AB
S AB |
S aS | A
A aA |
A aA | a |
A bA |
B bB |
B bB | b |
es decir, el lenguaje de todas las palabras con exactamente dos bs.
Ejemplo
Solucion: G :
S AbAbA
A aA |
S aS | bA
A aA | bB
B aB |
i i
Ejemplo Encontrar una GIC que genere el lenguaje L = {a b : i 0} sobre
= {a, b}, el cual no es un lenguaje regular.
Solucion: G :
S aSb | .
Ejemplo Encontrar una GIC que genere el lenguaje de todos los palndromes
sobre = {a, b}, el cual no es lenguaje regular.
Solucion: G :
S aSa | bSb | a | b | .
Ejemplo Encontrar una GIC que genere el lenguaje de todas las palabras sobre
= {a, b} que tienen un n
umero par de smbolos.
Solucion: G :
S aSa | bSb | aSb | bSa | .
Una gramatica equivalente es
S aaS | bbS | abS | baS | .
Ejemplo Encontrar una GIC que genere el lenguaje (ab ba) sobre
= {a, b}.
Solucion: G :
S abS | baS | .
= {a, b}:
Ejercicios
i j i+j
Ejercicio Encontrar una GIC que acepte el lenguaje {a b c : i 0, j 1},
sobre {a, b, c}. Es este un lenguaje regular?
Ejercicios
4.2.
Gram
aticas regulares
4.2.1 Definici
on. Una GIC se llama regular si sus producciones son de la forma
A aB,
A
a , B V
Los siguientes teoremas establecen la conexion entre los lenguajes regulares y las
gramaticas regulares.
4.2.2 Teorema. Dado un AFD M = (Q, , q0 , F, ), existe una GIC regular
G = (V, , S, P ) tal que L(M ) = L(G).
Demostracion: Sea V = Q y S = q0 . Las producciones de G estan dadas por
q ap si y solo si (q, a) = p
q si y solo si q F
Demostraremos primero que para toda w , w 6= y para todo p, q Q se
tiene
(1)
q wp wap0
que era lo que se quera demostrar.
A continuacion demostraremos el recproco de (1): para toda w , w 6= y
para todo p, q Q se tiene
(2)
Si q wp entonces (q, w) = p.
q w0 p0 w0 ap = wp
si y solo si S G w
Ejemplo Para el lenguaje regular a ba ba , sobre = {a, b} (el lenguaje de
todas las palabras con exactamente dos bs), vimos en el cuarto
ejemplo de la seccion 4.1 una gramatica que lo genera:
S AbAbA
A aA |
S aS | bA
A aA | bB
B aB |
4.2.3 Teorema. Dada una GIC regular G = (V, , S, P ), existe un AFN
M = (Q, , q0 , F, ) tal que L(M ) = L(G).
Demostracion: Se construye M = (Q, , q0 , F, ) haciendo Q = V , q0 = S y
B (A, a) para cada produccion A aB
AF
si
A
Usando razonamientos similares a los del teorema 4.2.2, se puede demostrar que
A G wB
a1 A 1
a2 A 2
..
.
An1 an B
De esta manera se puede construir una gramatica regular equivalente a G.
sobre = {a, b}
Ejercicios
1. ab a
2. (ab ba)
3. a+ b b+ a b
4.3.
Eliminaci
on de variables in
utiles de una GIC
4.3.1. Definiciones.
(ii) Una variable A es terminable si existe w tal que A w. En particular, si A es una produccion entonces A es terminable.
(iii) A es una variable in
util si no es alcanzable o no es terminable.
Existen algoritmos para detectar todas las variables in
utiles de una GIC. Usando
tales algoritmos podemos construir una gramatica G0 equivalente a una gramatica
G dada, de tal manera que G0 no tiene variables in
utiles.
4.3.2. Algoritmo para encontrar las variables terminables de una GIC.
El siguiente algoritmo sirve para encontrar todas las variables terminables de una
GIC.
TERM1 := A V : Existe una produccion de la forma A w, w
TERMi+1 :=TERMi A V : produccion A w, w ( TERMi )
Obtenemos una sucesion creciente de conjuntos de variables:
TERM1 TERM2 TERM3
Como el conjunto de variables es finito, existe k tal que
TERMk = TERMk+1 = TERMk+2 =
El conjunto TERM de variables terminables es entonces
[
TERM :=
TERMi
i1
S ACD | bBd | ab
A aB | aA | C
B aDS | aB
C aCS | CB | CC
D bD | ba
E AB | aDb
TERM1
TERM2
TERM3
TERM4
= {S, D}
= {S, D} {B, E} = {S, D, B, E}
= {S, D, B, E} {A} = {S, D, B, E, A}
= {S, D, B, E, A} { } = { }
S aS | AaB | ACS
A aS | AaB | AC
A aA |
B bB | DB | BB
C aDa | ABD | ab
D aD | DD | ab
E F F | aa
F aE | EF
ALC1
ALC2
ALC3
ALC4
= {S}
= {S} {A, B, C} = {S, A, B, C}
= {S, A, B, C} {D} = {S, A, B, C, D}
= {S, A, B, C, D} { } = {S, A, B, C, D}
S a | AB
A aA |
G:
S SBS | BC | Bb
A AA | aA
B aBCa | b
C aC | ACC | abb
D aAB | ab
E aS | bAA
F aDb | aF
= {B, C, D}
= {B, C, D} {S, F }
= {B, C, D, S, F } {E} = {B, C, D, S, F, E}
= {B, C, D, S, F, E} { }
La u
nica variable no-terminable de G es A. Por lo tanto, G es equivalente a la
siguiente gramatica G1
S SBS | BC | Bb
B
aBCa | b
C aC | abb
G1 :
D ab
E aS
F aDb | aF
Variables alcanzables de G1 :
ALC1 = {S}
ALC2 = {S} {B, C}
ALC3 = {S, B, C} { }
Las variables D, E, F son no alcanzables. Por lo tanto, G es equivalente a la
siguiente gramatica G2 , que no tiene variables in
utiles.
S SBS | BC | Bb
B aBCa | b
G2 :
C aC | abb
Ejercicios
S SS | SBB | CCE
A aE | bE
B bB | Db
G:
C aC | bB
D aDb | ab |
E aA | bB
S EA | SaBb | aEb
A DaD | bD
B bB | Ab |
C aC | bBC
G:
D aEb | ab
E aA | bB |
F Fb | Fa | a
4.4.
Eliminaci
on de las producciones
4.4.1. Definiciones.
(i) Una produccion de la forma A se llama producci
on
S AB | ACA | ab
A aAa | B | CD
B bB | bA
G:
C cC |
D aDc | CC | ABb
Primero encontramos las variables anulables de G por medio del algoritmo 4.4.2:
ANUL1
ANUL2
ANUL3
ANUL4
ANUL5
= {C}
= {C} {D} = {C, D}
= {C, D} {A} = {C, D, A}
= {C, D, A} {S} = {C, D, A, S}
= {C, D, A, S} { } = {C, D, A, S}
S AB | ACA | ab | B | CA | AA | AC | A | C |
A aAa | B | CD | aa | C | D
0
B bB | bA | b
G :
C cC | c
D aDc | CC | ABb | ac | C | Bb
S EA | SaBb | aEb
A DaD | bD | BEB
B bB | Ab |
G:
D aEb | ab
E aA | bB |
4.5.
Eliminaci
on de las producciones unitarias
4.5.1. Definiciones.
(i) Una produccion de la forma A B donde A y B son variables, se llama
producci
on unitaria.
(ii) El conjunto unitario de una variable A (o conjunto cadena de A) se
define de la siguiente manera:
4.5.3 Teorema. Dada una GIC G, se puede construir una GIC G0 equivalente
a G sin producciones unitarias.
Demostracion: Las producciones unitarias de G se pueden eliminar a
nadiendo para cada variable A de G las producciones (no unitarias) de las variables contenidas
en el conjunto unitario UNIT(A). La gramatica G0 as obtenida es equivalente a
la gramatica original G.
G:
S AS | AA | BA |
A aA | a
B bB | bC | C
C aA | bA | B | ab
S AS | AA | BA |
A aA | a
G0 :
B bB | bC | aA | bA | ab
C aA | bA | ab | bB | bC
S ACA | CA | AA | A | C |
A aAa | aa | B | C
B cC | D | C
G:
C bC
D aA |
S ACA | CA | AA | | aAa | aa | bC | cC | aA
A aAa | aa | cC | bC | aA |
B cC | bC | aA |
G0
C bC
D aA |
S ACA | ab | B | CA | A | C |
A aAa | B | CD | aa | D
B bB | bA | b
G:
C cC | c
D ABb | ac | C | Bb
4.6.
A Ta Tb BTa C
Ta a
Tb b
A Ta T1
T1 Tb T2
T2 BT3
T3 Ta C
T a
a
Tb b
A BATa CTb Tb
Ta a
Tb b
Ahora introducimos nuevas variables T1 , T2 , T3 , T4 y las producciones binarias
necesarias. Las u
nicas producciones de estas nuevas variables son las mostradas:
A BT1
T1 AT2
T2 Ta T3
T3 CT4
T4 Tb Tb
T a
a
Tb b
En los siguientes ejemplos se ilustra el procedimiento completo para convertir una
gramatica dada a la Forma Normal de Chomsky (FNC).
S AB | aBC | SBS
A aA | C
G:
B bbB | b
C cC |
El conjunto de variables terminables es TERM={B, C, S, A} y el conjunto de
variables alcanzables es ALC={S, A, B, C}. Es decir, la gramatica no tiene variables in
utiles. El conjunto de variables anulables es ANUL={C, A}. Al eliminar
S AB | aBC | SBS | B | aB
A aA | C | a
G1 :
B bbB | b
C cC | c
A continuacion encontramos los conjuntos unitarios de todas las variables:
UNIT(S)={S, B}
UNIT(A)={A, C}
UNIT(B)={B}
UNIT(C)={C}
Al eliminar las producciones unitarias obtenemos la gramatica equivalente G2 :
A aA | a | cC | c
G2 :
B bbB | b
C cC | c
Luego introducimos las variables nuevas Ta , Tb y Tc , y las producciones Ta a,
Tb b y Tc c con el proposito de que todas las producciones sean unitarias o
de la forma A w, donde |w| 2.
S AB | Ta BC | SBS | Ta B | Tb Tb B | b
A Ta A | a | Tc C | c
B Tb Tb B | b
C Tc C | c
G3 :
Ta a
T b
b
Tc c
Finalmente, se introducen nuevas variables, con producciones binarias, para simular las producciones de la forma A w, donde |w| 2:
S AB | Ta T1 | ST2 | Ta B | Tb T3 | b
A Ta A | TC C | a | c
B Tb T3 | b
C Tc C | c
T1 BC
G4 :
T2 BS
T3 Tb B
Ta a
T b
b
Tc c
S aS | aA | D
A aAa | aAD |
B aB | BC
G:
C aBb | CC |
D aB | bA | aa | A
TERM={A,C,D,S}. Eliminando la variable no-terminable B obtenemos:
S aS | aA | D
A aAa | aAD |
G1 :
C CC |
D bA | aa | A
Las variables alcanzables de G1 son ALC={S, A, D}. Eliminando la variable noalcanzable C obtenemos:
S aS | aA | D
A aAa | aAD |
G2 :
D bA | aa | A
El conjunto de variables anulables de G2 es ANUL={A, D, S}. Eliminando las
producciones obtenemos:
S aS | aA | D | a |
A aAa | aAD | aa | aA | aD | a
G3 :
D bA | aa | A | b
A continuacion encontramos los conjuntos unitarios de todas las variables:
UNIT(S)={S, D, A}
UNIT(A)={A}
UNIT(D)={D, A}
Al eliminar las producciones unitarias obtenemos la gramatica equivalente G4 :
S aS | aA | a | | aAa | aAD | aa | aD | a | bA | b
A aAa | aAD | aa | aA | aD | a
G4 :
D bA | aa | b | aAa | aAD | aa | aA | aD | a
Finalmente, simulamos las producciones de G4 con producciones unitarias y binarias:
S Ta S | Ta A | a | | Ta T1 | Ta T2 | Ta Ta | Ta D | a | Tb A | b
A Ta T1 | Ta T2 | Ta Ta | Ta A | Ta D | a
D Tb A | Ta Ta | b | Ta T1 | Ta T2 | Ta Ta | Ta A | Ta D | a
T1 ATa
G5 :
T2 AD
T a
a
Tb b
entes gram
aticas:
Ejercicios
1.
G:
2.
G:
S ABC | BaC | aB
A Aa | a
B BAB | bab
C cC | c
S aASb | BAb
A Aa | a |
B BAB | bAb
C cCC |
4.7.
Arbol
de una derivaci
on
Un
arbol es un tipo muy particular de grafo no-dirigido: esta formado por un
conjunto de vertices o nodos conectados entre s por aristas o conectores, con
la siguiente propiedad: existe un nodo especial, llamado la raz del arbol, tal
que hay una u
nica trayectoria entre cualquier nodo y la raz. De esta manera,
la raz se ramifica en nodos, llamados descendientes inmediatos, cada uno de
los cuales puede tener, a su vez, descendientes inmediatos, y as sucesivamente.
La propiedad que caracteriza a un arbol garantiza que un nodo puede tener 0,
1, o mas descendientes inmediatos pero un u
nico antecesor inmediato. El u
nico
nodo que no tiene antecesores es la raz. Los nodos que no tienen descendientes se
llaman hojas del arbol. En la terminologa usualmente utilizada, los descendientes
de un nodo tambien se denominan hijos y los antecesores padres o ancestros.
El n
umero de vertices (y por lo tanto, el n
umero de aristas) de un arbol puede
ser infinito. Ejemplos de arboles son:
El
arbol de una derivaci
on S w, w , en una GIC se forma de la siguiente
manera. La raz del arbol es el smbolo inicial S y si en la derivacion se utiliza
la produccion A s1 s2 sk , si (V ) , el nodo A tiene k descendientes
S AB | AaB
A aA | a
B bBa | b
El arbol de la derivacion
S AB AbBa abBa abba
es
S BAa
A bBC | a
B bB | b
C aB | aa
El arbol de la derivacion
S BAa bAa bbBCa bbbCa bbbaBa bbbaba
es
S ABC | BaC | aB
A Aa | a
G:
B BAB | bab
C cC | c
Encontrar derivaciones de las palabras w1 = abab, w2 = babacc, w3 = ababababc
y hallar los arboles de tales derivaciones.
4.8.
Lema de bombeo
n
umero de nodos de la trayectoria mas larga de S w y la longitud de w, en los
casos k = 2, k = 3, k = 4 y k = 5.
Se observa que |w| 2k2 . Para hacer una demostracion rigurosa del caso general
se procede por induccion sobre k.
4.8.2 Corolario. Sea G = (V, , S, P ) una gram
atica en FNC y w . Si la
S uAy,
As que
A vAx,
A w.
para todo i 0.
A BC vAx
utilizando una produccion de la forma A BC como primer paso. Se deduce
que
i
Ejemplo Demostrar que el lenguaje L = {a : i es primo} sobre = {a} no
es un LIC.
el cual no es un n
umero primo pues k > 1 y como n k 1 entonces
1+nk 2
Luego de (i), (ii) y (iii) |uv k wxk y| no es un n
umero primo, lo cual contradice que
uv k wxk y L, seg
un el lema de bombeo. Esta contradiccion muestra que L no es
un LIC.
Ejercicios Demostrar que los siguientes lenguajes no son LIC.
4.9.
Una GIC esta en Forma Normal de Greibach (FNG) si sus producciones son
de la siguiente forma:
1. A a.
2. A aB1 B2 . . . Bk , donde las Bi son variables.
y no hay variables in
utiles.
Existe un procedimiento algortmico para transformar una GIC dada en una
gramatica equivalente en FNG. Para presentar el procedimiento necesitamos algunos resultados preliminares.
4.9.1 Definici
on. Una variable se llama recursiva a la izquierda si tiene una
produccion de la forma:
A Aw,
w {V }
S AA | a
A SA | b
G:
S AA | a
A AAA | aA | b
S AA | a
A aA | b | aAZ | bZ
Z AA | AAZ
Paso 3:
Z AA | AAZ
Paso 4:
S AB | BC
A AB | a
B AA | CB | a
Ca|b
Paso 1: Orden de las variables: S, A, B, C.
Paso 2:
S AB | BC
A a | aZ1
B aA | aZ1 A | CB | a
Ca|b
Z1 B | BZ1
Paso 3:
A a | aZ1
B aA | aZ1 A | aB | bB | a
Ca|b
Z1 B | BZ1
Paso 4:
B
aA | aZ1 A | aB | bB | a
A a | aZ1
Ca|b
S AB
A AB | CB | a
B AB | b
C AC | c
S AB
A CB | a | CBZ1 | aZ1
B CBB | aB | CBZ1 B | aZ1 B | b
Z1 B | BZ1
S AB
A CB | a | CBZ1 | aZ1
Z B | BZ1
1
Z2 BC | BZ1 C | BCZ2 | BZ1 CZ2
Paso 3:
S 14 producciones
Z1 B | BZ1
Paso 4: El n
umero de producciones de la nueva gramatica se incrementa drasticamente.
S 14 producciones
Z 14 producciones | 14 producciones
1
Z2 14 producciones | 14 producciones | 14 producciones | 14 producciones
(que est
an en FNC):
Ejercicios
1.
G:
S SA | AC | a
A BA | AB | b
B AA | a | b
C AC | CC | a
2.
G:
S SB | BC | b
A AC | CA | a
B BB | a
C BC | CA | a
G:
S SC | AA | a
A CA | AB | a
B AC | b
C CA | AB | b
3.
4.10.
An
alisis gramatical y ambig
uedad
hSujetoi
hSustant.i
hCompl. Directoi
hPrepos.ihArtculoihSustant.i | hPrepos.ihArtculoihSustant.i
hPrepos.ihArtculoihSustant.i
hCompl. Indirectoi
hPrepos.ihArtculoihSustant.i
hCompl. Circunst.i
hPrepos.ihArtculoihSustant.i | hAdverbioi
hPrepos.i
hArtculoi
hAdverbioi
hVerboi
Hay oraciones para las cuales se pueden construir (por lo menos) dos arboles
de derivacion diferentes, o lo que es lo mismo, oraciones para las cuales hay dos
derivaciones que (ignorando el orden de las producciones) difieren por lo menos
en una produccion. Tales oraciones tienen un significado ambiguo. Los lenguajes
naturales son casi siempre ambiguos porque existen muchas reglas de produccion,
lo que da lugar a m
ultiples arboles de derivacion para ciertas oraciones.
Ejemplo La oracion
es ambigua. La ambig
uedad surge porque las producciones permiten dos arboles
de derivacion para la oracion:
S aSA |
A bA |
G es ambigua porque para la palabra aab hay dos derivaciones a izquierda diferentes.
S aSA aaSAA aaAA aaA aabA aab
S aSA aaSAA aaAA aabAA aabA aab
S AB |
0
A aA | a
G :
B bB |
Ejercicios
S AaSbB |
A aA | a
B bB |
G:
S ASB | AB
A aA | a
B bB |
2.
Ejercicios
Captulo 5
Aut
omatas de Pila
5.1.
Aut
omatas de Pila Deterministas (AFPD)
Un Aut
omata Finito de Pila Determinista (AFPD), es una 7-upla:
M = (, Q, q0 , F, , s0 , )
cuyos parametros son:
1. es el alfabeto de cinta.
2. Q es el conjunto (finito) de estados.
3. q0 Q es el estado inicial.
4. F es el conjunto de estados finales o de aceptacion, =
6 F Q.
5. es el alfabeto de pila.
6. s0 es el smbolo inicial de pila.
7. es la funcion de transicion del automata:
: Q ( ) (Q )
Como en los modelos anteriores, el AFPD procesa palabras sobre una cinta de entrada, pero hay una cinta adicional, llamada pila, que es utilizada por el automata
como lugar de almacenamiento. En un momento determinado, la cabeza lectora
del automata esta escaneando un smbolo a sobre la cinta de entrada y el smbolo
s en el tope o cima de la pila, como lo muestra la siguiente grafica:
La transicion
(q, a, s) = (q 0 , )
representa un paso computacional: la cabeza lectora pasa al estado q 0 y se
mueve a la derecha; ademas, borra el smbolo s que esta en el tope de la pila y
escribe la palabra (palabra que pertenece a ). La siguiente grafica ilustra un
paso computacional:
3. (q, , s) = (q 0 , ). Esta
es una transicion : el smbolo sobre la cinta de
entrada no se consume y la cabeza lectora no se mueve a la derecha, pero el tope s de la pila es reemplazado por la palabra . Para garantizar
el determinismo, (q, a, s), con a , y (q, , s) no pueden estar simultaneamente definidos (de lo contrario el automata tendra una opcion
no-determinista). Las transiciones en un AFPD permiten que el automata cambie el contenido de la pila, sin consumir smbolos sobre la cinta de
entrada.
Configuraci
on o descripci
on instant
anea. Es una tripla (q, au, s) que representa lo siguiente: el automata esta en el estado q, au es la parte no procesada
de la palabra de entrada, y la cabeza lectora esta escaneando el smbolo a. La
cadena s es el contenido total de la pila; siendo s el smbolo que esta en el tope.
Para una palabra de entrada w , la configuracion inicial es (q0 , w, s0 ).
Esta
es una notacion muy comoda: para representar el paso computacional de la
figura anterior escribimos simplemente
(q, au, s) ` (p, u, )
Aqu el automata utilizo la transicion (q, a, s) = (p, ).
La notacion
(q, u, ) ` (p, v, )
significa que el automata pasa de la configuracion instantanea (q, u, ) a la configuracion instantanea (p, v, ) en cero, uno o mas pasos computacionales.
Configuraci
on de aceptaci
on. La configuracion (p, , ), siendo p un estado
final o de aceptacion, se llama configuracion de aceptacion. Esto significa que,
para ser aceptada, una palabra de entrada debe ser procesada completamente,
(q0 , a, s0 )
(q0 , b, s0 )
(q0 , c, s0 )
(q0 , a, A)
(q0 , a, B)
(q0 , b, A)
(q0 , b, B)
(q0 , c, A)
(q0 , c, B)
(q1 , a, A)
(q1 , b, B)
(q1 , , s0 )
= {a, b}
Ejercicios
=
=
=
=
=
=
=
=
=
=
=
=
(q0 , As0 )
(q0 , Bs0 )
(q2 , s0 ) (para aceptar la palabra c)
(q0 , AA)
(q0 , AB)
(q0 , BA)
(q0 , BB)
(q1 , A)
(q1 , B)
(q1 , )
(q1 , )
(q2 , s0 )
Dise
nar AFPDs que acepten los siguientes lenguajes sobre
1. L = {a2i bi : i 1}.
2. L = {ai b2i : i 1}.
5.2.
Aut
omatas de pila no deterministas
(AFPN)
Un aut
omata finito de pila no determinista (AFPN), esta definido por:
M = (, Q, q0 , F, , s0 , )
el cual consta de los mismos siete parametros de un AFPD, pero la funcion de
transicion es de la forma:
: Q ( ) f (Q ).
donde
(q0 , a, s0 )
(q0 , b, s0 )
(q0 , , s0 )
(q0 , a, A)
(q0 , a, B)
(q0 , b, A)
(q0 , b, B)
(q1 , a, A)
(q1 , b, B)
(q1 , , s0 )
Ejercicios
=
=
=
=
=
=
=
=
=
=
{(q0 , As0 )}
{(q0 , Bs0 )}
{(q2 , s0 )} (para aceptar )
{(q0 , AA), (q1 , )}
{(q0 , AB)}
{(q0 , BA)}
{(q0 , BB), (q1 , )}
{(q1 , )}
{(q1 , )}
{(q2 , s0 )}
Dise
nar AFPDs o AFPNs que acepten los siguientes lenguajes:
5.3.
Aut
omatas de pila y LIC (Parte I)
(q0 , w, s0 ) ` (q2 , , s0 )
que simula la derivacion.
S aAbS | bBa |
A aA | a
G:
B bB | b
Seg
un la construccion indicada arriba, el automata M esta dado por:
M = (, Q, q0 , F, , s0 , ) donde
Q = {q0 , q1 , q2 }
F = {q2 }
= {a, b, S, A, B, s0 }
La funcion de transicion esta dada por:
(q0 , , s0 )
(q1 , , S)
(q1 , , A)
(q1 , , B)
(q1 , a, a)
(q1 , b, b)
(q1 , , s0 )
=
=
=
=
=
=
=
{(q1 , Ss0 )}
{(q1 , aAbS), (q1 , bBa), (q1 , )}
{(q1 , aA), (q1 , a)}
{(q1 , bB), (q1 , b)}
{(q1 , )}
{(q1 , )}
{(q2 , s0 )}
par
Ejemplo La siguiente gramatica G genera los palndromes1de longitud
sobre = {a, b}, es decir, el lenguaje L = {ww
: w } del
tercer ejemplo de la seccion 5.2.
S aSa | bSb |
Siguiendo el procedimiento del Teorema 5.3.1 podemos construir un AFPN que
acepta L; este automata es diferente del exhibido en el tercer ejemplo de la seccion
5.2.
M = (, Q, q0 , F, , s0 , ) donde
Q = {q0 , q1 , q2 }
F = {q2 }
= {a, b, S, s0 }
=
=
=
=
=
{(q1 , Ss0 )}
{(q1 , aSa), (q1 , bSb), (q1 , )}
{(q1 , )}
{(q1 , )}
{(q2 , s0 )}
S Aba | AB |
A aAS | a
G:
B bBA |
Encontrar una derivacion a izquierda en G de la palabra w = aaababa y procesar
luego la palabra w con el automata M , simulando la derivacion.
S ASA | AaA | aa
A AbA |
Captulo 6
M
aquinas de Turing
6.1.
M
aquinas de Turing (MT) como aceptadoras de lenguajes
Una M
aquina de Turing (MT), M = (Q, q0 , F, , , b, ), consta de siete
parametros a saber:
1. Q es el conjunto (finito) de estados.
2. q0 Q es el estado inicial.
3. F es el conjunto de estados finales o de aceptacion, =
6 F Q.
4. es el alfabeto de entrada.
5. es el alfabeto de cinta.
6. b es el smbolo blanco.
7. es la funcion de transicion de la maquina:
: Q Q {I, D}
es una funcion parcial, es decir, puede no estar definida en algunos elementos del dominio. I denota desplazamiento a izquierda y D denota desplazamiento a la derecha. La transicion
(q, a) = (p, b, T )
significa: estando en el estado q, escaneando el smbolo a, la cabeza lectora
borra a, escribe b y se mueve en el estado p, ya sea a la izquierda (si el
traslado T es I) o a la derecha (si el traslado T es D).
u1 qu2 ` v1 pv2
significa que M puede pasar de la descripcion instantanea u1 qu2 a la descripcion
instantanea v1 pv2 en cero, uno o mas pasos computacionales.
C
omputos especiales. Durante el computo o procesamiento de una palabra de
entrada hay dos situaciones especiales que se pueden presentar:
1. El computo termina porque en determinado momento no hay trancision
definida.
2. El computo no termina; esto es lo que se denomina un bucle infinito. Esta
situacion se representa con la notacion
u1 qu2 `
que indica que el computo que se inicia en la descripcion instantanea u1 qu2
no se detiene nunca.
Lenguaje aceptado por una MT. Una palabra de entrada w es aceptada por
una MT M si hay un computo que se inicia en la configuracion inicial q0 w y
termina en una configuracion instantanea w1 pw2 , (p estado de aceptacion) en la
cual M se detiene completamente. El lenguaje L(M ) aceptado por una MT M se
define entonces como
L(M ) :=
i i i
Ejemplo Construir una MT M que acepte el lenguaje L = {a b c : i 0}
sobre el alfabeto = {a, b, c}. Como se demostr
o en el captulo
anterior, L no es LIC, es decir, no puede ser aceptado por ning
un automata de
pila.
Ejercicios
Dise
nar MTs que acepten los siguientes lenguajes sobre =
6.2.
6.2.1.
Se puede permitir que el control finito no se mueva en un determinado paso computacional, es decir, que no realice ning
un desplazamiento. Este tipo de transicion
tiene la forma:
(q, a) = (p, b, N )
donde a, b ; p, q Q y N representa un No-desplazamiento.
Simulaci
on. La anterior transicion se puede simular por medio de un movimiento
a la derecha seguido de un retorno a la izquierda. As, para simular la transicion
(q, a) = (p, b, N ) utilizamos un estado auxiliar q 0 y las transiciones:
(q, a) = (q 0 , b, D)
(q 0 , s) = (p, s, I), para todo smbolo s .
La directiva N tambien se puede simular con un movimiento a la izquierda seguido de un retorno a la derecha. En cualquier caso, concluimos que las MT con
transiciones estacionarias, (q, a) = (p, b, N ), aceptan los mismos lenguajes que
las MT estandares.
6.2.2.
Estado de aceptaci
on u
nico
Toda MT se puede convertir, sin alterar el lenguaje generado, en una maquina con
un u
nico estado de aceptacion. Esto se consigue facilmente a
nadiendo transiciones
desde los estados de aceptacion originales hasta el u
nico estado de aceptacion qu ,
el cual es un estado nuevo. Las transiciones necesarias son:
(q, a) = (qu , a, N ),
6.2.3.
M
aquina de Turing con cinta dividida en pistas
Simulaci
on. Las Maquinas de Turing que act
uan sobre una cinta dividida en
k pistas aceptan los mismos lenguajes que las MT estandares. Para concluir tal
afirmacion, basta considerar el modelo multi-pistas como una MT normal en la
que el alfabeto de cinta esta formado por el conjunto de k-uplas (s1 , s2 , . . . , sk ),
donde los si . Es decir, el nuevo alfabeto de cinta es el producto cartesiano
k = (k veces).
6.2.4.
M
aquina de Turing con m
ultiples cintas
Simulaci
on. A pesar de que el modelo multi-cinta parece, a primera vista, mas
poderoso que el modelo estandar, resulta que una MT con m
ultiples cintas se
puede simular con una MT multi-pista. Una MT con k cintas se simula con una
MT que act
ua sobre una u
nica cinta dividida en 2k + 1 pistas. Cada cinta de
la maquina multi-cinta da lugar a 2 pistas en la maquina simuladora: la pista
superior simula la cinta propiamente dicha y la inferior tiene todas sus celdas en
blanco, excepto una, marcada con un smbolo especial X, que indica la posicion
actual del visor de la maquina original en dicha cinta. La pista adicional de
la maquina simuladora se utiliza para marcar, con un smbolo especial Y , las
posiciones mas a la izquierda y mas a la derecha del control finito en la maquina
original. Para simular un solo paso computacional, la nueva maquina requiere
hacer m
ultiples recorridos a izquierda y a derecha, actualizando el contenido de
i i i
Ejemplo MT con 2 cintas que acepta el lenguaje L = {a b c : i 1}. La
idea implementada para esta MT es: se copia en la segunda cinta
una X por cada a leda. Al aparecer las bs se avanza hacia la derecha en la
primera cinta y hacia la izquierda en la segunda. Al aparecer las cs se avanza
hacia la derecha en ambas cintas. Si la palabra de entrada tiene la forma ai bi ci ,
se detectara simultameamente el smbolo en blanco b en ambas cintas.
6.2.5.
M
aquinas de Turing no deterministas (MTN)
6.3.
Simulaci
on de aut
omatas AFD y AFPN por
medio de m
aquinas de Turing
En esta seccion veremos que los modelos de automatas AFD y AFPN se pueden
simular con maquinas de Turing.
Simulaci
on de un AFD. Sea M = (Q, q0 , F, , ) un AFD. Se puede construir
una MT M 0 tal que L(M ) = L(M 0 ) definiendo M 0 = (Q0 , q0 , F 0 , , , b, 0 ) como
Q0 = Q {q 0 }, donde q 0 es un estado nuevo.
= {
b}.
0
0
F = {q }.
0 (q, s) = ((q, s), s, D), para q Q, s .
0 (q, b) = (q 0 , b, N ), para todo q F.
para cualquier s .
Lo anterior muestra que el comportamiento del automata M se simula completamente con la MT M 0 y se tiene que L(M ) = L(M 0 ). Notese que M 0 no necesariamente se detiene con cada cadena de entrada w. Por consiguiente, solamente
se puede concluir por ahora lo que se afirma en el siguiente teorema.
6.3.2 Teorema. Un LIC es un lenguaje recursivamente enumerable.
Ejercicio Simular por medio de una MT M el automata dei ipila (primer ejem
plo de la secci
on 5.1) que acepta el lenguaje {a b : i 1}, sobre el
alfabeto = {a, b}, y cuya funcion de transicion es:
6.4.
Codificaci
on de M
aquinas de Turing
Toda MT se puede codificar como una secuencia finita de ceros y unos. Para
simplificar la codificacion, suponemos que toda MT tiene un u
nico estado inicial,
denotado q0 , y un u
nico estado final, denotado q1 (en la seccion 6.2.2 se mostro que
esta modificacion siempre se puede hacer, sin alterar los lenguajes aceptados). Los
smbolos del alfabeto de cinta
= {s1 , s2 , . . . , sk , sk+1 , . . . , sm }
| {z }
smbolos de
Codificacion
1
11
..
.
11
1}
| {z
sm
m veces
Codificacion
1
11
..
.
11
1}
| {z
n+1 veces
Las directivas de movimiento D, I y N se codifican con 1, 11 y 111, respectivamente. Una transicion (q, a) = (p, b, N ) se codifica usando ceros como separadores para los estados y los smbolos del alfabeto de cinta. As, la transicion
(q3 , s2 ) = (q5 , s3 , D) se codifica como
0111101101111110111010
En la codificacion de una transicion cualquiera (q, s) = (q 0 , s0 , T ) aparecen exactamente seis ceros rodeados por secuencias de unos.
Puesto que solamente hay un estado inicial y uno de aceptacion, para codificar una
MT basta presentar la secuencia binaria de la funcion de transicion , codificada
siguiendo el anterior esquema.
(q0 , a) = (q2 , a, D)
(q2 , a) = (q2 , a, D)
(q2 , b) = (q3 , b, D)
(q3 , b) = (q1 , b, N )
Si los smbolos del alfabeto de cinta b, a y b se codifican con 1, 11 y 111, respectivamente, la anterior MT adquiere la siguiente codificacion como secuencia de
ceros y unos:
010110111011010011101101110110100111011101111011101001111010110101110
Es claro que una secuencia de ceros y unos que represente una MT se puede decodificar. De hecho, es facil concebir un algoritmo que determine si una secuencia
binaria finita dada es o no una MT y que la decodifique en caso afirmativo.
Enumeraci
on de M
aquinas de Turing. Podemos dise
nar un algoritmo simple
para enumerar, es decir, hacer una lista (infinita) de todas las MT que act
uen
sobre un alfabeto de cinta dado. Se generan de manera sistematica todas las
sucesiones binarias (primero las secuencias de longitud 1, luego las secuencias
de longitud 2, luego las de longitud 3 y as sucesivamente). Para cada secuencia
binaria generada se determina si codifica o no a una MT; la primera MT detectada
se llama M1 , la siguiente M2 , y as sucesivamente. Este algoritmo produce la lista
o enumeracion M1 , M2 , M3 , . . . de todas las MT sobre . Por consiguiente, el
conjunto de todas las maquinas de Turing (sobre un alfabeto dado) es enumerable.
01011011101101001110111011110111010011110111011110111010
0111101101111101101001111010110101110
6.5.
M
aquina de Turing universal
6.6.
6.6.1.
6.6.2.
T
ecnica de reducci
on de problemas
Se puede concluir que muchos problemas de decision son irresolubles reduciendolos a problemas que se sabe de antemano que son indecidibles. Para ser mas
precisos, supongase que ya se sabe que un cierto problema P1 es indecidible (como el problema de la parada, por ejemplo). Podramos concluir que un problema
dado P2 es indecidible razonando por contradiccion: si P2 fuera decidible tambien lo sera P1 . Esta contradiccion mostrara que el problema P2 no puede ser
decidible.
Para utilizar esta tecnica de reduccion, es necesario dise
nar (o concebir) una
0
MT M que sea capaz de convertir una instancia cualquiera w del problema P1
en instancias del problema P2 de tal manera que, al aplicar la supuesta MT M
que resuelve el problema P2 , se llegue a una decision, SI o NO, del problema P1
para la entrada w. La siguiente grafica ilustra este procedimiento; el dise
no de
Ejercicios