Documente Academic
Documente Profesional
Documente Cultură
Lenguajes Formales
Gloria Martnez Luis A. Garca
11 de octubre de 2005
Indice general
1. Introducci on 1
1.1. Alfabetos y Cadenas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Lenguajes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3. Introducci on a la T ecnicas B asicas de Demostraci on. . . . . . . . . . . . . 6
1.4. El Concepto de Gram atica. . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.5. Clasicaci on Jer arquica de las Gram aticas. . . . . . . . . . . . . . . . . . . 11
2. Aut omatas Finitos y Expresiones Regulares 15
2.1. Aut omatas Finitos Deterministas. . . . . . . . . . . . . . . . . . . . . . . . 15
2.2. Aut omatas Finitos No Deterministas. . . . . . . . . . . . . . . . . . . . . . 19
2.3. Aut omatas Finitos con Movimientos Libres. . . . . . . . . . . . . . . . . . 24
2.4. Expresiones Regulares. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.5. Otros Tipos de Aut omatas Finitos. . . . . . . . . . . . . . . . . . . . . . . 36
2.5.1. Aut omatas Finitos Bidireccionales . . . . . . . . . . . . . . . . . . 36
2.5.2. Aut omatas Finitos con Funci on de Salida. . . . . . . . . . . . . . . 38
2.6. Aplicaciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.6.1. Aplicaci on como ayuda al an alisis l exico en un compilador. . . . . 40
2.6.2. Especicaci on de par ametros de entrada. . . . . . . . . . . . . . . 40
2.6.3. Ayuda al dise no de circuitos. . . . . . . . . . . . . . . . . . . . . . 41
3. Propiedades de los Lenguajes Regulares 43
I
II
Indice general
3.1. El Teorema de Myhill-Nerode. Minimizaci on de Aut omatas Finitos. . . . . 43
3.2. Lema de Bombeo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.3. Propiedades de Clausura. . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.4. Algoritmos de Decisi on para Lenguajes Regulares. . . . . . . . . . . . . . 57
4. Gram aticas de Contexto Libre 59
4.1. Gram aticas y Lenguajes de Contexto Libre. . . . . . . . . . . . . . . . . . 59
4.2.
Arboles de Derivaci on. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.3. Simplicaci on de GCL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.4. Formas Normales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.4.1. Forma Normal de Chomsky, FNCH. . . . . . . . . . . . . . . . . . 70
4.4.2. Forma Normal de Greibach, FNG. . . . . . . . . . . . . . . . . . . 73
5. Aut omatas de Pila 79
5.1. Introducci on. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.2. Relaci on entre los Aut omatas de Pila y los LCL. . . . . . . . . . . . . . . . 87
6. Propiedades de los Lenguajes de Contexto Libre 91
6.1. Lema de Bombeo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
6.2. Propiedades de Clausura. . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
6.3. Algoritmos de Decisi on. . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
7. M aquinas de Turing 109
7.1. Modelo de M aquina de Turing. . . . . . . . . . . . . . . . . . . . . . . . . 109
7.2. T ecnicas para la Construcci on de M aquinas de Turing. . . . . . . . . . . . 115
7.2.1. Almacenamiento en el Control Finito. . . . . . . . . . . . . . . . . 115
7.2.2. Cintas con Sectores M ultiples y Marcaje de smbolos. . . . . . . . 116
7.2.3. Uso de Subrutinas. . . . . . . . . . . . . . . . . . . . . . . . . . . 117
7.3. M aquinas de Turing Modicadas. . . . . . . . . . . . . . . . . . . . . . . 118
Indice General
1.1. Alfabetos y Cadenas. . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Lenguajes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3. Introducci on a la T ecnicas B asicas de Demostraci on. . . . . . . . . . 6
1.4. El Concepto de Gram atica. . . . . . . . . . . . . . . . . . . . . . . . 8
1.5. Clasicaci on Jer arquica de las Gram aticas. . . . . . . . . . . . . . . 11
1.1. Alfabetos y Cadenas.
Un alfabeto es un conjunto nito y no vaco de elementos denominados smbolos. Los
alfabetos se denen bien sea por extensi on, enumeraci on de sus smbolos, o bien por com-
prensi on, enunciando alguna propiedad que todos los smbolos han de cumplir.
Algunos ejemplos de alfabetos son los siguientes:
1. = a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, el
alfabeto latino,
2. = 0, 1, el alfabeto binario,
3. = a
i
[ i 1, donde 1 es un conjunto nito, como por ejemplo
1 = x N [ x > 0 x < 50.
Los dos primeros alfabetos se han denido por extensi on, mientras que el ter-
cero se ha denido por comprensi on.
Dado un alfabeto una cadena de ese alfabeto es una combinaci on de smbolos de ese
alfabeto.
1
2 Captulo 1. Introducci on
Por ejemplo, con el alfabeto (1) una cadena sera mar, con el alfabeto (2)
sera 0111 y con el alfabeto (3) sera a
1
a
5
a
49
.
Se dene una cadena especial denominada cadena nula, denotada por , caracterizada
por no poseer smbolos.
Se denomina prejo a cualquier secuencia de smbolos de la parte inicial de una cadena,
y sujo a cualquier secuencia de smbolos de su parte nal.
Por ejemplo, la cadena 0111 tiene como prejos a las siguientes cadenas: ,
0, 01, 011 y 0111 mientras que son sus sujos las cadenas: , 1,
11, 111, 0111.
Existe un gran n umero de operaciones b asicas que se pueden realizar con las cadenas.
De entre ellas, se destacan:
Longitud de una cadena Se denomina longitud de una cadena x, denotado por [x[, a la
operaci on que consiste en contar el n umero de smbolos que componen a la cadena x.
Esta operaci on cumple las siguientes propiedades:
1. [ [ = 0
2. [a[ = 1, si a es un smbolo del alfabeto
3. Si y = a
1
a
2
..a
n
, x = a
1
a
2
..a
n
b y a
i
, b , entonces [y[ = n [x[ = n + 1.
Dado un alfabeto , se dene
n
como el conjunto de cadenas de longitud n que se
pueden construir con ese alfabeto. As, por ejemplo, siempre se cumple que sea cual
sea el alfabeto ,
0
= .
Concatenaci on Sean x e y dos cadenas, entonces la cadena resultante de concatenar x con
y es la cadena xy, cumpli endose que si [ x [ = n y [ y [ = m entonces [ xy [ = [ x [ +
[ y [ = n + m. Cuando se concatena una cadena consigo misma varias veces se emplea
la potencia para denotarlo; por ejemplo, la cadena xxxx se denota como x
4
. Adem as,
como consecuencia del uso de esta notaci on, resulta que [ x
n
[ = n[ x [.
Estrella de Kleene Se denomina estrella de Kleene, cierre reexivo transitivo u operaci on
asterisco sobre un alfabeto al conjunto de todas las cadenas que se pueden construir
a partir de los smbolos del alfabeto ; en notaci on matem atica esta denici on se
expresa as:
i0
i
.
Cierre transitivo El cierre transitivo u operaci on m as, se denota como
+
y se dene
como
+
=
i>0
i
.
De las deniciones de cierre reexivo transitivo y de cierre transitivo, se puede dedu-
cir que
=
+
.
Inversi on Dada una cadena x
, x = a
1
a
2
. . . a
n
, se dene la cadena inversa de x,
denotada por x
1
, a la cadena a
n
. . . a
2
a
1
. Esta operaci on se puede denir tambi en
recursivamente:
1.2. Lenguajes. 3
1.
1
=
2. (xa)
1
= a(x
1
), con x
a .
De esta denici on se desprenden varias propiedades entre las que cabe destacar las
siguientes:
1. a
1
= a si a , la inversa de un smbolo es el mismo smbolo,
2. (x
1
)
1
= x, x
.
1.2. Lenguajes.
Dado un alfabeto se dice que L es un lenguaje si es un subconjunto de
, es decir,
L
.
Por ejemplo, sea el alfabeto = 0,1. L
1
= 0, 01, 011 es un lenguaje nito
sobre el alfabeto y L
2
= 0
2n
[ n 0 es otro lenguaje, esta vez con un
n umero de cadenas innito, sobre el mismo alfabeto.
Puesto que se ha denido un lenguaje como un conjunto de cadenas, las operaciones
que se pueden realizar sobre lenguajes son las mismas que las que se pueden realizar sobre
conjuntos. De entre ellas, se destacan las siguientes:
Uni on de lenguajes L
1
L
2
= x
[ x L
1
x L
2
.
Cumple las propiedades
1. Asociativa, L
1
L
2
L
3
= (L
1
L
2
) L
3
= L
1
(L
2
L
3
),
2. Commutativa, L
1
L
2
= L
2
L
1
, y
3. Elemento neutro, L = L = L.
Intersecci on de lenguajes L
1
L
2
= x
[ x L
1
x L
2
.
Cumple las propiedades
1. Asociativa, L
1
L
2
L
3
= (L
1
L
2
) L
3
= L
1
(L
2
L
3
),
2. Commutativa, L
1
L
2
= L
2
L
1
, y
3. Elemento neutro, L
L = L.
Concatenaci on L
1
L
2
= x
[ x = yz y L
1
z L
2
.
Cumple las propiedades
1. Asociativa, L
1
L
2
L
3
= (L
1
L
2
)L
3
= L
1
(L
2
L
3
), y
2. Elemento neutro, L = L = L.
4 Captulo 1. Introducci on
En la concatenaci on de lenguajes tambi en se utiliza la notaci on potencia tal y como
se deni o en la concatenaci on de cadenas, es decir, el lenguaje LLLL se denota como
L
4
.
Estrella de Kleene L
i0
L
i
.
Cierre transitivo L
+
=
i>0
L
i
.
Al aplicar las operaciones asterisco y m as sobre lenguajes, se puede comprobar que
se cumplen las siguientes propiedades:
a) (L
= L
b) L
+
= (L
)L
c) (L
+
)
= L
d) (L
)
+
= L
e) (L
+
)
+
= L
+
f) si L
1
L
2
, entonces L
1
L
2
L
+
1
L
+
2
Dependiendo de si pertenece o no pertenece a un lenguaje L se establece la siguiente
relaci on entre la operaci on m as y la operaci on asterisco:
L
+
= L
, si L y L
+
= L
, si , L.
Diferencia de lenguajes L
1
L
2
= x
[ x L
1
x , L
2
.
Se cumple que si L
1
L
2
entonces L
1
L
2
= puesto que todas las cadenas de L
1
pertenecen a L
2
, y que si L
1
L
2
= entonces L
1
L
2
= L
1
, puesto que ambos
lenguajes no tienen cadenas en com un.
Complemento Sea L un lenguaje, entonces el lenguaje complementario de L, denotado por
L, se dene como
L =
L = x
[ x , L.
Cumple las propiedades
1.
L = L,
2. L
L =
, y
3. L
L = .
Partes de un conjunto Una de las operaciones b asicas sobre conjuntos consiste en calcu-
lar el conjunto de todos los conjuntos que se pueden formar con los elementos del
conjunto original. Esta operaci on se denomina c alculo de las partes de un conjunto
y, si el conjunto se denomina A, se denota como P(A) o 2
A
.
Por ejemplo, si A es el conjunto A = a,b,c entonces el c alculo de las
partes del conjunto A, 2
A
o P(A), es el siguiente:
2
A
= , a, b, c, a, b, a, c, b, c, a, b, c
Una vez establecida la operaci on partes de un conjunto queda por destacar cual es el
resultado al aplicarla a un conjunto con un n umero innito de elementos. Por ejemplo,
dado un alfabeto , consid erese 2
)
1
= (L
1
)
, (L
1
L
2
)
1
= L
1
1
L
1
2
e) (
)
1
=
f) (L
1
)
1
= L
Sustituci on Sean y dos alfabetos. La operaci on de sustituci on se dene como la opera-
ci on consistente en asociar a cada smbolo de un alfabeto, un lenguaje sobre el otro
alfabeto, es decir, f es una operaci on de sustituci on si:
f : 2
[ a , f (a)
.
Esta denici on se puede extender a cadenas de smbolos de la forma recursiva si-
guiente:
T :
, tal que
_
T() = ,
T(xa) = T(x)f (a), a x
.
Para evitar confusiones se utilizar a el mismo smbolo, f, para expresar la operaci on
de sustituci on sobre smbolos que sobre cadenas.
La ultima extensi on que se puede realizar con esta operaci on consiste en aplicarla
sobre lenguajes. Sea L un lenguaje sobre el alfabeto
, es decir, L
, entonces
la operaci on de sustituci on sobre el lenguaje L se dene como f (L) =
xL
f (x).
Homomorsmo Es un caso particular de la operaci on de sustituci on, que consiste en aso-
ciar a cada smbolo de un alfabeto, una cadena sobre otro alfabeto,
h :
[ a , h(a)
.
Esta denici on se puede extender a cadenas y lenguajes de la forma siguiente (se
mantiene el smbolo de funci on h para ambos casos):
h :
, tal que
_
h() = ,
h(xa) = h(x)h(a), a x
.
6 Captulo 1. Introducci on
Sea L
, entonces h(L) =
xL
h(x).
Homomorsmo inverso Sea L
[ h(x) L.
Con estas dos ultimas operaciones se cumple que
1. h(h
1
(L)) L, L
, y
2. L h
1
(h(L)), L
.
Por ejemplo: Sea h(0) = aa y h(1) = bb.
Sea L
1
= ab, ba a, b
. Entonces, h
1
(L
1
) = .
Sea L
2
= aabb, aab, bba a, b
. Entonces, h
1
(L
2
) = 01.
1.3. Introducci on a la T ecnicas B asicas de Demostraci on.
Aunque cada demostraci on es diferente, puesto que cada una se aplica a enunciados
diferentes, s que se pueden establecer una serie de t ecnicas de demostraci on que se aplican
muy frecuentemente en enunciados de teora de aut omatas y lenguajes formales.
La primera de estas t ecnicas es la denominada demostraci on por inducci on. Toda de-
mostraci on por inducci on se compone de tres pasos: el paso base, que hay que demostrar
cierto, y se suele corresponder con la instancia m as sencilla de la propiedad a demostrar, la
hip otesis de inducci on, que se supone cierta, y el paso de inducci on, que hay que demostrar
utilizando la hip otesis de inducci on y el paso base.
Como ejemplo de aplicaci on de esta t ecnica se va a demostrar el siguiente
enunciado:
Proposici on 1.1 Si A es un conjunto nito, entonces el n umero de elementos del con-
junto 2
A
es 2
|A|
siendo [A[ el n umero de elementos del conjunto A, es decir, su cardinal.
Demostraci on:
Paso Base: Sea A un conjunto de cardinalidad 0, es decir, A = . Entonces se
cumple que 2
A
= , por lo tanto, [ 2
A
[ = 1. Tambi en se cumple que
2
|A|
= 2
0
= 1.
Hip otesis de Inducci on: Sea n 0 y sea A un conjunto de cardinalidad n, se
supone cierto que [ 2
A
[= 2
|A|
.
Paso de Inducci on: Sea A un conjunto tal que [A[ = n + 1. Como n 0
entonces el conjunto A contiene al menos 1 elemento, denot emoslo por a.
1.3. Introducci on a la T ecnicas B asicas de Demostraci on. 7
Sea el conjunto B, B = A - a; entonces [B[ = n. Por Hip otesis de induc-
ci on se sabe que al ser B un conjunto con n elementos se cumple [ 2
B
[ =
2
|B|
= 2
n
.
Se puede dividir el conjunto potencia de A en dos partes, aquellos conjun-
tos que no contienen al elemento a, es decir, 2
B
, y por otra parte aquellos
conjuntos que contienen al elemento a, es decir, C=Xa [ X 2
B
,
que se obtienen introduciendo en cada conjunto de 2
B
el elemento a. Esta
divisi on particiona el conjunto 2
A
en dos partes disjuntas que poseen el
mismo n umero de elementos. Por lo que la cardinalidad del conjunto 2
A
ser a:
[ 2
A
[=[ 2
B
[ + [ 2
C
[= 2
n
+ 2
n
= 2
n+1
= 2
|A|
.
c.q.d.
Otra t ecnica de demostraci on muy utilizada consiste en la denominada reducci on al
absurdo, en la que se establece una suposici on inicial y al ser consecuente con ella se llega
a una conclusi on que la refuta. Por lo tanto, esa suposici on inicial no puede ser correcta
puesto que, de ser as, entonces se establecera un enunciado que resulta ser a la vez cierto
y falso.
Como ejemplo de aplicaci on de esta t ecnica se va a demostrar el siguiente
enunciado:
Proposici on 1.2 Dados los lenguajes L
1
y L
2
, L
1
=L
2
si, y s olo si, (L
1
L
2
) (
L
1
L
2
) = .
Demostraci on:
L
1
= L
2
(L
1
L
2
) (
L
1
L
2
) =
Por reducci on al absurdo. Sup ongase que dado cierto que L
1
= L
2
,
entonces (L
1
L
2
) (
L
1
L
2
) ,= . Si esto ocurre entonces o bien
x (L
1
L
2
) o bien x (
L
1
L
2
). En cualquiera de estos casos la
cadena x pertenece a uno de los dos lenguajes y no al otro; por lo tanto,
ambos lenguajes no pueden ser iguales (dieren en al menos una cadena),
lo que contradice la suposici on inicial. Por lo tanto, esa suposici on no
puede ser cierta.
(L
1
L
2
) (
L
1
L
2
) = L
1
= L
2
Por reducci on al absurdo. Sup ongase que dado cierto que (L
1
L
2
)
(
L
1
L
2
) = , entonces L
1
,= L
2
. Si esto ocurre es porque existe al
menos una cadena que pertenece a un lenguaje y no pertenece al otro, de
lo que se deduce que (L
1
L
2
) (
L
1
L
2
) ,= , lo que contradice la
suposici on inicial. Por lo tanto, esa suposici on no puede ser cierta.
c.q.d.
8 Captulo 1. Introducci on
1.4. El Concepto de Gram atica.
Informalmente una gram atica no es m as que un mecanismo para generar las cadenas que
pertenecen a un lenguaje. Este mecanismo dene un conjunto nito de reglas que, aplicadas
a partir de un unico smbolo inicial, son capaces de generar todas sus cadenas.
Por ejemplo, sea la gram atica
S 0S [ 0A
A 1A [ 1
En el ejemplo se observan dos tipos de smbolos; por un lado, S y A que se de-
nominan smbolos auxiliares y, por otro lado, 0 y 1 que se denominan smbolos
terminales. El objetivo es obtener una cadena aplicando producciones, que son
las reglas que nos indican c omo substituir los smbolos auxiliares. Las cade-
nas generadas por una gram atica est an formadas exclusivamente por smbolos
terminales.
As, para obtener una cadena se parte de S (smbolo inicial, start) y se substi-
tuye por una de sus dos producciones. No hay ning un tipo de preferencias entre
ellas, se puede elegir cualquiera:
S 0S
y, a continuaci on, hay que proceder del mismo modo y substituir la nueva apa-
rici on de S por una cualquiera de sus dos producciones:
S 0S 00S 000S
En este punto, se podra optar por la segunda producci on,
S 0S 00S 000S 0000A
y, por lo tanto, ahora habra que continuar substituyendo el auxiliar Apor una
de sus dos producciones,
S 0S 00S 000S 0000A 00001A 000011A 0000111
La cadena 0000111 est a formada exclusivamente por terminales, luego se pue-
de concluir que es una cadena del lenguaje generado por la gram atica. A con-
tinuaci on, se formalizan estos conceptos.
1.4. El Concepto de Gram atica. 9
Denici on 1.1 (Gram atica) Una gram atica es una cu adrupla
G =
A
,
T
, P, S)
donde:
A
es el denominado alfabeto de smbolos auxiliares,
T
es el denominado alfabeto de smbolos terminales,
P es el denominado conjunto de producciones. Es un conjunto de pares ordenados (,
) nito y no vaco,
P = (
1
,
1
), (
2
,
2
), . . . , (
n
,
n
),
con
i
(
A
T
)
+
i
(
A
T
)
, i = 1, 2, . . . , n.
S es un smbolo especial denominado smbolo inicial de la gram atica, S
A
.
Se denota por al conjunto
A
T
y se exige que
A
T
= .
Las producciones se denen formalmente como pares (, ) en los que a se le de-
nomina antecedente de la producci on y a su consecuente. La notaci on habitual de una
producci on (, ) es la expresi on , que ha sido la utilizada en el ejemplo anterior.
Denici on 1.2 Dos cadenas,
1
y
2
se encuentran en relaci on de derivaci on directa
dentro de la gram atica G, denotado por
1
G
2
, cuando
1
=
2
= ( ) P
donde , , y
.
Es decir, esta relaci on expresa c omo conseguir de forma directa una cadena
2
a partir
de otra cadena
1
: realizando la sustituci on de la cadena por la cadena (aplicando una
producci on de la gram atica G) dejando el resto de cadenas sin modicar.
Por ejemplo, en la gram atica anterior las cadenas 000S y 0000A est an en
relaci on de derivaci on directa ya que se puede obtener 0000A de 000S en un
unico paso.
Denici on 1.3 Dos cadenas,
1
y
2
se encuentran en relaci on de derivaci on en n
pasos dentro de la gram atica G, cuando existen n cadenas
1
,
2
, . . . ,
n
, tales
que
1
G
1
G
2
G
. . .
G
n
G
2
.
10 Captulo 1. Introducci on
Esta operaci on se puede generalizar m as a un si no se especica el n umero de pasos. En
este caso se emplea la notaci on
1
G
2
cuando n 0 (es decir, se utilizan cero, una
o m as derivaciones directas) y se emplea la notaci on
1
+
G
2
cuando n > 0 (es decir,
cuando se utilizan una o m as derivaciones directas).
Denici on 1.4 Dada una cadena
G
. Una cadena se denomina sentencia o palabra cuando es una forma
sentencial y todos los smbolos de son smbolos terminales.
En el ejemplo anterior, las cadenas 000S, 0000A y 00001A (entre otras) son
formas sentenciales. Sin embargo, 0000111 ya es una palabra, puesto que s olo
est a formada por terminales.
Denici on 1.5 Se dene el lenguaje asociado a una gram atica como el conjunto de
palabras
L(G) = x
T
[ S
G
x.
En adelante, y siempre que no exista posibilidad de confusi on, se suprimir a la identica-
ci on de la gram atica como subndice en las echas que denotan las relaciones de derivaci on,
tal y como ya se hizo en el desarrollo del ejemplo.
Cu ales son los lenguajes generados por las siguientes gram aticas?
(a) S 0S [ 0A
A 1A [ 1
(b) S 0S [ 1A
A 1A [
(c) S aS [ bA [
A bA [
(d) S aS [ A
A bA [
(e) S 0S1 [ 01 (f) S 0S1 [
(g) S 000S111 [ 000111 (h) S 000S111
0S1 01
(i) S X [ Y
Y aY [ A
A bA [
X 0B1Y
B 0B1 [
Para determinar cu al es el lenguaje generado por una gram atica se tiene que
calcular cu ales son las cadenas que pueden derivarse a partir de su smbolo
inicial. Por ejemplo, en la gram atica del apartado a) se puede proceder de la
siguiente forma:
S 0S 00S 000S . . ., es decir, se puede pensar en aplicar primero
n veces la producci on S 0S, obteni endose
1.5. Clasicaci on Jer arquica de las Gram aticas. 11
S
n
0
n
S . . ., tras lo cual se aplica la producci on S 0A, siendo el
resultado
S
n
0
n
S 0
n
0A . . ., tras lo cual se puede aplicar varias veces la
producci on A 1A,
S
n
0
n
S 0
n
0A 0
n
01A 0
n
011A 0
n
0111A. . .
Si se aplica m veces A 1A y ya, por ultimo, A 1, se llega a
S
n
0
n
S 0
n
0A
m
0
n
01
m
A 0
n
01
m
1.
Por lo tanto el lenguaje generado por la gram atica del apartado a) es el si-
guiente:
L(G
(a)
) = x 0, 1
[ x = 0
n
1
m
, con n, m 1
Se propone como ejercicio la obtenci on de los dem as lenguajes.
Denici on 1.6 Dos gram aticas se denominan equivalentes cuando ambas generan el
mismo lenguaje. Es decir, dadas dos gram aticas G
1
y G
2
entonces G
1
G
2
L(G
1
) = L(G
2
).
Adem as, una gram atica s olo puede generar un lenguaje mientras que un lenguaje puede
ser generado por varias gram aticas (de hecho, hay innitas gram aticas que son capaces de
generar un mismo lenguaje).
Se propone como ejercicio determinar cu ales de las gram aticas anteriores son
equivalentes.
1.5. Clasicaci on Jer arquica de las Gram aticas.
Uno de los posibles criterios para clasicar las gram aticas es hacerlo de acuerdo al for-
mato utilizado para describir al conjunto de producciones. Esta clasicaci on fue establecida
por el ling uista Noam Chomsky.
Gram aticas de tipo 3: Tambi en denominadas regulares. Las hay de dos tipos, seg un sean
el formato de sus producciones:
Lineales a la derecha, con producciones
A aB
A a
12 Captulo 1. Introducci on
Lineales a la izquierda, con producciones
A Ba
A a
En ambos casos, A, B
A
, a
T
.
Hay que destacar que no se permite mezclar en una misma gram atica de tipo 3 pro-
ducciones lineales a la derecha con producciones lineales a la izquierda.
Gram aticas de tipo 2: Tambi en denominadas de contexto libre. Son las gram aticas carac-
terizadas porque su conjunto de producciones presenta el siguiente formato:
A donde A
A
,
.
En las gram aticas de tipo 2 el smbolo A siempre se puede sustituir por la cadena
independientemente del contexto en el que aparezca.
Gram aticas de tipo 1: Tambi en se les conoce como gram aticas sensibles al contexto. Son
aquellas gram aticas cuyas producciones presentan el siguiente formato:
1
A
2
1
2
donde A
A
,
1
,
2
,
+
.
Es decir, s olo se permite la sustituci on del smbolo A por la cadena cuando el
smbolo Aaparezca en el contexto indicado por la producci on, es decir, con la cadena
1
a la izquierda de A y por la cadena
2
a su derecha. N otese la diferencia con las
gram aticas de tipo 2.
Como excepci on a este formato se permite que S , pero si esto sucede entonces
el smbolo inicial S no puede aparecer en el consecuente de ninguna otra producci on
de la gram atica.
Como caracterstica adicional de este tipo de gram aticas se cumple que en cualquier
secuencia de derivaciones, por ejemplo S
1
3
siempre se verica
que [
i+1
[[
i
[. Por este motivo a estas gram aticas tambi en se las denomina
gram aticas crecientes.
Gram aticas de tipo 0: Son aquellas gram aticas caracterizadas porque en sus producciones
no se establece ning un tipo de restricci on respecto a su formato.
Se dice que un lenguaje es de tipo i (i = 3, 2, 1, 0) si, y s olo si, la gram atica de ndice
m as alto que puede generarlo es de tipo i.
Adem as, se verica que si se denomina L
i
a la clase de lenguajes generados por gram ati-
cas de tipo i entonces se observa que, de la denici on de la jerarqua de gram aticas de
Chomsky, se deriva el siguiente enunciado
L
3
L
2
L
1
L
0
.
1.5. Clasicaci on Jer arquica de las Gram aticas. 13
A un se puede anar m as y, en los temas sucesivos, se demostrar a que estas inclusiones
no son propias, es decir, existen lenguajes pertenecientes a la clase L
i
que no pertenecen a
la clase L
i+1
(i = 0,1,2).
Por lo tanto, se cumple el siguiente enunciado
L
3
L
2
L
1
L
0
,
lo que se podra representar de forma gr aca mediante la siguiente gura:
Figura 1.1: Relaciones entre las clases de lenguajes derivadas de la jerarqua de Chomsky.
La jerarqua establecida por Chomsky, adem as de resultar elegante, permite vertebrar
la Teora de la Computaci on clasicando las clases de lenguajes en funci on del n umero de
recursos computacionales necesarios para reconocerlos.
Uno de los objetivos del estudio de los lenguajes formales es asimilar la correspondencia
entre lenguajes formales y problemas computacionales, esto es, cualquier lenguaje formal
se puede asociar a un problema computacional. Desde este punto de vista, reconocer las
cadenas de un lenguaje es equivalente a solucionar un problema. Por lo tanto, la jerarqua de
Chomsky realmente lo que permite es clasicar por orden creciente el poder computacional
necesario para poder resolver distintas clases de problemas. Y uno de los resultados m as
espectaculares de esta disciplina lo supone el hecho de que, hoy por hoy, existen problemas
que no se pueden resolver a un cuando se utilice el modelo con mayor poder computacional,
el correspondiente a los lenguajes de Tipo 0, que modela la capacidad computacional de
cualquier computador existente. Esto es, hay problemas irresolubles, hay lmites para el
concepto de computaci on tal y como lo entendemos.
Tambi en resulta interesante comentar c omo ha ido tomando cuerpo esta teora ya que,
en principio, los principales resultados surgieron de campos muy diversos. Del campo de
la L ogica Matem atica surgi o el modelo de M aquina de Turing, que ocupa el lugar m as al-
to de la jerarqua, ya que es el reconocedor de los lenguajes de Tipo 0. Del campo de la
14 Captulo 1. Introducci on
Autom atica Industrial, surgieron las Aut omatas de Control Finito, que ocupan a su vez el
lugar m as bajo, al corresponderse con los lenguajes de Tipo 3. De avances propios de la In-
form atica, como el desarrollo de los procesadores de lenguaje, surgieron los reconocedores
de lenguajes de Tipo 1.
El propio Noam Chomsky no es inform atico, ni matem atico, ni ingeniero. Como ya
se ha dicho es un ling uista cuya principal aportaci on fue el estudio de las gram aticas y su
clasicaci on como parte de la demostraci on de su teora generativa de las gram aticas
1
.
Sin embargo, todos estos elementos tan diversos en su origen, estructuran el modelo
existente de la Teora de la Computaci on. Los captulos de este libro se han estructurado
de acuerdo a esta jerarqua, estudiando los niveles m as trascendentales para nuestros objeti-
vos; as, en la asignatura se ver an los diferentes modelos abstractos en tres grandes grupos,
correspondientes a los niveles 3, 2 y 0.
1
La teora de Chomsky se basa en la existencia en el ser humano de estructuras gramaticales propias, esto es,
el ser humano nace con la capacidad de aprender un lenguaje porque los esquemas gram aticales forman parte
de su cerebro, de tal forma que, a medida que su experiencia le permite mejorar ese conocimiento, adquiere
completamente la capacidad de comunicarse en un idioma. Esta teora se contrapone a las que asumen que el
cerebro humano es una tabla en blanco al nacer y que s olo mediante su interacci on con el entorno adquiere
el lenguaje.
Captulo 2
Aut omatas Finitos y Expresiones
Regulares
Indice General
2.1. Aut omatas Finitos Deterministas. . . . . . . . . . . . . . . . . . . . 15
2.2. Aut omatas Finitos No Deterministas. . . . . . . . . . . . . . . . . . 19
2.3. Aut omatas Finitos con Movimientos Libres. . . . . . . . . . . . . . . 24
2.4. Expresiones Regulares. . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.5. Otros Tipos de Aut omatas Finitos. . . . . . . . . . . . . . . . . . . . 36
2.5.1. Aut omatas Finitos Bidireccionales . . . . . . . . . . . . . . . . 36
2.5.2. Aut omatas Finitos con Funci on de Salida. . . . . . . . . . . . . 38
2.6. Aplicaciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.6.1. Aplicaci on como ayuda al an alisis l exico en un compilador. . . 40
2.6.2. Especicaci on de par ametros de entrada. . . . . . . . . . . . . 40
2.6.3. Ayuda al dise no de circuitos. . . . . . . . . . . . . . . . . . . . 41
2.1. Aut omatas Finitos Deterministas.
En esta asignatura se estudiar an distintos tipos de m aquinas abstractas con diferente
poder computacional. Cada uno de estos tipos de m aquinas permiten reconocer lenguajes
de distintos tipos y su poder computacional est a asociado a cu al es el tipo de lenguajes que
pueden reconocer.
El primer tipo de m aquinas abstractas que se va a denir son los Aut omatas Finitos, que
permiten reconocer cadenas pertenecientes a Lenguajes Regulares.
Son los aut omatas con menor poder computacional y para reconocer los lenguajes s olo
disponen de una cinta de entrada (en la que se escribe una cadena), de un cabezal lector
(que lee smbolos de uno en uno y de izquierda a derecha) y de un conjunto nito de reglas
15
16 Captulo 2. Aut omatas Finitos y Expresiones Regulares
que especica c omo actuar ante cada smbolo ledo de la cinta de entrada. Gr acamente se
puede representar por medio de la siguiente gura:
Cinta de entrada
Control
Finito
Cabezal
de Lectura
a b b b a a
Figura 2.1: Modelo fsico de un Aut omata Finito.
Denici on 2.1 Un aut omata nito determinista, AFD, es una quntupla A =
, Q, f, q
0
, F) donde:
es el alfabeto de entrada,
Q es un conjunto nito y no vaco de estados,
f es una funci on total denida como
f : Q Q,
q
0
es el denominado estado inicial, q
0
Q,
F es el conjunto de estados denominados nales, F Q.
La forma m as generalizada de representaci on de un AFD es mediante un grafo dirigido.
En este grafo los nodos se corresponden con los estados de Q y los arcos representan valores
de la funci on de transici on f, de forma que si f(q
s
, a) = q
t
entonces desde el nodo q
s
parte
un arco etiquetado con el smbolo a hacia el nodo q
t
. Los estados de F se representan
mediante nodos con doble crculo y el estado inicial se suele representar con una echa de
entrada al nodo que lo representa.
Ejemplo:
Sea A el siguiente AFD
Q = q
0
, q
1
, q
2
F = q
0
, q
1
= 0, 1 q
0
Q, es el estado inicial
2.1. Aut omatas Finitos Deterministas. 17
en el que la funci on de transici on f se dene como:
f 0 1
q
0
q
0
q
1
q
1
q
2
q
1
q
2
q
2
q
2
Este AFD se puede representar mediante el siguiente grafo:
q
0
1 0 0,1
q
2
q
1
1 0
Para poder determinar cu al es el conjunto de cadenas aceptadas por un aut omata se
necesita estudiar cu al es su comportamiento ante cadenas de smbolos. Se dene f
como
la extensi on de la funci on de transici on que se aplica a cadenas de smbolos del alfabeto,
f
: Q
Q
a)f
(q, ) = q, q Q
b)f
, a
De esta forma, en el aut omata nito del ejemplo anterior
f
(q
0
, 011) = f(f(f(f
(q
0
, ), 0), 1), 1) = q
1
.
Para simplicar la notaci on se utiliza el mismo smbolo de funci on f para referirse tanto
a f como a f
.
Denici on 2.2 Se dene el lenguaje aceptado por un AFDA = , Q, f, q
0
, F) como
el conjunto de cadenas tales que despu es de ser analizadas el AFD se encuentra en un
estado nal; es decir,
L(A) = x
[ f(q
0
, x) F
Ejemplo:
Qu e lenguajes reconocen los AFD de la gura 2.2?
EL AFD del caso (a) reconoce las cadenas que tienen el formato (10)
n
con
n 1, es decir L
a
= 10, 1010, 101010, 10101010, . . ..
EL AFD del caso (b) acepta las cadenas que presentan el formato bca
n
y las
cadenas del formato ac
m
, con n, m 0.
18 Captulo 2. Aut omatas Finitos y Expresiones Regulares
Figura 2.2: Qu e lenguajes reconocen estos AFD?
El AFD del caso (c) resulta m as difcil de describir de forma general. Algunas
de las cadenas que acepta son
L
c
= acacbdbcaca, aaacaaacccbdddddbcaaaca, . . ..
Aquellos estados que no sean nales y que, adem as, una vez que son alcanzados el AFD
permanece en ellos, sean cuales sean los smbolos que se lean de la entrada, se denominan
estados sumideros. Como convenio no suelen mostrarse en el grafo para as poder minimizar
el n umero de arcos del grafo y simplicar su representaci on gr aca.
Volviendo al ejemplo anterior, en el AFD (a), el estado q
3
es un estado sumide-
ro; por lo tanto, este AFD puede representarse de la forma:
En el AFD del caso (b), el estado q
3
tambi en es un sumidero y el nodo corres-
pondiente y los arcos que se dirigen a el podran eliminarse.
Para nalizar, se presenta como ejemplo un conocido problema de planicaci on y c omo
resolverlo utilizando un AFD:
2.2. Aut omatas Finitos No Deterministas. 19
Tres canbales y tres misioneros han de cruzar un ro. S olo disponen de una
barca en la que caben como m aximo dos personas. C omo han de cruzar el ro
de forma que nunca haya m as canbales que misioneros en cualquiera de las
orillas?
Para solucionar el problema se identica cada una de las posibles situaciones
viables en las que se pueden encontrar canbales y misioneros como un estado.
En cada estado se representar a los canbales y misioneros que hay en cada
orilla, as como la posici on de la barca. As, para indicar que hay 3 misioneros
y 1 canbal en una orilla (MMMC) y 2 canbales y la barca en la otra orilla
(CCB), se emplea la siguiente notaci on:
Para indicar qui en ocupa la barca (transiciones entre estados), se emplea la si-
guiente notaci on: c para canbal, 2m dos misioneros, 2c dos canbales y mc un
misionero y un canbal. Con esta notaci on, el conjunto de innitas soluciones
que tiene este problema se puede representar como cualquiera de los caminos
que conducen de la situaci on inicial a la nal en el siguiente AFD:
El AFD dise nado para el problema de los misioneros y los canbales se puede relacionar
con el mostrado en el apartado (c) del ejemplo anterior; el lenguaje L
c
se puede asociar a
las soluciones de este problema bajo la interpretaci on a por 2c, c por c, b por 2m y d por
mc. Por lo tanto, realizando una interpretaci on adecuada a los smbolos y los estados del
AFD se ha podido establecer el lenguaje aceptado por este AFD. En general, el problema
de encontrar una interpretaci on adecuada no es sencillo de solucionar y plantea una serie de
cuestiones de orden los oco/matem atico que queda fuera del alcance de este tema.
2.2. Aut omatas Finitos No Deterministas.
Un Aut omata Finito No Determinista, que se denotar a como AFN, se caracteriza porque
en un estado puede haber m as de una transici on posible para un mismo smbolo de entrada.
Es decir, [ f(q, a) [ 1 para alg un q Q y para alg un smbolo a .
20 Captulo 2. Aut omatas Finitos y Expresiones Regulares
Denici on 2.3 Un AFN es una quntupla A = , Q, f, q
0
, F) donde:
es el alfabeto de entrada,
Q es un conjunto nito y no vaco de estados,
f es una funci on denida de la siguiente forma
f : Q 2
Q
,
q
0
es el denominado estado inicial, q
0
Q,
F es el conjunto de estados denominados nales, F Q.
Al igual que en el caso de los AFD, para poder determinar cu al es el lenguaje reconocido
por este tipo de aut omata es preciso conocer cu al es su comportamiento ante conjuntos de
estados y ante cadenas de smbolos. Para ello se dene una extensi on de la funci on de
transici on del aut omata.
Denici on 2.4 Sea P Q, entonces f
: 2
Q
2
Q
se dene como
f
(P, a) =
_
qP
f(q, a).
Sea P Q, entonces se dene f
: 2
Q
2
Q
mediante la regla recursiva:
1)f
(P, ) = P,
2)f
(P, ax) = f
(f
, a .
Para simplicar la notaci on, en adelante se utilizar a el mismo smbolo de funci on, f,
para referirse tanto a f como a f
y a f
.
Ejemplo:
Sea A el siguiente AFN
entonces f(q
0
, 01) = f(f(q
0
, 0), 1) = f(q
0
, q
1
, 1) = q
0
, q
2
.
2.2. Aut omatas Finitos No Deterministas. 21
Una vez descritas estas operaciones, ya se est a en condiciones de poder describir cu al
es el conjunto de cadenas que este tipo de aut omata es capaz de reconocer.
Denici on 2.5 Se dene el lenguaje aceptado por un AFN A = , Q, f, q
0
, F) como
el conjunto de cadenas tales que despu es de ser analizadas, el AFNha podido alcanzar
al menos un estado nal, es decir,
L(A) = x
[ f(q
0
, x) F ,= .
En el aut omata del ejemplo anterior, L(A) es el conjunto de cadenas cuyo
pen ultimo smbolo ledo de izquierda a derecha es un 0.
Un sencillo an alisis de este tipo de aut omata permite establecer que si en un aut omata
de este tipo no hay ninguna transici on tal que para un mismo smbolo se disponga de m as
de un estado destino diferente, entonces este aut omata es determinista. Es decir, los AFD
se pueden ver como casos particulares de los AFN. Entonces, si se denota por L(AFD) al
conjunto de todos los lenguajes que se pueden reconocer con aut omatas nitos deterministas
y se denota por L(AFN) al conjunto de todos los lenguajes que se pueden reconocer con
aut omatas nitos no deterministas, resulta que L(AFD) L(AFN).
La cuesti on que se plantea es si la inclusi on contraria tambi en se cumple, es decir, si
para cualquier AFN existe un AFD que reconozca exactamente el mismo lenguaje que el
AFN. El siguiente teorema establece que as es, lo que permite concluir que
L(AFD) = L(AFN).
Teorema 2.1 Sea L un lenguaje aceptado por un AFN, entonces existe un AFD que
tambi en acepta L.
Demostraci on:
Sea A = , Q, f, q
0
, F) un AFN tal que L(A) = L, entonces se dene el siguiente AFD
A
= , Q
, f
, q
0
, F
) donde
Q
es isomorfo al conjunto 2
Q
; es decir, el conjunto de estados q
i
, . . . , q
j
2
Q
tiene asociado un estado denominado [q
i
, . . . , q
j
] en Q
,
q
0
= [q
0
],
F
= [q
i
, . . . , q
j
] Q
[ q
i
, . . . , q
j
F ,= , y
la funci on de transici on f
es
f
([q
i
, . . . , q
j
], a) = [p
r
, . . . p
s
] f(q
i
, .., q
j
, a) = p
r
, . . . p
s
.
22 Captulo 2. Aut omatas Finitos y Expresiones Regulares
Una vez denido este AFD A
). Para ello se va a
demostrar que el comportamiento de ambos aut omatas es similar cuando analizan la misma
cadena de entrada x, es decir,
x
: (f(q
0
, x) = P) (f
(q
0
, x) = [P]).
El m etodo para demostrar este enunciado consiste en aplicar inducci on respecto a la
longitud de la cadena x.
Paso Base: [ x [= 0, es decir, x = . Para esta cadena, por denici on de f se cumple
f(q
0
, ) = q
0
, y, por denici on de f
(q
0
, ) = q
0
=
[q
0
]. Por lo tanto, se cumple el enunciado.
Hip otesis de Inducci on: x
(q
0
, x) =
[P].
Paso de Inducci on: Sea y = xa, tal que x
[ x [ n a .
Entonces, f(q
0
, y) = f(q
0
, xa) = f(f(q
0
, x), a) = f(P, a). Como por hip otesis de
inducci on, [P] = f
(q
0
, x), en el AFDA
se cumple que f
([P], a) = f
(f
(q
0
, x), a) =
f
(q
0
, xa) = f
(q
0
, y).
Por lo tanto, ambos aut omatas presentan un comportamiento semejante ante las mis-
mas cadenas de entrada. Para completar la demostraci on basta con observar que reconocen
exactamente el mismo conjunto de cadenas:
Si x L(A) f(q
0
, x) = P, P F ,= f
(q
0
, x) = [P] F
.
Si x L(A
) f
(q
0
, x) = [P], [P] F
f(q
0
, x) = P, P F ,= .
c.q.d.
Ejemplo:
Calcular un AFD que reconozca el mismo lenguaje que el siguiente AFN,
La demostraci on del teorema anterior proporciona un m etodo para calcular
tal dicho AFD. En esta demostraci on dado un AFN, que en este caso es
A = 0, 1, q
0
, q
1
, q
2
, f, q
0
, q
2
)
2.2. Aut omatas Finitos No Deterministas. 23
se construye el AFD A
= 0, 1, Q
, f
, q
0
, F
) donde
Q
= [q
0
], [q
1
], [q
2
], [q
0
, q
1
], [q
0
, q
2
], [q
1
, q
2
], [q
0
, q
1
, q
2
], [],
q
0
= [q
0
],
F
= [q
2
], [q
0
, q
2
], [q
1
, q
2
], [q
0
, q
1
, q
2
]
y tal que la relaci on entre f y f
([P
1
], a) = [P
2
].
Por lo tanto, las transiciones del AFD se construyen de la siguiente forma:
f
([q
0
], 0) = [q
0
, q
1
], ya que f(q
0
, 0) = q
0
, q
1
([q
0
], 1) = [q
0
], ya que f(q
0
, 1) = q
0
([q
1
], 0) = [q
2
], ya que f(q
1
, 0) = q
2
([q
1
], 1) = [q
0
, q
2
], ya que f(q
1
, 1) = q
0
, q
2
,
f
([q
2
], 0) = [] f
([q
2
], 1) = []
f
([q
0
, q
1
], 0) = [q
0
, q
1
, q
2
] f
([q
0
, q
1
], 1) = [q
0
, q
2
]
f
([q
0
, q
2
], 0) = [q
0
, q
1
] f
([q
0
, q
2
], 1) = [q
0
]
f
([q
1
, q
2
], 0) = [q
2
] f
([q
1
, q
2
], 1) = [q
0
, q
2
]
f
([q
0
, q
1
, q
2
], 0) = [q
0
, q
1
, q
2
] f
([q
0
, q
1
, q
2
], 1) = [q
0
, q
2
]
f
([], 0) = [] f
([], 1) = []
Por lo tanto, el AFD equivalente es el siguiente:
Este m etodo es v alido pero, adem as de costoso, produce un gran n umero de estados
inalcanzables desde el estado inicial (en el ejemplo anterior, los estados [q
1
], [q
2
], [q
1
, q
2
] y
[] son inalcanzables) y, por lo tanto, innecesarios.
La operaci on de calcular un AFD a partir de un AFN es muy com un y, por ello, se han
desarrollado m etodos alternativos. El m as sencillo y eciente es el siguiente:
24 Captulo 2. Aut omatas Finitos y Expresiones Regulares
Mnimo n umero de pasos para construir un AFD a partir de un AFN
1. Se construye una tabla donde cada columna est a etiquetada con un smbolo del alfa-
beto de entrada y cada la se etiqueta con un conjunto de estados.
2. La primera la se etiqueta con q
0
, y en cada entrada de la tabla (q
0
, a
i
) se almacena
f(q
0
, a
i
) = p
1
, . . . , p
n
= P.
3. Se etiqueta cada la con cada uno de los conjuntos P que no tengan asociada una la
en la tabla (es decir, con cada uno de los conjuntos P que aparezcan por primera vez
en la tabla) y se completa cada una de estas las con el correspondiente f(P, a
i
).
4. Se realiza el paso (3) hasta que no haya en la tabla conjuntos P sin las asociadas.
5. Se asocia a cada conjunto P que aparezca en la tabla un estado en el nuevo AFD y
aquellos que tengan entre sus componentes alg un estado nal del AFN se conside-
rar an estados nales en el AFD.
Al aplicar este m etodo al aut omata anterior se obtiene el siguiente AFD
f 0 1
q
0
q
0
, q
1
q
0
q
0
, q
1
q
0
, q
1
, q
2
q
0
, q
2
q
0
, q
1
, q
2
q
0
, q
1
, q
2
q
0
, q
2
q
0
, q
2
q
0
, q
1
q
0
Al conjunto q
0
se le denomina [q
0
], al q
0
, q
1
se le denomina [q
0
, q
1
], al
q
0
, q
1
, q
2
se le denomina [q
0
, q
1
, q
2
] y a q
0
, q
2
se le denomina [q
0
, q
2
].
Como los conjuntos q
0
, q
1
, q
2
y q
0
, q
2
contienen estados nales del AFN
entonces los estados [q
0
, q
1
, q
2
] y [q
0
, q
2
] ser an estados nales en el AFD.
2.3. Aut omatas Finitos con Movimientos Libres.
Un Aut omata Finito con Movimientos Libres, que se denotar a habitualmente como
AF, se caracteriza porque cada transici on est a etiquetada con uno o m as smbolos del
alfabeto de entrada o bien con la cadena vaca.
2.3. Aut omatas Finitos con Movimientos Libres. 25
Denici on 2.6 Un aut omata nito con movimientos libres, AF, es una quntupla A =
, Q, f, q
0
, F) donde:
es el alfabeto de entrada,
Q es un conjunto nito y no vaco de estados,
f es una funci on denida de la siguiente forma
f : Q( ) 2
Q
,
q
0
es el denominado estado inicial, q
0
Q,
F es el conjunto de estados denominados nales, F Q.
Para poder determinar cu al es el comportamiento de este tipo de aut omata ante una
cadena de entrada se necesita establecer una serie de deniciones previas.
Denici on 2.7 Se denomina clausura(q), q Q, al conjunto de estados ac-
cesibles desde el estado q utilizando s olo transiciones . Adem as, se cumple que
q clausura(q).
Denici on 2.8 Se denomina CLAUSURA(P), siendo P un conjunto de estados,
P 2
Q
, al conjunto de estados formado por todas las clausuras de todos los esta-
dos que forman P,
CLAUSURA(P) =
_
pP
clausura(p).
Ejemplo:
clausura(q
0
) = q
0
, q
1
, q
2
clausura(q
1
) = q
1
, q
2
clausura(q
2
) = q
2
2
Q
de la forma siguiente:
1)
f(q, ) = clausura(q)
2) x
, a , q Q :
f(q
0
, ab) = clausura(P
1
)
P
1
= p Q [ r
f(q
0
, a) p f(r, b)
f(q
0
, a) = clausura(P
2
)
P
2
= p Q [ r
f(q
0
, ) p f(r, a)
f(q
0
, ) = clausura(q
0
) = q
0
, q
1
, q
2
,
P
2
= p Q [ r q
0
, q
1
, q
2
p f(r, a) = q
0
,
f(q
0
, a) = clausura(P
2
) = clausura(q
0
) = q
0
, q
1
, q
2
,
P
1
= p Q [ r q
0
, q
1
, q
2
p f(r, b) = q
1
,
f(q
0
, ab) = clausura(P
1
) = clausura(q
1
) = q
1
, q
2
y
f
: 2
Q
( ) 2
Q
, f
(P, a) =
pP
f(p, a)
: 2
Q
2
Q
,
f
(P, x) =
pP
f(p, x)
Para simplicar la notaci on se utiliza el mismo smbolo de funci on para referirse tanto
a f como a f
,
f y
f
.
2.3. Aut omatas Finitos con Movimientos Libres. 27
Estas deniciones previas ya permiten establecer cu al es el lenguaje aceptado por un
AF A.
Denici on 2.10 Se dene el lenguaje aceptado por un AF A, A = , Q, f, q
0
, F),
como el conjunto de cadenas tales que, despu es de ser analizadas, el AF ha podido
alcanzar al menos un estado nal, es decir,
L(A) = x
[ f(q
0
, x) F ,=
De la denici on de un AF se sigue que un AFN es un caso particular de AF en el
que no existen transiciones . Por lo tanto, si se denota por L(AF) al conjunto de todos los
lenguajes que pueden ser reconocidos por AF, entonces L(AFN) L(AF).
La cuesti on que se plantea a continuaci on es si la inclusi on contraria tambi en se cumple;
es decir, si para cualquier AF existe un AFNque reconozca exactamente el mismo lenguaje
que el AF.
Teorema 2.2 Sea L un lenguaje aceptado por un AF, entonces existe un AFN que
tambi en acepta L.
Demostraci on:
Sea A = , Q, f, q
0
, F) un AF tal que L(A) = L, entonces se dene el siguiente AFN
A
= , Q, f
, q
0
, F
) donde
f
(q, a) =
f(q, a), q Q, a
F
=
_
F q
0
si clausura(q
0
) F ,=
F en otro caso
Para demostrar que realmente L(A) = L(A
) se demostrar a que f
(q
0
, x) =
f(q
0
, x),
por inducci on en la longitud de x.
Paso Base: [ x [= 1, es decir, x = a . Para esta cadena, por denici on de f
se cumple
f
(q
0
, a) =
f(q
0
, a). Por lo tanto, se cumple el enunciado.
Se observa que la inducci on se ha comenzado en i = 1 y no con i = 0. Este ser a un
caso particular que se comentar a m as adelante.
Hip otesis de Inducci on: x
, [ x [ n, se cumple f
(q
0
, x) =
f(q
0
, x).
Paso de Inducci on: Sea y = xa, tal que x
[ x [ n a , entonces f
(q
0
, y) =
f
(q
0
, xa) = f
(f
(q
0
, x), a).
28 Captulo 2. Aut omatas Finitos y Expresiones Regulares
Por hip otesis de inducci on, f
(q
0
, x) =
f(q
0
, x) = P, luego
f
(f
(q
0
, x), a) = f
(P, a) =
_
pP
f
(q
0
, a) =
_
pP
f(q
0
, a) =
f(P, a) =
f(
f(q
0
, x), a) =
f(q
0
, y).
Por lo tanto, x
, [ x [ 1, se cumple que f
(q
0
, x) =
f(q
0
, x) y entonces, si
x L(A) resulta que x L(A
) y viceversa.
Pero, qu e ocurre si L(A)? En este caso q
0
F y por lo tanto q
0
F
. Y si
L(A
)? Entonces q
0
F
=
f a b c
q
0
q
0
, q
1
, q
2
q
1
, q
2
q
2
q
1
q
1
, q
2
q
2
q
2
q
2
El AFN es el siguiente:
q q q
a b c
b, c a, b
a, b, c
0 1 2
Tambi en se puede obtener un AFD directamente de un AF sin m as que adap-
tar el m etodo del paso del AFN al AFD para esta nueva situaci on:
2.4. Expresiones Regulares. 29
f a b c
p
0
= q
0
q
0
, q
1
, q
2
q
1
, q
2
q
2
p
1
= q
0
, q
1
, q
2
q
0
, q
1
, q
2
q
1
, q
2
q
2
p
2
= q
1
, q
2
q
1
, q
2
q
2
p
3
= q
2
q
2
p
4
=
Por lo tanto, el AFD equivalente es el siguiente (el estado p
4
es un estado
sumidero):
0 1 2
p p p
p
3
4
p
b
a b
a
c c
a
c
c
b
a, b
a, b, c
2.4. Expresiones Regulares.
Las expresiones regulares permiten denotar lenguajes regulares y su estudio resulta de
gran inter es, tanto por su capacidad de especicaci on mediante un n umero reducido de
operadores como por sus aplicaciones pr acticas en la construcci on de analizadores l exicos.
Denici on 2.11 Dado el alfabeto , una expresi on regular ser a el resultado de la
aplicaci on de algunas (o todas) de las siguientes reglas un n umero nito de veces:
1. El smbolo es una expresi on regular y denota el lenguaje vaco,
2. El smbolo es una expresi on regular y denota el lenguaje ,
3. Si a entonces a es una expresi on regular que denota el lenguaje a,
4. Si y son expresiones regulares entonces
a) + es una expresi on regular que denota la uni on de los lenguajes de-
notados por y por .
b) es una expresi on regular que denota la concatenaci on del lenguaje
denotado por con el denotado por .
c)
) = a
i
[ i 0.
Si = a
y = b
) = a
i
b
j
[ i, j 0.
Si = a entonces L(
) = L(a
a) = L(a
)L(a) = a
i
[ i 0a =
a
i
[ i 1.
Si = a entonces L(
) = L(aa
) = L(a)L(a
) = aa
i
[ i 0 =
a
i
[ i 1. Por lo tanto, L(a
a) = L(aa
).
El ultimo ejemplo sirve para ilustrar la cuesti on de qu e se entiende por expresiones
regulares equivalentes: y son dos expresiones regulares equivalentes si L() = L().
En general se va a denotar por tanto a la expresi on regular como al lenguaje que
denota, y adem as, para simplicar su escritura se establece una jerarqua de operadores para
evaluar una expresi on regular: primero se realizan las clausuras, luego las concatenaciones
y por ultimo las uniones.
As, por ejemplo, la expresi on regular a(a)
se puede escribir aa
, y () + se puede
escribir +.
Teorema 2.3 (Propiedades de las Expresiones Regulares) Las siguientes relacio-
nes son ciertas:
1) + ( +) = ( +) + = + +
2) + = +
3) + = + =
4) () = () =
5) = =
6) + = ( +); + = ( +)
7) = =
8) + = ;
= + +
2
+. . . +
n
+
9)
=
10)
= ;
+
=
11)
12) (
13)
=
+
14)
= + +
2
+. . . +
n
+
n+1
15)
= +
= +
+
16)
= ( +)
n1
(
n
)
17) ( +)
= (
= (
18) ( +)
+ =
19) ()
= ()
20) (
= ( +)
21) (
= ( +)
+
22) (
= ( +)
+
2.4. Expresiones Regulares. 31
En las propiedades anteriores el signo = debe interpretarse como equivalencia; es decir,
al expresar que + = + se arma que el lenguaje denotado por la expresi on regular
+ es equivalente al denotado por la expresi on regular +.
Teorema 2.4 (de An alisis) Sea L un lenguaje aceptado por un AFD, entonces existe
una expresi on regular que lo denota.
Demostraci on:
Sea A = , Q, f, q
1
, F) un AFDtal que L(A) = L. Sea Q = q
1
, q
2
, . . . , q
n
. Asociado
a este AFD se pueden denir los siguientes conjuntos de cadenas:
k, 0 k n,
L
k
ij
= x
[ f(q
i
, x) = q
j
y, z
+
: x = yz, f(q
i
, y) = q
s
s k
Es decir, el conjunto L
k
ij
denota al conjunto de cadenas que partiendo del estado q
i
al-
canzan el estado q
j
despu es de haber analizado todos sus smbolos y que, adem as, cualquier
estado intermedio por el que se pasa tiene un ndice menor que k.
El conjunto L
k
ij
se puede calcular directamente de la denici on, o bien mediante el
m etodo propuesto por la siguiente denici on recursiva:
1.
L
0
ij
= a [ f(q
i
, a) = q
j
si i ,= j
L
0
ij
= a [ f(q
i
, a) = q
j
si i = j
2. Sup ongase construido el conjunto L
k1
ij
. El conjunto L
k
ij
estar a formado por aquellas
cadenas que pasan por estados cuyos ndices sean menores que k (L
k1
ij
) junto con
aquellas que pasan por el estado k y por estados cuyos ndices son inferiores a k.
Y estas cadenas son aquellas que partiendo de q
i
van a q
k
, L
k1
ik
, las que desde q
k
vuelven a q
k
, L
k1
kk
, y las que desde q
k
van a q
j
, L
k1
kj
:
Por lo tanto, L
k
ij
= L
k1
ij
L
k1
ik
(L
k1
kk
)
L
k1
kj
.
32 Captulo 2. Aut omatas Finitos y Expresiones Regulares
Mediante esta nomenclatura, entonces, se puede caracterizar el conjunto de cadenas
aceptadas por un AFD como aquellas cadenas que partiendo de su estado inicial, q
1
, llegan
a un estado nal pasando por cualquier estado intermedio, es decir,
L(A) =
_
qjF
L
n
1j
.
Por lo tanto, si a cada conjunto de cadenas L
k
ij
se le puede asociar una expresi on regular,
r
k
ij
, entonces tambi en se puede asociar una expresi on regular al lenguaje aceptado por un
AFD.
Esta asociaci on se puede realizar por inducci on en el valor de k:
Paso Base: r
0
ij
es un conjunto nito de cadenas, cada una de las cuales o es o est a formada
por un unico smbolo,
r
0
ij
=
f(qi,a)=qj
a [ a si i ,= j
r
0
ij
= +
f(qi,a)=qj
a [ a si i = j
Hip otesis de Inducci on: Sup ongase construida la expresi on regular r
k1
ij
asociada al con-
junto L
k1
ij
.
Paso de Inducci on: C omo construir la expresi on regular r
k
ij
asociada al conjunto L
k
ij
? Se
sabe que
L
k
ij
= L
k1
ij
L
k1
ik
(L
k1
kk
)
L
k1
kj
,
por lo tanto, como cada L
k1
ts
tiene asociada la expresi on regular r
k1
ts
entonces
r
k
ij
= r
k1
ij
+r
k1
ik
(r
k1
kk
)
r
k1
kj
.
Como esta expresi on es el resultado de unir, concatenar y realizar la clausura de un
n umero nito de expresiones regulares, entonces r
k
ij
tambi en es una expresi on regular.
Por lo tanto,
L(A) =
qjF
r
n
1j
.
c.q.d.
Ejemplo:
Calcular la expresi on regular asociada al AFD representado en la gura 2.3.
Hay que calcular r
3
12
= r
2
12
+r
2
13
(r
2
33
)
r
2
32
. Por observaci on del AFDse pueden
calcular directamente los r
0
ij
:
r
1
12
= r
0
12
+r
0
11
(r
0
11
)
r
0
12
= 0 +
0 = 0 r
1
32
= r
0
32
+r
0
31
(r
0
11
)
r
0
12
= 0 +
0 = 0
r
1
13
= r
0
13
+r
0
11
(r
0
11
)
r
0
13
= 1 +
1 = 1 r
1
23
= r
0
23
+r
0
21
(r
0
11
)
r
0
13
= 1 +
1 = 1
r
1
33
= r
0
33
+r
0
31
(r
0
11
)
r
0
13
= (1 +) +
1 = (1 +)
r
1
22
= r
0
22
+r
0
21
(r
0
11
)
r
0
12
= (0 +) +
0 = (0 +)
2.4. Expresiones Regulares. 33
Figura 2.3: Ejemplo del c alculo de expresi on regular asociada a un AFD.
Por lo tanto,
r
2
12
= r
1
12
+r
1
12
(r
1
22
)
r
1
22
= 0 + 0(0 +)
(0 +) = 0( + (0 +)
(0 +) = 0( + 0)
= 00
r
2
13
= r
1
13
+r
1
12
(r
1
22
)
r
1
23
= 1 + 0(0 +)
1 = ( + 0(0 +)
)1 = ( + 00
)1 = 0
1
r
2
33
= r
1
33
+r
1
32
(r
1
22
)
r
1
23
= (1 +) + 0(0 +)
1 = + 1 + 00
1 = + ( + 00
)1 = + 0
1
r
2
32
= r
1
32
+r
1
32
(r
1
22
)
r
1
22
= 0 + 0(0 +)
(0 +) = 0( + 0
) = 00
Entonces,
r
3
12
= 00
+ 0
1( + 0
1)
00
= ( + 0
1( + 0
1)
)00
=
( + 0
1(0
1)
)00
= (0
1)
00
= (0
1)
0 = (0 + 1)
0
Teorema 2.5 (de Sntesis) Sea r una expresi on regular, entonces existe un AF A tal
que L(A) = r.
Demostraci on:
Hay que demostrar que para cualquier expresi on regular r siempre se puede construir un
AF que sea capaz de reconocer lenguaje que denota r. Una forma de calcular el AF ade-
cuado a cada expresi on regular consiste en aplicar inducci on sobre el n umero de operadores
presentes en la expresi on regular.
Para simplicar el proceso de demostraci on se asume que todos los AF contienen un
unico estado nal que no posee transiciones de salida, es decir, F = q
f
y f(q
f
, a) =
a .
Paso Base: En r no hay operadores regulares. Entonces r s olo puede ser , , a , a los
que se puede asociar, respectivamente, los AF que se muestran en al gura 2.4.
Hip otesis de Inducci on: Sup ongase que para cualquier expresi on regular con un n umero
de operadores menor o igual que n se cumple que existe un AF que la reconoce.
34 Captulo 2. Aut omatas Finitos y Expresiones Regulares
Figura 2.4: AFs asociados a , y a .
Paso de Inducci on: Sea r con n+1 operadores, entonces r se puede escribir como r =
r
1
+ r
2
, r = r
1
r
2
o r = r
1
, donde tanto r
1
como r
2
son expresiones regulares que
contienen n o menos operadores regulares.
Se estudiar a cada una de las tres posibles situaciones:
r = r
1
+r
2
: Como r
1
y r
2
tienen n o menos operadores regulares existen, por H.I.,
dos AF A
1
y A
2
tales que L(A
1
) = r
1
y L(A
2
) = r
2
. Estos aut omatas apare-
cen esquematizados en la gura 2.5. :
Figura 2.5: L(A
1
) = r
1
y L(A
2
) = r
2
.
El AF de la gura 2.6 reconoce L(A
1
) L(A
2
), por lo tanto r = r
1
+r
2
.
Figura 2.6: AF A tal que L(A) = r
1
+r
2
.
La denici on formal de este aut omata es la siguiente:
Sea A
1
=
1
, Q
1
, f
1
, q
01
, q
f1
) y A
2
=
2
, Q
2
, f
2
, q
02
, q
f2
), tales que
Q
1
Q
2
= .
Se dene el AF
A =
1
2
, Q
1
Q
2
q
0
, q
f
, f, q
0
, q
f
)
en el que la funci on de transici on f se dene como:
f(q
0
, ) = q
01
, q
02
f(q, a) = f
1
(q, a), q Q
1
, a
1
f(q, a) = f
2
(q, a), q Q
2
, a
2
f(q
f1
, ) = f(q
f2
, ) = q
f
r = r
1
r
2
: Como r
1
y r
2
tienen n o menos operadores regulares existen, por H.I., dos
AF A
1
y A
2
tales que L(A
1
) = r
1
y L(A
2
) = r
2
. Estos aut omatas aparecen
esquematizados en la gura 2.7.
2.4. Expresiones Regulares. 35
Figura 2.7: L(A
1
) = r
1
y L(A
2
) = r
2
.
Figura 2.8: AF A tal que L(A) = r
1
r
2
.
Si se permite la transici on del estado nal nal de A
1
al inicial del aut omata A
2
,
se obtiene el AF de la gura 2.8, que reconoce L(A
1
)L(A
2
) y, por lo tanto,
r = r
1
r
2
.
Para denir formalmente este aut omata, se parte de la denici on de los aut oma-
tas A
1
=
1
, Q
1
, f
1
, q
01
, q
f1
) y A
2
=
2
, Q
2
, f
2
, q
02
, q
f2
) tal que Q
1
Q
2
= . Entonces, se dene el AF
A =
1
2
, Q
1
Q
2
, f, q
01
, q
f2
)
en el que la funci on de transici on f se dene como:
f(q, a) = f
1
(q, a), q Q
1
q
f1
, a
1
f(q
f1
, ) = q
02
f(q, a) = f
2
(q, a), q Q
2
, a
2
r = r
1
: Como r
1
tiene n o menos operadores regulares existe, por H.I., un AF A
1
tal que L(A
1
) = r
1
:
Figura 2.9: AF A
1
tal que L(A
1
) = r
1
.
El AF de la gura 2.10, reconoce [L(A
1
)]
, por lo tanto r = r
1
.
En este caso, para la denici on formal, se parte del aut omata A
1
=
1
, Q
1
, f
1
, q
01
, q
f1
).
Y se dene el AF
A =
1
, Q
1
q
0
, q
f
, f, q
0
, q
f
)
en el que la funci on de transici on f se dene como:
f(q
0
, ) = f(q
f1
, ) = q
01
, q
f
f(q, a) = f
1
(q, a), q Q
1
q
f1
, a
1
c.q.d.
36 Captulo 2. Aut omatas Finitos y Expresiones Regulares
Figura 2.10: AF A tal que L(A) = r
1
.
2.5. Otros Tipos de Aut omatas Finitos.
Adem as de las extensiones vistas (no deterministas, deterministas, movimientos libres,
expresiones regulares) existen otra serie de modelos de m aquinas virtuales con una capaci-
dad de c alculo equivalente a los aut omatas nitos. De entre estos aut omatas se van a exponer
las principales caractersticas de los aut omatas nitos bidireccionales y de los aut omatas con
funci on de salida (Mealy y Moore).
2.5.1. Aut omatas Finitos Bidireccionales
Un aut omata nito bidireccional determinista es un AFD en el que el cabezal de lectura
puede desplazarse tanto una casilla a la derecha como una casilla a la izquierda.
Denici on 2.12 Un aut omata nito determinista bidireccional, AF2, es una quntupla
A = , Q, q
0
, F, f) tal que
es el alfabeto de entrada,
Q es un conjunto nito y no vaco de estados,
f es una funci on total denida como
f : Q QL, R,
q
0
es el denominado estado inicial, q
0
Q,
F es el conjunto de estados denominados nales, F Q.
La denici on de la funci on de transici on no s olo determina las transiciones entre es-
tados, sino tambi en el movimiento del cabezal de forma que si f(q, a) = (p, L) entonces
desde el estado q con el smbolo a se pasa al estado p y el cabezal se desplaza una casilla
a la izquierda, y si f(q, a) = (p, R) entonces desde el estado q con el smbolo a se pasa al
estado p y el cabezal se desplaza una casilla a la derecha.
Para determinar cu al es el comportamiento de un AF2 con respecto a una cadena de
entrada, se introduce el concepto de descripci on instant anea. Una descripci on instant anea,
2.5. Otros Tipos de Aut omatas Finitos. 37
D.I., es una cadena de
I
n
cuando existen n D.I. I
1
, I
2
, . . . , I
n
tales que se cumple I
i
I
i+1
, i : 1 i n 1.
De esta forma, se puede especicar cu al es el lenguaje aceptado por un AF2 A, mediante
la expresi on
L(A) = w
[ q
0
w
wp, p F
Ejemplo de AF2:
f 0 1
q
0
(q
0
, R) (q
1
, R)
q
1
(q
1
, R) (q
2
, L)
q
2
(q
0
, R) (q
2
, L)
Este AFD2 reconoce todas las cadenas de ceros y unos que no tienen dos unos
consecutivos, es decir, ( + 1)(0 + 01)
.
Cuando se parte de un valor r = 0, se obtiene para r
el valor 0; si
r = 1 r
= 2 y si r = 2 r
= 1.
Si al entero i se le a nade un 1 se obtiene como nuevo valor, i1, el anterior
multiplicado por 2 y a nadi endole 1.
Por lo tanto, si i mod 3 = r, entonces (2i + 1) mod 3 = (2r + 1) mod
3 = r
. Entonces, si r = 0 r
= 1, si r = 1 r
= 0 y si r = 2
r
= 2.
Este an alisis permite dise nar la M aquina de Moore de la gura 2.11.
El comportamiento de esta M aquina de Moore ante la cadena de entrada
110100 es la cadena de salida (q
0
)(q
1
)(q
0
)(q
0
)(q
1
)(q
2
)(q
1
), es de-
cir, 0100121.
2.6. Aplicaciones. 39
q
1
q
0
q
2
1
1
0
0
1
0
0 1 2
Figura 2.11: M aquina de Moore para calcular el resto de la divisi on entera entre 3.
Al interpretar este resultado se obtiene que 110100 es el entero 52, y 52 mod
3 = 1, que coincide con el ultimo smbolo de salida proporcionado por la
m aquina de Moore.
M aquina de Mealy.
Es una s extupla A = Q, , , f, , q
0
) donde Q, , f y q
0
se denen como en un
AFD. El conjunto representa al alfabeto de salida y es una funci on que asocia a cada
transici on un smbolo del alfabeto de salida, es decir, : Q .
La respuesta de A con respecto a la entrada a
1
a
2
. . . a
n
, n 0, es
(q
0
, a
1
)(q
i1
, a
2
)(q
i2
, a
3
) . . . (q
in1
, a
n
)
donde q
0
, q
i1
, q
i2
, . . . , q
in1
es la secuencia de estados tal que f(q
ij
, a
i+1
) = q
ij+1
.
Ejemplo:
Escribir una m aquina de Mealy que produzca salida y cuando los dos ultimos
smbolos ledos de la cadena sean iguales y que produzca salida n en otro
caso.
Para realizar esta m aquina basta con recordar cual ha sido el ultimo smbolo
ledo de la cadena de entrada, y si su siguiente smbolo coincide con el anterior,
entonces se produce salida y; en cualquier otra situaci on la salida ser a n.
2.6. Aplicaciones.
Los lenguajes regulares son utilizados en aplicaciones muy diversas. Entre ellas, en esta
secci on se comentan tres de las m as usuales,
40 Captulo 2. Aut omatas Finitos y Expresiones Regulares
an alisis l exico de un compilador (exp. regulares, AF),
especicaci on de par ametros de entrada (expresiones regulares),
ayuda al dise no de circuitos (Mealy, Moore).
2.6.1. Aplicaci on como ayuda al an alisis l exico en un compilador.
Un compilador es un programa que traduce un c odigo denominado fuente en otro c odi-
go denominado objeto. Para realizar esa transformaci on son necesarias varias etapas. La
primera de estas etapas consiste en detectar, de todas las cadenas que componen el c odigo
fuente, cu ales son representativas para el compilador. Por ejemplo, qu e cadenas representan
constantes (enteras, reales, l ogicas, etc) o bien palabras reservadas del lenguaje (begin,
end, , , procedure, function, main, while, . . . etc.). Estas cadenas se representan
por medio de expresiones regulares y su detecci on se realiza por medio de aut omatas nitos.
El siguiente ejemplo muestra c omo representar constantes enteras, con o sin signo, uti-
lizando expresiones regulares y c omo reconocer estas constantes por medio de un aut omata
nito.
Expresi on Regular:
entero = (
+)(digitonocero)(digito)
digitonocero =
digito = digitonocero +
Indice General
3.1. El Teorema de Myhill-Nerode. Minimizaci on de Aut omatas Finitos. 43
3.2. Lema de Bombeo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.3. Propiedades de Clausura. . . . . . . . . . . . . . . . . . . . . . . . . 53
3.4. Algoritmos de Decisi on para Lenguajes Regulares. . . . . . . . . . . 57
En este tema se presentan las propiedades que cumplen los lenguajes regulares.
El primer resultado a estudiar, el teorema de Myhill-Nerode, es de especial trascedencia
puesto que establece la existencia de un AF mnimo para aceptar un determinado lenguaje
regular y, adem as, permite desarrollar un m etodo para calcularlo.
Adem as, se presentan los resultados que satisfacen los lenguajes regulares. Estos resul-
tados permitir an saber si un lenguaje dado es o no es regular. El inter es de estudiar este tipo
de herramientas (lema de bombeo, propiedades de clausura) es muy grande, ya que cuando
se determina el tipo m as restrictivo al que pertenece un lenguaje, se est a determinando el
mnimo n umero de recursos computacionales necesario para reconocer sus cadenas.
3.1. El Teorema de Myhill-Nerode. Minimizaci on de Aut omatas
Finitos.
Sea D un conjunto, una relaci on binaria R es un subconjunto de D D, es decir,
R D D. Si el par (a, b) R, entonces se denota como aRb; en caso contrario, se
denota como aRb.
43
44 Captulo 3. Propiedades de los Lenguajes Regulares
Denici on 3.1 (Relaci on Binaria de Equivalencia, RBE) Una relaci on binaria se
dice de equivalencia -r.b.e.- si, y s olo si:
1. cumple la propiedad reexiva: x D, xRx,
2. cumple la propiedad sim etrica: x, y D, si xRy entonces yRx,
3. cumple la propiedad transitiva: x, y, z D, si xRy yRz entonces xRz.
Ejemplo:
iR
, xz L s olo cuando yz L,
entonces R
L
es de ndice nito.
Demostraci on:
Se realizar a una demostraci on cclica en la que el establecimiento de cada una de las
armaciones implica la armaci on de la siguiente:
(1) (2) As umase que L es aceptado por alg un AFD A = , Q, q
0
, f, F).
Se dene la r.b.e. R
A
como
xR
A
y si y s olo si f(q
0
, x) = f(q
0
, y).
3.1. El Teorema de Myhill-Nerode. Minimizaci on de Aut omatas Finitos. 45
Esta relaci on acoge a las cadenas que, partiendo del estado inicial del AF, conducen
al mismo estado. Y esta relaci on es invariante a la derecha puesto que
z
, f(q
0
, xz) = f(f(q
0
, x), z) = f(f(q
0
, y), z) = f(q
0
, yz).
El ndice de R
A
, es decir, el n umero de clases de equivalencia es nito, puesto que,
como m aximo, puede ser igual al n umero de estados del AF A.
Adem as, L, es la uni on de aquellas clases de equivalencia que incluyen a aquellos
estados que son nales en el AFD A.
(2) (3) Sea R
tales que xR
y. Como R
, xzR
yz,
y como L es la uni on de algunas de las clases de equivalencia de R
, se tiene que
xz L si, y s olo si, yz L.
Por lo tanto, se cumple la relaci on R
L
, y entonces xR
L
y.
De esto se deduce [x]
R
[x]
RL
, es decir, cada clase de equivalencia de R
est a con-
tenida en alguna de R
L
. Seg un esto, R
es un renamiento de R
L
o, lo que es lo
mismo, tiene un ndice mayor o igual que el ndice de R
L
.
Y como el ndice de R
0
= [] y F
= [x] [ x L.
El AFD A
= Q
, , f
, q
0
, F
) acepta L ya que f
(q
0
, x) = f
([], x) = [x] y
x L(A
.
c.q.d.
En la demostraci on del teorema de Myhill-Nerode se construye un AFD A que reconoce
un lenguaje regular L seg un la relaci on R
L
. Tambi en se expone que cualquier otra r.b.e. que
se establezca sobre un AFD A
= , Q
, q
0
, f
, F
). Sup ongase que ambos AFD tienen el mismo n umero de estados, [ Q [=[
Q
[.
Sea q un estado de Q; entonces, debe existir una cadena x tal que f(q
0
, x) = q puesto
que, en caso contrario, q se podra eliminar de Q (ya que sera inalcanzable), obteni endose
otro AFD de menor n umero de estados que el AFD A
, es decir,
f
(q
0
, x) = q. Entonces, si f(q
0
, x) = f(q
0
, y) = q resulta que ambas cadenas, x e y, deben
estar en la misma clase de equivalencia de R
L
, y por lo tanto, f
(q
0
, x) = f
(q
0
, y).
c.q.d.
Ejemplo:
Sea L = x (0 + 1)
[ S(x, 0) =
2 S(x, 1) =
2, es decir, el lenguaje
formado por cadenas que tienen un n umero par de smbolos 0y un n umero
par de smbolos 1.
Este lenguaje es aceptado por el AFD A
[ f(q
0
, x) = q
0
[q
1
] = [0] representa x
[ f(q
0
, x) = q
1
[q
2
] = [1] representa x
[ f(q
0
, x) = q
2
[q
3
] = [01] representa x
[ f(q
0
, x) = q
3
[q
4
] = [11] representa x
[ f(q
0
, x) = q
4
[q
5
] = [110] representa x
[ f(q
0
, x) = q
5
0
] = [], representa las cadenas que tienen un n umero par de smbolos
0y un n umero par de smbolos 1,
[q
1
] = [0], representa las cadenas que tienen un n umero impar de smbo-
los 0y un n umero par de smbolos 1,
[q
2
] = [1], representa las cadenas que tienen un n umero par de smbolos
0y un n umero impar de smbolos 1,
[q
3
] = [01], representa las cadenas que tienen un n umero impar de smbo-
los 0y un n umero impar de smbolos 1.
Aplicando el tercer paso de la demostraci on del teorema de Myhill-Nerode se
obtiene el siguiente AFD mnimo:
Figura 3.2: Mnimo AFD que reconoce L.
Para obtenerlo, se ha tenido en cuenta que,
si desde [q
0
] = [] se lee 0, entonces se pasa a tener un n umero impar de
smbolos 0(es decir, se pasa a [0] ya que el n umero de smbolos 1 no ha
cambiado, sigue siendo par) y si se lee 1, un n umero impar de smbolos
1(es decir, se pasa a [1], n umero par de smbolos 0y un n umero impar
de smbolos 1),
si desde [q
1
] = [0] se lee 0, entonces se pasa a tener un n umero par de
smbolos 0(es decir, se pasa a []), y si se lee 1, un n umero impar de
smbolos 1(es decir, se pasa a [01]),
48 Captulo 3. Propiedades de los Lenguajes Regulares
si desde [q
1
] = [1], se lee 0, entonces se pasa a tener un n umero impar
de smbolos 0(es decir, se pasa a [01]) y si se lee 1, un n umero par de
smbolos 1(es decir, se pasa a []),
si desde [q
1
] = [01], se lee 0, entonces se pasa a tener un n umero par
de smbolos 0(es decir, se pasa a [1]) y si se lee 1, un n umero par de
smbolos 1(es decir, se pasa a [0]).
Para nalizar el tema, lo que se plantea es c omo obtener un m etodo pr actico que permita
calcular la relaci on R
L
.
Sea la r.b.e. sobre los estados de A tal que p q si, y s olo si, para cada cadena de
entrada x, f(p, x) es un estado nal si, y s olo si, f(q, x) es un estado nal.
Hay un isomorsmo entre aquellas clases de equivalencia de que contienen un estado
alcanzable desde q
0
para alguna cadena de entrada y los estados del AFD de n umero mnimo
de estados. Por lo tanto, los estados de AFD mnimo se pueden identicar con estas clases.
Se emplea la siguiente notaci on: si p q se dice que p es equivalente a q y en caso
contrario se dice que p es distinguible de q.
El c alculo de la relaci on se realiza por medio del siguiente m etodo, que se ilustra
tomando como ejemplo el AFD presentado en la gura 3.1:
1. Se crea una tabla con [ Q [ 1 las y [ Q [ 1 columnas. Cada la y cada columna
se etiqueta con uno de los estados de Q, de forma que si q es un estado de Q entonces
no existen en la tabla entradas correspondientes a parejas (q,q). Asmismo, si q y p
son estados de Q, la entrada correspondiente a la pareja (q,p) tambi en representa a la
pareja (p,q).
En el ejemplo, la tabla correspondiente sera de la forma,
2. Se marca cada entrada de la tabla que se corresponde con una pareja (estado nal,
3.1. El Teorema de Myhill-Nerode. Minimizaci on de Aut omatas Finitos. 49
estado no nal), pues todas esas parejas se corresponden con pares de estados distin-
guibles.
En el ejemplo, se tienen las siguientes parejas de estados nal/no nal,
3. Para cada par de estados (p,q) que no se haya analizado hasta el momento, se consi-
deran los pares de estados (r,s) tales que r = f(q, a) y s = f(p, a), para cada smbolo
de entrada a.
Si los estados r y s son distinguibles para alguna cadena x, entonces los estados p y q
son distinguibles por la cadena ax.
Por lo tanto, si la entrada (r,s) est a marcada en la tabla, entonces tambi en se marca
la entrada (p,q). Si la entrada (r,s) no est a marcada, entonces el par (p,q) se coloca
en una lista asociada con la entrada (r,s). Si posteriormente se marca la entrada (r,s),
tambi en se marcar an todas las parejas de la lista asociada.
En el ejemplo, se obtiene lo siguiente:
El an alisis del par (q
0
, q
4
) remite al par (q
1
, q
5
); por lo tanto, se
coloca en la lista asociada a dicha entrada.
El an alisis del par (q
1
, q
2
) remite al par (q
0
, q
3
); por lo tanto, se
marca.
El an alisis del par (q
1
, q
3
) remite al par (q
0
, q
2
); por lo tanto, se
marca.
El an alisis del par (q
1
, q
5
) remite al par (q
0
, q
4
); por lo tanto, no se
puede marcar ninguna de las dos entradas.
El an alisis del par (q
2
, q
3
) remite al par (q
3
, q
4
); por lo tanto, se
marca.
El an alisis del par (q
2
, q
5
) remite al par (q
3
, q
4
); por lo tanto, se
marca.
El an alisis del par (q
3
, q
5
) remite al par (q
2
, q
4
); por lo tanto, se
marca.
Al nalizar este proceso todas aquellas entradas de la tabla que queden vacas identican
parejas de estados equivalentes.
50 Captulo 3. Propiedades de los Lenguajes Regulares
En el ejemplo, los estados q
1
y q
5
son equivalentes, y lo mismo sucede con los
estados q
0
y q
4
. Se puede comprobar que el aut omata obtenido es el presentado
en la gura 3.2.
3.2. Lema de Bombeo.
Este lema proporciona una herramienta muy util para demostrar que ciertos lenguajes
no son regulares, es decir, que no pueden ser reconocidos por aut omatas nitos. Adem as,
como consecuencias adicionales de su enunciado, tambi en resulta util como referencia te ori-
ca para desarrollar algoritmos que respondan a ciertas cuestiones sobre aspectos determina-
dos de aut omatas nitos, como por ejemplo, si el lenguaje aceptado por un aut omata nito
es nito o innito.
Lema 3.1 (Lema de Bombeo) Para todo lenguaje regular L existe una constante n,
dependiente unicamente de L, tal que si z es una cadena de L, y se cumple que [ z [ n,
entonces la cadena z se puede descomponer como z = uvw tal que:
1. [ v [ 1,
2. [ uv [ n,
3. Para todo i 0 las cadenas uv
i
w son, todas, cadenas de L.
Demostraci on:
Si un lenguaje es regular, entonces es aceptado por un aut omata nito determinista,
AFD, A = Q, , f, q
0
, F). Sea [Q[ = n, es decir, el AFD tiene n estados.
Sea z = a
1
a
2
. . . a
m
una cadena de m smbolos, tal que m n, y sup ongase que
f(q
0
, a
1
a
2
. . . a
i
) = q
si
, donde q
si
representa el estado que se alcanza despu es de analizar
los primeros a
i
smbolos. Seg un esto, f(q
0
, a
1
) = q
s1
, f(q
0
, a
1
a
2
) = q
s2
, . . . etc.
Como la cadena z tiene m smbolos y el AFD tiene n estados distintos, y m n,
3.2. Lema de Bombeo. 51
entonces si el AFD A comienza a trabajar con la cadena z, no puede ser que los primeros
n + 1 estados que se suceden en el an alisis de la cadena z (q
0
, q
s1
, q
s2
, . . . q
sn
) sean todos
distintos.
Por lo tanto, existen al menos dos enteros, llam emosles j y k, 1 j < k n ta-
les que q
sj
= q
sk
, es decir, f(q
0
, a
1
. . . a
j
) = q
sj
, f(q
0
, a
1
. . . a
k
) = q
sk
= q
sj
f(q
k
, a
k+1
. . . a
m
) = q
sm
. Como j < k entonces la subcadena a
j+1
. . . a
k
tiene una lon-
gitud mayor o igual que 1, y como k n entonces su longitud no puede ser mayor que
n.
Gr acamente, la idea se puede expresar de la forma siguiente:
Si la cadena a
1
. . . a
m
pertenece al lenguaje reconocido por el AFD A, entonces q
sm
F, y por lo tanto, la cadena a
1
. . . a
j
a
k+1
. . . a
m
tambi en pertenece a L(A). En este caso, el
bucle que reconoce a
j+1
. . . a
k
no se realiza ninguna vez. Pero tambi en podra darse el caso
de realizarlo i veces, en cuyo caso la cadena reconocida sera a
1
. . . a
j
(a
j+1
. . . a
k
)
i
a
k+1
. . . a
m
.
Qu e conclusi on se puede sacar de este proceso? Que si se tiene un AFD y una cadena
z de una longitud lo sucientemente larga que sea aceptada por el AFD, entonces se puede
localizar una subcadena de z tal que esa subcadena se puede repetir tantas veces como se
quiera (es decir, se puede bombear) obteni endose como resultado de este proceso nuevas
cadenas que tambi en ser an aceptadas por el AFD.
Con esta idea gr aca, para completar la demostraci on basta con identicar u con a
1
. . . a
j
,
v con a
j+1
. . . a
k
y w con a
k+1
. . . a
n
. Como j < k entonces [ v [= k (j + 1) + 1 =
k j 1 y como k n, entonces [ uv [ n.
c.q.d.
Este lema se aplica para demostrar que un lenguaje no es regular, es decir, si un lenguaje
no cumple con el lema de bombeo entonces se puede garantizar que no es regular, pero si
cumple las condiciones del lema entonces no se puede asegurar si es o no es regular.
Ejemplos:
1. Demostrar que el lenguaje a
n
b
n
[ n 0 no es un lenguaje regular.
Para poder comprobar si se cumplen las condiciones impuestas por el le-
ma de bombeo, se debe localizar una cadena del lenguaje cuya longitud
sea mayor que la constante del lema para este lenguaje. Sea t esa cons-
tante. Entonces z = a
t
b
t
pertenece al lenguaje y su longitud es mayor
52 Captulo 3. Propiedades de los Lenguajes Regulares
que t, por lo tanto z se puede escribir como uvw, pero cuales son los
smbolos de z que componen la cadena v? Se analizan todos los casos
posibles y si al menos uno de estos casos fuese posible, entonces no se
podra demostrar que no se cumple el lema para esta cadena:
a) Si v est a compuesta s olo de smbolos a, entonces las cadenas uv
i
w, i
2 no pertenecen al lenguaje (contienen m as as que bs).
(t)
a . . .
..
u
. . . a . . .
. .
v
(t)
abb . . . b
. .
w
b) Si en la cadena v aparece alg un smbolo b, deja de cumplirse la se-
gunda condici on, ya que entonces [ uv [> t, ya que en la subcadena
u deberan de estar, al menos, todas los t smbolos a.
(t)
a . . .
..
u
a . . . b
. .
v
(t)
. . . bb . . . b
. .
w
(t)
a . . . ab
. .
u
(t)
. . . b . . .
. .
v
. . . b
..
w
Como no hay m as opciones posibles para la asignaci on de smbolos a la
cadena v, entonces este lenguaje no cumple el lema de bombeo y, por lo
tanto, no puede ser un lenguaje regular.
2. Demostrar que el lenguaje L = 0
p
[ p es un n umero primo no es un
lenguaje regular.
Este lenguaje est a formado por las cadenas de 0s cuya longitud es un
n umero primo. Sea n la constante del lema de bombeo y sea z = 0
k
tal
que k es un n umero primo mayor que n.
Como el conjunto de n umeros primos es un conjunto de innitos elemen-
tos se garantiza que ese n umero primo k existe, sea cual sea el valor de
n. Por lo tanto z L y si L fuese un lenguaje regular entonces deberan
de cumplirse las condiciones expuestas por el lema de bombeo, en parti-
cular, que
uv
i
w L i 0.
Sea i = k + 1; la cadena uv
k+1
w debera pertenecer a L. Pero,
[ uv
k+1
w [=[ uv
k
vw [=[ uvw [ + [ v
k
[= k +k [ v [= k(1+ [ v [).
Es decir, [ uv
k+1
w [ no es un n umero primo, puesto que es divisible por
k y por (1+ [ v [). Como consecuencia, el lenguaje L no es un lenguaje
regular puesto que no cumple el lema de bombeo.
3.3. Propiedades de Clausura. 53
3.3. Propiedades de Clausura.
Existen numerosas operaciones que aplicadas a lenguajes regulares dan como resultado
otro lenguaje regular. Por ejemplo, la uni on de dos lenguajes regulares es un lenguaje regular
puesto que si r
1
y r
2
denotan a los lenguajes regulares L
1
y L
2
, entonces la expresi on
regular r
1
+ r
2
denota al lenguaje L
1
L
2
. Este tipo de operaciones reciben el nombre de
operaciones de clausura.
Teorema 3.3 Los lenguajes regulares son cerrados bajo las operaciones de uni on,
concatenaci on, y estrella de Kleene.
La demostraci on del teorema anterior se deja propuesto como ejercicio.
Teorema 3.4 Los lenguajes regulares son cerrados bajo la operaci on de complemen-
taci on.
Demostraci on:
Sea A = Q, , q
0
, f, F) un Aut omata Finito Determinista tal que L(A) = L. Se cons-
truye un AFD A
= Q, , q
0
, f, QF), es decir, A
) = x
[ f(q
0
, x) QF = x
[ f(q
0
, x) , F =
[
f(q
0
, x) F =
L =
L.
c.q.d.
Resulta interesante destacar que la condici on de que el aut omata nito de partida sea
determinista es muy importante, puesto que de no ser as, entonces la demostraci on no sera
correcta.
Por ejemplo, si A fuese un AFN tal que f(q, a) = q
j
, q
k
y q
j
F, pero q
k
, F, al
construir el AF A
se tendra que q
k
Q F y por lo tanto sera un estado nal de A
. Y
como f(q, a) = q
j
, q
k
resulta que la cadena a es reconocida por el AF A y por A
. Esto
es imposible si el AF A
1
que reconoce
el complementario de L
1
y, posteriormente, el AFD A
1
que reconoce el complemento de
L
1
. Con estos, se puede construir el AFD A
U
para reconocer la uni on de L(A
1
) y L(A
2
).
Para nalizar, se construye el AFD que reconoce el complementario de L(A
U
). Pero este
m etodo resulta muy largo.
Este AFD se puede calcular de forma m as sencilla aplicando el siguiente m etodo. Sea
A
1
= Q
1
, , q
0
, f
1
, F
1
) un Aut omata Finito Determinista tal que L(A
1
) = L
1
, y sea
A
2
= Q
12
, , p
0
, f
2
, F
2
) otro Aut omata Finito Determinista tal que L(A
2
) = L
2
.
Se construye el siguiente AFDA
= Q
1
Q
2
, , [q
0
, p
0
], f, F
1
F
2
) tal que la funci on
de transici on f se dene de la forma siguiente:
f([q, p], a) = [f
1
(q, a), f
2
(p, a)].
De esta forma el lenguaje reconocido por el AFD A
es el siguiente,
L(A
) = x
[ f([q
0
, p
0
], x) F
1
F
2
=
x
[ f
1
(q
0
, x) F
1
f
2
(p
0
, x) F
2
= L
1
L
2
.
Ejemplo de aplicaci on del teorema:
Sea L = x (0 + 1)
es un
lenguaje regular, puesto que es una expresi on regular. Por lo tanto si L fuese
regular tambi en lo debera ser el lenguaje L 0
1
.
Por lo tanto, como la operaci on de sustituci on de una uni on, de una concatenaci on o de
una clausura es la uni on, concatenaci on o clausura de la sustituci on y al ser estas operaciones
de clausura para lenguajes regulares, resulta que la operaci on de sustituci on tambi en es una
operaci on de clausura.
c.q.d.
Ejemplo:
Sea = a, b y = 0, 1, 2 tal que f(a) = r
a
= 0
y f(b) = r
b
=
0
2 + 2.
Sea L el siguiente lenguaje regular, L = a
(b +ab)
. Calcular f(L).
f(L) = f(a
(b +ab)
) = f(a
)f((b +ab)
) = f(a)
f(b +ab)
=
f(a)
(f(b) +f(ab))
= f(a)
(f(b) +f(a)f(b))
=
(0
)((0
2 + 2) + (0
)(0
2 + 2))
.
Como consecuencia de este teorema, y como la operaci on de homomorsmo es un caso
particular de la operaci on de sustituci on, resulta el siguiente corolario.
Corolario 3.1 Los lenguajes regulares son cerrados bajo la operaci on de homomor-
smo.
Teorema 3.7 Los lenguajes regulares son cerrados bajo la operaci on de homomors-
mo inverso.
Demostraci on:
Sea h :
. Se demostrar a que h
1
(L) es
otro lenguaje regular. El m etodo consiste en construir un AFD, A
, que reconozca h
1
(L)
a partir del AFD que reconozca L, A.
Sea A = , Q, f, q
0
, F) un AFDtal que L(A) = L. Se dene el AFDA
= , Q, f
, q
0
, F)
tal que la funci on de transici on f
se dene como
f
(q
0
, x) =
p, entonces en el AFD A tambi en se cumple que f(q
0
, h(x)) = p.
Por lo tanto,
L(A
) = x
[ f
(q
0
, x) F = x
[ f(q
0
, h(x)) F = x
[
h(x) L = h
1
(L).
c.q.d.
Teorema 3.8 Los lenguajes regulares son cerrados bajo la operaci on de inversi on.
Demostraci on:
Sea A = , Q, f, q
0
, F) un aut omata nito arbitrario y sea el aut omata nito A
=
, Q
, f
, q
0
, F
), denido como Q
= Q q
0
y F
= q
0
, tal que q
0
, Q, es decir, q
0
es un estado nuevo.
La funci on de transici on f
(q
0
, ) = F,
2. q f(p, a) p f
(q, a), a ( ).
Con esta construcci on se garantiza que L(A
) = [L(A)]
1
.
Adicionalmente, hay que comentar que el m etodo de construcci on de A
se puede sim-
plicar si en el conjunto de estados nales F s olo hay un estado, es decir, F = q
f
.
Entonces, la construcci on del aut omata nito A
0
= q
f
F
= q
0
q f(p, a) p f
(q, a), a ( )
c.q.d.
Ejemplo:
Sea L = x 0
m
1
n
[ m n. Es L un lenguaje regular?.
Sup ongase que L es regular; entonces, tambi en lo debe de ser L
1
= 1
n
0
m
[
m n.
Se dene el homomorsmo g : 0, 1 0, 1
) = (L
1
L
2
) (L
1
L
2
).
Entonces L
1
= L
2
L(A
Indice General
4.1. Gram aticas y Lenguajes de Contexto Libre. . . . . . . . . . . . . . . 59
4.2.
Arboles de Derivaci on. . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.3. Simplicaci on de GCL. . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.4. Formas Normales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.4.1. Forma Normal de Chomsky, FNCH. . . . . . . . . . . . . . . . 70
4.4.2. Forma Normal de Greibach, FNG. . . . . . . . . . . . . . . . . 73
4.1. Gram aticas y Lenguajes de Contexto Libre.
Tal y como se expuso en el tema anterior existen ciertos lenguajes muy usuales que no
pueden ser generados por medio de gram aticas regulares. Algunos de estos lenguajes s pue-
den ser generados por otro tipo de gram aticas, las denominadas gram aticas de contexto libre
(tambi en denominadas gram aticas incontextuales, o independientes del contexto). Uno de
los ejemplos m as tpicos consiste en la gram atica de contexto libre que genera el lenguaje
formado por aquellas cadenas que tengan igual n umero de par entesis abiertos que cerrados.
Denici on 4.1 Una Gram atica de Contexto Libre (GCL) es una cu adrupla G =
A
,
T
, P, S) donde
A
es un conjunto nito y no vaco de smbolos denominados auxiliares,
T
es un conjunto nito de smbolos denominados terminales,
A
T
= ,
S es el smbolo inicial de la Gram atica, S
A
,
P es el conjunto de producciones, donde cada producci on es de la forma A
con A
A
y (
T
A
)
.
59
60 Captulo 4. Gram aticas de Contexto Libre
Un lenguaje es de tipo 2, tambi en denominado lenguaje de contexto libre, si la gram atica
m as restrictiva que puede generarlo, seg un la jerarqua de Chomsky, es de tipo 2.
Ejemplos de GCL:
El lenguaje L
1
= 0
n
1
n
[ n 0 puede ser generado por medio de la
siguiente GCL
S [ 0S1
Efectivamente, para comprobar que esta gram atica genera el lenguaje L
1
se realiza un an alisis parecido al proceso de demostraci on por inducci on:
Paso base la cadena de menor longitud que pertenece al lenguaje L
1
es
;
Hip otesis de inducci on sup ongase que desde S se puede generar cual-
quier cadena de longitud k que pertenezca a L
1
;
Paso de inducci on la siguiente cadena que pertenece al lenguaje L
1
de
mayor longitud a la de S es la cadena 0S1.
El lenguaje L
2
= 0
n
1
m
[ n m puede ser generado por medio de la
siguiente GCL
S [ 0S [ 0S1
El lenguaje L
3
= w (0 + 1)
[ w = w
1
puede ser generado por
medio de la siguiente GCL
S [ 0S0 [ 1S1 [ 0 [ 1
4.2.
Arboles de Derivaci on.
Denici on 4.2 Un arbol es un conjunto nito de nodos unidos mediante arcos que
forman un grafo acclico que cumple las tres condiciones siguientes:
1. Existe un unico nodo denominado raz al que no llega ning un arco.
2. Para todo nodo n existe una unica secuencia de arcos que lleva desde el nodo
raz hasta el nodo n.
3. En cada nodo, excepto el nodo raz, entra un unico arco.
Sean n y m dos nodos, se dice que m es descendiente directo de n cuando del nodo n se
puede ir al nodo m por un s olo arco. Un nodo m es descendiente de un nodo n cuando existe
una secuencia de nodos n
0
n
1
n
2
. . . n
k
tal que n
0
= n, n
k
= m y se cumple que n
i+1
es
descendiente directo del nodo n
i
, i, 0 i < k.
A los nodos que no tienen descendientes directos se les denomina hojas.
4.2.
Arboles de Derivaci on. 61
Denici on 4.3 Dada una GCL G =
A
,
T
, P, S), un arbol de derivaci on en G es
un arbol que cumple las siguientes condiciones:
1. Cada nodo tiene asignado una etiqueta de
A
T
,
2. La etiqueta del nodo raz es S,
3. Si el nodo n no es una hoja, entonces la etiqueta del nodo n es un smbolo de
A
,
4. Si n
1
n
2
. . . n
k
son todos descendientes directos de un nodo n, ordenados de
izquierda a derecha, y si la etiqueta del nodo n es el smbolo A y la etiqueta de
cada nodo n
i
es el smbolo l
i
, entonces (A l
1
l
2
. . . l
k
) es una producci on de
G,
5. Si el nodo n es descendiente directo del nodo n
.
El resultado de un arbol de derivaci on es la cadena formada por la concatenaci on de los
smbolos que etiquetan sus hojas tomados de izquierda a derecha.
El arbol de derivaci on contiene todas las posibles derivaciones asociadas a una forma
sentencial.
Ejemplo:
Sea G
1
la GCL denida por el siguiente conjunto de producciones
S S +S S S DIV S
S S S S S MOD S
S S S S S S
S (S) S entero
La forma sentencial (entero + entero)
*
entero es el resultado del
siguiente arbol de derivaci on
S
S S
S
S S +
*
( ) entero
entero entero
62 Captulo 4. Gram aticas de Contexto Libre
Teorema 4.1 Sea G =
A
,
T
, P, S) una GCL, entonces es una forma sentencial
si, y s olo si, existe un arbol de derivaci on en la gram atica G cuyo resultado es .
Se propone como ejercicio demostrar el resultado anterior por inducci on en la profun-
didad del arbol.
Denici on 4.4 Una GCL es ambigua si x L(G) tal que existen dos o m as arboles
de derivaci on diferentes cuyo resultado es x. Un lenguaje de contexto libre es inhe-
rentemente ambiguo si toda GCL que lo genere es ambigua.
Otra cuesti on asociada a la derivaci on de cadenas en una gram atica es como seleccionar
el smbolo auxiliar a substituir en cada paso de derivaci on de una forma sentencial. De todas
las opciones posibles se destacan dos. Si se selecciona siempre el smbolo auxiliar que se
encuentra m as a la izquierda entonces se denomina proceso de derivaci on a izquierdas.
Si siempre se selecciona el auxiliar m as a la derecha, entonces se denomina derivaci on a
derechas.
Cada arbol de derivaci on dene una, y s olo una, derivaci on a izquierdas y una, y s olo
una, derivaci on a derechas.
Siguiendo con el ejemplo anterior, la forma sentencial (entero + entero)
*
entero se puede obtener mediante la siguiente derivaci on a izquierdas:
S S * S (S) * S (S + S) * S (entero + S) * S (entero +
entero) * S (entero + entero)
*
entero,
o mediante esta otra, que ser a una derivaci on a derechas
S S * S S * entero (S + S) * entero (S + entero) *
entero (entero + entero)
*
entero.
Esta concepto permite exponer otra denici on de gram atica ambigua: Una gram atica
es ambigua si existe una cadena para la que haya dos o m as derivaciones a izquierda o a
derecha.
Siguiendo con el ejemplo, la gram atica anterior es ambigua, puesto que para la
forma sentencial entero + entero
*
entero existen los dos siguientes
arboles de derivaci on,
4.3. Simplicaci on de GCL. 63
S S +
entero entero
S
S S *
entero
S S *
entero entero
S
S S +
entero
y las dos derivaciones a izquierdas,
D.I. 1: S S * S S + S * S entero + S * S entero + entero
* S entero + entero
*
entero,
D.I. 2: S S + S entero + S entero + S * S entero +
entero) * S entero + entero
*
entero.
4.3. Simplicaci on de GCL.
Una de las primeras tareas que hay que realizar con una GCL es eliminar todas aquellas
producciones que no aporten ning un tipo de informaci on v alida en la generaci on de alguna
de las cadenas del lenguaje. Es decir, hay que simplicar la GCL sin alterar el conjunto de
cadenas que es capaz de generar.
Cualquier lenguaje de contexto libre, L, puede ser generado por medio de una GCL, G,
que cumpla las siguientes condiciones:
1. Cada smbolo (terminal o auxiliar) de G se emplea en la derivaci on de alguna cadena
de L.
2. En el conjunto de producciones de G no existen producciones unitarias, es decir,
producciones de la forma A B donde A, B
A
.
3. Si , L entonces en el conjunto de producciones de G no existen producciones
vacas, es decir, producciones de la forma A .
El objetivo de estas condiciones es determinar una GCL en la cual, en cada paso de
derivaci on de una cadena, siempre se introduce informaci on relevante.
Dada una GCL, G, se puede construir una GCL, G
) y en G
no hay smbolos in utiles, es decir, que cumple la primera de las condiciones establecidas
previamente.
Para construir esta GCL G
A
,
T
, P
, S) en la que se cumple
que A
A
w
T
tal que A
w.
Demostraci on:
Para construir la GCL G
T
tal que A w P, entonces se sabe que A es
derivable.
Paso Recursivo: Si (A ) P y si todos los smbolos auxiliares de son derivables,
entonces el smbolo A tambi en es derivable.
El siguiente algoritmo iterativo calcula la f ormula anterior:
Aaux
=
A
= A
A
[ w
T
: (A w) P
while (
Aaux
,=
A
):
Aaux
=
A
=
Aaux
A
A
[ (
T
Aaux
)
: (A ) P
En este algoritmo se inicializa el conjunto de smbolos derivables de acuerdo al paso
base de la f ormula anterior y, posteriormente, se calcula el paso recursivo de forma iterativa
hasta que no se detecten nuevos smbolos derivables en el conjunto
A
.
Una vez obtenido
A
se dene P como el siguiente conjunto
P
= (A ) P [ A
A
(
T
A
)
)
L(G) y que L(G) L(G
).
L(G
) L(G) : La construcci on de G
implica que
A
A
y P
P, por lo tanto si
S
x en G
). Si esto es as es porque
en la obtenci on de x se utiliza alg un smbolo auxiliar de
A
que no est a en
A
, pero
4.3. Simplicaci on de GCL. 65
esto no puede ser puesto que los smbolos de
A
A
no son derivables. Entonces,
x debe pertenecer a L(G
).
c.q.d.
Lema 4.2 (de la alcanzabilidad) Dada una GCL, G =
A
,
T
, P, S) tal que
L(G) ,= , puede construirse una GCL equivalente G
A
,
T
, P
, S) tal que
A (
T
) , (
T
)
[ S
A.
Demostraci on:
Para construir la GCL G
A
= S,
T
= ,
(A ) P: si A
A
, todos los smbolos auxiliares de se a naden a
A
y
todos sus smbolos terminales se a naden a
T
.
Se dene P
= (A ) P [ A
A
(
A
)
la GCL resultado de aplicar a la GCL G el lema 4.1 (al eliminar los smbolos no
derivables).
Sea G
) = L(G
) = L(G).
Para demostrar que G
A
entonces X es derivable, y como X
A
entonces X es
derivable y alcanzable, por lo tanto, S
X
w
T
, y entonces X es util, lo que
contradice la suposici on de que en G
no hay
smbolos in utiles.
66 Captulo 4. Gram aticas de Contexto Libre
c.q.d.
La aplicaci on de los lemas a cada GCL debe realizarse seg un el orden indicado, puesto
que en caso contrario se podra obtener una GCL con smbolos in utiles.
Ejemplo:
Sea G la GCL denida por medio de las siguientes producciones:
S aABC [ a; A a; B b; E b.
Si se aplica primero el lema 4.1 se obtiene la GCL
S a; A a; B b; E b,
y al aplicar a continuaci on el lema 4.2 se obtiene la GCL
S a.
Si a G se le aplicase primero el lema 4.2 se obtendra la GCL siguiente
S aABC [ a; A a; B b,
y al aplicar posteriormente el lema 4.1 la GCL resultante sera la siguiente
S a; A a; B b
que contiene los smbolos in utiles A, B.
El siguiente paso para simplicar una GCL consiste en eliminar los smbolos anulables.
Si A P, entonces la aparici on del smbolo A en alguna forma sentencial inter-
media del proceso de generaci on de una cadena, x, del lenguaje supone que, m as pronto o
m as tarde, el auxiliar A ser a sustituido por , y que, por lo tanto, dicho smbolo no habr a re-
portado ninguna utilidad en el proceso de generaci on de la cadena x.
Teorema 4.3 Para toda GCL G [ L(G) = L, existe una GCL G
) = L(G) -
y G
. . .
w ,= .
L(G) L(G
2
) : Sea w L(G), w ,= , luego S
1
2
. . . w.
Sup ongase que
i
j
aplicando unicamente producciones .
Para obtener P
2
lo que se ha hecho ha sido eliminar cero o m as apariciones de cero
o m as smbolos anulables de la forma sentencial
i
, obteniendo la forma sentencial
j
. As pues, en P
2
existe una producci on que permite realizar esa transformaci on
directamente, y entonces en G
2
se puede derivar directamente
j
de
i
,
i
j
.
Una vez obtenida G
2
se le aplica el teorema 4.2 para eliminar los smbolos in utiles
1
,
obteni endose la GCL buscada.
c.q.d.
Ejemplo:
Sea G la GCL dada por el siguiente conjunto de producciones:
S ABC [ Da
A aAb [
B bBc [
C cCa [ ca
D AB [ a
1
Si bien en la pr actica suele aplicarse este paso primero, se debe tener en cuenta que tras eliminar las
transiciones es posible que vuelvan a aparecer smbolos in utiles.
68 Captulo 4. Gram aticas de Contexto Libre
El conjunto de smbolos anulables, /, se calcula de acuerdo al m etodo indica-
do:
A
1
= A, B, A
2
= A, B, D, A
3
= A
2
= /
El conjunto de producciones P
2
ser a el siguiente:
S ABC [ AC [ BC [ C [ Da [ a
A aAb [ ab
B bBc [ bc
C cCa [ ca
D AB [ A [ B [ a
Corolario 4.1 Dada una GCL G puede construirse una GCL G
equivalente a G tal
que no tenga producciones excepto cuando L(G) en cuyo caso S
es la
unica producci on en la que aparece y adem as S
no aparece en el consecuente de
ninguna otra regla de producci on.
Efectivamente, si G =
A
,
T
, P, S) es una GCL, tal que L(G), entonces se cons-
truye la gram atica G
2
=
A
,
T
, P
2
, S) siguiendo el m etodo expuesto en la demostraci on
del teorema 4.3.
La relaci on entre G y G
2
es L(G
2
) = L(G) . Para construir la gram atica G
del
corolario se dene G
como
A
,
T
, P
, S
) tal que
A
=
A
S
, S
A
, y P
=
P
2
S
[ S.
El ultimo paso para simplicar una GCL consiste en eliminar las producciones unita-
rias, es decir aquellas producciones de la forma A B, ya que cuando aparecen en una
derivaci on lo unico que introducen es un cambio de nombre del auxiliar.
Teorema 4.4 Todo LCL L, tal que , L, se puede generar por una GCL G que no
contiene producciones unitarias ni smbolos in utiles ni anulables.
Demostraci on:
Sea G =
A
,
T
, P, S) una GCL tal que L(G) = L y en G no existen producciones .
El teorema 4.3 asegura que existe. El primer paso para obtener la gram atica sin producciones
unitarias, consiste en calcular los smbolos que aparecen en dichas producciones, es decir,
los conjuntos U(X) = Y
A
[ Y
X, X
A
.
Estos conjuntos se pueden calcular por medio del siguiente proceso iterativo:
U
1
(X) = X
U
i+1
(X) = U
i
(X) Z
A
[ Y U
i
(X) : (Z Y ) P, i 2.
4.4. Formas Normales. 69
En el c alculo anterior, la condici on de parada es k [ U
k+1
(X) = U
k
(X).
Sea G
1
=
A
,
T
, P
1
, S) la GCL tal que el conjunto de producciones P
1
se construye
a partir de P y del conjunto U(X) de la siguiente forma:
(Z ) P
1
,
A
X
A
[ Z U(X) (X ) P.
Resta por demostrar que L(G
1
) = L(G), comprobando la doble inclusi on.
L(G
1
) L(G) : Cada producci on de P
1
se ha obtenido realizando una secuencia de de-
rivaciones con producciones de P; por lo tanto, si X P
1
entonces X
aplicando producciones de P.
Sea w L(G
1
), es decir, S
1
2
. . . w, aplicando producciones de
P
1
; entonces, en la gram atica G se puede realizar la siguiente derivaci on: S
1
. . .
w. Por lo tanto, w L(G).
L(G) L(G
1
) : Sea w L(G), y sea la secuencia de producciones que la producen la
siguiente, S
1
2
. . . w.
Sup ongase que hasta
i
no se aplican producciones unitarias, y que
i
= X
i
i+1
= X
i+1
j1
= X
j1
aplicando unicamente producciones unitarias
y que de
j1
= X
j1
j
= por medio de una producci on no unitaria,
X
j1
.
Lo que se ha hecho ha sido sustituir en cada derivaci on un smbolo auxiliar, X
i
, por
otro smbolo auxiliar, X
i+1
, hasta llegar a la forma sentencial
j1
= X
j1
y,
posteriormente, aplicar la producci on X
j1
.
En P
1
existe una producci on que permite realizar esa transformaci on directamente,
X
i
; entonces en G
1
se puede derivar directamente la forma sentencial
j
desde
la forma sentencial
i
,
i
j
.
Una vez obtenida G
1
se eliminan los smbolos in utiles
2
obteni endose la GCL buscada.
c.q.d.
4.4. Formas Normales.
Una forma normal para una clase de lenguajes es un formato en el que se pueden escribir
las producciones de una gram atica que genere un lenguaje de esa clase.
De entre las distintas (y m ultiples) formas normales existentes, en este tema se estu-
diar an dos de las m as utiles: la forma normal de Chomsky (FNCH) y la forma normal de
Greibach (FNG).
2
Recu erdese lo comentado en el pie de p agina 1.
70 Captulo 4. Gram aticas de Contexto Libre
4.4.1. Forma Normal de Chomsky, FNCH.
Teorema 4.5 (Formal Normal de Chomsky) Todo LCL L, , L, se puede generar
por una GCL en la que todas sus producciones tienen el siguiente formato:
A BC
A a
donde A, B, C son smbolos auxiliares y a es un smbolo terminal.
Demostraci on:
Sea L un LCL, , L, y sea G =
A
,
T
, P, S) una GCL tal que L(G) = L y en G no
existan producciones unitarias, smbolos in utiles ni producciones .
El primer paso para conseguir una GCL equivalente a G en la que todas sus produccio-
nes est en en forma normal de Chomsky consiste en conseguir que los consecuentes de todas
las producciones de longitud mayor que dos est en compuestos exclusivamente por smbolos
auxiliares.
Para ello se dene el conjunto C = C
a
[ a
T
: C
A
= (es decir, los
elementos de C son todos smbolos que no pertenecen a
A
).
Sea f :
A
T
A
C la funci on denida de la forma siguiente:
f(X) = X, si X
A
f(X) = C
X
, si X
T
Sea G
A
,
T
, P
, S) la GCL en la que
A
=
A
C
P
= A f() [ (A ) P [ [ 2
A a P [ a
T
C
a
a [ C
a
C
Con esta construcci on se garantiza que L(G
) = L(G).
L(G
(donde A
A
y w
T
),
entonces en G se puede derivar A
w.
Paso Base (n = 1): si en G
y
como A
A
, entonces w
T
, y, por lo tanto, (A w) P.
Hip otesis de inducci on: Si A
k
w en la gram atica G
, entonces A
w en la GCL
G.
4.4. Formas Normales. 71
Paso de inducci on: Sea A
k+1
w una derivaci on en G
de k+1 pasos.
El primer paso debe de ser de la forma A B
1
B
2
. . . B
m
, m 2, y entonces
se puede escribir w = w
1
w
2
. . . w
m
, donde B
i
w
i
. Si B
i
= C
a
entonces
w
i
= a.
Por la construcci on de P
w
i
no lleva m as de k
pasos, y, por hip otesis de inducci on, en la GCL G se puede derivar X
i
w
i
.
Por lo que A
w.
L(G) L(G
) : Por construcci on de P
, G
A
,
T
, P
.
(A A
1
A
2
. . . A
n
) P
D
1
, D
2
, . . . , D
n2
A
, donde D
1
, D
2
, . . . , D
n2
son nuevos smbolos auxiliares.
c.q.d.
Ejemplo:
Calcular una GCL en FNCH equivalente a la GCL G determinada por medio
del siguiente conjunto de producciones:
S aAb
A aAb [ aC [ AB [
B bBa [
C CD [ AB
D bD [
E aEb [ aE [ aS
El primer paso consiste en eliminar los smbolos in utiles. Para ello se eliminan
primero los smbolos no derivables (si bien, en este ejemplo, se obtiene que
todos los smbolos son derivables) y todos los smbolos no alcanzables; en este
caso se obtiene que el smbolo E es no alcanzable.
72 Captulo 4. Gram aticas de Contexto Libre
La GCL equivalente sin smbolos in utiles es:
S aAb
A aAb [ aC [ AB [
B bBa [
C CD [ AB
D bD [
El siguiente paso consiste en eliminar las producciones . Para ello se calcula
el conjunto de smbolos anulables, el conjunto /:
A
1
= A, B, D; A
2
= A, B, C, D = A
3
= /
Por lo tanto, como S , / resulta que , L(G) y, por lo tanto, se puede
escribir una GCL equivalente sin producciones :
S aAb [ ab
A aAb [ ab [ aC [ a [ AB [ B
B bBa [ ba
C CD [ D [ AB [ A [ B
D bD [ b
Al eliminar las producciones no han aparecido smbolos in utiles. El ultimo
paso para conseguir una GCL simplicada consiste en eliminar las produccio-
nes unitarias.
La GCL G
) = L(G
) es la siguien-
te:
S C
a
X
1
[ C
a
C
b
A C
a
X
1
[ C
a
C
b
[ C
a
C [ a [ AB [ C
b
X
2
[ C
b
C
a
B C
b
X
2
[ C
b
C
a
C CD [ C
b
D [ b [ AB [ C
b
X
2
[ C
b
C
a
[ C
a
X
1
[ C
a
C
b
[ C
a
C [ a
D C
b
D [ b
C
a
a
C
b
b
X
1
AC
b
X
2
BC
a
4.4. Formas Normales. 73
Corolario 4.2 Dada una GCL G puede construirse una GCL G
equivalente a G tal
que todas sus producciones est en en Forma Normal de Chomsky, excepto cuando
L(G), en cuyo caso S
no aparece
en el consecuente de ninguna otra regla de producci on, y el resto de producciones de
P
A
,
T
, P
) = L(G) y G
est a en Forma
Normal de Chomsky. Resulta suciente con construir la GCL G
A
,
T
, P
, S
) donde
A
=
A
S
,
S
A
y
P = S
[ (S ) P
.
4.4.2. Forma Normal de Greibach, FNG.
Para poder realizar la transformaci on de una GCL en otra que cumpla con las condicio-
nes expuestas por la forma normal de Greibach se precisa de unas herramientas b asicas que
son el lema de la sustituci on y el de la eliminaci on de la recursividad a izquierdas en una
GCL.
Ambos lemas proporcionan m etodos que permiten realizar ciertas transformaciones en
una GCL, sin que se vea afectado el lenguaje generado por la misma.
Lema 4.3 (de la Sustituci on) Sea G =
A
,
T
, P, S) una GCL. Sea (A
1
B
2
) P y sea (B
1
[
2
[ . . . [
r
) el conjunto de todas las produc-
ciones de G que tienen al smbolo auxiliar B como antecedente.
Sea G
=
A
,
T
, P
2
[
2
[ . . . [
1
2
), entonces L(G) = L(G
).
Demostraci on:
Para demostrar que ambas GCL generan el mismo lenguaje, se demostrar a la inclusi on
en los dos sentidos: L(G) L(G
) y L(G
) L(G).
L(G
2
es una pro-
ducci on de P
2
.
74 Captulo 4. Gram aticas de Contexto Libre
L(G) L(G
2
.
En G
, A
1
2
.
c.q.d.
Lema 4.4 (de la Eliminaci on de la Recursividad a Izquierdas) Sea G =
A
,
T
, P, S) una GCL y sea A A
1
[ A
2
[ . . . [ A
r
el conjunto de
todas las producciones de P que tienen al smbolo A como antecedente y que son
recursivas a izquierdas. Sea A
1
[
2
[ . . . [
m
el resto de producciones de P
que tienen al smbolo A como antecedente.
Sea G
A
,
T
, P
A
=
A
B, B ,
A
,
y tal que en P
).
Demostraci on:
Tambi en en este lema, para ver que ambas GCL generan el mismo lenguaje, se demos-
trar a la inclusi on en los dos sentidos: L(G) L(G
) y L(G
) L(G).
L(G) L(G
i
, y que, desde esta forma sentencial hasta la forma sentencial
j1
, s olo se aplican
producciones recursivas a izquierdas.
Desde
j1
se genera la forma sentencial
j
utilizando una producci on no recursiva a
izquierdas.
En resumen, todo este proceso se puede expresar de la forma siguiente, S
i
, y
desde esta forma sentencial se realizan las derivaciones recursivas a izquierdas:
i
= A A
i
A
i2
i1
. . . A
ip
. . .
i2
i1
=
j1
.
La siguiente derivaci on que pasa de
j1
a
j
no es recursiva a izquierdas:
A
ip
. . .
i2
i1
j
ip
. . .
i2
i1
=
j
.
4.4. Formas Normales. 75
En G
i
= A
j
B
j
ip
B
j
ip
ip1
B
. . .
j
ip
. . .
i2
B
j
ip
. . .
i2
i1
=
j
.
Por lo tanto, se puede llegar a la misma forma sentencial, y, si desde
j
se deriva x en
G, entonces tambi en se puede derivar x en G
.
L(G
A
,
T
, P
) = L(G).
El primer paso para conseguir transformar G
A
=
A
1
, A
2
, . . . , A
m
. Este orden se establecer a con la intenci on de que el mayor n umero
posible de producciones de P
A
, si A
k
A
j
P
susceptible de
ser transformada para que cumpla la anterior propiedad (es decir, aquellas producciones de
P
A
), tiene su consecuente
formado por dos smbolos auxiliares.
Sup ongase que i, 1 i < k se cumple que si A
i
A
j
, entonces j > i. La
producci on asociada al smbolo A
k
puede ser de una de estas cuatro formas:
76 Captulo 4. Gram aticas de Contexto Libre
1. A
k
a,
2. A
k
A
j
, j > k,
3. A
k
A
j
, j < k,
4. A
k
A
k
.
Las dos primeras situaciones identican formatos que cumplen con la propiedad (4.1).
La tercera situaci on no cumple con esta propiedad, por lo tanto, se debera aplicar alg un
m etodo para que lo cumpliese. Este m etodo consiste en aplicar el lema de la sustituci on
(lema 4.3) tantas veces como sea necesario hasta obtener una producci on que, o bien cumpla
la propiedad (4.1), o bien est e en el formato 4:
Sea A
k
A
j
, una producci on de la forma 3, es decir j < k.
Las producciones asociadas al smbolo A
j
deben cumplir con la propiedad
(4.1). Sea A
j
A
p
1
, p > j; luego, sustituyendo A
j
en la producci on de
A
k
se obtiene A
k
A
p
1
.
En esta situaci on p puede ser mayor (en cuyo caso, ya se cumple con la propie-
dad), menor o igual a k.
Sup ongase que p < k; entonces, las producciones asociadas al smbolo A
p
deben cumplir con la propiedad (4.1).
Sea A
p
A
q
2
, q > p. Sustituyendo A
p
en la producci on de A
k
se obtiene
A
k
A
q
1
.
De esta manera, como m aximo en k-1 pasos, se obtendr a una producci on que
cumpla con la propiedad (4.1) o que est e en el formato 4.
Las producciones de tipo 4 se pueden modicar aplicando el lema de eliminaci on de la
recursividad a izquierdas (lema 4.4).
Cuando todas las producciones iniciales cumplan con la propiedad (4.1), entonces el
conjunto de producciones contendr a producciones con los siguientes formatos:
1. A
i
A
j
, j > i,
2. A
i
a, a
T
,
A
, ya que G
A
.
Las producciones de A
m
no pueden ser de la forma 1, ya que no hay ning un smbolo
auxiliar superior en el orden a A
m
. Tampoco pueden ser de la forma 3, ya que estas produc-
ciones son las asociadas a la introducci on de nuevos smbolos auxiliares en la eliminaci on
de la recursividad a izquierdas. Por lo tanto, las producciones de A
m
son de las forma,
A
m
a
1
1
[ a
2
2
[ . . . [ a
t
t
.
4.4. Formas Normales. 77
y ya est an en FNG.
Para convertir el resto de producciones asociadas a los smbolos de
A
a la FNG se
aplica el siguiente algoritmo:
for in range(m-1,0, -1):
Sea A
i
A
j
A
y, por lo tanto, realizando su sustituci on por los consecuentes de sus
producciones asociadas se tiene un nuevo conjunto de producciones en FNG.
c.q.d.
Corolario 4.3 Dada una GCL G puede construirse una GCL G
equivalente a G tal
que todas sus producciones est en en Forma Normal de Greibach, excepto cuando
L(G), en cuyo caso se cumple que
1. S
A
,
T
, P
) = L(G) y G
est e en Forma
Normal de Greibach. Es suciente con construir la GCL G
A
,
T
, P
, S) donde
A
=
A
S
, S
A
y P
= S
[ S P
.
Ejemplo:
Sea G la siguiente GCL:
S AS [ AB
A BA [ a
B AB [ b
Se establece el siguiente orden respecto a los smbolos auxiliares: B < S < A.
Con este orden
3
las producciones de S cumplen con la propiedad (4.1), las del
smbolo B tambi en, pero la producci on del smbolo A, A BA, no la cumple.
3
Se ha elegido este, pero tambi en se hubiera podido optar por el orden S, A, B y, en ese caso, el desarrollo
sera similar teniendo en cuenta que son las producciones del smbolo B las que no cumplen la propiedad (4.1)
y que sobre ellas habra que aplicar los lemas 4.3 y 4.4.
78 Captulo 4. Gram aticas de Contexto Libre
Por lo tanto, se aplicar a tantas veces como sea necesario el lema 4.3, de la sus-
tituci on, hasta conseguir una producci on que o bien cumpla la propiedad o bien
sea recursiva a izquierdas. En este caso si se sustituye B por sus consecuentes,
de la producci on A BA, se obtienen las producciones A ABA [ bA.
Si, adem as, se elimina la recursividad a izquierdas que se ha introducido en
las producciones del smbolo A, queda el siguiente conjunto de producciones:
S AS [ AB
B AB [ b
A bA [ a [ bAX
1
[ aX
1
X
1
BA [ BAX
1
En esta situaci on, las producciones del smbolo A ya est an en FNG. Ahora hay
que realizar un proceso de sustituci on en los consecuentes de los smbolos de
menor orden al smbolo A.
S bAS [ aS [ bAX
1
S [ aX
1
S [ bAB [ aB [ bAX
1
B [ aX
1
B
B bAB [ aB [ bAX
1
B [ aX
1
B [ b
S olo falta sustituir el primer smbolo del consecuente asociado a cada produc-
ci on de X
1
para tener toda la gram atica en FNG:
S bAS [ aS [ bAX
1
S [ aX
1
S [ bAB [ aB [ bAX
1
B [ aX
1
B
B bAB [ aB [ bAX
1
B [ aX
1
B [ b
A bA [ a [ bAX
1
[ aX
1
X
1
bABA [ aBA [ bAX
1
BA [ aX
1
BA [ bA [
bABAX
1
[ aBAX
1
[ bAX
1
BAX
1
[ aX
1
BAX
1
[ bAX
1
Captulo 5
Aut omatas de Pila
Indice General
5.1. Introducci on. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.2. Relaci on entre los Aut omatas de Pila y los LCL. . . . . . . . . . . . 87
5.1. Introducci on.
La tarea de reconocimiento de los LCL se realiza por medio de un tipo de aut omata
denominado aut omata de pila, AP.
Denici on 5.1 Un Aut omata de Pila es una s eptupla
A = , Q, , f, q
0
, Z
0
, F)
donde
es el alfabeto de entrada,
Q es el conjunto de estados, que es nito y no vaco,
es el alfabeto de la pila,
q
0
es el estado inicial,
Z
0
es un smbolo especial, denominado fondo de pila, Z
0
,
F es el conjunto de estados nales, F Q,
f es la funci on de transici on, f : Q( ) 2
Q
.
79
80 Captulo 5. Aut omatas de Pila
Una descripci on informal de tal aut omata es la representada en la siguiente gura:
Cinta de entrada
Pila
Cima
Fondo
Control
Finito
Cabezal
de Lectura
Cabezal
de L/E
El aut omata de pila consta de una cinta de entrada dividida en celdas, cada una de las
cuales puede almacenar un s olo smbolo. El acceso a cada celda se realiza por medio del
cabezal lector, cuyo movimiento siempre es de izquierda a derecha. El aut omata posee un
cabezal adicional de lectura/escritura que s olo puede leer o escribir sobre la cima de una
pila. Por eso en este aut omata se dispone de dos alfabetos de smbolos, el alfabeto de la
cinta de entrada, , y el de la pila, .
El funcionamiento de este aut omata es el siguiente: dado un smbolo de la cinta de
entrada o bien la cadena vaca
1
(que equivale a no leer el smbolo que se encuentra bajo
el cabezal de lectura), el estado actual del aut omata (especicado en el control nito) y el
smbolo que est e en la cima de la pila, entonces este aut omata
1. cambia de estado,
2. elimina el smbolo de la cima de la pila y apila ninguno, uno o varios smbolos en la
misma, y
3. mueve el cabezal de lectura sobre la cinta de entrada una celda a la derecha, siempre
y cuando se hubiese ledo un smbolo de la misma.
Es decir, dada la transici on f(q, a, X) = (p
1
,
1
), (p
2
,
2
), . . . , (p
m
,
m
) el aut omata
de pila, en el supuesto que se seleccione para ejecuci on la acci on f(q, a, X) = (p
i
,
i
), con
i
= RY Z, realiza los siguientes cambios:
X
Estado
actual: q
a
Z
Y
R
a
Estado
actual: p
i
Como se observa en la gura, se transita desde el estado q al estado p
i
(que pasa a ser el
estado actual) el cabezal de lectura se desplaza una celda a la derecha y en la pila desaparece
el smbolo X de la cima y en su lugar se introducen los smbolos Z, Y y R, en este orden.
1
M as adelante, se remarcar a esta cuesti on, pero n otese que esta posibilidad de no leer el smbolo bajo el
cabezal hace que el comportamiento de unl aut omata de pila sea no determinista por propia denici on.
5.1. Introducci on. 81
El comportamiento es similar en el caso de ejecutar una transici on del tipo f(q, , X) =
..., (p
i
,
i
), ..., con la salvedad de que, en este caso, el cabezal de lectura de la cinta no se
hubiera desplazado hacia la derecha y permanecera sobre el smbolo a.
Para poder describir el comportamiento del AP sin necesidad de tener que especicar
de forma gr aca su evoluci on, se suelen utilizar las descripciones instant aneas; en el caso
de un AP, una descripci on instant anea es un elemento del conjunto Q
. As,
por ejemplo, la descripci on instant anea (q, w, ) ( Q
) representa la siguiente
situaci on:
Estado
actual: q
x
w
La cadena de entrada es x, de la cual falta todava por analizar el sujo w. El cabezal de
lectura est a sobre el primer smbolo de w, el estado actual del aut omata es q y el contenido
de la pila es .
Se dice que una descripci on instant anea I
1
alcanza a otra descripci on instant anea I
2
en
un s olo paso, y se denota como I
1
I
2
, cuando se cumplen las siguientes condiciones:
I
1
= (q, aw, X)
I
2
= (p, w, )
(p, ) f(q, a, X) [ a ( ) X
Se dice que una descripci on instant anea I
1
alcanza a otra descripci on instant anea I
2
, y
se denota como I
1
I
2
, si n descripciones instant aneas auxiliares DI
1
, DI
2
, . . . , DI
n
tal
que a trav es de ellas se pueda alcanzar I
2
desde I
1
, es decir,
I
1
= DI
1
DI
2
. . . DI
n
= I
2
.
Con estas deniciones ya se est a en condiciones de poder establecer cu al es el lenguaje
aceptado por un AP, en el que hay que diferenciar dos casos.
Denici on 5.2 Se dene el lenguaje aceptado por estado nal de un AP A al con-
junto
L(A) = x
[ (q
0
, x, Z
0
)
(p, , ) tal que p F.
Se dene el lenguaje aceptado por pila vaca de un AP A al conjunto
N(A) = x
[ (q
0
, x, Z
0
)
(p, , ).
82 Captulo 5. Aut omatas de Pila
Se observa que en la denici on de N(A), no importa el estado al que se llegue al analizar
la cadena x. Es suciente con que, al nalizar su an alisis, la pila quede vaca.
Ejemplo:
Sea A el siguiente AP:
A = a, b, q
0
, S, A, B, f, q
0
, S, )
donde la funci on de transici on f se dene de la forma siguiente:
f(q
0
, a, S) = (q
0
, SB), (q
0
, ASB)
f(q
0
, , S) = (q
0
, )
f(q
0
, b, B) = (q
0
, )
f(q
0
, a, A) = (q
0
, )
Como se observa, en este AP el conjunto de estados nales es . Por lo tanto,
este AP reconoce el lenguaje por el criterio de estado nal.
El lenguaje reconocido por este aut omata por el criterio de pila vaca es
N(A) = a
m
b
n
[ m n.
Para comprobar que este AP reconoce la cadena aaabb se van a especicar
todas las posibles transiciones que se pueden realizar con este aut omata; el
resultado se muestra en la gura 5.1. Como al menos una secuencia de transi-
ciones consigue vaciar la pila y consumir toda la cadena de entrada, entonces
la cadena aaabb ser a aceptada.
(q
0
, aaabb, S)
(q
0
, aaabb, )
Rechaza
(q
0
, aabb, ASB)
(q
0
, aabb, SB)
(q
0
, abb, SBB) (q
0
, abb, ASBB)
(q
0
, bb, SBBB) (q
0
, bb, ASBBB)
Rechaza
(q
0
, abb, BB)
Rechaza
(q
0
, bb, SBB)
(q
0
, bb, BBB) (q
0
, bb, BB)
(q
0
, b, B) (q
0
, b, BB)
(q
0
, )
Acepta
(q
0
, B)
Rechaza
(q
0
, abb, SB)
(q
0
, aabb, B)
Rechaza
(q
0
, bb, SBB) (q
0
, bb, ASBB)
Rechaza
(q
0
, abb, B)
Rechaza
(q
0
, bb, BB)
(q
0
, b, B)
(q
0
, )
Acepta
Figura 5.1: An alisis de todas las posibles transiciones que puede realizar el aut omata A
sobre la cadena aaabb.
La denici on de un aut omata de pila implica un comportamiento no determinista, que
se pone de maniesto en el ejemplo anterior.
De forma general, un aut omata de pila determinista es un AP en el que es aplicable
una, y s olo una, transici on en cada instante. Sin embargo, esta posibilidad no basta para
excluir el comportamiento no determinista, ya que puede darse la situaci on de que, desde
5.1. Introducci on. 83
un mismo estado y con un mismo smbolo en la cima de la pila, se puedan realizar acciones
diferentes si existen transiciones con lectura de smbolo o sin lectura de smbolo, es decir,
f(q, a, A) ,= f(q, , A) ,= . Esto representa una situaci on no determinista tal y como
se pone de relieve en la gura 5.1 en, por ejemplo, las tres posibles transiciones que pueden
ejecutarse desde la situaci on inicial (q
0
, aaabb, S).
Por lo tanto, para que un AP sea determinista se han de cumplir las siguientes condi-
ciones:
1. q Q, a ( ), A , se cumple que [ f(q, a, A) [ 1,
2. q Q, A , si f(q, , A) ,= entonces a , f(q, a, A) = .
Ejemplo:
Construir un AP determinista que reconozca el lenguaje L = 0
n
1
n
[ n 0.
f(q
0
, , Z) = (q
0
, X)
f(q
0
, 0, X) = (q
1
, AX)
f(q
1
, 0, A) = (q
1
, AA)
f(q
1
, 1, A) = (q
2
, )
f(q
2
, 1, A) = (q
2
, )
f(q
2
, , X) = (q
0
, )
El AP construido reconoce el lenguaje L por estado nal. Efectivamente, por
cada smbolo 0 ledo de la cinta de entrada, se introduce en la pila otro
smbolo A. En la situaci on en que se lea el primer 1 se pasa al estado q
2
,
cuyo n es eliminar un smbolo A de la pila por cada 1 ledo.
Si al acabar de leer la cadena de entrada el AP est a en el estado q
0
(que
es el unico estado nal) es porque haba el mismo n umero de 0 que de 1.
Cualquier otra transici on que no est e especicada en la anterior funci on de
transici on produce que, si esa situaci on se presenta, entonces el AP se para y
rechaza la cadena.
La denici on de Aut omatas de Pila determinista y no deterministas, permite plantear si
el requisito del determinismo reduce el poder reconocedor de un AP.
Teorema 5.1 Existen LCLs que no son aceptados por ning un AP determinista.
Demostraci on
Sea L = a
n
b
n
: n > 0 a
n
b
2n
: n > 0. Este lenguaje es un LCL pues es generado
por la siguiente GCL:
S aAb [ aBbb
A aAb [
B aBbb [
84 Captulo 5. Aut omatas de Pila
Para demostrar que L no puede ser reconocido por ning un AP determinista es preciso
saber que el lenguaje a
n
b
n
c
n
[ n > 0 no es un LCL
2
.
La demostraci on se har a por reducci on al absurdo: es decir, si se supone que existe un
AP determinista que reconoce L, entonces se llega a un resultado imposible.
Sea A un AP determinista tal que L(A) = L. Se realiza la siguiente construcci on:
1. Sean A
1
y A
2
copias del AP A. Se dice que dos estados, uno de A
1
y otro de A
2
, son
primos entre s, si ambos estados son copias del mismo estado del AP original A.
2. Eliminar la caracterstica de aceptaci on de los estados de aceptaci on de A
1
y la ca-
racterstica de estado inicial del estado inicial de A
2
.
3. Modicar el estado destino p de cada una de las transiciones que se originan en un
antiguo estado de aceptaci on de A
1
, para que el estado destino sea el primo de p en
A
2
.
4. Modicar todas aquellas transiciones que lean una b de la entrada y cuyos estados
destino se encuentren en A
2
para que lean una c en su lugar.
Con esta construcci on el conjunto de cadenas aceptado por este AP A
ser a el formado
por aquellas cadenas que comenzando en el estado inicial de A
1
reconocen n smbolos a y,
posteriormente, reconocen n smbolos b. En este instante, el estado en el que se encuentra el
AP es un antiguo estado nal de A
1
. Sus transiciones se han modicado para que reconozca
n smbolos c (pasando al antiguo AP A
2
) en vez de n smbolos b, y se llega de esta forma,
a uno de los estados nales de A
2
, que son los unicos estados nales de A
. Por lo tanto, se
ha reconocido una cadena de la forma a
n
b
n
c
n
, n > 0.
Es decir, se ha podido construir un AP que permite reconocer un lenguaje que no es un
LCL. Como la construcci on realizada ha sido correcta, el unico fallo en la demostraci on ha
sido la suposici on de que pueda existir ese AP determinista que reconozca L.
Como consecuencia, el lenguaje L no puede ser reconocido por ning un AP determinista.
c.q.d.
La consecuencia directa de este teorema es que, si se denomina L(APND) al conjunto
de lenguajes aceptados por AP no deterministas, mediante el criterio de alcanzabilidad del
estado nal, y L(APD) al conjunto de lenguajes aceptados por AP deterministas, mediante
el criterio de alcanzabilidad del estado nal, entonces
L(APD) L(APND).
2
Se demostrar a en el captulo 6.
5.1. Introducci on. 85
Otra cuesti on relacionada con el estudio de los lenguajes aceptados por los AP, consiste
en determinar si, dado que a cada AP se le pueden asociar dos lenguajes (el aceptado por
estado nal y el aceptado por pila vaca), existe alguna diferencia respecto al conjunto de
lenguajes que pueden reconocerse por ambos criterios.
Es decir, si se denomina N(APND) al conjunto de lenguajes aceptados por APND me-
diante el criterio de pila vaca y L(APND) al conjunto de lenguajes aceptados por APNDme-
diante el criterio de estado nal, cu al es la relaci on existente entre L(APND) y N(APND)?.
Teorema 5.2 Si L = L(A) para alg un AP A, entonces existe un AP A
) =
L.
Demostraci on:
Sea A = , Q, , f, q
0
, Z
0
, F) un AP tal que L(A) = L.
Para construir un AP que reconozca L por pila vaca, el m etodo consiste en introducir
un nuevo estado, q
e
, al que se accede desde cualquiera de los estados de F y cuya unica
nalidad consiste en vaciar la pila.
Adem as, se debe evitar la situaci on en la que en el AP A se vacie la pila, sin que el
estado del aut omata sea nal, ya que esto podra provocar que una cadena no aceptada por
A, s que fuera reconocida por por A
= , Q
, f
, q
0
, X
0
, ) tal que
Q
= Q q
0
, q
e
tal que q
0
, q
e
, Q,
= X
0
tal que X
0
, ,
y en el que las reglas que denen a la funci on de transici on f
(q
0
, , X
0
) = (q
0
, Z
0
X
0
),
2. f(q, a, B) f
(q, a, B), q Q, a ( ), B ,
3. (q
e
, ) f
(q, , B), q F, B
,
4. (q
e
, ) = f
(q
e
, , B), B
.
Hay que demostrar que L(A) = N(A
) y que N(A
) L(A).
86 Captulo 5. Aut omatas de Pila
L(A) N(A
. Por
lo tanto, en el AP A
0
, x, X
0
) (q
0
, x, Z
0
X
0
)
(p, , X
0
)
(q
e
, , ),
y, entonces, x N(A
).
N(A
0
, x, X
0
),
s olo se puede realizar una unica transici on a la descrici on instant anea (q
0
, x, Z
0
X
0
)
y, a partir de esta, todas las transiciones realizadas son tambi en transiciones de A.
Para poder aceptar la cadena x el AP A
tal que
L(A
) = L.
Demostraci on
Sea A = , Q, , f, q
0
, Z
0
, ) un AP tal que N(A) = L.
Para construir un AP que reconozca L por estado nal, el m etodo consiste en introducir
un nuevo estado nal, q
f
, al que se accede cuando en el AP A la pila est a vaca.
Para poder determinar cuando se vaciara la pila, sin que esa situaci on llegue a produ-
cirse, se precisa de un nuevo smbolo fondo de pila que act ue como se nal.
Sea el AP A
= , Q
, f
, q
0
, X
0
, F
) tal que
Q
= Q q
0
, q
f
, tal que q
0
, q
f
, Q,
= X
0
, tal que X
0
, ,
F
= q
f
,
y en el que las reglas que denen a la funci on de transici on f
(q
0
, , X
0
) = (q
0
, Z
0
X
0
),
2. f
(q, , X
0
) = (q
f
, ), q Q.
Falta demostrar que L(A
).
N(A) L(A
0
, x, X
0
) (q
0
, x, Z
0
X
0
)
(p, , X
0
) (q
f
, , ),
y, por lo tanto, x L(A
).
L(A
0
, x, X
0
)
s olo se puede realizar una unica transici on a la descripci on instant anea (q
0
, x, Z
0
X
0
)
y, a partir de esta, todas las transiciones realizadas son tambi en de A.
Para poder aceptar la cadena x, el AP A
f
, , ).
En el AP Ase pueden realizar las mismas transiciones desde (q
0
, x, Z
0
) hasta (p, , )
aceptando, por lo tanto, la cadena x.
c.q.d.
Como consecuencia de ambos teoremas se obtiene que L(APND) = N(APND).
5.2. Relaci on entre los Aut omatas de Pila y los LCL.
En esta secci on se establecer an formalmente las relaciones que existen entre los lengua-
jes de contexto libre y los aut omatas de pila no deterministas.
Teorema 5.4 Si L es un LCL, entonces existe un APND A [ L = N(A).
Demostraci on
Sea L un LCL, tal que , L, entonces existe una GCL G =
A
,
T
, P, S) en Forma
Normal de Greibach, tal que L(G) = L.
88 Captulo 5. Aut omatas de Pila
Se construye el siguiente AP, A = , Q, , q
0
, Z
0
, f, ) donde,
=
T
Q = q
0
=
A
Z
0
= S
(q
0
, ) f(q
0
, a, B) (B a) P
Resta por demostrar que N(A) = L. Para ello, se demostrar a que si se emplean siempre
derivaciones a izquierda en la GCL G, entonces
(S
w) ((q
0
, w, S)
(q
0
, , )),
donde w
A
.
((q, w, S)
(q, , )) (S
w) : Por inducci on sobre el n umero de descripciones ins-
tant aneas utilizadas:
Paso Base: Con i = 0, (q, , S)
0
(q, , S), entonces S
S.
Hip otesis de Inducci on: (q, w, S)
n
(q, , ) S
w.
Paso de Inducci on: Sea (q, wa, S)
n+1
(q, , ) una derivaci on de n+1 pasos; en-
tonces, (q, wa, S)
n
(q, a, ) = (q, a, B) (q, , ).
Las primeras n derivaciones implican, por H.I., que S
w, y la ultima deri-
vaci on s olo se puede realizar si (q, ) f(q, a, B).
Por lo tanto, (B a) P y, adem as, = B, por lo que se obtiene que,
S
wB wa = wa.
(S
w) ((q, w, S)
(q, , )) : Por inducci on sobre el n umero de pasos de deriva-
ci on y sabiendo que en la gram atica se emplean siempre derivaciones a izquierda:
Paso Base: Con i = 0, S
0
S, entonces (q, , S)
(q, , S).
Hip otesis de Inducci on: S
n
w (q, w, S)
(q, , ).
Paso de Inducci on: Sea S
n+1
wa una derivaci on de n+1 pasos. Esta derivaci on se
ha obtenido por medio de la siguiente secuencia, S
n
wB wa = wa.
Las primeras n derivaciones implican, por H.I., que (q, wa, S)
n
(q, a, B), y
la ultima derivaci on s olo se puede realizar si (B a) P, y, por lo tanto,
(q, ) f(q, a, B).
Entonces,
(q, wa, S)
n
(q, a, B) (q, , ) = (q, , ).
c.q.d.
5.2. Relaci on entre los Aut omatas de Pila y los LCL. 89
Por ultimo, queda por establecer el teorema recproco, cuya demostraci on se puede
encontrar en el libro Introduction to Automata Theory, Languages and Computation de
Hopcroft y Ullman.
Teorema 5.5 Si L = N(A) para alg un AP A, entonces L es un LCL.
90 Captulo 5. Aut omatas de Pila
Captulo 6
Propiedades de los Lenguajes de
Contexto Libre
Indice General
6.1. Lema de Bombeo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
6.2. Propiedades de Clausura. . . . . . . . . . . . . . . . . . . . . . . . . 96
6.3. Algoritmos de Decisi on. . . . . . . . . . . . . . . . . . . . . . . . . . 103
6.1. Lema de Bombeo.
Al igual que al estudiar los lenguajes regulares, resulta interesante disponer de cier-
tas herramientas que permitan determinar cuando un lenguaje es de contexto libre, o bien
qu e conjunto de operaciones pueden ser aplicadas a un lenguaje de contexto libre para ob-
tener como resultado otro lenguaje de contexto libre.
Una de las herramientas m as poderosas para determinar que un lenguaje no es de con-
texto libre consiste en vericar que no cumple con las propiedades establecidas por el lema
de bombeo para LCL.
Lema 6.1 (Lema de Bombeo) Para todo LCL L, existe una constante n, dependiente
unicamente de L, tal que si z es una cadena de L, [ z [ n, entonces la cadena z se
puede descomponer como z = uvwxy tal que:
1. [ vx [ 1,
2. [ vwx [ n,
3. Para todo i 0, las cadenas uv
i
wx
i
y son todas cadenas de L.
91
92 Captulo 6. Propiedades de los Lenguajes de Contexto Libre
Demostraci on:
Sea L un LCL, tal que , L; se sabe que entonces existe una GCL en Forma Normal
de Chomsky, G, tal que L(G) = L.
El primer paso en la demostraci on consiste en determinar que, si un arbol de derivaci on
asociado a una cadena de G no tiene un camino (desde la raz hasta una hoja) de longitud
mayor que i, entonces la longitud de la cadena resultado de ese arbol es menor o igual que
2
i1
. Esto se puede demostrar por inducci on respecto a la longitud del camino asociado a
la cadena de L(G).
Paso base: Si la altura del arbol es 1, entonces s olo hay una posibilidad (debido a que todas
las producciones de G est an en FNCH) y es que ese arbol sea el siguiente :
S
a
Por lo tanto, [ a [= 1 2
11
= 2
0
= 1.
Hip otesis de Inducci on: El enunciado es cierto para caminos de longitud i.
Paso de Inducci on: Qu e sucede para caminos de longitud i+1? En este caso, la primera
derivaci on realizada a partir de S debi o ser de la forma S AB (ya que todas las
producciones de G est an en FNCH) y, entonces, en cada uno de los dos nodos del
primer nivel cuelgan sub arboles de derivaci on de altura m axima i. Por lo tanto, por
hip otesis de inducci on, cada uno de estos arboles tiene como resultado una cadena de
longitud m axima 2
i1
.
S
B A
T
1
T
2
z
1
= r(T
1
) z
2
= r(T
2
)
|z
1
| 2
i-1
|z
2
| 2
i-1
El resultado del arbol cuya raz es S, tiene como resultado una cadena que ser a la
concatenaci on de las cadenas generadas por esos dos sub arboles, y, por lo tanto, su
longitud m axima ser a 2
i1
+ 2
i1
= 2
i
.
Una vez obtenido este resultado intermedio, consid erese la GCL G, en FNCH, con k
smbolos auxiliares, [
A
[= k, y sea n = 2
k
.
6.1. Lema de Bombeo. 93
Sea z una cadena de L(G) cuya longitud es mayor o igual que n; entonces, como [ z [>
2
k1
, cualquier arbol de derivaci on para z debe tener, como mnimo, una longitud k+1.
Este camino tiene como mnimo k+2 nodos, de los cuales todos, excepto el ultimo, est an
etiquetados por smbolos auxiliares, por lo que, como s olo existen k smbolos auxiliares
distintos, al menos un smbolo auxiliar debe aparecer dos veces en el camino.
Es decir, si P es uno de los caminos de mayor longitud en el arbol, entonces debe con-
tener al menos dos nodos v
1
y v
2
que satisfagan las siguientes condiciones:
1. v
1
y v
2
tienen la misma etiqueta, A,
2. el nodo v
1
est a m as pr oximo a la raz que el nodo v
2
,
3. el camino desde v
1
hasta la hoja tiene una longitud m axima de k+1.
Si se denomina T
1
al arbol de derivaci on que cuelga del nodo v
1
, entonces la longitud
de la cadena resultado est a acotada por el valor 2
k
(puesto que la altura de T
1
es, como
m aximo, k+1). Sea z
1
esa cadena.
Sea T
2
el arbol que cuelga de v
2
y z
2
su cadena resultado; entonces, se puede escribir
z
1
como z
3
z
2
z
4
.
Adem as, z
3
y z
4
no pueden ser simult aneamente, puesto que la primera derivaci on
utilizada para obtener z
1
debe estar en FNCH, es decir, ser a de la forma A BC.
Por lo tanto, el arbol T
2
debe pertenecer totalmente o bien al arbol que cuelga de B o
bien al que cuelga de C.
En resumen, se conoce que A
z
3
Az
4
y que A
z
2
, tal que [ z
3
z
2
z
4
[ n = 2
k
.
Entonces, A
z
i
3
z
2
z
i
4
, para cualquier valor positivo de i. Por lo tanto, la cadena z
1
puede escribirse como uz
3
z
2
z
4
y, siendo u e y cadenas cualesquiera.
Identicando z
3
con v, z
2
con w y z
4
con x se demuestran todos los enunciados del lema.
c.q.d.
Ejemplo:
Sea la GCL G,
G = S, A, B, a, b, S, S AA; A AB [ a; B AS [ b).
La cadena abaaaa tiene asociado el arbol de derivaci on mostrado en la gura
6.1.
94 Captulo 6. Propiedades de los Lenguajes de Contexto Libre
S
A A
B
A
A
a
Camino P
B
b
A
a
a
S
A
a
A
a
v
1
v
2
T
1
T
2
u = l z
4
=l z
3
= abaa z
2
= a y = a
Figura 6.1:
Arbol de derivaci on de la cadena abaaaa.
Como la altura del arbol es 5 y el n umero de smbolos auxiliares es 3, enton-
ces deben existir, como mnimo, dos nodos que cumplan las tres condiciones
expuestas en la demostraci on del lema de bombeo.
Sean v
1
y v
2
dos de esos nodos. Su etiqueta es el smbolo A.
Desde v
2
se genera la cadena a, pero tambi en podra generarse de nuevo, y re-
petidas veces, todo el sub arbol T
1
, obteni endose las cadenas uz
i
3
z
2
z
i
4
y. Todas
estas cadenas pertenecen a L(G).
El lema de bombeo resulta de utilidad para demostrar que un lenguaje no es de contexto
libre, si no lo cumple.
Ejemplo:
Demostrar que el lenguaje a
n
b
n
c
n
[ n 0 no es un lenguaje de contexto
libre.
Para poder comprobar si se cumplen las condiciones impuestas por el lema de
bombeo, se debe localizar una cadena del lenguaje cuya longitud sea mayor
que la constante del lema para este lenguaje.
Sea k esa constante. La cadena z = a
k
b
k
c
k
, pertenece al lenguaje y su longitud
es mayor que k, [ z [= 3k; por lo tanto, z se puede escribir como uvwxy, pero
cu ales son los smbolos de z que forman parte de la cadena v y de la cadena
x?.
Se deben analizar todos los casos posibles: si al menos uno de estos casos
satisciera las tres condiciones del lema, no se podra demostrar que no se
cumple el lema para esta cadena.
6.1. Lema de Bombeo. 95
1. Si v y x est an compuestas s olo de smbolos as, entonces las cadenas
uv
i
wx
i
y, con i 2 no pertenecen al lenguaje (contienen m as as que
bs y cs).
(k)
aa . . . a
. .
uvwx
(k)
ab . . . b
(k)
bcc . . . cc
. .
y
2. Si v y x est an compuestas s olo de smbolos bs, entonces las cadenas
uv
i
wx
i
y, con i 2 no pertenecen al lenguaje (contienen m as bs que
as y cs).
(k)
aa . . . aab
. .
u
(k)
b . . . b
. .
vwx
(k)
bcc . . . cc
. .
y
3. Si v y x est an compuestas s olo de smbolos cs, entonces las cadenas
uv
i
wx
i
y, con i 2 no pertenecen al lenguaje (contienen m as cs que
as y bs).
(k)
aa . . . a
(k)
abb . . . bc
. .
u
(k)
cc . . . c
. .
vwxy
4. Si v est a compuesta por as y x por bs, entonces las cadenas uv
i
wx
i
y,
con i 2 no pertenecen al lenguaje (contienen m as as y bs que cs).
(k)
aa . . . aab
. .
uv
(k)
b . . . b
. .
wx
(k)
bcc . . . cc
. .
y
5. Si v est a compuesta por bs y x por cs, entonces las cadenas uv
i
wx
i
y,
con i 2 no pertenecen al lenguaje (contienen m as bs y cs que as).
(k)
aa . . . aab
. .
u
(k)
b . . . b
. .
v
(k)
bcc . . . cc
. .
wxy
6. No puede darse el caso que v sean as y x sean cs, pues entonces [
vwx [> k (en w hay como mnimo k smbolos bs).
(k)
aa . . . aab
. .
uv
(k)
b . . . b
. .
w
(k)
bcc . . . cc
. .
xy
7. No pueden mezclarse smbolos en v ni en x pues si se hiciese entonces
las cadenas uv
i
wx
i
y, con i 2 no perteneceran al lenguaje (habra
smbolos descolocados con respecto al formato de las cadenas del len-
guaje)
Como no hay m as opciones posibles para la asignaci on de smbolos a las ca-
denas v y x y ninguna de ellas es v alida, entonces este lenguaje no cumple el
lema de bombeo y, por lo tanto, el lenguaje
a
n
b
n
c
n
[ n 0
no es un lenguaje de contexto libre.
96 Captulo 6. Propiedades de los Lenguajes de Contexto Libre
6.2. Propiedades de Clausura.
Las propiedades de clausura para LCL, son aquellas operaciones que, aplicadas sobre
LCL, dan como resultado otro LCL. Tal y como ocurra al estudiar los lenguajes regulares,
dichas propiedades pueden ayudar a determinar si un lenguaje es, o no es, de contexto libre.
Teorema 6.1 Los LCL son cerrados bajo las operaciones de uni on, concatenaci on,
clausura e inversi on.
La demostraci on de este teorema se deja propuesto como ejercicio.
Teorema 6.2 Los LCL son cerrados bajo la operaci on de sustituci on.
Demostraci on:
Sea G =
A
,
T
, P, S) una GCL tal que L(G) = L.
Se dene la operaci on de sustituci on f : 2
Aa
)
Ab
= .
La tarea consiste en construir una GCL que reconozca f(L).
Sea G
A
,
T
, P
, S
) tal que,
A
=
A
(
a
Aa
)
T
=
a
Ta
S
= S
P
= P
a
P
a
)
donde P
.
Se demostrar a que L(G) = f(L), estudiando las dos inclusiones.
L(G
); desde S
, y aplicando unicamen-
te producciones del conjunto P
a
P
a
, se obtiene una cadena de
terminales x, es decir, S
x.
6.2. Propiedades de Clausura. 97
En la GCL G se puede obtener la cadena S
y = a
1
a
2
. . . a
n
que pertenece a L,
luego f(y) = f(a
1
)f(a
2
) . . . f(a
n
) = x, pertenece a f(L).
f(L) L(G
a
P
a
, obteni endose la cadena x.
c.q.d.
Ejemplo:
Sea = a, b y = 0, 1, 2, tal que
f(a) = L
a
= 0
n
1
n
[ n 1, y
f(b) = L
b
= xx
1
[ x (0 + 2)
.
Sea L = x (a + b)
A
,
T
, P
, S), donde
A
= S, S
a
, S
b
T
= 0, 1, 2
P
= S S
a
SS
b
S [ S
b
SS
a
S [ SS [ ;
S
a
0S
a
1 [ 01; S
b
0S
b
0 [ 2S
b
2 [
Con esta denici on, sea y=abab (por lo tanto, f(y)=f(a)f(b)f(a)f(b)) y sea x
f(y), tal que x=001102200122 con 0011 f(a), 0220 f(b), 01 f(a) y
22 f(b). La cadena x se puede generar en G
mediante la secuencia
S S
a
SS
b
S S
a
S
b
S S
a
S
b
S
a
SS
b
S S
a
S
b
S
a
S
b
S
S
a
S
b
S
a
S
b
=
001102200122
98 Captulo 6. Propiedades de los Lenguajes de Contexto Libre
Corolario 6.1 Los LCL son cerrados bajo la operaci on de homomorsmo (caso par-
ticular de la sustituci on).
Teorema 6.3 Los LCL son cerrados bajo la operaci on de homomorsmo inverso.
Demostraci on:
Sea h :
. Se demostrar a que h
1
(L)
es otro LCL.
El m etodo consiste en construir un AP, M
, que reconozca h
1
(L) a partir del AP M
que reconoce L, de forma que, para cada smbolo ledo de la cinta de entrada, a , el
AP M
= , Q
, , f
, [q
0
, ], Z
0
, F
), donde
Q
= [q, ] [ q F.
La funci on de transici on, f
, se dene como:
1. f
([q
0
, ], a, Z
0
) = ([q
0
, h(a)], Z
0
). Se inicializa la simulaci on del AP M en el
control nito del AP M
,
2. ([p, x], ) f
, los
movimientos del AP M,
6.2. Propiedades de Clausura. 99
4. f
([q, ], , Y ) = ([q, ], ), Y ,= Z
0
. Cuando se vaca el buffer y se ha llegado a
un estado q F, entonces se ha de vaciar la pila.
5. f
([q, ], a, Z
0
) = ([q
0
, h(a)], Z
0
). Cuando se vaca el buffer y se ha llegado a un
estado q F, y en la pila s olo est a el smbolo Z
0
, entonces se prepara para analizar
h(a).
Falta por demostrar que L(M
) = h
1
(L):
h
1
(L) L(M
) : Sea x h
1
(L), entonces h(x) L, y, por lo tanto, en el AP M se
realiza la siguiente secuencia,
(q
0
, h(x), Z
0
) = (q
0
, h(a
1
)h(a
2
) . . . h(a
n
), Z
0
)
(q
1
, h(a
2
) . . . h(a
n
),
1
)
(q
2
, h(a
3
) . . . h(a
n
),
2
)
(q
n
, ,
n
), q
n
F
n
.
Al aplicarle la misma cadena al aut omata M
([q
1
, ], a
2
. . . a
n
, Z
0
)
([q
n
, ], , Z
0
), q
n
F.
Por lo tanto, x L(M
).
L(M
) h
1
(L) : Sea x L(M
), entonces x = a
1
a
2
. . . a
n
y en el an alisis de cada
smbolo a
i
, el AP Mreconoce h(a
i
) mediante las transiciones del AP M. Por lo tan-
to, la cadena que est a reconociendo implcitamente M
es h(a
1
)h(a
2
) . . . h(a
n
) y,
entonces, x = a
1
a
2
. . . a
n
h
1
(L).
c.q.d.
Teorema 6.4 Los LCL no son cerrados bajo la operaci on de intersecci on.
Demostraci on:
Es suciente con encontrar un contraejemplo.
Sea L
1
= a
n
b
n
c
m
[ n 1, m 1, el LCL generado por el siguiente conjunto de
producciones de contexto libre
P
1
= S AB; A aAb [ ab; B cB [ c.
Sea L
2
= a
n
b
m
c
m
[ n 1, m 1, el LCL generado por el siguiente conjunto de
producciones de contexto libre
P
2
= S CD; C aC [ a; D bDc [ bc.
El resultado de la intersecci on es el lenguaje L
1
L
2
= a
n
b
n
c
n
[ n 1, que por el
lema de bombeo se conoce que no es un LCL.
100 Captulo 6. Propiedades de los Lenguajes de Contexto Libre
c.q.d.
Corolario 6.2 Los LCL no son cerrados bajo la operaci on de complementaci on.
Demostraci on:
Sean L
1
y L
2
LCL; entonces, si la complementaci on fuese una operaci on de clausura,
tambi en seran LCL los lenguajes L
1
y L
2
.
Por lo tanto, como la uni on de LCL es una operaci on de clausura, tambi en L
1
L
2
es
un LCL y, por lo tanto, tambi en lo sera el lenguaje L
1
L
2
= L
1
L
2
, lo que se sabe que
es falso.
c.q.d.
Teorema 6.5 Los LCL son cerrados bajo la operaci on de intersecci on con lenguajes
regulares.
Demostraci on:
Sea M un AP tal que L(M) = L. Sea A un AFD tal que R = L(A). El m etodo de demos-
traci on se centra en construir un AP que reconozca L R. Informalmente este AP, M
, se
puede describir por medio de la siguiente gura:
a
Control Finito M'
Control
Finito M
Control
Finito A
La cadena de entrada ser a aceptada si, una vez consumida, tanto el control nito del
AFD A como el control nito del AP M se encuentran en un estado nal, o pueden llegar a
uno de ellos mediante transiciones .
Formalmente esta construcci on se realiza de la forma siguiente:
Sea M = , Q
M
, , f
M
, q
0
, Z
0
, F
M
) un AP y sea A = , Q
A
, f
A
, p
0
, F
A
), entonces
se construye el AP M
, M
= , Q
A
Q
M
, , f, [q
0
, p
0
], Z
0
, F
A
F
M
), donde la funci on
de transici on se dene de la forma siguiente:
([p
, q
], ) f([p, q], a, X) f
A
(p, a) = p
(q
, ) f
M
(q, a, X).
6.2. Propiedades de Clausura. 101
Falta demostrar que L(M
(q, , )
Paso de Inducci on: Sea y = xa, entonces,
([p
0
, q
0
], xa, Z
0
)
i1
([p, q], a, ) ([p
, q
], , ).
La derivaci on de los i-1 primeros pasos, por hip otesis de inducci on, implica que
(q
0
, xa, Z
0
)
i1
(q, a, )
y que f
A
(p
0
, xa) = f
A
(f
A
(p
0
, x), a) = f
A
(p, a).
Adem as, el paso ([p, q], a, )) ([p
, q
], , ) implica que = X
,
existiendo las transiciones (q
) f
M
(q, a, X) y que, tambi en, f
A
(p, a) =
p
.
Por lo tanto, se cumple que
(q
0
, xa, Z
0
)
i1
(q, a, ) = (q, a, X
) (q
, , ) = (q
, ,
)
y que f
A
(p
0
, xa) = f
A
(f
A
(p
0
, x), a) = f
A
(p, a) = p
.
: Hay que demostrar que
f
A
(p
0
, x) = p (q
0
, x, Z
0
))
i
(q, , ) ([p
0
, q
0
], x, Z
0
)
i
([p, q], , ).
La demostraci on es similar a la del caso anterior y se deja propuesta como ejercicio.
c.q.d.
Este teorema resulta de gran utilidad para determinar que un lenguaje no es de contexto
libre.
102 Captulo 6. Propiedades de los Lenguajes de Contexto Libre
Ejemplo:
Determinar si el lenguaje L = xx [ x (a +b)
es un lenguaje de contexto
libre.
El lenguaje a
+
b
+
a
+
b
+
es un lenguaje regular. Si L fuese un lenguaje de con-
texto libre, tambi en lo sera el lenguaje L a
+
b
+
a
+
b
+
. Pero este lenguaje
es,
L a
+
b
+
a
+
b
+
= a
n
b
m
a
n
b
m
[ n, m 1
que se demuestra que no es de contexto libre al no cumplir el lema de bombeo
para lenguajes de contexto libre.
Sea k la constante del lema para L. Entonces z = a
k
b
k
a
k
b
k
pertenece a L y su
longitud es mayor que k; por lo tanto, z se puede escribir como uvwxy, pero
cu ales son los smbolos de z que componen la subcadena x y cu ales lo que
componen la subcadena y?. Se analizan todos los casos posibles:
1. Si v y x est an compuestas s olo de smbolos as del principio de z, entonces
las cadenas uv
i
wx
i
y, i 2 no pertenecen al lenguaje (contienen m as
as en el primer bloque que en el segundo).
(k)
aa . . . a
. .
uvwx
(k)
ab . . . b
(k)
bb . . . ba
(k)
aab . . . bb
. .
y
Algo similar sucedera si se escogieran as del segundo bloque.
2. Si v y x est an compuestas s olo de smbolos bs del principio de z, entonces
las cadenas uv
i
wx
i
y, i 2 no pertenecen al lenguaje (contienen m as
bs en el primer bloque que en el segundo).
(k)
aa . . . aab
. .
u
(k)
b . . . bb
. .
vwx
(k)
aa . . . ab
(k)
b . . . bb
. .
y
Algo similar sucedera si se escogieran bs del segundo bloque.
3. Si v est a compuesta por as y x por bs, ambas en la primera mitad de z,
entonces las cadenas uv
i
wx
i
y, i 2 no pertenecen al lenguaje (contie-
nen m as as y bs en la primera mitad que en la segunda).
(k)
aa
..
u
. . . a
..
v
(k)
abb
..
w
. . . bb
. .
x
(k)
aa . . . ab
(k)
b . . . bb
. .
y
Algo similar sucedera si se escogieran as y bs de la segunda mitad; o
bs de la primera mitad y as de la segunda mitad.
4. No puede darse el caso que v est e formada por as de la primera mitad
y x por as de la segunda mitad, pues entonces [ vwx [> k, ya que en w
hay, como mnimo, k smbolos bs.
6.3. Algoritmos de Decisi on. 103
(k)
aa
..
u
. . . a
..
v
(k)
abb . . . bba
. .
w
(k)
a . . . a
. .
x
(k)
abb . . . bb
. .
y
Algo similar sucedera si se escogieran bs de la primera mitad y de la
segunda mitad.
5. No pueden mezclarse smbolos en v ni en x, pues, si se hiciese, enton-
ces las cadenas uv
i
wx
i
y, i 2 no perteneceran al lenguaje (habra
smbolos descolocados respecto al formato de las cadenas del lenguaje)
Como no hay m as opciones posibles para la asignaci on de smbolos a las ca-
denas v y x, este lenguaje no cumple el lema de bombeo y, por lo tanto, el
lenguaje a
n
b
m
a
n
b
m
[ n, m 1 no es un lenguaje de contexto libre. Tampo-
co lo ser a el lenguaje L = xx [ x (a +b)
.
6.3. Algoritmos de Decisi on.
Un gran n umero de cuestiones sobre LCL resultan solucionables mediante el uso de
algoritmos de decisi on como, por ejemplo, determinar si un LCL es vaco, nito o innito,
o bien determinar si una determinada cadena puede ser generada por una determinada GCL.
Existen, sin embargo, otras cuestiones sobre LCL que no pueden ser resueltas algortmi-
camente; es decir, no existen algoritmos que resuelvan cada una de estas cuestiones para
cualquier GCL que reciban como entrada.
Ejemplos de tales cuestiones son el determinar si dos GCL son equivalentes, si una GCL
es ambigua, o bien si el complementario de un LCL es otro LCL.
En esta secci on se introducen una serie de algoritmos de decisi on para algunas de las
cuestiones resolubles enunciadas anteriormente.
Teorema 6.6 Existe un algoritmo de decisi on para determinar si un LCL es
1. vaco,
2. nito o innito.
Demostraci on:
El primer apartado del teorema resulta sencillo de demostrar: basta con aplicar el al-
goritmo de eliminaci on de smbolos in utiles y comprobar si el smbolo inicial, S, es o no
in util. Si S es in util entonces L(G) = , y en caso contrario L(G) ,= .
104 Captulo 6. Propiedades de los Lenguajes de Contexto Libre
Para determinar si L = L(G) es o no es nito se utiliza el siguiente m etodo: Sea G =
A
,
T
, P, S) una GCL tal que L(G) = L; entonces, se construye la gram atica G
A
,
T
, P
) = L(G) .
A partir de esta gram atica se construye un grafo dirigido donde cada nodo representa a
un elemento de
A
y cada producci on de la forma A BC, o bien A CB, da lugar a
dos arcos, uno que conecta el nodo A con el nodo B y otro que conecta al nodo A con el
nodo C.
C
B
A
Se demostrar a que
El lenguaje L(G) es nito en el grafo asociado a G
i
i+1
A
i+1
i+1
con
i+1
=
i
B
i+1
=
i
;
si la producci on que represente ese arco es A
i
A
i+1
B, este arco expre-
sa la derivaci on
i
A
i
i
i+1
A
i+1
i+1
con
i+1
=
i
i+1
= B
i
.
Inicialmente,
0
=
0
= .
Al camino A
0
A
1
A
2
. . . A
n
A
0
se le puede asociar la siguiente secuencia de derivaciones,
A
0
1
A
1
1
2
A
2
n
A
n
n
n+1
A
0
n+1
donde [
n+1
n+1
[= n + 1
n+1
,
n+1
.
6.3. Algoritmos de Decisi on. 105
Adem as, como todos los smbolos de G
est an en FNCH,
n+1
v, v
y
n+1
x, x
.
Como el smbolo A
0
es alcanzable, entonces S
A
0
uA
0
y, u, y
.
El smbolo A
0
tambi en resulta ser derivable y, entonces, A
0
w, w
.
Reuniendo todos estos resultados se obtiene:
S
uA
0
y
uvA
0
xy
uv
2
A
0
x
2
y
uv
i
A
0
x
i
y
uv
i
wx
i
y, i 0
por lo que, variando el valor de la i se obtienen diferentes, e innitas, cadenas del lenguaje.
Por lo tanto, L(G) es innito.
Falta demostrar que si en el grafo no existen caminos cerrados, entonces el lenguaje es
nito.
Para ello hay que denir previamente el concepto de Rango(A), como la longitud del
camino m as largo que existe en el grafo partiendo del nodo A, A
A
.
N otese que esta denici on de Rango(A) s olo tiene sentido si en el grafo no existen
caminos cerrados (si existiese un camino cerrado en el nodo A no se podra hablar de la
longitud m axima de ese camino, puesto que se puede recorrer tantas veces como se desee).
Con este denici on se cumple que,
si (A a) P
, entonces Rango(A) = 0, y,
si (A BC) P
, si A
x, entonces [ x [ 2
Rango(A)
.
Paso Base : Rango(A) = 0; esto ocurre cuando A a P
y, entonces, [ a [= 1
2
Rango(A)
= 2
0
= 1.
Hip otesis de Inducci on : Rango(A) = r, entonces si A
x, resulta que [ x [ 2
r
.
Paso de Inducci on : Sea Rango(A) = r+1. Entonces, en el grafo existe una relaci on del
tipo
C
B
A
es decir, A BC
z = xy, donde Rango(B) < Rango(A) y Rango(C) <
Rango(A); por lo tanto, si B
x, entonces [ x [ 2
Rango(B)
< 2
Rango(A)
, o, lo
que es lo mismo, [ x [ 2
r
.
106 Captulo 6. Propiedades de los Lenguajes de Contexto Libre
Aplicando un razonamiento similar con el smbolo C, se obtiene que si C
y, se
cumple entonces [ y [ 2
r
, por lo que resulta que
[ z [=[ xy [=[ x [ + [ y [ 2
r
+ 2
r
= 2
r+1
.
Si se denomina Rango(S) = r
0
, entonces x L(G
) se verica que [ x [
2
Rango(S)
= 2
r
0
. Como r
0
es una constante, entonces el n umero de cadenas que pueden
pertenecer a L(G) tiene que ser nito, puesto que su longitud est a acotada por una constan-
te.
c.q.d.
Ejemplo:
Sea G la siguiente GCL en Forma Normal de Chomsky
S AB
A BC [ a
B CC [ b
C a
determinar si L(G) es nito o innito.
B
A
S
C
La primera tarea a realizar es construir su grafo asociado. Como en el grafo
no hay caminos cerrados entonces L(G) es nito; m as a un, el n umero m aximo
de cadenas de L(G) est a limitado a cadenas de longitud m axima 2
Rango(S)
=
2
3
= 8.
El siguiente algoritmo que se va a exponer trata de determinar la pertenencia de una
cadena x a un lenguaje.
Se podra pensar que la cuesti on puede quedar resuelta, simplemente, introduciendo
la cadena x como entrada al AP que reconoce un determinado lenguaje, L(G). Pero, si se
permite que el AP sea arbitrario, podra contener producciones del tipo
(q, X) f(q, , X) ,
o bien del tipo
(p, Y ) f(q, , X) (q, X) f(p, , Y ) ;
6.3. Algoritmos de Decisi on. 107
es decir, transiciones que provocaran en el AP una ejecuci on innita, con lo que sera
posible no saber si la cadena ser a, o no, aceptada por el AP. Este m etodo s olo sera v alido
si se pudiera garantizar que el AP no contiene transiciones que provoquen una ejecuci on
innita.
En el captulo 4 se demostr o que cualquier GCL G, tal que , L(G), tiene una GCL,
G
, equivalente en Forma Normal de Greibach. Basado en esta forma normal, hay un m eto-
do b asico para determinar si una cadena x, [ x [= n, pertenece al conjunto de cadenas
generables por G. Consiste en construir todas las derivaciones de n pasos en la GCL G
; si
alguna de estas derivaciones genera la cadena x, entonces x L(G), y si ninguna de estas
derivaciones permite obtener x, entonces x , L(G). El inconveniente de este m etodo es que
presenta un alto coste computacional, de tipo exponencial, O(k
n
).
Un m etodo alternativo consistira en construir el AP asociado a G
, mediante el m etodo
expuesto en el captulo 5. Una vez construido, bastara con simular el comportamiento de
este AP no determinista con todas las posibles transiciones. Si en alguna de estas secuencias
se llegase a consumir la cadena, resultando la pila vaca, entonces la cadena sera acepta-
da; en caso contrario, la cadena sera rechazada. Este m etodo tambi en presenta un coste
computacional exponencial, O(k
n
).
Existen otros m etodos con menor coste que permiten solucionar este problema. De entre
estos, uno de los m as usados es el m etodo de Cocke-Younger-Kasami, m as conocido como
algoritmo CYK.
Este algoritmo se basa en el siguiente razonamiento. Sea G =
A
,
T
, P, S) una GCL
en Forma Normal de Chomsky y sea x, [ x [= n. Para cada smbolo A
A
, se denen
las cadenas que puede derivar como A
x
ij
, tal que x
ij
es el segmento de la cadena x que
comienza en la posici on i y que tiene longitud j. Con esta notaci on, la cadena x se puede
denotar como x = x
1|x|
= x
1n
.
El algoritmo calcula los conjuntos V
ij
= A
A
[ A
x
ij
. La condici on de
pertenencia es la siguiente:
x L(G) S
x = x
1|x|
S V
1|x|
.
Para calcular estos conjuntos se procede por inducci on sobre j:
j = 1 : Entonces x
i1
T
, y, por lo tanto, V
i1
= A
A
[ A x
i1
P,
j > 1 : Entonces es condici on necesaria y suciente para que A
x
ij
que
(A BC) P [ k, 1 k < j, tal que B
x
ik
C
x
i+k,jk
,
por lo que, como k < j y j k < j, bastara con comprobar que B V
ik
C
V
i+k,jk
.
El algoritmo, cuyo coste computacional para el caso peor es O(n
3
), es el siguiente:
108 Captulo 6. Propiedades de los Lenguajes de Contexto Libre
# Algoritmo CYK
for i in range(1,n+1):
V
i1
= A
A
[ (A x
i1
) P
for j in range(2,n+1):
for i in range(1,n-j+2):
V
ij
=
for k in range(1,j):
V
ij
= V
ij
A
A
[ (A BC) P B V
ik
C V
i+k,jk
Ejemplo:
Determinar si la cadena x = baaba pertenece al lenguaje generado por la si-
guiente GCL:
S AB [ BC
A BA [ a
B CC [ b
C AB [ a
Se construye iterativamente la siguiente tabla:
j i b a a b a
1 B A, C A, C B A, C
2 S, A B S, C S, A
3 B B
4 S, A, C
5 S, A, C
Cada entrada (i,j) de la tabla se rellena con el valor de V
ij
. Como S V
15
, se
verica que x L(G).
Captulo 7
M aquinas de Turing
Indice General
7.1. Modelo de M aquina de Turing. . . . . . . . . . . . . . . . . . . . . . 109
7.2. T ecnicas para la Construcci on de M aquinas de Turing. . . . . . . . 115
7.2.1. Almacenamiento en el Control Finito. . . . . . . . . . . . . . . 115
7.2.2. Cintas con Sectores M ultiples y Marcaje de smbolos. . . . . . 116
7.2.3. Uso de Subrutinas. . . . . . . . . . . . . . . . . . . . . . . . . 117
7.3. M aquinas de Turing Modicadas. . . . . . . . . . . . . . . . . . . . 118
7.3.1. M aquina de Turing con Cinta Innita en Ambos Sentidos. . . . 118
7.3.2. M aquina de Turing Multicinta. . . . . . . . . . . . . . . . . . . 120
7.3.3. M aquina de Turing con M ultiples Cabezales. . . . . . . . . . . 122
7.3.4. M aquina de Turing Ofine. . . . . . . . . . . . . . . . . . . . . 122
7.3.5. M aquina de Turing No Determinista. . . . . . . . . . . . . . . 123
7.3.6. M aquinas de Turing Restringidas. . . . . . . . . . . . . . . . . 125
7.4. Relaci on de la M aquina de Turing con otros Aut omatas. . . . . . . . 126
7.1. Modelo de M aquina de Turing.
La M aquina de Turing es el ultimo modelo de m aquina abstracta que se estudiar a. Es un
aut omata que, a pesar de su simplicidad, es capaz de realizar cualquier c alculo que pueda
ser realizado por un computador y no existe ning un otro modelo con mayor poder compu-
tacional.
Es por ello que se considera como modelo formal del concepto de Algoritmo, si bien
es cierto que existen otros modelos que denen la misma clase de problemas, pudi endose
establecer equivalencias entre todos ellos.
109
110 Captulo 7. M aquinas de Turing
Hay dos puntos de vista para estudiarla:
1. La clase de lenguajes que dene: es un reconocedor de lenguajes de tipo 0, seg un la
jerarqua de Chomsky.
2. La clase de funciones que computa: es el solucionador de problemas m as potente que
hay.
Como aut omata, la M aquina de Turing responde al siguiente modelo mec anico:
C. F.
a1 a2 a3 a4 a5 a6 a8 a9 B B B B B
...
a7
1. Tiene una cinta innita, pero limitada a la izquierda. Sus celdas siempre est an llenas:
o bien por caracteres formando un secuencia de entrada/salida o bien por el car acter
especial blanco (B).
2. Tiene un cabezal de lectura/escritura, que puede desplazarse tanto a la derecha como
a la izquierda, con el unico lmite de que no es posible moverse a la izquierda de la
primera celda.
3. Su funcionamiento est a basado en un paso elemental, transici on, que se compone
siempre de tres acciones:
a) Cambio de estado.
b) Escritura de un smbolo en la celda de la cinta que examina, reemplazando al
que hubiera antes.
c) Desplazamiento a izquierda (L) o derecha (R) una posici on.
4. En el control nito se controla el funcionamiento: cu al es el estado actual de la m aqui-
na y cu ales son las posibles transiciones. El n umero de estados siempre es nito.
La capacidad de escribir es su principal diferencia con otros aut omatas, como el aut oma-
ta nito o el aut omata de pilas, y es la que la dota de potencia para reconocer los lenguajes
de tipo 0 o para calcular funciones.
Ejemplo 1:
Dise nar una M aquina de Turing para calcular la suma de dos n umeros natu-
rales.
7.1. Modelo de M aquina de Turing. 111
Una forma simple de representar los n umeros naturales es utilizando tantos
smbolos como indique su valor num erico. Es decir, si hay que sumar 2 y 3,
se podran representar, respectivamente, como 11 y 111. Para separar ambos
sumandos se podra utilizar un 0. As, la cinta de entrada del aut omata podra
tener el siguiente aspecto,
0011011100000BBBBBBBBBB . . .
Puesto que 11+111 = 11111, una posible forma de realizar el c alculo si el
cabezal estuviera sobre la primera celda sera: primero, localizar el primer
sumando (es decir, localizar el primer 1) y, segundo, eliminar ese primer 1 del
primer sumando con un 0 y avanzar hasta encontrar el 0 de la separaci on y
sustituirlo por un 1. Se obtendra como cadena de salida,
0001111100000BBBBBBBBBB . . .
Para ello, el aut omata debe obedecer a la funci on de transici on:
0 1
q
0
(q
0
, 0, R) (q
1
, 0, R)
q
1
(q
2
, 1, R) (q
1
, 1, R)
q
2
En esta tabla, hay tantas columnas como smbolos pueda leer el aut omata y
tantas las como estados. Para interpretarla, se asume que cada entrada es
la transici on asociada al estado indicado por la la cuando se lee el smbolo
asociado a la columna. La tabla anterior es equivalente a la funci on
f(q
0
, 0) = (q
0
, 0, R)
f(q
0
, 1) = (q
1
, 0, R)
f(q
1
, 1) = (q
1
, 1, R)
f(q
1
, 0) = (q
2
, 1, R)
La primera transici on, por ejemplo, se lee: en el estado q
0
, cuando se lee un
0, se transita a q
0
, se escribe 0 y se mueve el cabezal a la derecha. El estado
q
2
es un estado nal y no se le asocia ninguna transici on.
Ejemplo 2:
Dise nar una M aquina de Turing para determinar si dos n umeros naturales son
iguales.
En este caso, se puede representar el primer n umero mediante 0s y el segundo
mediante 1s. El problema se reducira a comprobar que haya tantos ceros
como unos. La cinta de entrada podra tener este aspecto:
0000011111BBBBBB . . .
Se asume que el cabezal est a ajustado a la izquierda del primer n umero. A
partir de esta posici on, movi endose hacia la derecha, es f acil localizar el pri-
mer 1. Para poder comprobar que hay tantos ceros como unos, se deberan
112 Captulo 7. M aquinas de Turing
marcar de alguna forma las parejas que ya se hayan estudiado. Para ello se
usar a el smbolo X para marcar los ceros y el smbolo Y para marcar los unos.
As, el comportamiento del aut omata, en etapas sucesivas, debera producir el
siguiente contenido de la cinta:
Inicial: 0000011111BBBBBB...
Marcar primera pareja: X0000Y1111BBBBBB...
Marcar segunda pareja: XX000YY111BBBBBB...
Marcar tercera pareja: XXX00YYY11BBBBBB...
Marcar cuarta pareja: XXXX0YYYY1BBBBBB...
Marcar quinta pareja: XXXXXYYYYYBBBBBB...
De esta forma, si al acabar de marcar parejas, s olo quedan Xs e Ys en la cinta,
seguro que los n umeros eran iguales. Este comportamiento queda descrito por
la siguiente funci on de transici on:
0 1 X Y B
q
0
(q
1
, X, R) (q
3
, Y, R)
q
1
(q
1
, 0, R) (q
2
, Y, L) (q
1
, Y, R)
q
2
(q
2
, 0, L) (q
0
, X, R) (q
2
, Y, L)
q
3
(q
3
, Y, R) (q
4
, B, L)
q
4
Como en el ejemplo anterior, no hay transici on asociada al estado q
4
, que es
el nal (es al que se llega cuando efectivamente se ha comprobado que ambos
n umeros son iguales). N otese que en la tabla hay entradas, correspondientes
a estados no nales, sin transici on asociada. En el caso de llegar a alguno
de estos huecos, la m aquina parar a, pero al no parar en el estado q
4
, se debe
concluir que los n umeros no eran iguales.
Este ultimo ejemplo, adem as, permite comprender el doble punto de vista del
estudio de las M aquinas de Turing. Al n y al cabo, el segundo ejemplo es una
M aquina de Turing que reconoce el lenguaje 0
n
1
n
.
7.1. Modelo de M aquina de Turing. 113
Denici on 7.1 Una M aquina de Turing es una s eptupla,
M = , Q, , f, q
0
, B, F)
donde,
es el alfabeto de entrada,
Q es el conjunto de estados. Es nito y no vaco. Se ubica en el Control Finito.
es el alfabeto de la cinta, B.
f es la funci on de transici on,
f : Q Q L, R.
Partiendo de un estado y de un smbolo, indica la transici on a otro estado, el
smbolo a escribir en la cinta y el movimiento del cabezal.
q
0
es el estado inicial, q
0
Q.
B es un smbolo especial que se denomina BLANCO, B .
F es el conjunto de estados nales (aceptadores), F Q.
En el primer ejemplo se tendra:
= 0, 1, = 0, 1, B, Q = q
0
,q
1
,q
2
, F = q
2
y f, funci on de transici on,
seg un queda descrita en la tabla,
y, en el segundo,
= 0, 1, = 0, 1, X, Y, B, Q = q
0
,q
1
,q
2
,q
3
,q
4
, F = q
4
y f, funci on
de transici on, seg un queda descrita en la tabla.
Denici on 7.2 (Descripci on Instant anea) Una descripci on instant anea es una cade-
na que pertenece a
.
Las descripciones instant aneas, DI, se utilizan para describir el estado de la m aquina.
En el contexto del modelo de M aquina de Turing una DI representa la cadena que en un
momento dado se encuentra en la cinta y un identicador de estado que, adem as de indicar
en qu e estado se halla la m aquina, indica la posici on del cabezal de L/E: el cabezal siempre
est a sobre el smbolo inmediatamente a la derecha del identicador de estado. Como la cinta
es innita, s olo se representar an los smbolos signicativos.
114 Captulo 7. M aquinas de Turing
Convenios para interpretar las DI:
1. Si la transici on es del tipo f(q, x
i
) = (p, Y, L), la evoluci on se representa
x
1
x
2
x
i1
qx
i
x
i+1
x
n
x
1
x
2
x
i2
px
i1
Y x
i+1
x
n
2. Si la transici on es del tipo f(q, x
i
) = (p, Y, R), la evoluci on se representa
x
1
x
2
x
i1
qx
i
x
i+1
x
n
x
1
x
2
x
i2
x
i1
Y px
i+1
x
n
En el primer ejemplo, la evoluci on de la MT dise nada (con la entrada indicada)
queda descrita por la siguiente secuencia de DIs,
q
0
0011011100000B 0q
0
011011100000B 00q
0
11011100000B
000q
1
1011100000B 0001q
1
011100000B 00011q
2
11100000B
Denici on 7.3 Dos Descripciones Instant aneas de la M aquina de Turing M, I
1
e I
2
,
est an en relaci on si desde I
1
se puede alcanzar I
2
en un s olo paso (I
1
I
2
).
El cierre reexivo-transitivo de una relaci on se representa como I
1
I
2
; el cierre tran-
sitivo, como I
1
+
I
2
.
Las deniciones anteriores permiten denir formalmente qu e lenguaje reconoce una
M aquina de Turing:
Denici on 7.4 Dada la M aquina de Turing,
M = , Q, , f, q
0
, B, F)
el lenguaje asociado a esta m aquina, al que se denomina L(M) se dene como,
L(M) = x
[ q
0
x
1
p
2
, p F,
1
,
2
= q
0
, q
1
, q
2
, q
3
en el que el estado inicial es q
0
y el
estado nal es q
3
.
Es importante tener en cuenta que la informaci on que se almacena en el control nito
siempre ser a nita.
7.2.2. Cintas con Sectores M ultiples y Marcaje de smbolos.
En el dise no de algunas M aquinas de Turing puede resultar interesante considerar que
la cinta est a dividida en varios sectores; n otese que se tiene una cinta, pero es como si
cada celda tuviera distintos compartimentos. En este caso se asume que el cabezal tiene
capacidad para leer/escribir todos los sectores a la vez: cada sector puede tener un smbolo
y el cabezal los interpreta todos juntos (sera similar a interpretar que 000000101 es 5).
La ventaja de esta t ecnica es disminuir el n umero de smbolos del alfabeto de la cinta: con
s olo dos smbolos y k sectores se podra representar lo mismo que con 2
k
smbolos, por
ejemplo. Dependiendo del sector, puede variar la interpretaci on.
En general, para describir las M aquinas de Turing as dise nadas se realizan tantos pro-
ductos cartesianos del alfabeto como sectores aparezcan. El cabezal lee una k tupla, por lo
que el alfabeto de la cinta toma la forma,
= [
1
,
2
, . . . ,
k
] [ [
1
,
2
, . . . ,
k
]
1
2
. . .
k
1
,
2
, . . . ,
k
], L/R).
Evidentemente, para obtener una M aquina de Turing est andar, basta con renombrar cada
una de las k tuplas, eligiendo el n umero adecuado de smbolos.
Hay un caso particular de esta t ecnica, que suele utilizarse muy frecuentemente: la
M aquina de Turing tiene dos sectores, de los cuales uno se utiliza para almacenar la ca-
dena de entrada (y obtener la cadena de salida, si es el caso) y el segundo s olo admite una
marca especial (
B
B B
0 0 1 0 1
7.2. T ecnicas para la Construcci on de M aquinas de Turing. 117
Al utilizar esta t ecnica hay que redenir el alfabeto de entrada y el de cinta, como el
producto cartesiano entre el alfabeto original y el conjunto B,
.
Como ejemplo de aplicaci on, consid erese el problema propuesto en el segundo
ejemplo, pero, en este caso, se marcar an los smbolos en lugar de sobreescri-
birlos con X e Y. De acuerdo a lo visto, se tendra
= [B, d] [ d 0, 1, = [X, d] [ X B,
, d 0, 1, B
[B,0] [B,1] [
,0] [
,1] [B,B]
q
0
(q
1
, [
,0], R) (q
3
, [
,1], R)
q
1
(q
1
, [B,0], R) (q
2
, [
,1], L) (q
1
, [
,1], R)
q
2
(q
2
, [B,0], L) (q
0
, [
,0], R) (q
2
, [
,1], L)
q
3
(q
3
, [
,1], R) (q
4
, [B,B], L)
q
4
7.2.3. Uso de Subrutinas.
La idea es la misma que cuando se trabaja en un lenguaje de alto nivel: aprovechar las
ventajas del dise no modular para facilitar el dise no de la M aquina de Turing.
La base ser a la descomposici on de la tarea a realizar en tareas m as simples; cada una
de estas subtareas se describir a en una tabla de transici on propia (la subrutina). En la
tabla de transici on que describe a la M aquina de Turing que resuelve el problema completo
habr a estados de llamada a subrutina, q
ll
, caracterizados por que suponen la transici on al
estado inicial de una subrutina. El estado nal de esta ser a realmente un estado de salida
que permite transitar hacia un estado de return en la M aquina de Turing principal.
Subrutina:
q
i
(q
j
,...)
q
f
(q
r
,...)
MT Principal:
q
r
(q
s
,...) . . .
q
ll
(q
j
,...) (q
i
,...) . . .
Para obtener una M aquina de Turing est andar, bastara con reescribir todas las funciones
de transici on como una unica funci on de transici on m as grande.
118 Captulo 7. M aquinas de Turing
7.3. M aquinas de Turing Modicadas.
La M aquina de Turing es un aut omata de denici on y funcionamiento muy sencillo.
El objetivo de esta secci on es estudiar si es posible aumentar su poder computacional
a nadi endole nuevos elementos o si esto simplemente reportar a ventajas desde el punto de
vista de una mayor rapidez en los c alculos o una mayor facilidad para realizarlos.
7.3.1. M aquina de Turing con Cinta Innita en Ambos Sentidos.
La diferencia con el modelo general radica en que la cinta es innita en ambos sentidos.
C. F.
a1 a2 a3 a5 a6 B B
...
B B
...
a4
La denici on es la misma,
M = , Q, , f, q
0
, B, F)
pero, por ejemplo, se puede tener la transici on
f(q
0
, x) = (q
1
, y, L)
que bloqueara a una M aquina de Turing limitada a la izquierda, o puede haber matices de
interpretaci on:
B x y
En el modelo general ese B es signicativo
y formar a parte de una DI, qBxy Bpxy.
B x y
En este modelo, el B no es signicativo:
formar a parte de los innitos que hay
en la cinta
Teorema 7.1 El lenguaje L es reconocido por una M aquina de Turing con cinta in-
nita en ambos sentidos L es reconocido por una M aquina de Turing con cinta
innita por la derecha.
(Ambos modelos tienen el mismo poder computacional)
7.3. M aquinas de Turing Modicadas. 119
Demostraci on:
1
1. Si L es reconocido por una M aquina de Turing con cinta innita por la derecha, L
es reconocido por una M aquina de Turing con cinta innita. Para ello se dene un
smbolo especial (SE) que no pertenezca al alfabeto de la cinta. Si se detecta en una
celda, la m aquina se debera desconectar puesto que se ha realizado un movimiento a
la izquierda de la primera celda. Hacia la derecha no se pone ninguna limitaci on.
x
1
x
2
(M
1
)
SE x
1
x
2
(M
2
)
2. Si L es reconocido por una M aquina de Turing con cinta innita, L es reconocido
por una M aquina de Turing con cinta innita por la derecha. La idea intuitiva de la
demostraci on sera obtener una cinta limitada al cortar la cinta innita en ambos
sentidos y pegar ambos trozos haciendo coincidir el corte:
z
3
z
2
z
1
z
0
z
1
z
2
z
3
(M
1
)
z
0
z
1
z
2
z
3
SE z
1
z
2
z
3
(M
2
)
Se ha denominado M
1
a la m aquina con cinta innita en ambos sentidos, y M
2
a
la m aquina limitada por la izquierda. La m aquina M
2
tiene dos sectores, pero en
un momento dado s olo trabaja con uno de ellos (es decir, en un sector siempre se
escribe lo mismo que se lee, y s olo en el otro la escritura es realmente signicativa).
Para demostrar el enunciado basta con ver c omo traducir los movimientos de M
1
en la m aquina M
2
; la idea es la siguiente:
- Cualquier movimiento a la dcha. de z
0
, hacia R o L en M
1
, es un movimiento a
la dcha. de z
0
, hacia R o L, trabajo en sector superior en M
2
.
Por ejemplo,
el movimiento de z
1
a z
2
(R) en M
1
, es un movimiento a la dcha.
(de z
1
a z
2
), trabajo en sector superior en M
2
,
el movimiento de z
2
a z
1
(L) en M
1
, es un movimiento a la izqda.
(de z
2
a z
1
), trabajo en sector superior en M
2
.
- El movimiento de z
0
a z
1
en M
1
, (L), es un movimiento a la dcha. (de SE a
z
1
), trabajo en sector superior enM
2
.
- Cualquier movimiento a la izqda. de z
1
, hacia R o L en M
1
, es un movimien-
to a la dcha. de z
0
, hacia L o R, trabajo en sector inferior en M
2
.
Por ejemplo,
1
A lo largo de este tema, no se estudiar an las demostraciones formales, sino que se dar an sus ideas b asicas.
Las demostraciones formales supondran el establecimiento de un m etodo constructivo para denir la funci on
de transici on de una MT, M
1
, a partir de otra MT, M
2
. Ello es demasiado farragoso y no contribuira a una
mejor comprensi on de los enunciados
120 Captulo 7. M aquinas de Turing
el movimiento de z
1
a z
2
(L) en M
1
, es un movimiento a la
dcha. (de z
1
a z
2
), trabajo en sector inferior en M
2
,
el movimiento de z
2
a z
1
(R) en M
1
, es un movimiento a la
izqda. (de z
2
a z
1
), trabajo en sector inferior en M
2
.
- El movimiento de z
1
a z
0
en M
1
, (R), es un movimiento a la izqda. (de z
1
a
SE), trabajo en sector inferior en M
2
.
M2
La m aquina M
2
simula el funcionamiento de la m aquina M
1
por barridos. Se necesi-
tar a un contador de valor inicial k y, suponiendo que el cabezal de M
2
est a ajustado
sobre la marca situada m as a la izquierda, se comienza un movimiento hacia la dere-
cha. Cada vez que se detecte una marca de cabezal de L/E, se decrementa el contador
y se almacena el smbolo asociado en el control nito. El barrido acaba cuando el
contador valga 0. Habr a k smbolos almacenados en el CF de M
2
. Se realizara la
misma transici on que se realizara en M
1
. Para poder llevar a cabo los movimientos,
habr a que realizar un nuevo barrido hacia la izquierda, trasladando las marcas hacia
donde haya que trasladarlas (L, R o Z) y sobreescribiendo los smbolos que haya que
reescribir; una vez completado el barrido, se cambia de estado.
2
N otese que se producir an secuencias imposibles. Se debe tener en cuenta que r es un m aximo y no todas
las transiciones tendr an tantas opciones. Al generar todas las secuencias del alfabeto {1,2,..,r}, es posible que
una secuencia obligue, por ej., a tomar la tercera opci on en un par estado/smbolo que s olo tiene dos. Entonces,
se desecha la secuencia y se pasa a la siguiente.
7.3. M aquinas de Turing Modicadas. 125
7.3.6. M aquinas de Turing Restringidas.
El objetivo de las subsecciones anteriores era poner de relieve que diferentes mejoras
fsicas sobre el modelo de M aquina de Turing, no se traducen en un mayor poder compu-
tacional, sino en una mayor eciencia en el c alculo o en una mayor simplicidad de dise no.
De la misma forma que podra creerse que introduciendo mejoras fsicas en el modelo
tendra que aumentar su poder computacional, puede parecer que si se considera un modelo
m as restringido, este debe disminuir. Sin embargo, es posible establecer restricciones sobre
el n umero de estados o el n umero de smbolos del alfabeto de la M aquina de Turing, sin que
esto ocurra
3
.
En concreto, una M aquina de Turing sin restricciones sobre el alfabeto, con una cinta y
s olo tres estados puede simular el comportamiento de cualquier M aquina de Turing. Si lo
que se restringe es el n umero de smbolos, se puede probar el siguiente resultado:
Teorema 7.5 Si un lenguaje L, L (0 + 1)
, que es la entrada de M
1
, debe codicarse
tambi en para ser una cadena de entrada que M
2
acepte. Por lo tanto, antes de la simulaci on
se debe proceder a reescribir w, codicando cada uno de sus smbolos en k bits.
Puesto que la misma t ecnica de codicaci on se puede aplicar sobre cualquier alfabeto,
se establece el siguiente corolario:
Corolario 7.1 Si un lenguaje L, sobre cualquier alfabeto, es reconocido por una
M aquina de Turing, entonces L es aceptado por una M aquina de Turing ofine con
una sola cinta, adem as de la de entrada, y alfabeto de cinta restringido a los smbolos
0, 1, B.
7.4. Relaci on de la M aquina de Turing con otros Aut omatas.
Tal y como se ha visto en la secci on anterior, las distintas variaciones del modelo de
M aquina de Turing tienen todas el mismo poder computacional. El objetivo de esta sec-
ci on es evidenciar que hay otros modelos que tambi en tienen el mismo poder computacional
que las M aquinas de Turing. Cabe destacar las variaciones del modelo de Aut omata de Pi-
las, ya que de los aut omatas estudiados, es el unico que dispone de un elemento, la pila, en
el que es posible escribir smbolos.
De hecho, un Aut omata de Pila se puede simular con una M aquina de Turing, en ge-
neral no determinista, con una cinta de s olo lectura (que sera la cinta del aut omata), en la
cual el movimiento se restringe a la derecha, y una cinta de trabajo, limitada a la izquierda,
que simular a la pila, de forma que un movimiento a la derecha siempre supondr a escri-
bir un smbolo de B y se asociar a a apilar y un movimiento a la izquierda siempre
supondr a escribir B y se asociar a a desapilar. La funci on de transici on se construye tradu-
ciendo la original bajo estas premisas.
La gura 7.1 esquematiza las ideas b asicas de la simulaci on.
7.4. Relaci on de la M aquina de Turing con otros Aut omatas. 127
C.F.
Figura 7.1: Una M aquina de Turing con dos cintas, una de s olo lectura, permite simular el
comportamiento de un Aut omata de Pilas.
Lema 7.1 Una M aquina de Turing con una sola cinta puede ser simulada por un
Aut omata de Pila determinista con dos pilas.
C.F.
Figura 7.2: Aut omata de Pilas con dos pilas.
Demostraci on:(Idea Intuitiva)
Para realizar la simulaci on, primero se copia en la cinta de entrada del Aut omata de Pila
el contenido de la cinta de entrada de la M aquina de Turing; se introduce en una pila dicha
cadena y se invierte sobre la otra.
A C B D E F G ...
A
C
B
D
E
F
G
Pila 1 Pila 2
A continuaci on, comenzara realmente la simulaci on.
128 Captulo 7. M aquinas de Turing
A C B D E F G ...
Pila 1 Pila 2
A
C
B
D
E
F
G
Cinta MT
Para realizarla no hay m as que conseguir que en el tope de la Pila 2 est e el smbolo que
estara debajo del cabezal de la M aquina de Turing:
A C B D E F G ...
Pila 1 Pila 2
A
C
B
D
E
F
G
Cinta MT
Para simular un movimiento a la derecha, se desapila de la Pila 2 y se apila en la Pila 1
el smbolo a escribir en la cinta. Para simular un movimiento a la izquierda, se sobreescribe
el smbolo que est a en el tope de la Pila 2 con el smbolo que se escribira en la cinta y se
desapila de la Pila 1 un smbolo que se apila en la Pila 2.
Captulo 8
Computabilidad
Indice General
8.1. Lenguajes Recursivos y Funciones Computables. . . . . . . . . . . . 129
8.1.1. Introducci on. . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
8.1.2. La M aquina de Turing como Reconocedor de Lenguajes. . . . . 132
8.1.3. La M aquina de Turing como Calculador de Funciones. . . . . . 133
8.2. La Tesis de Church. . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
8.2.1. El Modelo RAM. . . . . . . . . . . . . . . . . . . . . . . . . . 135
8.3. La M aquina de Turing como Generador. . . . . . . . . . . . . . . . 136
8.3.1. Dos M aquinas de Turing Generadoras B asicas. . . . . . . . . . 137
8.4. Caracterizaci on de L.R. y L.R.E. . . . . . . . . . . . . . . . . . . . . 139
8.4.1. Caracterizaci on de los L.R.E. mediante Generadores. . . . . . . 139
8.4.2. Caracterizaci on de los L.R. mediante Generadores. . . . . . . . 141
8.5. Propiedades de L. R. y L. R. E. . . . . . . . . . . . . . . . . . . . . . 144
8.1. Lenguajes Recursivos y Funciones Computables.
8.1.1. Introducci on.
En 1900, el matem atico David Hilbert propuso el llamado Problema de la Decisi on
(Entscheidungsproblem), formulado como Descubrir un m etodo general para determinar
si una f ormula de l ogica formal puede o no satisfacerse. El inter es que poda tener tal
problema se deba al trabajo desarrollado desde 1879 por Gottlob Frege, para reducir los
enunciados matem aticos a enunciados de la l ogica formal: si los enunciados matem aticos
se reducen a f ormulas l ogicas y hay un m etodo general para determinar si una f ormula se
puede satisfacer o no, entonces habra un m etodo general para determinar si un enunciado
(teorema) es cierto o no. Enunciados como la Conjetura de Goldbach o la Conjetura de
los N umeros Perfectos, dejaran de ser conjeturas: al aplicarles este m etodo, pasaran a ser
129
130 Captulo 8. Computabilidad
teoremas. Bastara con aplicar tal m etodo mec anicamente para determinar si un enunciado
es o no es un teorema. Ese fue el inicio del formalismo, escuela matem atica que pretenda
convertir todas las matem aticas en un gran sistema formal, un sistema formado por axiomas
y reglas, en el que las expresiones se representan mediante smbolos y s olo se puede operar
usando las reglas del sistema.
Se abri o as una va de investigaci on que, 36 a nos m as tarde, llev o a la demostraci on de
que tal problema, la determinaci on de ese m etodo general, era imposible de resolver. Sin
embargo, los resultados obtenidos hasta llegar a esta conclusi on son de gran importancia.
El primer resultado de inter es surge en 1901, cuando Bertrand Russell descubri o una
paradoja irrefutable en la teora elemental de los conjuntos, que se puede formular como
El conjunto de los conjuntos que no pertenecen a s mismos, pertenece a s mismo?. Es-
ta paradoja consigui o anular una de las reglas b asicas instituidas por Frege para reducir los
enunciados matem aticos a enunciados l ogicos. Russell era un gran admirador del trabajo de
Frege, y consigui o salvar su trabajo cuando public o, junto a Whitehead, su obra Principia
Mathematica en la que introduce una teora de conjuntos axiom atica que elimina su para-
doja (introduce restricciones en cuanto a c omo denir un conjunto, en concreto a conjuntos
que se denan a s mismos).
En 1928, Hilbert y Ackermann denieron el c alculo de predicados de primer orden y
en 1931, Kurt G odel demostr o en su tesis doctoral el llamado Teorema de la Completitud:
el c alculo de predicados de primer orden es completo, es decir, cada predicado v alido o es
cierto o es falso. Como consecuencia de su trabajo, tambi en pudo demostrar que un sistema
axiom atico no es completo ya que no puede contener todos los enunciados verdaderos de la
teora que pretende formalizar.
Cualquier sistema consistente de l ogica formal lo bastante potente para abar-
car los enunciados de toda la aritm etica ordinaria tiene que contener enuncia-
dos verdaderos que no pueden ser demostrados dentro del sistema.
Exponer, y entender, el trabajo de G odel no es sencillo. Una idea aproximada de sus
resultados sera saber que lleg o en el sistema a construir una cadena que era la formulaci on
equivalente a este teorema no se puede demostrar. Pero G odel pudo demostrarlo saliendo
fuera del sistema.
La consecuencia inmediata del trabajo de G odel fue que la propuesta de Hilbert se
elimin o de un plumazo: no puede existir un m etodo que permita decidir si un enunciado
arbitrariamente dado es cierto o falso, ya que si lo hubiera demostrara todos los enunciados
ciertos y tal demostraci on es imposible en un sistema incompleto.
A partir de ah, la investigaci on continu o por un problema menos ambicioso, el Proble-
ma de la Demostrabilidad. No es posible encontrar un m etodo que permita decidir si un
enunciado es cierto o no, pero existe un unico m etodo que permita demostrar, a partir de
un sistema de axiomas l ogicos, los enunciados matem aticos demostrables?.
Esta lnea de trabajo llev o a Alonzo Church, junto con Kleene y Rosser a denir el
calculus, un lenguaje formal que permite expresar funciones matem aticas (y en el que
8.1. Lenguajes Recursivos y Funciones Computables. 131
se basa el lenguaje LISP). Kleene demostr o que todas las funciones utilizadas por G odel,
las funciones recursivas, pueden expresarse en calculus. Esto llev o a Church a enun-
ciar que si una funci on matem atica es computable (se puede calcular su valor para todo
n umero perteneciente a su dominio de denici on), se puede expresar en calculus. Esta
suposici on se conoce como la Tesis de Church y se suele enunciar como
Toda funci on efectivamente calculable es recursiva.
Church, adem as, demostr o que en el caso de que hubiera una funci on matem atica expresable
en calculus pero no computable, entonces no habra m etodo alguno para determinar si
un enunciado matem atico dado es o no demostrable (y, si no sabemos si un enunciado es o
no demostrable, sobre qu e se aplicara el m etodo unico de demostraci on de los enunciados
demostrables? ;-). En 1936 public o una f ormula con esas caractersticas, poniendo punto
nal a la propuesta de Hilbert.
Estos resultados se produjeron de forma paralela al trabajo desarrollado por Alan Tu-
ring. Familiarizado con el Problema de la Decisi on, lo atac o desde otro punto de vista,
intentando formalizar el concepto de m etodo. Su denici on de m etodo coincide con el con-
cepto actual de algoritmo, un procedimiento que puede ser ejecutado mec anicamente sin
intervenci on creativa alguna.
De esta idea surgi o el modelo de computaci on que se conoce como M aquina de Tu-
ring, que permite la descomposici on de cualquier algoritmo en una secuencia de pasos muy
simples. Del modelo se desprende la denici on formal de computabilidad dada por Turing,
Una funci on es computable si existe una M aquina de Turing que la calcule en
un n umero nito de pasos.
Trabajando de forma independiente a otros autores, Turing comprendi o que haba una re-
laci on entre el problema de Hilbert y el hecho de asegurar que una funci on es computable.
Gracias a su modelo, Turing pudo llegar a las mismas conclusiones que Church, de una
forma m as directa. Para ello se bas o en los resultados de Georg Cantor sobre conjuntos
contables. Cantor haba denido un conjunto contable, como un conjunto innito en el que
cada objeto se puede asociar, de forma biunvoca, a un elemento del conjunto de los enteros
positivos.
Abstrayendo el modelo mec anico, la M aquina de Turing se puede identicar con la
funci on que calcula, lo que permite denirla como una funci on de enteros sobre enteros.
Una M aquina de Turing acepta un conjunto nito de caracteres de entrada, tiene un n umero
nito de estados y, si la funci on es computable, acaba sus c alculos en un n umero nito de
pasos. Por lo tanto, cualquier M aquina de Turing se puede describir mediante una cadena
nita de caracteres, lo que lleva a la conclusi on de que el n umero de m aquinas de Turing
(por lo tanto, el n umero de funciones computables) es innito pero contable.
Pero del trabajo de Cantor tambi en se deduce que hay innitos conjuntos no contables
(el de los n umeros reales, por ejemplo). Entre estos, est a el conjunto de todas las funciones
de enteros sobre enteros. Por lo tanto, si el n umero de funciones de enteros sobre enteros es
132 Captulo 8. Computabilidad
no contable y el n umero de m aquinas de Turing es contable, es evidente que es imposible
que existan sucientes m aquinas de Turing para calcularlas todas. Y s olo son funciones
computables las que se pueden calcular mediante una M aquina de Turing.
El objetivo de este tema es, precisamente, formalizar el concepto de funci on compu-
table. Para ello, primero se denir an las clases de lenguajes (y de funciones) que dene
la M aquina de Turing seg un su comportamiento. A continuaci on, se enunciar a la Tesis de
Church ( o de Turing-Church), adem as de presentar otros modelos equivalentes tanto al de
M aquina de Turing como al de funci on recursiva. Para nalizar, se ver a la caracterizaci on de
estas clases mediante M aquinas de Turing Generadoras, adem as de ver algunas propiedades
de clausura.
8.1.2. La M aquina de Turing como Reconocedor de Lenguajes.
Se recuerda la denici on de L(M), lenguaje reconocido por una M aquina de Turing, M:
Denici on 8.1 Dada la M aquina de Turing,
M = , Q, , f, q
0
, B, F)
el lenguaje asociado a esta m aquina, al que llamaremos L(M) se dene como,
L(M) = x
[ q
0
x
1
p
2
, p F,
1
,
2
), a la M aqui-
na de Turing capaz de generar todas las cadenas de
k=1
k) +i =
(i +j 2)(i +j 1)
2
+i ,
por lo tanto, nito. Por lo tanto, el n umero de pasos necesario para calcular cualquier
par (i,j) tambi en es nito.
8.4. Caracterizaci on de L.R. y L.R.E. 139
8.4. Caracterizaci on de L.R. y L.R.E.
Una funci on computable se identica con una funci on recursiva parcial o, lo que es lo
mismo, queda descrita por un lenguaje recursivamente enumerable. de ah, la importancia
de poder clasicar a un lenguaje dentro de esta clase. Para demostrar que un lenguaje es
recursivamente enumerable, basta con construir una M aquina de Turing capaz de reconoce
sus cadenas; si, adem as, dicha M aquina tiene la parada garantizada, es decir, rechaza las
cadenas que no pertenecen al lenguaje, se habr a demostrado que el lenguaje es recursivo.
Existe otra forma de caracterizar el car acter recursivo o recursivamente enumerable de
un lenguaje, utilizando generadores. Al n y al cabo, los lenguajes recursivamente enume-
rables reciben este nombre por inuencia del idioma ingl es (en este idioma, un generador
se conoce como enumerator).
8.4.1. Caracterizaci on de los L.R.E. mediante Generadores.
El objetivo de este apartado es llegar a demostrar que se puede armar que todo lenguaje
que se pueda generar mediante una M aquina de Turing es un L.R.E.; adem as, cualquier
L.R.E. podr a ser generado por una M aquina de Turing.
Lema 8.1 Si un lenguaje L es generado por una M aquina de Turing M
1
, L = G(M
1
),
entonces L es un L.R.E. ( M
2
[ L = L(M
2
)).
Demostraci on:
Idea b asica: si se puede garantizar la construcci on de M
2
que reconozca L, entonces L
es un L.R.E.
Para demostrar que L es L.R.E., hay que construir una M aquina de Turing M
2
con una
cinta m as que M
1
, que ser a una cinta de entrada. Para reconocer una cadena introducida
en la cinta de entrada, el comportamiento de M
2
sera el siguiente: M
2
se construye para
simular el comportamiento de M
1
; adem as, llegado el momento en que M
1
imprime el
smbolo # sobre la cinta de salida (es decir, despu es de producir una nueva cadena de L),
se compara la cadena generada con la cadena de entrada. Si son iguales, M
2
acepta; si no,
contin ua la simulaci on, pasando a generar la siguiente cadena. El comportamiento de M
2
se esquematiza en la gura 8.1.
Esta construcci on asegura que M
2
s olo acepta la cadena de entrada cuando es igual a
una cadena generada por M
1
, es decir, una cadena que pertenece a G(M
1
); por lo tanto,
se sigue que L(M
2
) = G(M
1
). Adem as, el lenguaje reconocido por M
2
es recursivamente
enumerable, ya que s olo se puede asegurar que la m aquina acepta la cadena si pertenece al
lenguaje.
c.q.d.
140 Captulo 8. Computabilidad
=?
M1
M2
##w1#w2#w3#...#wk#
w
SI
NO
Figura 8.1: Esquema de la construcci on de una M aquina de Turing capaz de reconocer un
lenguaje, si se conoce el generador de dicho lenguaje.
Tambi en es posible demostrar el recproco, es decir, si L es reconocido por alguna
M aquina de Turing, entonces L se puede generar mediante una M aquina de Turing. La
idea b asica, en este caso, es la siguiente: conocido el alfabeto sobre el que se forman las
cadenas de L, se podran generar todas las cadenas sobre ese alfabeto. Puesto que se dispo-
ne de una M aquina de Turing que reconoce, entre todas, las que pertenecen al lenguaje, se
puede generar este completamente.
Para desarrollar esta idea, se utiliza el Generador Can onico, ya que, dado un alfabeto
, genera todas las cadenas que pertenecen a
- L, M
[
L = L(M
) y M
de la siguiente forma:
SI (x L)
NO (x L)
M
x
M'
NO (x L)
SI (x L)
rechaza)
- si x , L x
L (M rechaza M
acepta)
por lo tanto, M
siempre para y si x
L, M
acepta y si x ,
L, M
,
L es un L.R.
c.q.d.
146 Captulo 8. Computabilidad
Teorema 8.6 Si un lenguaje L y su complementario
L son L.R.E., entonces L y
L son
lenguajes recursivos.
Demostraci on:
Sea L un L.R.E. M
1
[ L=L(M), es decir, si x L, M
1
acepta. Sea
L =
- L, un
L.R.E. M
2
[
L = L(M), es decir, si x
L, M
2
acepta.
M [ L = L(M) y M siempre para? S, construyendo la m aquina M de la siguiente
forma:
NO (x L)
SI (x L)
M1
x
M
SI
M2
SI (x L)
Indice General
9.1. Concepto de Problema. . . . . . . . . . . . . . . . . . . . . . . . . . 147
9.1.1. Introducci on. . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
9.1.2. Concepto de Problema. . . . . . . . . . . . . . . . . . . . . . . 150
9.2. La M aquina Universal de Turing y Dos Problemas Indecidibles. . . 152
9.2.1. Codicaci on de M aquinas de Turing. . . . . . . . . . . . . . . 152
9.2.2. Ejemplo de un Lenguaje que NO es Recursivamente Enumerable. 153
9.2.3. La M aquina Universal de Turing. . . . . . . . . . . . . . . . . 155
9.2.4. Dos Problemas Indecidibles. . . . . . . . . . . . . . . . . . . . 157
9.3. Teorema de Rice. M as Problemas Indecidibles. . . . . . . . . . . . . 162
9.3.1. El Problema de la Vaciedad. . . . . . . . . . . . . . . . . . . . 162
9.3.2. El Teorema de Rice. . . . . . . . . . . . . . . . . . . . . . . . 165
9.4. La Indecidibilidad del Problema de la Correspondencia de Post. . . 168
9.5. Ap endice 1: Otro Ejemplo de Reducci on. El Problema de la Recur-
sividad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
9.6. Ap endice 2: Ejemplo de c omo aplicar Rice fuera de su ambito. . . . 176
9.1. Concepto de Problema.
9.1.1. Introducci on.
Como se ha visto en los captulos anteriores, una M aquina de Turing se puede estudiar
como un calculador de funciones o como un reconocedor de lenguajes. As, la clase de los
lenguajes recursivos se puede identicar con la clase de las funciones recursivas totales,
mientras que la clase de los lenguajes recursivamente enumerables se puede identicar con
la clase de las funciones recursivas parciales.
147
148 Captulo 9. Indecidibilidad
Cualquier M aquina de Turing reconocedora de cadenas es una M aquina de Turing cal-
culadora de la funci on caracterstica del lenguaje que reconoce: es una funci on que asocia
el valor 1 a las cadenas que pertenecen al lenguaje y 0 a las cadenas que no pertenecen al
lenguaje. Cualquier M aquina de Turing calculadora de funciones es una M aquina de Tu-
ring reconocedora de lenguajes, ya que se puede representar cada funci on por el lenguaje
formado por las tuplas que se pueden formar con sus par ametros de entrada y de salida.
Ejemplo:
La funci on suma se podra representar como el conjunto
(0, 0, 0), (0, 1, 1), (0, 2, 2), .., (1, 0, 1), (1, 1, 2), .., (1, 9, 10), .., (325, 16,
341), ...
Este conjunto de cadenas, este lenguaje, estar a formado por tripletas de n ume-
ros tales que el tercero representa al suma de los dos primeros.
Lo anterior pretende solamente incidir en lo que se viene repitiendo desde el primer
tema: las dos visiones son completamente equivalentes, y una funci on total puede ser repre-
sentada mediante un lenguaje recursivo y una funci on parcial mediante un lenguaje recursi-
vamente enumerable.
Adem as, la hip otesis de Church permite identicar las funciones computables con las
funciones recursivas parciales. Es decir, se pueden dise nar M aquinas de Turing para cal-
cular las funciones recursivas parciales. O, desde el punto de vista del reconocimiento de
lenguajes, se pueden dise nar M aquinas de Turing que aceptan una cadena si forma parte
de un lenguaje recursivamente enumerable (de ah que algunos autores denominen indis-
tintamente a las funciones computables, como funciones Turing-computables o funciones
Turing-aceptables).
Si una funci on es computable, se puede calcular su soluci on cuando exista. Y esa so-
luci on se puede calcular mediante una M aquina de Turing. Cuesti on aparte es garantizar a
priori qu e ocurrir a con el proceso para cualquier par ametro. Est a garantizado que ser a nito
cuando la funci on es total, ya que se conoce su dominio de denici on (para estos valores
nalizar a con exito, para los dem as nalizar a con un error). Pero en una funci on parcial,
el dominio de denici on no est a determinado. Por lo tanto, no siempre se podr a garantizar
la nitud y correcci on del proceso, s olo para ciertos valores de los par ametros. Como un
ejemplo, se considera el siguiente algoritmo:
boole maravilloso(int n)
/
*
pre: n=N, entero positivo
*
/
boole loEs;
if (n==1)
loEs=cierto;
else
9.1. Concepto de Problema. 149
if (n%2==0)
loEs=maravilloso(n/2);
else
loEs=maravilloso(3
*
n+1);
return loEs;
/
*
post: cierto, si n es maravilloso, si no lo es... :-(
*
/
Este algoritmo se ha construido siguiendo la denici on de N umero Maravilloso: Un
n umero n es maravilloso si es el 1, o puede alcanzarse el 1 a trav es del siguiente proceso: si
es par, se considera el valor de n/2; si es impar, el valor de 3*n+1. Se conjetura que todos
los n umeros enteros son maravillosos, pero no ha podido demostrarse. De ah que el Domi-
nio de Denici on de esta algoritmo no est e determinado; y, por lo tanto, se est e hablando de
una funci on parcial, en la que no es posible garantizar que el proceso nalice para cualquier
valor entero que se considere.
Si una funci on es total, existe al menos una M aquina de Turing que siempre se detiene,
bien dando el resultado del c alculo, bien indicando la existencia de un error. Ese error s olo
se dar a si los par ametros no pertenecen al dominio de denici on de la funci on. La situaci on
equivalente, desde el punto de vista del reconocimiento de un lenguaje, es la cadena no
pertenece al lenguaje.
La MT calcula funciones: La MT reconoce lenguajes:
Si la funci on es total Si el lenguaje es recursivo
la MT siempre para. la MT siempre para.
Devuelve el resultado si Acepta la cadena si
los par ametros Dominio Denici on. la cadena L(M).
Devuelve error si Rechaza la cadena si
los par ametros , Dominio Denici on. la cadena , L(M).
Si una funci on es parcial existir a una M aquina de Turing de la que s olo se asegura que
parar a devolviendo el resultado del c alculo cuando los par ametros pertenecen al dominio
de denici on de la funci on. No se puede garantizar qu e ocurre en caso contrario. De nuevo,
se establece un paralelismo evidente entre este comportamiento y lo que ocurre desde el
punto de vista de reconocimiento del lenguaje,
La MT calcula funciones: La MT reconoce lenguajes:
Si la funci on es parcial Si el lenguaje es rec. enumerable
la MT siempre para la MT siempre para
devolviendo el resultado si aceptando la cadena si
los par ametros Dominio Denici on. la cadena L(M).
Pero el comportamiento est a indenido si Pero el comportamiento est a indenido si
los par ametros , Dominio Denici on. la cadena , L(M).
150 Captulo 9. Indecidibilidad
Por lo tanto, cu al es el inter es en determinar si un lenguaje es o no es recursivo?. En
este tema, mediante el concepto de problema y la denici on de la M aquina Universal de
Turing, el objetivo ser a estudiar los mecanismos que permiten establecer cu ales son los
problemas en los que se puede garantizar la existencia de una computaci on nita por medio
de un computador. En este tema se demostrar a que existen problemas para los cuales esa
computaci on nita no existe. Por lo tanto, se demostrar a que la computaci on tiene lmites.
9.1.2. Concepto de Problema.
Denici on 9.1 (Problema) Un Problema es un enunciado cierto o falso dependiendo
de los valores de los par ametros que aparecen en su denici on.
Denici on 9.2 (Soluci on) Una Soluci on a un Problema es una aplicaci on entre el
conjunto de instancias de los par ametros del problema y el conjunto cierto, falso.
Denici on 9.3 (Algoritmo) Un Algoritmo es un conjunto de pasos cuyo objetivo es
resolver un problema.
Es posible identicar un algoritmo con una funci on,
f : A
1
A
2
. . . A
n
A,
de forma que un algoritmo obtiene un valor de salida a partir de unos valores de entrada si
ese valor de salida existe, es decir, si hay soluci on al problema. Mientras que la soluci on a
un problema se asimilara al establecimiento de una aplicaci on
P(f) : A
1
A
2
. . . A
n
A cierto, falso.
S olo si se puede establecer esa aplicaci on entre par ametros y el conjunto cierto, falso
hay una soluci on del problema; y s olo si esa aplicaci on es una funci on total existe la segu-
ridad de establecer el algoritmo: para cualquier instancia se puede decidir si el enunciado
es cierto o falso. Y esa decisi on se puede obtener aplicando el algoritmo, de forma que se
cumple la relaci on,
P(f )(a
1
, a
2
, . . . , a
n
, a) = cierto f (a
1
, a
2
, . . . , a
n
) = a.
Por ejemplo,
9.1. Concepto de Problema. 151
f : ^ ^ ^, f(x, y) = x +y
P(f)(3,5,7)=falso, P(f)(3,5,8)=cierto, . . .
En este problema siempre es posible decidir, por lo tanto, se sabe que siempre
ser a posible establecer la soluci on y se puede estar seguro de que habr a un
algoritmo que permita solucionar el problema.
En aquellos problemas para los que exista alg un valor en el conjunto de instancias para
el que la aplicaci on no est e denida, NO se puede DECIDIR siempre: no se puede asegurar
cu al ser a el comportamiento ante dichas instancias. Son problemas en los que la aplicaci on
entre el conjunto de par ametros y el conjunto cierto, falso es una funci on parcial. Por lo
tanto, se establece la relaci on,
PROBLEMA DECIDIBLE LENGUAJE RECURSIVO.
As, estudiando si el lenguaje asociado a un determinado problema es o no es recursivo,
se puede saber si el problema es o no es decidible y si se puede o no garantizar la existencia
de un algoritmo de ejecuci on nita. Es decir, se asocia la existencia de un algoritmo a la
existencia de una M aquina de Turing que siempre pare, diciendo SI o NO. Y se usar an
indistintamente ambos t erminos:
Existe un algoritmo Existe una MT que siempre para.
Resulta una pr actica habitual que los problemas se enuncien como problemas de deci-
si on, de respuesta SI o NO y en los que, por lo tanto, resulta f acil transformar el enunciado
en la cuesti on de si un lenguaje (el asociado al enunciado) es o no recursivo y, por lo tanto,
si existe o no un algoritmo que permita resolverlos. Centrarse en este tipo de problemas no
supone restringir el campo de estudio, ya que normalmente cualquier problema se puede
plantear como un problema de decisi on y viceversa.
El objetivo de este tema ser a, por lo tanto, establecer resultados que permitan armar
si un problema es o no decidible. O, lo que es lo mismo, si el lenguaje asociado a dicho
problema es o no recursivo. Para ello, una t ecnica habitual ser a la reducci on de un problema
A (o de su lenguaje equivalente) a otro problema B,
(NO)
Reduccin
x
MT probl . B
SI
MT probl. A
R(x)
de tal forma que el conocimiento que se tenga del problema A permita llegar a alguna
conclusi on sobre el problema B.
152 Captulo 9. Indecidibilidad
9.2. La M aquina Universal de Turing y Dos Problemas Indeci-
dibles.
9.2.1. Codicaci on de M aquinas de Turing.
Para estudiar la codicaci on de una M aquina de Turing, se recuerda el siguiente resul-
tado, que ya se coment o en el tema 7:
Teorema 7.5 Si L (0 + 1)
L
d
= w
i
[ M
i
acepta w
i
= w
i
[ w
i
L(M
i
),
tampoco puede ser un lenguaje recursivo. Este resultado permitir a demostrar que L
U
es un
lenguaje recursivamente enumerable no recursivo, puesto que es posible reducir el lenguaje
L
d
al lenguaje L
U
.
Teorema 9.2 L
U
es un lenguaje recursivamente enumerable no recursivo.
Demostraci on:
Se parte de la suposici on de que existe un algoritmo A (una M aquina de Turing que
siempre para) para reconocer L
U
. Si esto fuera cierto, entonces se podra establecer el si-
guiente procedimiento para reconocer
L
d
:
Se realiza una reducci on utilizando el Convertidor de Cadenas. El convertidor, dada una
cadena w (0 + 1)
/
*
Post: devuelve 1 si P para con I, 0 en caso contrario
*
/
Sabiendo esto, se escribe el programa siguiente:
int main()
char I[100000000];
/
*
hacer I tan grande como se quiera, o usar malloc
*
/
read a C program into(I);
if (Halts(I,I))
while(1) /
*
bucle infinito
*
/
else
return 1;
. Su funcionamiento es el si-
guiente: dada la cadena M,w), la m aquina ignora su propia entrada y simula el comporta-
miento de la m aquina M con la cadena w. Si M acepta w, entonces M
llega a un estado de
aceptaci on.
x
M
M'
SI
Con este comportamiento, el lenguaje reconocido por M
es el siguiente:
L(M
) =
_
si M acepta w
si M no acepta w
.
Para la demostraci on no se utiliza directamente la m aquina M
, sino un algoritmo B
tal que si su entrada es la cadena M,w), produce como salida la cadena M
), siendo M
la M aquina de Turing descrita anteriormente. Con este algoritmo se puede construir la si-
guiente M aquina de Turing, (:
<M, >
B
<M'>
Me
SI
NO
SI
NO
Si M acepta w L(M
) ,= /
e
dice NO ( dice SI,
Si M no acepta w L(M
) = /
e
dice SI ( dice NO.
Es decir, ( acepta aquellas cadenas M,w) tales que M acepta w y rechaza las cadenas
M,w) tales que M no acepta w L
U
es un lenguaje recursivo.
Se ha llegado a una contradicci on, por lo que la suposici on de que existe el algoritmo
/
e
(la suposici on de que L
e
es recursivo) tiene que ser falsa.
c.q.d.
Como consecuencia de los lemas 9.3 y 9.4 se tiene que,
L
e
no es recursivo,
L
ne
es recursivamente enumerable,
L
e
NO es un lenguaje recursivamente enumerable (ya que entonces tanto el como
L
ne
seran recursivos).
Por lo tanto, el problema de la Vaciedad es indecidible.
9.3. Teorema de Rice. M as Problemas Indecidibles. 165
9.3.2. El Teorema de Rice.
En la subsecci on anterior se ha visto que no se puede decidir si el lenguaje aceptado
por una M aquina de Turing es vaco o no. Utilizando t ecnicas de construcci on similares se
llegara a la misma conclusi on sobre cuestiones tales como si un lenguaje es o no recursivo,
es o no innito, es o no nito, es o no regular, es o no de contexto libre, si tiene o no un
n umero par de cadenas...
Todos estos resultados est an basados el Teorema de Rice e indican qu e se puede decidir
sobre el lenguaje aceptado por una M aquina de Turing. Para estudiarlos, hay que denir
previamente el concepto de propiedad de lenguajes recursivamente enumerables.
Denici on 9.6 (Propiedad) Una propiedad, T, es un conjunto de lenguajes recur-
sivamente enumerables, siendo cada uno de ellos un subconjunto de (0 + 1)
. Un
lenguaje L tiene la propiedad T si L es un elemento de T.
Ejemplo:
El conjunto L [ L es innito representa la propiedad de innitud.
Denici on 9.7 (Propiedad Trivial) Una propiedad es trivial si est a vaca o si
est a formada por todos los lenguajes recursivamente enumerables.
Denici on 9.8 Dada una propiedad P, se llama L
P
al lenguaje formado por cadenas
que son los c odigos de las M aquinas de Turing que reconocen lenguajes que tienen la
propiedad T,
L
P
= M) [ L(M) T.
Los resultados estudiados hasta el momento, permiten enunciar la siguiente caracteriza-
ci on:
Una propiedad T es decidible L
P
es un lenguaje recursivo.
El Teorema de Rice brinda otra caracterizaci on, m as sencilla. Se aplica s olo a lenguajes
que representan propiedades de los lenguajes recursivamente enumerables, es decir, propie-
dades de lenguajes que son aceptados por alguna M aquina de Turing. El principal resultado
de Rice arma que s olo son decidibles las propiedades que son triviales, es decir, aquellas
166 Captulo 9. Indecidibilidad
propiedades que o bien las cumplen todos los lenguajes R.E., o bien no las cumple ning un
lenguaje R.E.
Teorema 9.3 (Teorema de Rice) Cualquier propiedad no trivial T es INDECIDI-
BLE.
Es decir, L
P
es NO recursivo si T es NO trivial
4
.
De este teorema, se puede deducir, por ejemplo, el siguiente resultado:
Corolario 9.1 Las siguientes propiedades de lenguajes recursivamente enumerables
son no decidibles:
1. ser o no ser vaco (emptiness),
T = L [ L = , L
P
= M) [ L(M) = .
2. ser o no ser nito (niteness),
T = L [ L es finito, L
P
= M) [ L(M) es finito.
3. ser o no ser regular (regularity),
T = L [ L es regular, L
P
= M) [ L(M) es regular.
4. ser o no ser de contexto libre (context-freedom),
T = L [ L es lcl, L
P
= M) [ L(M) es lcl.
Adem as del resultado que caracteriza si una propiedad T es o no es decidible y, por
lo tanto, si L
P
es o no es recursivo, Rice establece en otro teorema las tres condiciones
necesarias y sucientes para establecer cuando L
P
sera o no un lenguaje recursivamente
enumerable.
4
La demostraci on de este teorema se puede encontrar en la bibliografa.
9.3. Teorema de Rice. M as Problemas Indecidibles. 167
Teorema 9.4 (Segundo Teorema de Rice) L
P
= M) [ L(M) T es L.R.E.
T satisface las tres condiciones siguientes:
1. Condici on de Inclusi on: Si L
1
T y L
1
L
2
, siendo L
2
un L.R.E., entonces
L
2
T.
2. Si L es un lenguaje innito que est a en T, entonces hay un subconjunto nito de
L en T.
3. El conjunto de lenguajes nitos que pertenecen a T es enumerable (es decir,
hay una M aquina de Turing que puede generar todas las cadenas de todos los
lenguajes nitos de T).
El enunciado, discusi on y demostraci on completa del segundo teorema de Rice se puede
encontrar en la bibliografa. Aqu se destacar an unicamente los siguientes corolarios:
Corolario 9.2 Las siguientes propiedades de lenguajes R.E. son indecidibles y los
lenguajes asociados son lenguajes no recursivamente enumerables:
1. ser vaco,
T = L [ L = , L
P
= M) [ L(M) = (= L
e
).
2. ser recursivo,
T = L [ L es recursivo, L
P
= M) [ L(M) es recursivo (= L
r
).
3. no ser recursivo,
T = L [ L no es recursivo,
L
P
= M) [ L(M) no es recursivo (= L
nr
).
4. ser regular,
T = L [ L es regular, L
P
= M) [ L(M) es regular.
5. tener una unica cadena,
T = L [ L s olo tiene una cadena,
L
P
= M) [ L(M) s olo tiene una cadena.
Todos los casos expuestos en el corolario 9.2 no cumplen la condici on de inclusi on.
168 Captulo 9. Indecidibilidad
Corolario 9.3 Las siguientes propiedades de lenguajes R.E. son indecidibles y los
lenguajes asociados son lenguajes recursivamente enumerables:
1. no ser vaco,
T = L [ L ,= , L
P
= M) [ L(M) ,= (=L
ne
).
2. contener al menos 10 cadenas,
T = L [ L tiene 10 o m as cadenas,
L
P
= M) [ L(M) tiene 10 o m as cadenas.
3. w L, para una cadena dada w,
T = L [ w L, L
P
= M) [ w L(M).
4. tener intersecci on no vaca con L
U
,
T = L [ L L
U
,= , L
P
= M) [ L(M) L
U
,= .
Los teoremas de Rice son de f acil aplicaci on, pero su ambito se restringe al estudio de
propiedades de los lenguajes R.E. As, no se pueden aplicar tal cual, por ejemplo, al estudio
de las propiedades de la M aquina de Turing que reconoce el lenguaje
5
.
Lo que s se puede intentar es relacionar cuestiones de decidibilidad que caen fuera de
dicho ambito con una propiedad de lenguajes R.E., a la que s se pueda aplicar el teorema
de Rice. En el ap endice 2, secci on 9.6 se muestra un ejemplo.
9.4. La Indecidibilidad del Problema de la Correspondencia de
Post.
Los Sistemas de Correspondencia de Post fueron formulados por Emil Post en 1931,
la misma epoca en la que Turing formul o su modelo de computaci on; la idea b asica era la
misma en ambos modelos formales y, de hecho, est a demostrado que son equivalentes en
cuanto a poder computacional.
Al margen de su propio inter es como modelo de computaci on, este problema sirve de
conexi on entre los resultados sobre Indecidibilidad en el Problema de Aceptaci on, M
acepta w? (y en el Problema de la Parada, M para con w?), con cuestiones indecidibles
en el ambito de las gram aticas y lenguajes de contexto libre.
5
En este caso concreto, habra que distinguir entre cuestiones referidas a caractersticas t ecnicas de la
M aquina de Turing, que normalmente son claramente decidibles, como decidir si una MT M tiene o no un
n umero par de estados (siempre se puede dise nar una MT Mque cuente el n umero de estados de M, dada su
codicaci on M), y entre cuestiones referidas al lenguaje reconocido por una MT, como la planteada en el
ejemplo.
9.4. La Indecidibilidad del Problema de la Correspondencia de Post. 169
Denici on 9.9 (Sistemas de Correspondencia de Post) Una instancia del Problema
de la Correspondencia de Post (PCP), se denomina un Sistema de Correspondencia de
Post (SCP) y consta de tres elementos: un alfabeto y dos conjuntos A y B de cadenas
de
+
, tales que A y B contienen el mismo n umero de cadenas. Si
A = u
1
, u
2
, . . . , u
k
y B = v
1
, v
2
, . . . , v
k
,
una soluci on para esta instancia del PCP es una secuencia de ndices i
1
, i
2
, . . . , i
n
tal
que
u
i
1
u
i
2
. . . u
i
n
= v
i
1
v
i
2
. . . v
i
n
.
Por ejemplo:
A = a, abaaa, ab,
B = aaa, ab, b
Soluci on: i
1
= 2, i
2
= i
3
= 1, i
4
= 3, abaaa[a[a[ab = ab[aaa[aaa[b.
Normalmente se obtienen una visi on m as clara del problema si se ve como una colecci on
de bloques
u
1
v
1
u
2
v
2
. . .
u
k
v
k
y se busca una secuencia de bloques tal que la cadena superior es igual a la inferior.
El ejemplo anterior puede verse, entonces, como:
a
aaa
,
abaaa
ab
,
ab
b
y la soluci on la secuencia
abaaa
ab
a
aaa
a
aaa
ab
b
siendo iguales la cadena superior y la inferior.
El PCP consiste en el problema de determinar si un SCP arbitrario tiene o no una so-
luci on. El PCP es un problema INDECIDIBLE. Se puede demostrar a trav es del PCPM,
Problema de la Correspondencia de Post Modicado, en el cual la secuencia de ndices
debe ser
1, i
2
, . . . , i
n
tal que u
1
u
i
2
. . . u
i
n
= v
1
v
i
2
. . . v
i
n
.
170 Captulo 9. Indecidibilidad
El siguiente resultado establece la conexi on entre el PCP y el PCPM:
Lema 9.5 Si el PCP fuese DECIDIBLE, lo sera tambi en el PCPM.
La idea b asica para demostrar este lema sera similar al siguiente razonamiento: si se
conoce una soluci on del PCP, con cambiar dos bloques de sitio en la instancia se obtiene
una soluci on del PCPM. Si este lema es cierto, tambi en lo es su contrarrecproco:
Lema 9.6 Si el PCPM es INDECIDIBLE, entonces tambi en lo es el PCP.
Seg un esto, para establecer la indecidibilidad del PCP, basta con establecer la indecidi-
bilidad del PCPM. Esto se puede hacer por reducci on del Problema de la Aceptaci on, M
acepta w?, al PCPM. Puesto que este problema es indecidible, entonces el PCPM tambi en
lo es.
Teorema 9.5 El PCPM es INDECIDIBLE.
La demostraci on de este teorema consiste en, primero, establecer la reducci on entre
el PCPM y el Problema de la Aceptaci on, para poder concluir entonces que el PCPM es
indecidible. La reducci on se puede hacer mediante la siguiente construcci on,
Sea M, con alfabetos y , y sea w
, , ,= B
Grupo 3: Formado a partir de f, distinguiendo entre cuatro tipos de transiciones,
1. f(q, ) = (p, , R)
q
p
2. f(q, B) = (p, , R)
q$
p$
3. f(q, ) = (p, , L)
q
p
, , ,= B
9.4. La Indecidibilidad del Problema de la Correspondencia de Post. 171
4. f(q, B) = (p, , L)
q$
p$
, , ,= B
Grupo 4: A partir de los estados nales, q F, , B,
q
q
,
q$
q$
,
$q
$q
Grupo 5: q F,
q$$
$
Adem as de establecer la reducci on anterior, para completar la demostraci on del teorema
9.5, se debe probar el siguiente resultado:
Lema 9.7 M acepta w hay una soluci on a la instancia derivada del PCPM.
La demostraci on, que no se ver a, es bastante intuitiva. Se puede encontrar en el libro de
Dean Kelley, Teora de Aut omatas y Lenguajes Formales, captulo 6.
Del teorema 9.5 y de los lemas 9.5 y 9.6 se concluye que:
Teorema 9.6 El PCP es INDECIDIBLE.
Una de las areas de inter es del PCP es que sirve como herramienta para establecer
la decidibilidad de cuestiones relacionadas con los LCL. Sirvan las dos siguientes como
ejemplo:
1. El problema de la intersecci on vaca de las gram aticas de contexto libre es IN-
DECIDIBLE.
La idea es construir a partir de una instancia del PCP,
A = u
1
, u
2
, . . . , u
k
, B = v
1
, v
2
, . . . , v
k
, u
i
, v
i
+
,
y del conjunto de smbolos C = a
1
, a
2
, . . . , a
k
, a
i
, , las gram aticas de contexto
libre G
A
y G
B
,
G
A
= S
A
, C, S
A
, P
A
), G
B
= S
B
, C, S
B
, P
B
)
con
P
A
: S
A
u
i
S
A
a
i
[ u
i
a
i
, i=1,2,. . . ,k ,
P
B
: S
B
v
i
S
B
a
i
[ v
i
a
i
, i=1,2,. . . ,k .
172 Captulo 9. Indecidibilidad
Por lo tanto, las cadenas generadas por G
A
ser an del tipo
u
i
1
u
i
2
. . . u
i
n1
u
i
n
a
i
n
a
i
n1
. . . a
i
2
a
i
1
,
y las cadenas generadas por G
B
ser an del tipo
v
i
1
v
i
2
. . . v
i
n1
v
i
n
a
i
n
a
i
n1
. . . a
i
2
a
i
1
.
Si L(G
A
) L(G
B
) ,= , hay alguna cadena que pertenece a ambos lenguajes. Para
que esto se cumpla, tiene que haber alguna cadena tal que
u
i
1
u
i
2
. . . u
i
n1
u
i
n
= v
i
1
v
i
2
. . . v
i
n1
v
i
n
,
ya que la segunda parte es la misma en ambas.
De ah se sigue que L(G
A
) L(G
B
) es distinto de vaco si el PCP tiene soluci on.
Luego es indecidible.
2. El problema de la ambig uedad de las gram aticas de contexto libre es INDECI-
DIBLE.
Para demostrarlo, basta con construir
G
A
= S, S
A
, S
B
, C, S, P)
con P : P
A
P
B
S S
A
[ S
B
.
Con un razonamiento similar al anterior, se ve que para que la gram atica sea ambig ua,
debe existir una cadena que pueda derivarse de S
A
o de S
B
, indistintamente, y eso
ocurre cuando la instancia asociada del PCP tiene soluci on. Por lo tanto, el problema
es indecidible.
9.5. Ap endice 1: Otro Ejemplo de Reducci on. El Problema de la Recursividad. 173
9.5. Ap endice 1: Otro Ejemplo de Reducci on. El Problema de la
Recursividad.
Sea una M aquina de Turing M. L(M) es recursivo?.
Es un problema indecidible. Para estudiarlo, se trabaja con el lenguaje asociado
L
r
= M) [ L(M) es recursivo ,
que es el conjunto de los c odigos de todas las M aquinas de Turing que aceptan un lenguaje
recursivo
6
y su lenguaje complementario,
L
nr
= M) [ L(M) no es recursivo ,
que es el conjunto de los c odigos de todas las M aquinas de Turing que aceptan lenguajes no
recursivos. Se demostrar a que ni L
r
ni L
nr
son lenguajes recursivamente enumerables.
Lema 9.8 L
r
no es un lenguaje recursivamente enumerable.
Demostraci on:
La demostraci on se realiza por contradicci on: Si L
r
fuera recursivamente enumerable,
habra una M aquina de Turing, /
r
, que aceptara aquellas cadenas que codiquen M aqui-
nas de Turing cuyos lenguajes son recursivos. Se probar a que la existencia de esa M aquina
de Turing es imposible, ya que si existiera se podra reconocer el complementario de L
U
,
L
U
, y eso es imposible. Por lo tanto, mediante la reducci on de L
r
a
L
U
, se demostrar a que
L
r
no puede ser recursivamente enumerable.
La reducci on utiliza la siguiente M aquina de Turing, M
. Su funcionamiento es el si-
guiente: dada la cadena M,w), la m aquina ignora, en principio, su propia entrada y simula
el comportamiento de la m aquina M con la cadena w. Si M acepta w, entonces M
tra-
baja con su propia entrada, llegando a un estado de aceptaci on si la cadena suministrada
pertenece a L
U
.
Con este comportamiento, el lenguaje reconocido por M
es el siguiente:
L(M
) =
_
L
U
si M acepta w
si M no acepta w
.
6
N otese que Lr no coincide con el conjunto {M | M para con todas las cadenas} ya que el hecho de que
un lenguaje sea recursivo s olo implica que existe al menos UNA MT que siempre para, pero puede ser que haya
otras que tambi en lo reconozcan y no tengan asegurada la parada con cadenas que no pertenezcan al lenguaje.
174 Captulo 9. Indecidibilidad
x
M
M'
SI
Mu
SI
SI
Por lo tanto, el lenguaje que acepta M
), siendo M
)(= ) es recursivo /
r
dice SI La MT dice SI.
Es decir, esta M aquina de Turing acepta aquellas cadenas M,w) tales que M no acepta
w
L
U
es un lenguaje recursivamente enumerable.
Se ha llegado a una contradicci on, por lo que la suposici on de que existe /
r
(la supo-
sici on de que L
r
es recursivamente enumerable) tiene que ser falsa.
c.q.d.
Lema 9.9 L
nr
NO es un lenguaje recursivamente enumerable.
Demostraci on:
Tambi en se demostrar a por contradicci on. Si esta hip otesis fuera cierta, si L
nr
fuera
R.E., entonces existira una M aquina de Turing, /
nr
, que reconocera sus cadenas. Si esta
m aquina existiera se podra probar que
L
U
es R.E., mediante la reducci on de L
nr
a
L
U
, lo
que es falso.
En la reducci on se hace uso de la existencia de una M aquina de Turing, M
, cuyo funcio-
namiento es el siguiente: dada la cadena M,w), la m aquina simula el comportamiento de
la m aquina M con la cadena w. Si M acepta w, entonces M
es el siguiente
7
:
L(M
) =
_
si M acepta w
L
U
si M no acepta w
.
Utilizando un algoritmo B tal que, teniendo como entrada la cadena M,w), su salida es
la cadena M
), siendo M
)(= L
U
) no es recursivo La MT / dice SI.
Es decir, / acepta aquellas cadenas M,w) tales que M no acepta w
L
U
es un len-
guaje recursivamente enumerable.
Se ha llegado a una contradicci on, por lo que la suposici on de que existe el algoritmo
/
nr
(la suposici on de que L
nr
es recursivamente enumerable) tiene que ser falsa.
c.q.d.
7
Lu.
176 Captulo 9. Indecidibilidad
9.6. Ap endice 2: Ejemplo de c omo aplicar Rice fuera de su ambi-
to.
Es indecidible saber si una M aquina de Turing con alfabeto 0, 1, B, impri-
mir a o no 111 si comienza a trabajar con la cinta en blanco.
Para llegar a esta conclusi on se relaciona esta cuesti on con la propiedad
T = L [ L,
que, seg un el teorema de Rice, al no ser trivial es indecidible. Para ello se con-
sidera lo siguiente: para cualquier M aquina de Turing, M
i
, es posible cons-
truir una M aquina de Turing equivalente, M
i
, que utilice 01 para codicar el
0 y 10 para codicar el 1. Es decir, cada smbolo de M
i
se codica por un par
en M
i
y si M
i
tiene un 0, por ejemplo, en la celda j de la cinta, M
i
tiene 01 en
las celdas 2j-1 y 2j.
1
0
1 0 0 1
1 j
1 2
2j-1 2j
Mi
Mi'
Si M
i
cambia un smbolo, M
i
cambia 0 por 1 y 1 por 0,
M
i
: 0 1 M
i
: 01 10
M
i
: 1 0 M
i
: 10 01
De esta forma es imposible que M
i
escriba 111 en su cinta, salvo si modica-
mos su comportamiento para que escriba 111 cuando M
i
acepte una cadena.
Si utilizamos M
i
para simular el comportamiento de M
i
con la cinta vaca,
tenemos que M
i
escribe 111, s olo si M
i
acepta . Por lo tanto, la cuesti on de
si una M aquina de Turing arbitraria imprime 111 cuando inicialmente la cinta
est a en blanco es indecidible.
Captulo 10
Introducci on a la Complejidad
Computacional
Indice General
10.1. Introducci on. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
10.1.1. El Dilema del Contrabandista. . . . . . . . . . . . . . . . . . . 178
10.2. Deniciones B asicas. . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
10.2.1. Clases de Complejidad. . . . . . . . . . . . . . . . . . . . . . . 183
10.3. Relaciones entre las Clases de Complejidad Computacional. . . . . 184
10.3.1. Relaciones entre Clases Deterministas y No Deterministas. . . . 185
10.3.2. Las Clases de Complejidad Polin omica. . . . . . . . . . . . . . 187
10.4. Introducci on a la Teora de Complejidad Computacional. . . . . . . 190
10.1. Introducci on.
Una vez establecidos los resultados que permiten saber qu e problemas se pueden resol-
ver por medio de un algoritmo, el objetivo es jar el precio a pagar; es decir, cu al va a ser
el coste asociado al algoritmo y si dicha soluci on algortmica ser a factible, esto es, con un
tiempo de ejecuci on razonablemente breve.
La Teora de la Complejidad permite estimar la dicultad o, mejor dicho, la tratabilidad
o intratabilidad de un problema y establecer si se dispone o no de una soluci on algortmica
factible.
Esta teora dota a la inform atica de las herramientas necesarias para, por ejemplo, poder
determinar a priori cu al es el comportamiento asint otico de un algoritmo a medida que
crece el tama no del problema (y si merece o no la pena intentar abordarlo) o cuando un
determinado problema requiere de una soluci on tan compleja, que es preferible no intentar
177
178 Captulo 10. Introducci on a la Complejidad Computacional
resolver directamente su caso general, sino ir tratando subproblemas que representan casos
particulares.
El objetivo de la teora sera establecer una taxonoma, una clasicaci on de los proble-
mas, atendiendo a cu al es la complejidad del mejor algoritmo conocido
1
para solucionar
dicho problema. Desafortunadamente, esta teora no suele ofrecer resultados absolutos: no
se suelen realizar armaciones del tipo,
... el problema X tiene un nivel de dicultad D ...
sino como la siguiente:
... el problema X es tan difcil de resolver como el problema Y; por lo tanto, encontrar
una soluci on eciente para X es tan difcil como encontrarla para Y...
No es habitual que se enuncien categ oricamente resultados sobre un problema dado
(salvo la indicaci on de que todava no se dispone de un algoritmo eciente para ese proble-
ma), sino que lo habitual es expresar la dicultad de resolver un problema en t erminos de
comparaci on con otro. Tal y como se ver a, esto conduce a que la teora clasique los pro-
blemas en clases que representan el mismo nivel de dicultad
2
. Entre esas clases, destacan
las que comprenden problemas tan difciles (tan complejos) que a un no se han encontrado
algoritmos ecientes para ellos y que llevan a buena parte de la comunidad cientca a creer
que esos problemas son realmente intratables. De hecho, el reto que se plantea la Teora
de la Complejidad puede ser tan simple como determinar si existen problemas intratables
per se o si dicha comunidad cientca es tan lerda como para no haber encontrado to-
dava la soluci on eciente (y no resulta especialmente atrayente elegir ninguna de esas dos
opciones!).
Los contenidos te oricos de este tema, no son m as que la formalizaci on en el marco de
la Teora de Complejidad, de resultados que se pueden haber visto, con mayor o menor
detalle, en asignaturas de programaci on. Como una introducci on informal de las principales
ideas que se van a desarrollar y formalizar en el tema, se presenta el problema denominado
Dilema del contrabandista.
10.1.1. El Dilema del Contrabandista.
Un aprendiz de contrabandista se est a nanciando el M aster en Contrabando
de CalidadSuperior con los benecios obtenidos al pasar monedas antiguas
desde Asia. Para ello utiliza un compartimento secreto en su ri nonera, que le
permite almacenar, si no quiere que en la frontera descubran su negocio,
s olo 500 gramos de monedas.
1
Un algoritmo resuelve un problema, pero dado un problema hay m as de un algoritmo que lo resuelve.
2
A lo largo de este tema, se podra pensar en traducir la palabra dicultad por complejidad; pero, se
pretende diferenciar entre la dicultad de resolver un problema y la complejidad del algoritmo que lo resuelva:
es decir, cuando se dice que los problemas X e Y son igual de difciles de resolver, es porque sus mejores
algoritmos conocidos tienen una complejidad similar. Por purismo, o por mera deformaci on profesional (tanto
leer en Ingl es tiene consecuencias perniciosas sobre el vocabulario propio ;-), se mantiene dicultad.
10.1. Introducci on. 179
Para poder realizar comparaciones, se va a completar el enunciado con dos escenarios
distintos:
Primer escenario:
Sus suministradores asi aticos le ofrecen 20 monedas distintas; cada una
de ellas pesa 50 gramos y sus precios de venta en el mercado negro, sus
valores, van desde los 100 euros hasta los 2000 euros.
Segundo escenario:
Sus suministradores asi aticos le ofrecen 20 monedas distintas; cada mo-
neda tiene distinto peso, entre 30 y 200 gramos, y sus valores van desde
100 euros hasta 2000 euros.
Evidentemente, el dilema del contrabandista consiste en c omo realizar una elecci on
optima de monedas, de forma que le permita obtener el m aximo benecio en un viaje. Y
cada escenario va a suponer una estrategia distinta:
Primer escenario:
Si todas las monedas pesan lo mismo, 50 gramos, puede llevar 10 monedas
en la ri nonera. Obviamente, le interesa elegir las 10 m as valiosas, por lo
que si ordena las 20 monedas por valor decreciente, le basta con elegir
las 10 primeras.
Segundo escenario:
Como cada moneda tiene distinto peso y valor, no es suciente con realizar
una ordenaci on por valor, ya que no garantiza el m aximo benecio. El
contrabandista debera estudiar todas las combinaciones de monedas que
pesan menos de 500 gramos y quedarse con la m as ventajosa.
El coste del algoritmo del primer escenario es el coste asociado a ordenar 20 monedas
por valor decreciente: a un utilizando un algoritmo tan simple como el de ordenaci on por
selecci on, la complejidad resulta ser de O(
N
2
2
), siendo N el n umero de monedas a ordenar.
En este escenario, ello viene a suponer unas 200 comparaciones, para obtener un benecio
m aximo.
Pero en el segundo escenario, el coste no es tan bajo: hay 2
N
formas de seleccionar un
conjunto de N monedas; en el ejemplo concreto, N = 20, se obtienen unas 2
20
posibilida-
des a considerar (aproximadamente, un mill on), ver cu ales son factibles y determinar cu al
maximiza el benecio.
De lo anterior, se puede sacar la impresi on (correcta) de que el segundo escenario su-
pone un problema m as difcil de resolver que el problema asociado al primer escenario.
180 Captulo 10. Introducci on a la Complejidad Computacional
Pero a un falta introducir un nuevo aspecto: en su pr oximo viaje, el contrabandista se en-
cuentra con una agradable sorpresa. Sus suministradores le informan de que se acaba de
descubrir una tumba pre-babil onica con 100 monedas distintas. Cu al es la inuencia en
los dos escenarios? En el primero, el contrabandista tendr a que realizar una ordenaci on que
le supondr a unas 5000 comparaciones, para maximizar benecios. En el segundo, sin em-
bargo, ahora tendr a que considerar 2
100
posibilidades distintas, cu anto tiempo le llevar a la
elecci on?
En el primer escenario, el comportamiento es polin omico: a medida que crece el tama no
del problema (de 20 a 100, de 100 a 1000, ...) hay que realizar m as operaciones, pero el
crecimiento viene dado por un factor cuadr atico: de 20 a 100, ser a 5
2
, de 100 a 1000,
ser a 10
2
...
En el segundo escenario, el comportamiento es exponencial: con a nadir un unico ele-
mento, con incrementar en una unidad el tama no del problema, el n umero de operaciones se
multiplica por 2; cuando se pasa de 20 a 100 monedas, se pasa de 1,000,000 de posibilidades
a 1,000,000,000,000,000,000,000,000.
Estos dos escenarios vienen a mostrar cu al es la importancia de la escalabilidad de
un problema y del comportamiento asint otico de los algoritmos resultantes. Usualmente,
en Teora de Complejidad se estima el comportamiento polin omico como deseable, y los
problemas que pueden resolverse con un algoritmo que presenta una funci on de orden po-
lin omica se consideran tratables. Cuando no se puede encontrar un algoritmo polin omico
para resolver el problema, tal y como ocurre en el segundo escenario, el problema se consi-
dera intratable.
Y esto lleva al dilema del inform atico: no hay resultados que permitan estimar cu ando
un problema puede resolverse por medio de un algoritmo polin omico, a no ser, claro est a,
que tal algoritmo se haya encontrado. Por lo tanto, no hay ning un resultado te orico que
permita establecer que un determinado problema es, por naturaleza, intratable: s olo puede
armarse que el mejor algoritmo conocido hasta el momento tiene una complejidad su-
perior a la polin omica. Una forma de atacar este dilema consiste en establecer clases de
problemas, de forma que problemas con la misma dicultad est en en la misma clase. Esta
clasicaci on, adem as, dota al inform atico de una herramienta interesante en su objetivo de
encontrar algoritmos ecientes: si todos los problemas de una determinada clase son de la
misma dicultad que un problema que es representante de esa clase
3
, cualquier resultado o
mejora que se obtenga para dicho problema, podr a aplicarse a todos los dem as de su misma
clase.
10.2. Deniciones B asicas.
El an alisis de algoritmos supone la obtenci on de su complejidad espacial y/o temporal
como una funci on de la talla del problema. En este contexto, se entiende como talla el dato
o conjunto de datos que cuando vara, hace que vare el valor de la complejidad. Por su
3
Es decir, encontrar una soluci on eciente para cualquier problema de esa clase es igual de difcil que
encontrar una soluci on eciente para ese problema especial.
10.2. Deniciones B asicas. 181
parte, la complejidad espacial da una medida de la cantidad de objetos manejados en el
algoritmo (entendida como una medida de la memoria que consumir a una computaci on) y
la complejidad temporal da una medida del n umero de operaciones realizadas (entendido
como una medida del tiempo necesario para realizar una computaci on).
De esta forma, para realizar el an alisis primero hay que determinar cu al es la talla del
problema. A continuaci on, se elige una unidad para poder determinar la complejidad es-
pacial y una unidad para poder determinar cu al es la complejidad temporal. Sin embargo,
en ocasiones no hay un criterio claro para escoger dichas unidades y poder establecer las
correspondientes medidas. El modelo de M aquina de Turing permite denir f acilmente to-
dos los conceptos anteriores:
la talla del problema se identica con la longitud de la cadena de entrada,
la complejidad espacial se asocia al n umero de celdas de la M aquina de Turing visi-
tadas, y
la complejidad temporal viene dada por el n umero de movimientos del cabezal, asu-
miendo que cada movimiento se realizar a en un tiempo jo.
Las deniciones formales son:
Denici on 10.1 (Complejidad Espacial) Sea M una M aquina de Turing con una cin-
ta s olo de entrada y k cintas de trabajo (M aquina de Turing ofine). Sup ongase que,
sobre cualquier entrada de longitud n, las cabezas de lectura/escritura de las cintas de
trabajo de M consultan como m aximo o(n) celdas en cualquiera de las cintas, siendo
o : ^ ^.
Entonces se dice que M tiene una complejidad espacial o(n) o que es una M aquina
de Turing acotada espacialmente por o(n). Tambi en se dice que L(M) es un lenguaje
con complejidad espacial o(n).
Esta denici on, al estar basada en una m aquina ofine, no tiene en cuenta el n umero
de celdas que ocupa la cadena de entrada en el c alculo del consumo espacial (de alguna
forma, remarca la diferencia entre la talla del problema, n y la complejidad espacial, o(n)).
De esta forma, puede ocurrir que o(n) < n . Incluso puede ocurrir que una M aquina de
Turing trabaje sobre una cadena vaca. Para evitar problemas en estos casos y dado que para
trabajar con la cadena vaca se ha de consultar al menos una celda normalmente, cuando se
est a hablando de la cota espacial o(n), se asume el valor max (1, o(n)|).
Denici on 10.2 (Complejidad Temporal) Sea M una M aquina de Turing con k cin-
tas. Sup ongase que, sobre cualquier entrada de longitud n, M realiza como m aximo
T (n) movimientos, siendo T : ^ ^.
Entonces se dice que M tiene una complejidad temporal T (n) o que es una M aquina
de Turing acotada temporalmente por T (n). Tambi en se dice que L(M) es un lenguaje
con complejidad temporal T (n).
182 Captulo 10. Introducci on a la Complejidad Computacional
N otese que, con respecto a la denici on de complejidad espacial, en este caso la de-
nici on no se hace sobre el modelo ofine, sino sobre una M aquina de Turing con k cintas
de trabajo. Es m as, de hecho, se suele hacer hincapi e en que al ser necesario leer la cadena
entera para poder decidir sobre ella, seguro que T (n) n + 1. Esto no es cierto en todos
los casos, pero suele asumirse as, ya que esta suposici on de partida permite simplicar la
discusi on de algunos teoremas. Por lo tanto, es usual asumir que cuando se est a hablando
de la cota temporal T (n), realmente se trabaja con el valor max (n + 1, T (n)|).
La denici on de la complejidad espacial se basa en una M aquina de Turing con una
cinta s olo de entrada y k cintas de trabajo. Para simular k cintas de trabajo se puede utilizar
una cinta con 2k sectores (ve ase el teorema 7.2); tal y como se realiza la simulaci on, el
n umero de celdas utilizado en la M aquina de Turing de una cinta de trabajo coincide con
el n umero m aximo de celdas utilizado en la M aquina de Turing con k cintas de trabajo.
De esto se puede concluir que el n umero de cintas de trabajo no afecta a la denici on de
complejidad espacial.
Sin embargo, s que es signicativo para la denici on de la complejidad temporal, ya
que esta se ve afectada al pasar de una M aquina de Turing con k cintas a una M aquina de
Turing con una cinta, seg un se desprende del siguiente resultado
4
,
Teorema 10.1 Supuesto quenf
n
T (n)
n
= , sea L un lenguaje aceptado por una
M aquina de Turing M de k cintas, con cota temporal T (n). Hay una M aquina de
Turing M
t=1
2t (T (n))
2
.
4
La notaci onnf
n
T (n)
n
= representa la mayor cota inferior de la sucesi on
T (n)
n
,
T (n+1)
n+1
,
T (n+2)
n+2
,. . .
Esta condici on es necesaria para poder demostrar aquellos resultados en cuyo enunciado aparece; la idea es
que T (n) y n no son del mismo orden de magnitud, con lo cual T (n) crece mucho m as r apidamente que n.
10.2. Deniciones B asicas. 183
10.2.1. Clases de Complejidad.
Cuando se realiza el an alisis de los algoritmos en programaci on, nunca se busca una
expresi on exacta de la funci on de coste de un determinado algoritmo, sino que interesa m as
establecer cu al es su comportamiento asint otico. As se obtiene una medida signicativa,
pero m as simple, de c omo evolucionar a dicho algoritmo a medida que la talla del problema
crece. Y se introduce el concepto de orden de coste que permite, adem as, clasicar los
algoritmos en familias, seg un su comportamiento asint otico estimado.
Los teoremas siguientes permiten formalizar este concepto en el ambito de la Teora de
Complejidad:
Teorema 10.2 (de Compresi on) Sea L un lenguaje aceptado por una M aquina de
Turing M con k cintas de trabajo con cota espacial o(n). Para todo c > 0 hay una
M aquina de Turing M
N otese que una relaci on que para la complejidad espacial puede, como mucho, acabar
resultando cuadr atica, en el caso de la complejidad temporal puede llegar a suponer la trans-
formaci on en una funci on exponencial. Este resultado tiene importantes consecuencias, tal
y como se ver a a continuaci on.
5
Por ahora? ;-).
10.3. Relaciones entre las Clases de Complejidad Computacional. 187
10.3.2. Las Clases de Complejidad Polin omica.
Como se coment o en la introducci on, se consideran poblemas tratables aquellos proble-
mas que se pueden resolver mediante algoritmos con comportamiento descrito por funcio-
nes polin omicas. Por lo tanto, puede resultar interesante agrupar en una misma superclase
a todos los problemas tratables. Lo que sigue son la denici on de esas clases, PSPACE, NPS-
PACE, P y NP, seg un que se trate de complejidad espacial o temporal, sobre M aquinas de
Turing deterministas o no deterministas.
Denici on 10.5 Si L es aceptado por una M aquina de Turing determinista con com-
plejidad espacial polin omica, o(n) = a
k
n
k
+ a
k1
n
k1
+ . . . + a
0
, se dice que L
est a en la clase de lenguajes PSPACE.
Si L es aceptado por una M aquina de Turing no determinista con cota espacial po-
lin omica, se dice que L est a en la clase NPSPACE.
Denici on 10.6 Si L es aceptado por una M aquina de Turing determinista con com-
plejidad temporal polin omica, T (n) = a
k
n
k
+ a
k1
n
k1
+ . . . + a
0
, se dice que L
est a en la clase de lenguajes P.
Si L es aceptado por una M aquina de Turing no determinista con cota temporal po-
lin omica, se dice que L est a en la clase NP.
Es posible caracterizar estas clases, as como establecer relaciones entre ellas. En el
caso de la complejidad espacial, por ejemplo, y puesto que se cumple la relaci on,
a
k
n
k
+a
k1
n
k1
+. . . +a
0
([a
k
[ +[a
k1
[ +. . . +[a
0
[)n
k
,
aplicando el teorema 10.4(1) tambi en se cumplir a que
DSPACE(a
k
n
k
+a
k1
n
k1
+. . . +a
0
) DSPACE(n
k
).
Por lo tanto, se puede caracterizar la clase de lenguajes PSPACE como
PSPACE =
_
k=0
DSPACE(n
k
)
es decir, la uni on de todas las clases de complejidad espacial polin omicas sobre M aqui-
nas de Turing deterministas. De forma an aloga, aplicando el teorema 10.4(2), para las no
deterministas se tiene que
NPSPACE =
_
k=0
NSPACE(n
k
).
Si se aplica el apartado 1 del teorema 10.7, se sigue que
DSPACE(n
k
) NSPACE(n
k
).
188 Captulo 10. Introducci on a la Complejidad Computacional
Por lo tanto, como cada elemento de PSPACE est a contenido en un elemento de NPSPACE,
se tiene que
PSPACE NPSPACE.
Pero la relaci on en sentido contrario tambi en es cierta. Si se aplica el Teorema de Savit-
ch, se obtiene
NSPACE(n
k
) DSPACE(n
2k
).
Es decir, cada elemento de NPSPACE tambi en est a contenido en un elemento de PSPACE,
y como las clases PSPACE y NPSPACE son la uni on de cualquier clase de complejidad
polin omica, se tiene que
NPSPACE PSPACE.
Si se cumple la doble inclusi on se est a en condiciones de armar lo siguiente:
PSPACE = NPSPACE.
Si un problema se resuelve mediante un algoritmo no determinista de complejidad
espacial polin omica, tambi en se puede resolver mediante un algoritmo determi-
nista de complejidad espacial polin omica.
Qu e ocurre si se intenta llegar al mismo resultado en el ambito de la complejidad
temporal? De nuevo se utiliza la relaci on,
a
k
n
k
+a
k1
n
k1
+. . . +a
0
([a
k
[ +[a
k1
[ +. . . +[a
0
[)n
k
,
para poder armar
DTIME(a
k
n
k
+a
k1
n
k1
+. . . +a
0
) DTIME(n
k
),
y, por lo tanto, se puede caracterizar la clase de lenguajes P como
P =
_
k=1
DTIME(n
k
),
la uni on de todos los problemas que se resuelven con cota temporal polin omica usando
M aquinas de Turing deterministas y, de forma an aloga,
NP =
_
k=1
NTIME(n
k
),
como la uni on de todos los problemas con cota temporal polin omica sobre m aquinas no
deterministas.
Para intentar establecer una relaci on entre ambas clases, similar a la relaci on entre PS-
PACE y NPSPACE, se puede utilizar el apartado 2 del teorema 10.7 y, ya que,
DTIME(n
k
) NTIME(n
k
)
10.3. Relaciones entre las Clases de Complejidad Computacional. 189
se puede armar que,
P NP.
Pero ahora no es posible establecer la inclusi on inversa para intentar establecer la igual-
dad: el unico resultado del que se dispone es el teorema 10.9, que establece que, en general,
el paso de trabajar con una m aquina no determinista a una m aquina determinista puede
llegar a suponer un aumento exponencial de la complejidad temporal
6
.
Es decir: hay una serie de problemas en la clase NP que podran solucionarse con al-
goritmos de cota temporal polin omica si se dispusiera de la m aquinas no deterministas,
gobernadas por algoritmos no deterministas. Mientras tanto, se deben transformar en sus
equivalentes deterministas. Y en esta transformaci on su coste computacional puede llegar
a transformarse en exponencial. Y, de hecho, los denominados en programaci on Proble-
mas NP, son problemas que plantean este reto a la comunidad cientca: sus algoritmos no
deterministas son polin omicos, sus algoritmos deterministas son exponenciales... son pro-
blemas intratables ... o son problemas que no se sabe c omo tratar? existe un algoritmo
determinista polin omico para ellos y no se conoce todava?
Por lo tanto, queda abierta la cuesti on
P = NP?
seguramente, el problema m as importante en Teora de Computaci on, hoy en da. La comu-
nida cientca se divide entre los que pretenden demostrar la igualdad si esto se demostra-
ra, los problemas que est an en la clase NP tambi en podran resolverse en tiempo polin omico
sobre m aquinas deterministas y los que pretenden demostrar la desigualdad, que P NP
en cuyo caso se sabra que hay problemas que nunca se podr an resolver sobre m aquinas
deterministas con cota polin omica. Es decir, se trabaja sobre las cuestiones:
P = NP? para lo que habra que encontrar una forma de transformar toda M aquina de
Turing no determinista en una M aquina de Turing determinista con cota temporal
polin omica (sean o no los polinomios del mismo grado).
P ,=NP? para lo que habra que encontrar un lenguaje que est e en NP y no est e en P.
Es decir, demostrar para un determinado lenguaje reconocido con cota polin omica
por una M aquina de Turing no determinista que es imposible que lo reconozca una
M aquina de Turing determinista con cota polin omica.
Hay una tercera lnea de trabajo cuyo objetivo sera probar que estas cuestiones son
indemostrables.
6
Un polinomio al cuadrado sigue siendo un polinomio, pero si interviene una funci on exponencial en la
transformaci on...
190 Captulo 10. Introducci on a la Complejidad Computacional
10.4. Introducci on a la Teora de Complejidad Computacional.
Buena parte de los esfuerzos realizados en la Teora de la Complejidad Computacional
se centra en las clases P y NP y en el estudio de las relaciones entre ambas clases, para
intentar establecer resultados que permitan resolver la cuesti on P=NP?. Para ello, adem as
del conocimiento sobre qu e son las clases de complejidad y cu ales son las relaciones entre
ellas, se utiliza la reducibilidad de lenguajes como herramienta b asica.
En el tema 9, se deni o, en general, el mecanismo de reducci on del lenguaje A (o
problema A) al lenguaje B (o problema B), como
(NO)
Reduccin
x
MT probl . B
SI
MT probl. A
R(x)
En el tema 9 la reducci on se utilizaba para poder deducir si el lenguaje B (el problema
B) era o no era recursivo (era o no era decidible) a partir del conocimiento que se tena del
lenguaje A (del problema A).
Si lo que se pretende es estudiar si A y B pertenecen a la misma clase de complejidad
adem as es importante asegurar que esa transformaci on no afecta a la complejidad temporal:
debe tenerse en cuenta que para resolver B, se debe resolver A y adem as realizar la reduc-
ci on (transformar una cadena de B en una cadena de A). El tiempo de c omputo de la funci on
R, afecta al tiempo de c omputo total. Por eso, si se puede calcular en tiempo polin omico, se
dice que B se puede reducir en tiempo polin omico a A, B <
p
A.
Denici on 10.7 (Reducibilidad Polin omica) Un lenguaje L
1
es reducible en tiempo
polin omico a otro lenguaje L
2
, si hay una funci on de cadena computable en tiempo
polin omico, f, para la cual f(u) L
2
u L
1
. Es decir, es posible calcular f(u)
en tiempo polin omico en una M aquina de Turing. Se denota como L
1
<
p
L
2
.
La importancia de este concepto se pone de relieve con el siguiente teorema, que garan-
tiza que la reducibilidad polin omica mantiene al lenguaje reducido en la misma clase que el
lenguaje al que se reduce:
Teorema 10.10 Si L
1
es reducible en tiempo polin omico a L
2
, entonces:
1. si L
2
P L
1
P,
2. si L
2
NP L
1
NP.
10.4. Introducci on a la Teora de Complejidad Computacional. 191
Demostraci on:
Las demostraciones son similares en ambos casos: del caso determinista al no determi-
nista s olo varan en que la correspondiente M aquina de Turing sea o no determinista.
Se supone que L
2
P[NP y que f reduce L
1
a L
2
en tiempo polin omico.
Sea w L
1
hay una M aquina de Turing, M
1
, que acepta w con cota polin omica
f(w).
Sea w L
1
f(w) L
2
hay una M aquina de Turing, M
2
, que acepta f(w) con
cota polin omica g(f(w)).
Por lo tanto, M
2
acepta w con cota polin omica puesto que la composici on de polinomios
es un polinomio.
c.q.d
El concepto de reducibilidad polin omica es una herramienta b asica para determinar a
cu al de las clases, P o NP, pertenece un lenguaje. Puede servir como punto de partida para
el siguiente razonamiento: si cualquier lenguaje de una determinada clase de complejidad
se pudiera reducir a un determinado lenguaje, basta estudiar c omo reconocer ese lenguaje y
cu al es la cota temporal de la M aquina de Turing que lo reconoce. Es decir, basta con estu-
diar cu al es el algoritmo con mejor cota temporal para resolver el problema que representa
ese lenguaje y como todos los problemas de su clase no superan la cota polin omica en su
reducci on a el, ser an igual de difciles de resolver.
Denici on 10.8 Para cualquier clase ( de lenguajes, un lenguaje L se dice que es
( hard ((-dcil o (-duro) si, L
(, L
<
p
L. Es decir, todos los lenguajes de
( se reducen a L en tiempo polin omico.
En particular, L es NP-hard si para cualquier lenguaje L
NP, L
<
p
L.
Denici on 10.9 Si L es (-hard y L (, entonces L es ( completo.
En particular, si L es NP-hard y L NP, entonces L es NP-completo.
Si L
1
<
p
L
2
entonces determinar si w L
1
no es m as dcil que determinar si f(w)
L
2
, siendo f la funci on que reduce L
1
a L
2
en tiempo polin omico. Y, en concreto, si se habla
de lenguajes ( completos, la reducci on polin omica puede aplicarse a todos los lenguajes
de la clase (. Por supuesto, si se habla de las clases NP o P, el resultado es trascendental:
s olo con encontrar un lenguaje NP-completo reducible en tiempo polin omico a un lenguaje
de la clase P, se sabra que cualquier otro lenguaje de NP tambi en admitira una reducci on
polin omica.
192 Captulo 10. Introducci on a la Complejidad Computacional
Teorema 10.11 (de Lambsmother)
Si L es un lenguaje NP-completo y L P P = NP.
Demostraci on:
Sea cualquier lenguaje L
1
NP L
1
<
p
L, que es NP-completo.
Como L P L
1
P.
c.q.d
Este teorema permitira demostrar P=NP, en el caso de encontrar un lenguaje que cum-
pliera las condiciones. Por lo tanto, el primer paso en este sentido fue buscar un lenguaje
NP completo. El primer lenguaje NP completo encontrado fue L
sat
.
Este lenguaje representa el Problema de la Satisfactibilidad:
Dado un conjunto de cl ausulas booleanas (expresiones booleanas formadas
con negadores y disyunciones de constantes y/o variables booleanas), existe
un conjunto de valores para las variables que intervienen en las cl ausulas que
las satisfagan todas?.
Este problema de decisi on se asocia al lenguaje
L
sat
= w
x
1
x
2
x
1
x
2
x
3
x
1
x
2
x
3
000 1 1 1
001 1 1 1
010 0
011 0
100 1 1 0
101 1 1 1
110 1 0
111 1 1 1
10.4. Introducci on a la Teora de Complejidad Computacional. 193
es un conjunto de cl ausulas satifactibles, ya que x
1
= 0, x
2
= 0, x
3
= 0
o x
1
= 1, x
2
= 0, x
3
= 1, son valores que satisfacen todas las cl ausulas. Sin
embargo, C2 no lo es:
C
2
= x
1
, x
1
x
2
, x
1
x
2
x
1
x
1
x
2
x
1
x
2
00 1 0
01 1 1 0
10 0
11 0
Teorema 10.12 (de Cook) L
sat
es un lenguaje NP-completo.
La demostraci on se puede encontrar en la bibliografa (recomiendo la demostraci on que
se hace en el libro de Dean Kelley, Teora de Aut omatas y Lenguajes Formales).
La importancia de esta demostraci on es que, una vez que se ha demostrado que un
lenguaje es NP-completo, se simplica la b usqueda de otros ya que, para ello, se pueden
aplicar los siguientes resultados:
Lema 10.1 Si L
1
es NP-completo y L
1
<
p
L
2
, entonces L
2
es NP-hard.
Corolario 10.1 Si L
1
es NP-completo y L
1
<
p
L
2
y L
2
NP, entonces L
2
es NP-
completo.
La idea es que cu antos m as problemas NP-completos se conozcan, m as posibilidades
existen de que haya alguno que cumpla las condiciones del teorema 10.11. En la actualidad
se ha demostrado que m as de 400 lenguajes son NP-completos, pero a un no se ha podido
encontrar un lenguaje que satisfaga las condiciones de dicho teorema.
194 Captulo 10. Introducci on a la Complejidad Computacional
Bibliografa
[Cook71] Stephen Cook. The Complexity of Theorem Proving Procedures. Conference
Record of Third Annual ACM Symposium on Theory of Computing, Shaker Heighs,
Ohio, pp. 151158. 1971.
Si alguien est a interesado tengo un revisi on de este artculo del propio Stephen Cook,
titulado The P versus NP Problem. Creo que es de 2000.
[Dowe01] Gilles Dowek. El Innito y el Universo de los Algoritmos. Investigaci on y
Ciencia, Temas 23, pp. 7476. 2001.
[Gare79] Michael R. Garey , David S. Johnson. Computers and Intractability. A Guide to
the Theory of NP-Completeness. W.H. Freeman and Company, New York. 1979.
[Hofs79] Douglas Hofstadter. G odel, Escher, Bach: Un Eterno y Gr acil Bucle. Colecci on
Metatemas 14, Tusquets Editores. 1979.
[Hopc79] John E. Hopcroft, Jeffrey D. Ullman. Introduction to Automata Theory, Lan-
guages and Computation. Addison-Wesley Publishing Company. 1979.
[Hopc84] John E. Hopcroft. M aquinas de Turing. Investigaci on y Ciencia, pp. 819. Julio
1984.
[Hopc02] John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman. Introducci on a la Teora
de Aut omatas, Lenguajes y Computaci on. Addison Wesley. 2002.
[Johns00] David Johnson. Challenges for Theorical Computer Science (Draft). Last Up-
dated, June 2000.
<http://www.research.att.com/dsj/nsflist.html> [
Ultima vi-
sita: 4 de Mayo de 2004]
[Kelley95] Dean Kelley. Teora de Aut omatas y Lenguajes Formales. Prentice-Hall Inc.
1995.
[Lewis81] Harry R. Lewis, Christos Papadimitriou. Elements of the Theory of Compu-
tation. Prentice-Hall, Inc. 1981.
[Mahon98] Michael S. Mahoney. The Structures of Computation. Proc. of the Interna-
tional Conference on the History of Computing, Heinz Nixdorf Forum. Paderborn,
Germany, 1416. August 1998.
<http://www.princeton.edu/mike> sec: Articles on the History of
Computing [