You are on page 1of 202

Apuntes de Teora de Aut omatas y

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 III


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
8. Computabilidad 129
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
9. Indecidibilidad 147
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
IV

Indice general
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 Recursividad. . 173
9.6. Ap endice 2: Ejemplo de c omo aplicar Rice fuera de su ambito. . . . . . . . 176
10. Introducci on a la Complejidad Computacional 177
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
Captulo 1
Introducci on

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

, la inversa de la inversa es la cadena original,


3. (x
1
x
2
. . . x
k
)
1
= x
1
k
. . . x
1
2
x
1
1
, x
i

.
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

. Con esta operaci on se denota al conjunto de


todos los conjuntos que se pueden formar con los elementos del alfabeto , es decir,
todos los posibles lenguajes que se pueden formar con las cadenas de smbolos del
alfabeto .
1.2. Lenguajes. 5
La observaci on anterior permite realizar una consideraci on interesante.
Sea el alfabeto = 0,1; en el conjunto 2

estaran, entre otros mu-


chos conjuntos, el conjunto de cadenas que representan el juego de ins-
trucciones de cualquier microprocesador (68000, pentium, athlon, ...etc.).
M as a un, si se concatena en una misma cadena todas las instrucciones
de un programa escrito en uno de estos juegos de instrucciones, tambi en
se obtiene un elemento de 2

. Se tiene, entonces, que, de entre los ele-


mentos de 2

, un subconjunto sera el formado por todas cadenas que


representan programas correctamente escritos en ese juego de instruccio-
nes, y que, adem as, un subconjunto de este sera el de los que no s olo son
correctos desde el punto de vista sint actico, sino que tambi en se ejecutan
de forma correcta.
Inversi on Dado un lenguaje L, L

, se dene el lenguaje inverso de L, denotado por


L
1
, como el conjunto de cadenas que resulta de aplicar la operaci on de inversi on a
cada una de las cadenas del lenguaje L, es decir, L
1
= x
1
[ x L.
Se puede comprobar que esta operaci on cumple las siguientes propiedades:
a) (
1
) = b) (L
1
L
2
)
1
= L
1
2
L
1
1
c) (L
i
)
1
= (L
1
)
i
d) (L

)
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

un lenguaje, entonces la operaci on de homomorsmo


inverso, denotada h
1
(L) se dene como el conjunto de cadenas h
1
(L) = x

[ 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

, se dice que es una forma sentencial cuan-


do S

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

(q, xa) = f(f

(q, x), a), x

, 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

(P, a), x), x

, 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

, se va a demostrar que L(A) = L(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

, tambi en se cumple que f

(q

0
, ) = q

0
=
[q
0
]. Por lo tanto, se cumple el enunciado.
Hip otesis de Inducci on: x

tal que [ x [ n se cumple f(q


0
, x) = P f

(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

viene determinada por la siguiente condici on:


f(P
1
, a) = P
2
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

y, de forma similar, se completara la denici on de f

,
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

Para simplicar la notaci on se utiliza el mismo smbolo de funci on clausura para


referirse tanto a clausura como a CLAUSURA.
26 Captulo 2. Aut omatas Finitos y Expresiones Regulares
Con estas deniciones ya se est a en condiciones de poder determinar cu al es el compor-
tamiento de un AF ante una cadena de entrada.
Denici on 2.9 Se dene

f : Q

2
Q
de la forma siguiente:
1)

f(q, ) = clausura(q)
2) x

, a , q Q :

f(q, xa) = clausura(P) [ P = p Q [ r



f(q, x) p f(r, a)
Ejemplo:
Dado el AF del ejemplo anterior, qu e resultado se obtiene al calcular

f(q
0
, ab)?

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

Todo este proceso se reeja en el siguiente esquema:


Otras extensiones para f y

f son f

y

f

que se aplican a conjuntos de estados:


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

y esto puede ser porque q


0
F, o bien, porque desde q
0
se puede alcanzar un estado de F mediante transiciones . En cualquiera de los dos casos
L(A).
c.q.d.
Como consecuencia de este teorema y del teorema 2.1, se obtiene el siguiente resultado:
L(AFD) = L(AFN) = L(AF).
Ejemplo: Calcular un AFN que reconozca el mismo lenguaje que el siguiente
AF
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)

es una expresi on regular que denota la clausura del lenguaje denotado


por .
30 Captulo 2. Aut omatas Finitos y Expresiones Regulares
Ejemplos:
Si = a

entonces L() = L(a

) = a
i
[ i 0.
Si = a

y = b

entonces L() = L(a

) = 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

de forma que la cadena wqx representa la siguiente situaci on:


wx es la cadena de entrada,
q es el estado actual,
el cabezal est a sobre el primer smbolo de la cadena x.
Se dene la relaci on I
1
I
2
como:
1. a
1
a
2
. . . a
i1
qa
i
. . . a
n
a
1
a
2
. . . a
i
pa
i+1
. . . a
n
si f(q, a
i
) = (p, R)
2. a
1
a
2
. . . a
i1
qa
i
. . . a
n
a
1
a
2
. . . a
i2
pa
i1
. . . a
n
si f(q, a
i
) = (p, L)
Se dice que I
1

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)

. Todos los estados son nales.


Resulta evidente que si en un AF2 s olo se permite el desplazamiento a la derecha, enton-
ces el comportamiento es similar al de un AFD. Por lo tanto, si se denota por L(AF2) a la
clase de todos los lenguajes aceptados por AF2 se verica L(AFD) L(AF2). La rela-
ci on inversa tambi en se cumple tal y como se enuncia en el siguiente resultado, que no se
demuestra:
Teorema 2.6 Si L es un lenguaje aceptado por un AF2, entonces existe un AFD A tal
que L(A) = L.
De este resultado, se desprende que
L(AFD) = L(AF2).
38 Captulo 2. Aut omatas Finitos y Expresiones Regulares
2.5.2. Aut omatas Finitos con Funci on de Salida.
Hasta el momento los AF descritos tienen como salida una se nal del tipo acepto/no
acepto (seg un se alcance un estado nal o no despu es de consumir toda la cadena de entra-
da).
Los aut omatas nitos con funci on de salida son modelos que traducen la cadena de
entrada en otra cadena de salida. Si esa traducci on se realiza en cada estado entonces se
tiene una m aquina de Moore y si la traducci on se realiza en cada transici on entonces se
tiene una m aquina de Mealy.
M aquina de Moore.
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 estado
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
)(q
i1
)(q
i2
) . . . (q
in
)
donde q
0
, q
i1
, q
i2
, . . . , q
in
es la secuencia de estados tal que f(q
ij
, a
i+1
) = q
ij+1
.
Ejemplo:
Escribir una m aquina de Moore que determine el resto de dividir un n umero
binario entre 3.
El resto de dividir un n umero entre 3 ser a el entero 0, el 1 o el 2. Por lo tanto,
se establece una M aquina de Moore con tres estados, q
0
, q
1
y q
2
, de forma que
(q
0
) = 0, (q
1
) = 1 y (q
2
) = 2.
Para determinar las transiciones entre estados se realiza el siguiente an alisis:
Si a un n umero binario i se le a nade un 0 por la derecha se obtiene un
nuevo entero, i0, cuyo valor es el de i multiplicado por 2.
Por lo tanto, si i mod 3 = r, entonces 2i mod 3 = 2r mod 3 = r

.
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 +

Aut omata Finito:


q
1
q
0
q
2
1, 2, 3, 4, 5, 6, 7, 8, 9
0
+, - ,
q
3
0,1, 2, 3, 4, 5, 6, 7, 8, 9
Esta tarea resulta tan habitual que se encuentran disponibles varias herramientas de
programaci on que automatizan la tarea de dise nar los programas que se comporten como
reconocedores l exicos. Por ejemplo, la orden lex del sistema operativo UNIX establece un
mecanismo para generar un programa ejecutable que se comporte como un aut omata nito
mediante la especicaci on de su expresi on regular asociada.
2.6.2. Especicaci on de par ametros de entrada.
En algunos programas que requieran de la interacci on del usuario para buscar ciertos
patrones de caracteres sobre un determinado chero, suele resultar bastante aconsejable
2.6. Aplicaciones. 41
permitir la introducci on de esos datos mediante expresiones regulares. Por ejemplo, en la
mayora de sistemas operativos se incluye la capacidad de buscar cheros cuyo nombre
presente algunas caractersticas expresables mediante expresiones regulares.
En el siguiente ejemplo se observa como listar en el sistema operativo UNIX
todos los cheros cuyo nombre empiece por p y su tercer car acter sea un
5: ls p?5
*
. Este comando da lugar al aut omata nito que se muestra en
la gura 2.12.
q
1
q
0
q
2
cualquiera
5
p
q
3
cualquiera
Figura 2.12: Aut omata Finito asociado a la expresi on p?5
*
Otro ejemplo de utilizaci on de expresiones regulares en aplicaciones de texto se pre-
senta en el editor de texto UNIX, ed. Para representar la ejecuci on de tareas tales como la
b usqueda de un texto y su sustituci on por otro texto en todo un chero se utiliza un comando
como el siguiente: s/ bbb
*
/b. Al ejecutar este comando se sustituyen las secuencias de
dos o m as caracteres blancos en el chero bbb
*
por un unico car acter blanco b. En este
caso el editor ed transforma el comando de entrada s/bbb
*
/b en un aut omata nito con
movimientos libres con el n de ahorrar memoria al representar el aut omata nito.
2.6.3. Ayuda al dise no de circuitos.
Tanto las m aquinas de Moore como las m aquinas de Mealy se utilizan frecuentemente
para dise nar circuitos.
Como ejemplo de este tipo de aplicaci on se presenta el dise no de un sumador
binario serie mediante una m aquina de Mealy.
El diagrama de bloques de un sumador binario en serie es el siguiente:
Este diagrama de bloques se puede representar mediante una tabla de estados
que contendr a dos estados: q
0
y q
1
. El estado q
0
representa la condici on de
acarreo 0 mientras que el estado q
1
representa la condici on de acarreo 1.
Estado actual x
1
x
2
= 00 01 10 11
q
0
q
0
, 0 q
0
, 1 q
0
, 1 q
1
, 0
q
1
q
0
, 1 q
1
, 0 q
1
, 0 q
1
, 1
42 Captulo 2. Aut omatas Finitos y Expresiones Regulares
q
1
q
0
11/0
00/1
00/0
01/1
10/0
01/0
10/0
11/1
Figura 2.13: M aquina de Mealy para un sumador binario.
La entrada (q
0
, 00) = (q
0
, 0) representa que si el dgito x
1
es 0, el dgito x
2
es
0 y la m aquina de Mealy se encuentra en el estado q
0
, entonces la m aquina de
Mealy permanece en el estado q
0
y produce el dgito de salida 0.
Captulo 3
Propiedades de los Lenguajes
Regulares

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

j si y s olo si i j no es r.b.e., puesto que es reexiva y transitiva,


pero no sim etrica.
iR
m
j si y s olo si (i j) mod m = 0, es r.b.e.
Sea R una relaci on binaria de equivalencia. Se dene la clase de equivalencia [x]
R
como
el conjunto y D [ xRy.
El ndice de una r.b.e. es el n umero distinto de clases de equivalencia que contiene.
Sea un alfabeto, se dice que una r.b.e. R, R

, es invariante a la derecha con


respecto a la concatenaci on si z

se verica que xRy implica que xzRyz.


Teorema 3.1 (Teorema de Myhill-Nerode) Las tres armaciones siguientes son
equivalentes:
1. El lenguaje L

es aceptado por alg un AF.


2. L es la uni on de algunas de las clases de equivalencia de una r.b.e. invariante a
la derecha de ndice nito.
3. Sea R
L
la r.b.e.
xR
L
y si y s olo si z

, 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

una r.b.e. que satisface (2).


Sean x, y

tales que xR

y. Como R

es invariante a la derecha, entonces


z

, 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

es nito, tambi en lo debe ser el de R


L
.
(3) (1) Primero se comprueba que R
L
es invariante a la derecha.
Sup ongase que xR
L
y, y sea w una cadena de

. Se debe comprobar que xwR


L
yw,
esto es,
z

, xwz L si, y s olo si, ywz L.


Pero como xR
L
y se conoce, por denici on de R
L
, que
v

, xv L si, y s olo si, yv L.


Sea v = wz para demostrar que R
L
es invariante a la derecha.
Sea Q

el conjunto nito de clases de equivalencia de R


L
y sea [x] el elemento de Q

que contiene a x. Se dene f

([x], a) = [xa]. La denici on es consistente, pues R


L
es invariante a la derecha.
Sea q

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

) si, y s olo si [x] F

.
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

que reconozca el mismo lenguaje va a tener un n umero


de estados que ser a mayor o igual al n umero de estados del AFD proporcionado por la
46 Captulo 3. Propiedades de los Lenguajes Regulares
demostraci on del teorema de Myhill-Nerode. Por lo tanto, este aut omata tendr a el n umero
mnimo de estados que pueda tener cualquier aut omata que reconozca el mismo lenguaje.
La pregunta que se establece ahora es, puede existir otro AFD que reconozca este
mismo lenguaje que tenga el mismo n umero de estados que el AFD dado por el teorema de
Myhill-Nerode pero que tenga una diferente funci on de transici on?
Teorema 3.2 El AFD de mnimo n umero de estados de entre todos los AFD que acep-
tan un mismo lenguaje regular es unico, salvo isomorsmos (renombramiento de es-
tados).
Demostraci on:
Como ya se ha comentado, el AFD obtenido en el tercer paso de la demostraci on del
teorema de Myhill-Nerode tiene el n umero mnimo de estados posible.
Sea A

= , Q

, q

0
, f

, F

) este aut omata, y sea A = , Q, q


0
, f, F) otro AFD tal que
L(A) = L(A

). 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

, lo que se ha demostrado que no es


posible.
Identifquese q con el estado al que se llega al analizar la cadena x en 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

, que se muestra en la gura 3.1.


Todos los estados de este aut omata son alcanzables, por lo tanto, la relaci on
R
A
, tiene seis clases de equivalencia:
[q
0
] = [] representa x

[ 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

3.1. El Teorema de Myhill-Nerode. Minimizaci on de Aut omatas Finitos. 47


Figura 3.1: Aut omata Finito Determinista que reconoce L.
L(A), por lo tanto, es la uni on de las clases de equivalencia asociadas a estados
nales: [] [11].
Por lo que respecta a la relaci on R
L
, esta contendr a cuatro estados:
[q

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

es un AFD que se diferencia del AFD


A en que en A

ser an estados nales los que no lo eran en el AFD A y viceversa.


Por lo tanto,
L(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

reconoce el complementario de L(A).


Teorema 3.5 Los lenguajes regulares son cerrados bajo la operaci on de intersecci on.
Demostraci on:
54 Captulo 3. Propiedades de los Lenguajes Regulares
Como los lenguajes regulares son cerrados bajo las operaciones de complementaci on y
de uni on, entonces si L
1
y L
2
son lenguajes regulares tambi en lo ser a L
2
L
1
= L
1
L
2
.
c.q.d.
C omo se podra construir un AFD que reconociese la intersecci on de dos lenguajes
regulares L
1
y L
2
? Un m etodo consistira en construir el AFD A
1
que reconociese L
1
, y el
AFD A
2
, que reconociese L
2
; a partir de ellos se puede construir el AFD 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)

[ S(0, x) = S(1, x). Es L un lenguaje regular?


El lenguaje L est a formado por cadenas que tienen el mismo n umero de 0s que
de 1s dispuestos en cualquier posici on.
Si L fuese un lenguaje regular entonces al intersectarlo con un lenguaje re-
gular debera dar como resultado un lenguaje regular. El lenguaje 0

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

, pero este lenguaje es el


lenguaje 0
n
1
n
que ya se ha visto que no es un lenguaje regular.
Por lo tanto, L tampoco puede ser regular.
Teorema 3.6 Los lenguajes regulares son cerrados bajo la operaci on de sustituci on.
3.3. Propiedades de Clausura. 55
Demostraci on:
Se dene la operaci on de sustituci on f : 2

de forma que a , f(a) es un


lenguaje regular.
Adem as, se conoce que si r
1
y r
2
son expresiones regulares entonces tambi en son ex-
presiones regulares las expresiones r
1
+r
2
, r
1
r
2
y r

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 :

. Sea L un lenguaje regular de

. 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, a) = f(q, h(a)) q Q, a .


56 Captulo 3. Propiedades de los Lenguajes Regulares
Aplicando inducci on sobre la longitud de la cadena x se puede demostrar que si 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

se dene en dos pasos:


1. 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

se puede realizar de esta otra forma:


Q = Q

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

tal que g(0) = 1 y g(1) = 0.


Como la operaci on de homomorsmo es una operaci on de clausura para los
lenguajes regulares, entonces el lenguaje g(L
1
) tambi en debe ser un lenguaje
3.4. Algoritmos de Decisi on para Lenguajes Regulares. 57
regular . Y, por lo tanto, el lenguaje L g(L
1
) debe ser regular, pero este
lenguaje es
L g(L
1
) = 0
m
1
n
[ m n 0
n
1
m
[ m n = 0
n
1
n
[ n 0.
que no es un lenguaje regular. Se deduce entonces que la suposici on inicial, L
es un lenguaje regular, no puede ser cierta.
3.4. Algoritmos de Decisi on para Lenguajes Regulares.
Un gran n umero de cuestiones sobre lenguajes regulares se pueden resolver mediante
el uso de algoritmos de decisi on como, por ejemplo, determinar si un lenguaje regular es
vaco, nito o innito, o bien determinar si una determinada cadena puede ser generada por
una determinada gram atica regular.
Como se ver a en temas siguientes, estas cuestiones no siempre ser an resolubles para
lenguajes de otros tipos.
Teorema 3.9 El conjunto de cadenas aceptadas por un aut omata nito
A = , Q, q
0
, f, F)
tal que [ Q [= n es:
1. No vaco x L(A)/ [ x [< n.
2. Innito x L(A)/n [ x [< 2n.
Demostraci on:
1. No vaco x L(A)/ [ x [< n.
: Obviamente, si existe una cadena que pertenece a L(A), entonces L(A) no es el
conjunto vaco.
: Si L(A) es no vaco es porque existe al menos una cadena que pertenece a L(A).
Sea x esa cadena. Si [ x [< n entonces ya est a demostrado el teorema.
Si [ x [ n entonces, por el lema de bombeo, resulta que x = uvw, cum-
pli endose tambi en que i 0, uv
i
w L(A). En particular, si se selecciona
i = 0, se obtiene la cadena uv
0
w = uw que, como [ v [ 1, cumple que
[ x [=[ uvw [>[ uw [ y uw L(A). Si [ uw [< n, entonces ya se ha
conseguido demostrar el teorema. En caso contrario, se vuelve a aplicar este
razonamiento.
58 Captulo 3. Propiedades de los Lenguajes Regulares
Como cada vez que se aplica este razonamiento se obtienen cadenas de me-
nor longitud, tiene que llegar un momento en que se obtenga una cadena cuya
longitud sea menor que n.
Como consecuencia, un posible algoritmo para poder armar si el lenguaje que re-
conoce un AF es o no es vaco, consistira en determinar si hay alguna cadena de
longitud menor que n, siendo [ Q [= n, que pertenezca al lenguaje (n otese que como
n es un valor jo, hay un n umero nito de posibles cadenas que pudieran pertenecer
al lenguaje; por lo tanto, se asegura el n del proceso).
2. Innito x L(A)/n [ x [< 2n.
: Como [ x [ n, entonces, por el lema de bombeo, se cumple que i
0, uv
i
w L(A). Por lo tanto, se puede armar que hay un n umero innito
de cadenas que pertenecen a L(A).
: Se sigue un proceso de razonamiento similar al realizado en el caso del
apartado anterior, teniendo en cuenta que [ v [ 1 y [ uv [ n.
Como consecuencia, un posible algoritmo para poder armar si el lenguaje que re-
conoce un AF es o no es innito, consistira en determinar si hay alguna cadena de
longitud menor que 2n y menor o igual a n, siendo [ Q [= n, que pertenezca al
lenguaje.
c.q.d.
Teorema 3.10 Existe un algoritmo para determinar si dos aut omatas nitos determi-
nistas reconocen el mismo lenguaje.
Demostraci on:
Sea A
1
un AFD [ L(A
1
) = L
1
y sea A
2
otro AFD [ L(A
2
) = L
2
. Se construye un AFD
A

que reconozca el lenguaje,


L(A

) = (L
1
L
2
) (L
1
L
2
).
Entonces L
1
= L
2
L(A

) = , que, seg un el teorema 3.9, es una cuesti on decidible.


c.q.d.
Captulo 4
Gram aticas de Contexto Libre

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

y la etiqueta del nodo n es ,


entonces n es el unico 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

, tal que L(G) = L(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

se aplican dos lemas. El primero de ellos determina el con-


junto de smbolos a partir de los cuales se puede obtener una cadena del lenguaje; el segundo
lema determina el conjunto de smbolos que pueden aparecer en una forma sentencial de la
64 Captulo 4. Gram aticas de Contexto Libre
gram atica, es decir, los smbolos que pueden ser alcanzados desde el smbolo inicial de la
gram atica.
Lema 4.1 (de la derivabilidad) Dada una GCL, G =
A
,
T
, P, S), L(G) ,= ,
puede construirse una GCL equivalente 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

se calcula el conjunto de smbolos derivables por medio de la


siguiente f ormula:
Paso Base: A
A
, w

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
)

Para nalizar, hay que demostrar que L(G

) = L(G). Para ello se demostrar a que L(G

)
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

, entonces aplicando las mismas producciones en G se obtiene la misma


cadena x.
L(G) L(G

) : Sup ongase que x [ x L(G) x , L(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

se calcula el conjunto de smbolos alcanzables por medio del


proceso iterativo:

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

como el siguiente conjunto


P

= (A ) P [ A

A
(

A
)

Para nalizar, hay que demostrar que L(G

) = L(G). Queda propuesto como ejercicio.


c.q.d.
Teorema 4.2 Todo LCL L, L ,= , puede ser generado por una GCL sin smbolos
in utiles.
Demostraci on:
Sea G una GCL que genera el LCL L.
Sea G

la GCL resultado de aplicar a la GCL G el lema 4.1 (al eliminar los smbolos no
derivables).
Sea G

la GCL resultado de aplicar a la GCL G

el lema 4.2 (al eliminar los smbolos


no alcanzables). Entonces G

no contiene smbolos in utiles y L(G

) = L(G

) = L(G).
Para demostrar que G

no contiene smbolos in utiles sup ongase que contiene un smbo-


lo in util X. Como X

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

haba un smbolo in util. Por lo tanto, 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

tal que L(G

) = L(G) -
y G

no contiene smbolos in utiles ni anulables.


Demostraci on:
Sea G =
A
,
T
, P, S) una GCL. El primer paso consiste en calcular los smbolos
anulables, es decir, el conjunto / = X
A
[ X

. Este conjunto se puede calcular
por medio del siguiente proceso iterativo:
A
1
= X
A
[ X ) P,
4.3. Simplicaci on de GCL. 67
A
i+1
= A
i
X
A
[ A
+
i
: (X ) P, i 1.
El proceso naliza cuando para alg un valor de k se cumple que A
k+1
= A
k
.
Sea G
2
=
A
,
T
, P
2
, S) la GCL tal que el conjunto de producciones P
2
se construye
a partir de P y del conjunto A de la siguiente forma:
(X ) P
2
,= (
A

T
)
+
: (X ) P se puede obtener de
eliminando ninguna, una o m as apariciones de ninguno, uno o m as smbolos del
conjunto de smbolos anulables /.
Falta por demostrar que L(G
2
) = L(G) . Para ello se demostrar a la inclusi on en
ambos sentidos.
L(G
2
) L(G) : Cada producci on de P
2
se ha obtenido realizando una secuencia
de derivaciones con producciones de P; por lo tanto, si X P
2
entonces X


aplicando producciones de P.
Sea w L(G
2
), luego S
1

2
. . . w ,= aplicando producciones de
P
2
. Cada una de esas derivaciones
i

i+1
puede realizarse en uno o m as pasos en
la gram atica G, y por lo tanto, se puede obtener la misma cadena w: S


1

. . .

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

) L(G) : Por inducci on en el n umero de pasos que intervienen en la derivaci on de


una cadena, se demostrar a que si A

w en la GCL G

(donde A
A
y w

T
),
entonces en G se puede derivar A

w.
Paso Base (n = 1): si en G

se obtiene A w en un paso es porque A w P

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

, existe una producci on A X


1
X
2
. . . X
m
de P en la
que X
i
= B
i
, si B
i

A
y X
i
= a, si B
i
C.
Para aquellos B
i

A
, se sabe que la derivaci on B
i

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

, si A es cualquier producci on de G, entonces


en G

se puede derivar A f()



.
Todas las producciones de la GCL G

tienen el siguiente formato: A , donde


est a compuesta unicamente por smbolos auxiliares y tiene una longitud mayor o igual que
dos, o bien A ,
T
.
Por lo tanto, para obtener la GCL en Forma Normal de Chomsky, a la que se denomi-
nar a G

, G

A
,
T
, P

, S), basta con realizar el siguiente proceso:


(A ) [ [ [ 2, entonces (A ) P

.
(A A
1
A
2
. . . A
n
) P

tal que n > 2, entonces A A


1
D
1
; D
1

A
2
D
2
; . . . ; D
n2
A
n1
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

equivalente a la GCL inicial y sin smbolos in utiles, producciones


, ni producciones unitarias es:
S aAb [ ab
A aAb [ ab [ aC [ a [ AB [ bBa [ ba
B bBa [ ba
C CD [ bD [ b [ AB [ bBa [ ba [ aAb [ ab [ aC [ a
D bD [ b
La GCL G

en Forma Normal de Chomsky tal que L(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

es la unica producci on en la que aparece , S

no aparece
en el consecuente de ninguna otra regla de producci on, y el resto de producciones de
P

est an en Forma Normal de Chomsky.


Efectivamente, si G =
A
,
T
, P, S) es una GCL, tal que L(G), entonces se
construye G

A
,
T
, P

, S) tal que L(G

) = 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

, S) la GCL tal que P

se ha obtenido del conjunto P al eliminar


de este la producci on (A
1
B
2
) y a nadir las producciones (A
1

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

) L(G) : Cada producci on de P

que no sea de P puede obtenerse por medio de dos


derivaciones de producciones del conjunto P; es decir, si A
1

2
es una pro-
ducci on de P

que no es de P, entonces se pueden realizar las siguientes derivaciones


con producciones de P: A
1
B
2

1

2
.
74 Captulo 4. Gram aticas de Contexto Libre
L(G) L(G

) : Sea x L(G); entonces, si en el proceso de derivaci on de x se ha utiliza-


do la producci on A
1
B
2
, posteriormente se ha debido sustituir el smbolo B por
alguno de los consecuentes asociados a las producciones de B, que son los siguientes:
(B
1
[
2
[ . . . [
r
), obteni endose, entonces,
1

2
.
En G

se puede obtener la misma cadena, x, realizando la misma secuencia de de-


rivaci on que en G

hasta llegar a la sustituci on del smbolo A. En este momento se


sustituye el smbolo A por la producci on de P

, 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

, S) la GCL obtenida de G tal que

A
=
A
B, B ,
A
,
y tal que en P

se han eliminado todas las producciones que tienen al smbolo A como


antecedente y en su lugar se han a nadido las siguientes producciones:
1. A
i
[
i
B, 1 i m,
2. B
i
[
i
B, 1 i r.
Entonces L(G) = L(G

).
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

) : Sea x L(G). Sup ongase que en el proceso de derivaci on de la cadena


x no se han utilizado producciones recursivas a izquierdas hasta la forma sentencial

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

se puede realizar la misma secuencia de derivaciones hasta generar


i
(ya que
todas las producciones utilizadas, al no ser recursivas a izquierdas, tambi en pertene-
cen a P

) y, a partir de esta forma sentencial se pueden realizar las siguientes secuen-


cias de derivaciones,

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

) L(G) : Esta inclusi on se demuestra de forma similar a la inclusi on previa. Queda


propuesta como ejercicio.
c.q.d.
Teorema 4.6 (Formal Normal de Greibach) Todo LCL L, , L, se puede generar
por una GCL en la que todas sus producciones tienen el siguiente formato:
A a
donde A es un smbolo auxiliar, es una cadena de smbolos auxiliares y a es un
smbolo terminal.
Demostraci on:
Sea G =
A
,
T
, P, S) una GCL tal que , L.
Sea G

A
,
T
, P

, S) la GCL en Forma Normal de Chomsky tal que L(G

) = L(G).
El primer paso para conseguir transformar G

en otra GCL en Forma Normal de Grei-


bach, consiste en establecer un orden arbitrario entre los smbolos auxiliares de 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

cumpla con la siguiente propiedad


A
k
, A
j

A
, si A
k
A
j
P

, entonces j > k. (4.1)


Generalmente, no ser a posible que todas las producciones de P

cumplan esta propiedad.


Se observa que al estar G

en FNCH entonces cualquier producci on de P

susceptible de
ser transformada para que cumpla la anterior propiedad (es decir, aquellas producciones de
P

en las que el primer smbolo del consecuente sea un smbolo de

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

estaba inicialmente en FNCH,


3. B
i
.
Sea A
m
el smbolo auxiliar de mayor peso en la ordenaci on de los smbolos de

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

# j > i; por lo tanto, las producciones de A


j
estan en FNG
Substituir A
j
por sus consecuentes en A
i
# se obtienen producciones en FNG
Una vez realizado este proceso s olo resta convertir el formato de las producciones de
tipo 3, B
i
, a FNG. Para ello, basta con jarse en que el primer smbolo de es
un smbolo de

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

es la unica producci on en la que aparece ,


2. S

no aparece en el consecuente de ninguna otra regla de producci on, y


3. el resto de producciones de P

est an en Forma Normal de Greibach.


Efectivamente, si G =
A
,
T
, P, S) es una GCL, tal que L(G), entonces se
construye G

A
,
T
, P

, S) tal que L(G

) = 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

tal que N(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

. Para evitar esta situaci on, se precisa disponer de


un nuevo smbolo fondo de pila que s olo se elimine cuando se est e en el nuevo estado q
e
;
es decir, cuando se haya pasado obligatoriamente por un estado nal, habiendo consumido
adem as toda la cadena de entrada.
Sea el AP 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

son las siguientes:


1. 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

) = L. Para ello, se demostrar a que L(A)


N(A

) y que N(A

) L(A).
86 Captulo 5. Aut omatas de Pila
L(A) N(A

) : Sea x L(A); entonces (q


0
, x, Z
0
)

(p, , ), p F

. Por
lo tanto, en el AP A

se puede obtener la siguiente secuencia de descripciones ins-


tant aneas:
(q

0
, x, X
0
) (q
0
, x, Z
0
X
0
)

(p, , X
0
)

(q
e
, , ),
y, entonces, x N(A

).
N(A

) L(A) : Sea x N(A

); entonces desde la descrici on instant anea inicial, (q

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

debe tener la pila vaca y eso s olo se consigue


pasando previamente por un estado nal de A
2
; por lo tanto, de la descrici on ins-
tant anea (q
0
, x, Z
0
X
0
) se ha de llegar a la descrici on instant anea (p, , X
0
), siendo
p un estado nal de A, para, posteriormente, vaciar la pila mediante las transiciones
de tipo 4.
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.
Queda demostrado entonces que L(APND) N(APND). Acontinuaci on se ver a que
la inclusi on tambi en se cumple a la inversa.
Teorema 5.3 Si L = N(A) para alg un AP A, entonces existe un 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

son las siguientes:


5.2. Relaci on entre los Aut omatas de Pila y los LCL. 87
1. 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. f

(q, , X
0
) = (q

f
, ), q Q.
Falta demostrar que L(A

) = N(A) = L, y para ello se seguir a el m etodo habitual,


demostrando que L(A

) N(A) y que N(A) L(A

).
N(A) L(A

) : Sea x N(A); entonces, (q


0
, x, Z
0
)

(p, , ). Por lo tanto, en el AP
A

se puede obtener la siguiente secuencia de descripciones instant aneas:


(q

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

) N(A) : Sea x L(A

); entonces, desde la descripci on instant anea inicial (q

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

debe alcanzar un estado nal y eso s olo se


consigue pasando previamente por una pila cuyo unico smbolo sea X
0
. Por lo tanto,
de la descripci on instant anea (q
0
, x, Z
0
X
0
) se ha de llegar a la descripci on instant anea
(p, , X
0
), para, posteriormente, pasar al estado nal mediante la transici on n umero
3; es decir, se alcanza la descripci on instant anea (q

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

, de forma que, a , f(a) =


L(G
a
); es decir, la operaci on de sustituci on, aplicada a cada smbolo de , proporciona
como resultado una GCL G
a
=
Aa
,
Ta
, P
a
, S
a
) sobre el alfabeto .
Adem as, se cumple que
a, b , con G
a
=
Aa
,
Ta
, P
a
, S
a
) y G
b
=
Ab
,
Tb
, P
b
, S
b
), entonces (
A

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 obtiene de P reemplazando, en cada producci on de P, cada smbolo terminal


del consecuente por el smbolo inicial de la GCL asociada a ese smbolo terminal mediante
la operaci on de sustituci on f. Por ejemplo, si (A abS) P, entonces (A S
a
S
b
S)
P

.
Se demostrar a que L(G) = f(L), estudiando las dos inclusiones.
L(G

) f(L) : Sea x = f(a


1
)f(a
2
) . . . f(a
n
) L(G

); desde S

, y aplicando unicamen-
te producciones del conjunto P

, se obtiene una forma sentencial = S


a
1
S
a
2
. . . S
an
y, a partir de esta y aplicando las producciones de

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

): Sea x f(L), entonces x = f(a


1
)f(a
2
) . . . f(a
n
), tal que y = a
1
a
2
. . . a
n
es una cadena de L. Por lo tanto, la cadena y se puede obtener a partir de S aplicando
producciones del conjunto P

, y, a partir de esta forma sentencial, se pueden aplicar


producciones de

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)

[ S(x, a) = S(x, b). Calcular una GCL que genere


f(L).
Sea G
a
la GCL denida por las siguientes producciones:
S
a
0S
a
1 [ 01
Sea G
b
la GCL denida por las siguientes producciones:
S
b
0S
b
0 [ 2S
b
2 [
Sea G la GCL denida por las siguientes producciones:
S aSbS [ bSaS [ SS [
Entonces G

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 :

un homomorsmo. Sea L un LCL de

. 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

almacene en un buffer el valor h(a)

, analizando el contenido de este buffer


seg un se indica en el AP M. Es decir, el AP M

, ante una entrada de la forma a


1
a
2
. . . a
n
,
almacena en el buffer h(a
1
)h(a
2
) . . . h(a
n
).
Control
Finito
a
Control Finito M'
Control
Finito M
buffer
h(a)
La denici on formal de M

ser a la siguiente: dado M = , Q, , f, q


0
, Z
0
, F), enton-
ces se construye el AP M

= , Q

, , f

, [q
0
, ], Z
0
, F

), donde
Q

= [q, x] [ q Q, a [ x es sufijo de h(a), y


F

= [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

([q, x], , Y ), tal que (p, ) f(q, , Y ). Se simulan los movimien-


tos del AP M,
3. ([p, x], ) f

([q, ax], , Y ), tal que (p, ) f(q, a, Y ). Se simulan, en M

, 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

se obtiene la siguiente secuencia,


([q
0
, ], a
1
a
2
. . . a
n
, Z
0
) ([q
0
, h(a
1
)], a
2
. . . a
n
, Z
0
)

([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

) = L R, lo que se har a por inducci on sobre el n umero de


transiciones realizadas en la expresi on,
([p
0
, q
0
], x, Z
0
)
i
([p, q], , ) f
A
(p
0
, x) = p (q
0
, x, Z
0
))
i
(q, , )
: Hay que demostrar que
([p
0
, q
0
], x, Z
0
)
i
([p, q], , ) f
A
(p
0
, x) = p (q
0
, x, Z
0
))
i
(q, , ).
Paso Base, i = 0: Entonces, p = p
0
, q = q
0
, x = , = Z
0
.
Hip otesis de Inducci on: ([p
0
, q
0
], x, Z
0
)
i1
([p, q], , ) f
A
(p
0
, x) = p(q
0
, x, Z
0
))
i1

(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

, S), en Forma Normal de Chomsky, tal que L(G

) = 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

no existen caminos cerrados.


Para la comprobaci on del enunciado anterior, primero se supondr a que existe un camino
cerrado, por ejemplo, A
0
A
1
A
2
. . . A
n
A
0
A
0
.
.
.
A
1
A
2
A
n
Nota: como el arco que conecta el nodo A
i
con el nodo A
i+1
puede representar
tanto a la producci on A
i
A
i+1
B como a la producci on A
i
BA
i+1
,
entonces
si la producci on que representa el arco es A
i
BA
i+1
, este arco expresa
la derivaci on
i
A
i

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

, entonces Rango(B) < Rango(A) rango(C) < Rango(A).


Se demostrar a por inducci on que
x

, 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

Es decir, L(M) es el conjunto de cadenas de entrada que llevan a la m aquina a un estado


nal, independientemente de la posici on que ocupe el cabezal.
7.2. T ecnicas para la Construcci on de M aquinas de Turing. 115
7.2. T ecnicas para la Construcci on de M aquinas de Turing.
El objetivo de esta secci on es estudiar t ecnicas que facilitan la construcci on de M aquinas
de Turing, pero que no afectan a la potencia computacional del modelo ya que siempre se
puede simular la soluci on obtenida mediante el modelo formal.
7.2.1. Almacenamiento en el Control Finito.
Consiste en asociar a determinados estados (o a todos) campos nitos de informaci on
adicional sobre las transiciones en el control nito.
Por lo tanto, un estado no s olo queda denido por su identicador, sino tambi en por un
n umero nito de campos de informaci on (normalmente asociado a smbolos del alfabeto de
la cinta). La idea es frenar un crecimiento excesivo de identicadores de estado, que pueda
dicultar el entendimiento del comportamiento de la m aquina. Suele ser util en aquellos
casos en los que se debe recordar qu e smbolo se ha ledo (y en los que la alternativa
a usar esta t ecnica es realizar transiciones a distintos estados, dependiendo de que se lean
distintos smbolos).
Ejemplo 3: Construir una M aquina de Turing capaz de reconocer el lenguaje
L = x
+
[ x = ay, a , y, a
es decir, un lenguaje en el que el primer smbolo de la cadena no puede volver
a aparecer en el resto. Sup ongase que = 0,1. Una posible idea es dise nar
una MT tal que del estado inicial al leer un 0 pase al estado q
1
y a leer un 1
pase a q
2
. . . , pero lo unico que motiva esta diferencia entre los estados es el
smbolo ledo, es decir, la distinci on de estados est a motivada por la necesidad
de poder distinguir de alguna forma entre leer primero un 1 o un 0 para saber
que posteriormente no se va a poder repetir. Entonces, por qu e no realizar
una transici on a un estado que sirva para recordar cu al fue el smbolo ledo
en primer lugar? Por ejemplo,
f([q
0
, B], 0) = ([q
1
, 0], 0, R)
f([q
0
, B], 1) = ([q
1
, 1], 1, R)
f([q
1
, 0], 1) = ([q
1
, 0], 1, R)
f([q
1
, 1], 0) = ([q
1
, 1], 0, R)
f([q
1
, 0], B) = ([q
1
, B], B, R)
f([q
1
, 1], B) = ([q
1
, B], B, R)
Con esto se tendra que Q = [q
0
, B], [q
1
, 0], [q
1
, 1], [q
1
, B]; el estado inicial
es [q
0
, B] y el estado nal es [q
1
, B].
Este ejemplo puede parecer muy simple; para apreciar realmente la utilidad de
esta t ecnica, se aconseja resolver el mismo problema cuando coincide con
el alfabeto latino, por ejemplo.
116 Captulo 7. M aquinas de Turing
En un M aquina de Turing as dise nada, el conjunto de estados Q se puede ver como el
resultado de realizar el producto cartesiano entre un conjunto de identicadores de estados
y el conjunto de smbolos que sean signicativos a la hora de realizar transiciones. Si se
guarda un unico campo de informaci on se obtendran pares [id estado, inf]; si se guardan
dos campos de informaci on se obtendran triplas [id estado, inf1, inf2], y as sucesivamente.
Si se quiere obtener una M aquina de Turing est andar bastar a con renombrar los pares
(o triplas, etc.) obtenidos al realizar el dise no mediante la t ecnica descrita.
En el ejemplo anterior, de Q = [q
0
, B], [q
1
, 0], [q
1
, 1], [q
1
, B] se puede ob-
tener el conjunto Q

= 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

lo que lleva a que escribir las transiciones como


f(q
i
, [
1
,
2
, . . . ,
k
] = (q
j
, [

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 (

) o B. La t ecnica permite marcar smbolos sin borrarlos.

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
.

7.3.2. M aquina de Turing Multicinta.


En este modelo, la m aquina de Turing tiene k cintas, innitas en ambos sentidos, y k
cabezales de L/E,
C. F.
... ...
... ...
... ...
...
...
S olo hay una entrada de informaci on, en la primera cinta. Los tres pasos asociados a
cada transici on son ahora:
1. transici on de estado,
2. escribir un smbolo en cada una de las celdas sobre las que est an los cabezales de L/E,
3. el movimiento de cada cabezal es independiente y ser a R, L o NADA (Z).
Teorema 7.2 El lenguaje L es reconocido por una M aquina de Turing Multicinta
L es reconocido por una M aquina de Turing de una sola cinta.
(Ambos modelos tienen el mismo poder computacional)
Demostraci on:(Idea Intuitiva)
1. Si L es reconocido por una M aquina de Turing de una sola cinta, L es reconocido
por una M aquina de Turing Multicinta. Basta con hacer funcionar una sola cinta de
la M aquina de Turing multicinta, la que se utiliza para realizar la entrada de informa-
ci on.
7.3. M aquinas de Turing Modicadas. 121
2. Si L es reconocido por una M aquina de Turing Multicinta, L es reconocido por una
M aquina de Turing de una sola cinta. Gracias al teorema 7.1 el hecho de que las
cintas sean o no innitas en ambos sentidos es indiferente. La idea b asica, entonces,
ser a pasar de un M aquina de Turing multicinta con k cintas a una M aquina de Turing
de una cinta pero con 2k sectores. As, por cada cinta de la M aquina de Turing mul-
ticinta se tendr a en un sector, la informaci on, y en el otro, una marca que indique la
posici on del cabezal de L/E de la m aquina original.
C. F.
... ...
... ...
...
...
...
...
x1 x2 x3 x4 x5
y1 y2 y3 y4 y5
z1 z2 z3 z4 z5
M1
C. F.
...
...
...
...
x1 x2 x3 x4 x5
y1 y2 y3 y4 y5
z1 z2 z3 z4 z5

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.

N otese que un movimiento de M


1
equivale a varios movimientos de M
2
. Este modelo
tiene el mismo poder computacional, pero suele ser m as eciente que el modelo con una
sola cinta.
Ejemplo:
Si se calcula el n umero de movimientos necesarios para reconocer una cadena
del lenguaje
L = ww
1
[ w

con respecto a su longitud, en una m aquina con 2 cintas el resultado sera


lineal y en una m aquina con una cinta, cuadr atico.
122 Captulo 7. M aquinas de Turing
M2: cuadrtico
C. F.
... ...
... x1 x2 x2 x1
...
M1: lineal
C. F.
...
... ...
x1 x2 x2 x1
...
... x1 x2 x2 x1
...
7.3.3. M aquina de Turing con M ultiples Cabezales.
Tiene k cabezales de L/E, como la multicinta, pero con una sola cinta. Los cabeza-
les operan todos de forma independiente. Como en las M aquinas de Turing multicinta, se
admiten movimientos L, R o Z.
C. F.
... ...
...
Teorema 7.3 Un lenguaje L es reconocido por una M aquina de Turing de m ultiples
cabezales L es reconocido por una M aquina de Turing de un cabezal.
(Ambos modelos tienen el mismo poder computacional)
Demostraci on:(Idea Intuitiva)
1. Si L es reconocido por una M aquina de Turing unicabezal, L es reconocido por una
M aquina de Turing multicabezal. Basta con trabajar con un s olo cabezal en la de
m ultiples cabezales.
2. Si L es reconocido por una M aquina de Turing multicabezal, L es reconocido por
una M aquina de Turing unicabezal. La simulaci on es similar a la realizada para las
M aquinas de Turing multicinta: se utiliza una cinta con k+1 sectores, k para marcar
las posiciones de los distintos cabezales y uno para la informaci on de la cinta.

7.3.4. M aquina de Turing Ofine.


Es un caso particular de las M aquinas de Turing multicinta: tienen una cinta especial
de s olo lectura en la que el cabezal, que s olo puede moverse hacia la derecha, no puede
moverse de la zona delimitada por un par de smbolos especiales.
7.3. M aquinas de Turing Modicadas. 123
C. F.
... ...
... ...
... ...
...
...
$
Para simularla, no hace falta m as que construir una M aquina de Turing multicinta con
una cinta especial sobre la que se copia la informaci on de entrada. El cabezal de esa cinta
s olo lee (sobreescribe siempre el mismo smbolo que lee) y para al encontrar el smbolo $.
A partir de la M aquina de Turing multicinta se puede aplicar el teorema 7.2 para demostrar
que su poder computacional es el mismo que el de una M aquina de Turing est andar.
7.3.5. M aquina de Turing No Determinista.
Es una M aquina de Turing con cinta limitada a la izquierda, que se caracteriza por tener
asociada m as de una transici on desde alg un estado con el mismo smbolo,
f(q
i
, a) = (q
i
, b, L), (q
i
, a, R), (q
j
, a, R), (q
j
, b, R)
f(q
i
, b) = (q
i
, b, R)
f(q
j
, a) = (q
j
, b, L), (q
j
, a, R)
.
.
.
El n umero de transiciones asociado a cada par estado/smbolo siempre es nito.
Teorema 7.4 El lenguaje L es reconocido por una M aquina de Turing No Determi-
nista L es reconocido por una M aquina de Turing Determinista.
(Ambos modelos tienen el mismo poder computacional)
Demostraci on:(Idea Intuitiva)
1. Si L es reconocido por una M aquina de Turing Determinista, L es reconocido por
una M aquina de Turing No Determinista. Las M aquinas de Turing deterministas son
M aquinas de Turing no deterministas en las que s olo hay una transici on por cada par
estado/smbolo.
2. Si L es reconocido por una M aquina de Turing No Determinista, L es reconocido
por una M aquina de Turing Determinista. La demostraci on consiste en determinar
c omo una M aquina de Turing determinista puede simular el comportamiento de una
124 Captulo 7. M aquinas de Turing
M aquina de Turing no determinista. Para ello, en primer lugar, y ya que el n umero de
transiciones asociadas a cada par estado/smbolo es nito, se determina r, el n ume-
ro m aximo de opciones asociadas a las transiciones (en el ejemplo anterior, r=4).
Adem as, se necesita disponer de una M aquina de Turing determinista con 3 cintas,
limitadas a la izquierda.
La primera cinta, recoge la informaci on de entrada, la cadena a reconocer. La segun-
da cinta sirve para llevar la cuenta de qu e opciones se van tomando. Para ello, sobre
esa cinta hay que ir generando cadenas del alfabeto 1, 2, .., r por orden num erico:
- primero, todas las cadenas de longitud 1,
1, 2, 3, ..., r
- segundo, todas las cadenas de longitud 2,
11, 12, 13, ..., 1r, 21, 22, 23, ..., 2r, ..., r1, r2, r3, ..., rr
- tercero, todas las cadenas de longitud 3,
111, 112, 113, ..., 11r, 121, 122, 123 ..., 12r, ..., 1r1, 1r2, ..., 1rr, ..., rr1, rr2, rr3,
..., rrr
- y, en general, en el paso i- esimo se generaran todas las cadenas de longitud i,
11..1, 11..2, ..., 11..r, 11..21, 11..22, ..., 11..r1, .. etc.
Sobre la tercera cinta se desarrolla la simulaci on propiamente dicha. Cada vez que
se genera una secuencia en la cinta 2, se copia la cadena de entrada en la cinta 3.
La secuencia de la cinta 2 indica qu e transici on concreta se elige cada vez. Si, por
ejemplo, en la cinta 2 est a la secuencia
11231..
quiere decir que la primera vez que aplique la funci on de transici on se aplica la pri-
mera transici on de entre las posibles. La segunda tambi en se aplica la primera; la
tercera, se debe aplicar la segunda, la cuarta se debe aplicar la tercera, la quinta se
debe aplicar la primera
2
. . .
Con este chivato, la m aquina operara sobre la cinta 3. Cada vez que se prueba una
secuencia y no se llega a un estado de aceptaci on, se genera la siguiente y se vuelve
a comenzar la simulaci on. Cuando se encuentra una secuencia que permite aceptar la
cadena, la m aquina para y acepta.
Si la cadena es aceptada por la M aquina de Turing no determinista, es porque existe
una secuencia de aplicaciones de la funci on de transici on que conducen a un estado
nal. Como en la cinta 2 se van generando todas las posibles secuencias, esta nueva
M aquina de Turing determinista alguna vez tendr a que encontrar la correcta y parar
aceptando.

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)

, es reconocido por una M aquina de Tu-


ring, entonces L es aceptado por una M aquina de Turing con una sola cinta y alfabeto
de cinta restringido a los smbolos 0, 1, B.
Demostraci on:(Idea intuitiva)
Sea L = L(M
1
), con M
1
= 0, 1, Q, , f, q
0
, B, F). Bajo el supuesto de que tiene
entre 2
k1
+ 1 y 2
k
smbolos, son sucientes k bits para codicar cualquier smbolo
4
de
. La M aquina de Turing M
2
, con alfabeto de cinta restringido a 0,1,B, debe simular el
comportamiento de M
1
.
Para ello, la cinta de M
2
consistir a en una secuencia de c odigos representando los
smbolos de M
1
. El control nito de M
2
debe recordar tanto el estado de M
1
como la po-
sici on de su cabezal de L/E, m odulo k, de forma que sepa cuando se encuentra al principio
de un c odigo de un smbolo de M
1
.
Al comenzar la simulaci on de un movimiento de M
1
, el cabezal de M
2
debe estar situa-
do al comienzo del c odigo binario de un smbolo de M
1
. Movi endose hacia la derecha, M
2
lee los k-1 smbolos siguientes para determinar la transici on que debe realizar M
1
.
Una vez que se sabe qu e smbolo escribira M
1
, M
2
reemplaza los k smbolos ledos
para reemplazarlos por el c odigo del nuevo smbolo, movi endose hacia la izquierda; se
colocara sobre el comienzo del siguiente c odigo binario a interpretar (dependiendo de que
el movimiento de M
1
sea L o R) y realizara la misma transici on de estado. Si el estado es
3
No simult aneamente: si se restringe el alfabeto de cinta, el n umero de cintas y el n umero de estados si-
mult aneamente, el resultado sera un n umero nito de posibles MT que, evidentemente, no pueden tener el
mismo poder que el modelo general, con un n umero innito de posibles MT.
4
Hay que tener en cuenta que ; es decir, sobre 0, 1 y B tambi en se realizar a la codicaci on.
126 Captulo 7. M aquinas de Turing
nal, M
2
acepta y, si no, pasa a simular el siguiente movimiento de M
1
.
Hay un caso especial en esta simulaci on, que sera el caso en el que M
1
alcanzara un
blanco en la cinta (por ejemplo, llegar a la posici on donde se acaba la cadena). La m aquina
M
2
tambi en alcanzara una celda en blanco, pero para realizar elmente la simulaci on, debe
escribir en esa celda y en las k-1 siguientes el c odigo binario correspondiente al smbolo B
de M
1
.
Es preciso puntualizar, adem as, que la entrada de M
2
y M
1
no pueden ser la misma
cadena. Es decir, la cadena w, w (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

(L(M) es el conjunto de cadenas de entrada que llevan a la m aquina a un estado nal,


independientemente de la posici on que ocupe el cabezal).
Si la cadena de entrada en una m aquina M pertenece a L(M), la m aquina M siempre se
detiene. Pero lo que ocurre cuando la cadena no pertenece al lenguaje da pie a la clasica-
ci on de los lenguajes en Recursivos y Recursivamente Enumerables.
Denici on 8.2 (Lenguaje Recursivamente Enumerable) Sea M una M aquina de
Turing; se dice que L = L(M) es un Lenguaje Recursivamente Enumerable si
- x L, M se detiene en q F,
- x , L, M se detiene en q , F o bien M no se detiene.
SI (x L(M))
M
x
8.1. Lenguajes Recursivos y Funciones Computables. 133
Denici on 8.3 (Lenguaje Recursivo) Se dice que L es un Lenguaje Recursivo si exis-
te al menos una M aquina de Turing M, tal que L = L(M) y
- x L, M se detiene en q F,
- x , L, M se detiene en q , F.
SI (x L(M))
NO (x L(M))
M
x
Con esta denici on, el conjunto de todos los lenguajes queda de la siguiente forma
L. Reg.
L.C.L.
L.
Recursivos
L.R.E.
lenguajes no
reconocidos
por MT
8.1.3. La M aquina de Turing como Calculador de Funciones.
Formalmente, la denici on de la M aquina de Turing como calculador de funciones,
toma la forma de una funci on k-aria f, con argumentos enteros y que devuelve un valor
entero,
f : Z
k
Z, f(i
1
, i
2
, . . . , i
k
) = i.
Para normalizar su funcionamiento como calculador, se toma el convenio de representar
los argumentos enteros como cadenas de 0s (n 0
n
), utilizando el 1 como separador entre
los argumentos:
f(i
1
, i
2
, . . . , i
k
) f(0
i
1
10
i
2
1 . . . 0
ik
).
El mismo convenio sirve para representar el resultado de la computaci on.
Denici on 8.4 (Funci on Parcial) Una funci on f, f : A B se dice que es una
Funci on Parcial si C A, C ,= , tal que x C, f(x) (existe un subconjunto
no vaco de A en el que todos los elementos tienen imagen calculable).
134 Captulo 8. Computabilidad
Denici on 8.5 (Funci on Total) Una funci on f, f : A B se dice que es una Fun-
ci on Total si x A, f(x) (se puede calcular la imagen para cualquier elemento
de A).
El modelo de M aquina de Turing dene las funciones recursivas parciales ya que, es
posible suministrarle argumentos con los cuales la M aquina de Turing no se detenga. De
ah que se establezca un paralelismo entre la denici on de funci on parcial y la de lenguaje
recursivamente enumerable: ambos establecen un funcionamiento de la M aquina de Turing
que queda indeterminado, bien sea porque un argumento no tiene imagen, bien sea porque
se proporciona a la m aquina una cadena que no pertenece al lenguaje. .
Una M aquina de Turing que se detiene ante cualquier entrada dene una funci on recur-
siva total, ya que para cualquier argumento hay una imagen. En t erminos de lenguajes, una
funci on total se puede asimilar a un lenguaje recursivo.
Nota: todas las operaciones aritm eticas habituales (+, *, /, n!, log(n), 2
n
) son funciones
recursivas totales.
8.2. La Tesis de Church.
Al estudiar en el captulo 7 el modelo de M aquina de Turing y sus posibles extensiones,
se demostr o que cualquier posible mejora introducida no aumenta el poder computacional
del modelo b asico. Lo mismo se puede aplicar al estudio de otros aut omatas que trabajan
sobre el mismo principio: el desarrollo de un c alculo mediante la aplicaci on repetida de
pasos nitos y completamente denidos.
De ah que la M aquina de Turing sea un modelo formal de la noci on de algoritmo: s olo
se puede considerar como un algoritmo lo que sea posible realizar mediante una M aquina de
Turing. Lo que G odel demostr o en 1931 es que en cualquier sistema de axiomas matem atico
hay enunciados que son ciertos pero cuya veracidad no se puede probar dentro del sistema.
Church demostr o en 1936 que no hay un m etodo mec anico general para decidir si un enun-
ciado es o no es demostrable. Ello hizo necesario disponer de un substituto matem atico y
exacto para la noci on, intuitiva e informal, de computabilidad mec anica; Church utiliz o su
propio sistema, el calculus. Turing lleg o de forma independiente a los mismos resulta-
dos al mismo tiempo. A un m as: su explicaci on l ogica del concepto de funci on computable
en t erminos de una m aquina abstracta, es superior y m as simple que la de Church. Este mo-
delo ha permitido probar los resultados sobre la incomputabilidad y desarrollar el teorema
de incompletitud de G odel, y sus consecuencias, en su totalidad.
El principio de que las M aquinas de Turing son versiones formales de algoritmos y
que ning un procedimiento computacional se puede considerar un algoritmo salvo que sea
posible presentarlo como una M aquina de Turing, es la versi on inform atica de la Tesis de
Church, o Tesis de Turing-Church, que ya se coment o en la Introducci on:
8.2. La Tesis de Church. 135
La noci on intuitiva de funci on computable puede identicarse con las funcio-
nes recursivas parciales. Las M aquinas de Turing tienen el poder suciente
para calcular cualquier funci on recursiva parcial.
En esta tesis, la noci on de funci on computable no pone lmites ni al n umero de pasos
necesarios, ni a la cantidad de espacio de almacenamiento necesario, para desarrollar la
computaci on. No hay que confundir computable con efectivamente computable.
Esta es una tesis, no un teorema ni un resultado matem atico: s olo establece la corres-
pondencia entre un concepto informal (la computabilidad) y un concepto matem atico (las
funciones recursivas parciales). Es, por lo tanto, te oricamente posible que la Tesis de Chur-
ch pueda quedar obsoleta en el futuro, si se propone un modelo alternativo para la noci on
de computabilidad que pueda desarrollar c alculos que no pueden realizarse mediante la
M aquina de Turing. Pero no se considera probable.
De hecho, hay una serie de modelos l ogicos desarrollados ( calculus, Sistemas de
Post, M aquinas de Turing,...) y todos denen la misma clase de funciones, las funciones
recursivas parciales. De entre estos modelos, hay uno m as cercano al punto de vista de los
programadores, el modelo RAM.
8.2.1. El Modelo RAM.
El modelo RAM (Random Access Machine), consiste en un n umero innito de palabras
de memoria, numeradas (0, 1, 2, ...), cada una de las cuales puede almacenar cualquier
n umero entero, y un n umero nito de registros aritm eticos capaces de almacenar cualquier
entero. Los enteros podran entenderse como las instrucciones (codicadas en binario) de
un computador.
Eligiendo correctamente el conjunto de instrucciones y el tama no del m aximo entero
representable en memoria, el modelo RAM puede simular cualquier computador existente.
Veremos a continuaci on, que la M aquina de Turing tiene el mismo poder computacional
que el modelo RAM.
Teorema 8.1 Una M aquina de Turing puede simular una RAM, supuesto que las ins-
trucciones RAM pueden ser simuladas (las conocemos y sabemos interpretar cada una
de ella) por una M aquina de Turing.
Demostraci on: (Idea Intuitiva)
La M aquina de Turing necesaria para la simulaci on ser a una M aquina de Turing multi-
cinta. En una cinta, se almacenan las palabras de memoria de la RAM que tienen valores.
El formato para almacenarlas podra ser
B#0 v
0
#1 v
1
#10 v
2
#...#i v
i
#...
donde con v
i
se representa el contenido, en binario, de la palabra i de memoria de la RAM.
N otese que, en un momento dado, s olo se est a usando un n umero nito de palabras de
136 Captulo 8. Computabilidad
memoria; por lo tanto, el n umero de celdas ocupadas en la M aquina de Turing tambi en
ser a nito.
Para almacenar los contenidos de los registros de la RAM, la M aquina de Turing utili-
zar a tantas cintas como registros haya (el n umero de registros es nito) . Adem as, en otras
dos cintas se almacenar a el valor del Contador de Posici on, que contiene el n umero de la
palabra en la que est a la pr oxima instrucci on, y el valor del Registro de Direcciones de
Memoria, en el cual puede colocarse el n umero de una palabra de memoria.
C omo podra funcionar? Se asume, por ejemplo, que en cada palabra 10 bits indican
una instrucci on standard (LOAD, STORE, ADD,. . . ) y los dem as son la direcci on de un ope-
rando.
En un momento dado, el contador de posici on contiene el valor i, en binario. Habra que
buscar, en la primera cinta, la secuencia #i. Si no la encuentra, no hay instrucci on y la
M aquina de Turing para (la RAM tambi en parara, en este caso).
Si la encuentra, se examina la informaci on entre el smbolo * y el siguiente smbolo
#. Sup ongase que es el equivalente a ADD reg 2 y un n umero j en binario (sumar al
registro 2 el contenido de la posici on j). Se copia el valor de j en la cinta usada como
registro de direcciones de memoria. Acontinuaci on, se busca la secuencia #j en la primera
cinta. Si no se encuentra, se asume el valor 0; si se encuentra se suma el valor de v
j
a los
contenidos de la cinta que se usa como registro 2. Se incrementa el valor de la cinta usada
como contador de posici on. Y se pasara a la siguiente instrucci on.

8.3. La M aquina de Turing como Generador.


Las M aquinas de Turing no s olo tienen capacidad para reconocer las cadenas de un
lenguaje, sino que tambi en tienen capacidad para generar lenguajes.
La denici on formal de la m aquina es la misma, con dos salvedades. En un generador
el alfabeto debe entenderse como el alfabeto sobre el que se formar an las cadenas del
lenguaje. Y, al hablar de las M aquinas de Turing como generadoras, se suele considerar
una m aquina multicinta con una cinta especial, la Cinta de Salida (lo cual es l ogico: en una
m aquina reconocedora cobra especial importancia la entrada, la cadena a reconocer; en una
m aquina generadora, lo importante es la salida, las cadenas que genera).
En la cinta de salida, la m aquina ir a produciendo todas las cadenas que pertenecen al
lenguaje que tiene que generar. Sobre esta cinta s olo se puede escribir. Y, una vez escrito un
smbolo, no se puede reescribir. El cabezal asociado tiene restringido el movimiento en un
sentido, de izquierda a derecha. La imagen m as gr aca de esta cinta sera una impresora.
Como ya se ha dicho, las cadenas se formar an a partir del alfabeto , y aparecen en
la cinta de salida separadas por un smbolo especial que no pertenezca a dicho alfabeto
(normalmente, se utilizar a el smbolo #).
8.3. La M aquina de Turing como Generador. 137
C. F.
... ...
... ...
... ...
...
...
... ...
# # # #
x1 x2 x3
Sea M la M aquina de Turing que genera el lenguaje L, L = x
1
, x
2
, x
3
, .... A M se
le denomina Generador de L y se utiliza la notaci on L = G(M) para representar a dicho
lenguaje.
Cuando se estudia la M aquina de Turing como generador las siguientes armaciones
son ciertas:
Si M para, G(M) es nito. El recproco no es cierto, en general.
Las cadenas pueden aparecer repetidas varias veces en la cinta de salida.
No se asume ning un tipo de orden en la generaci on de cadenas.
Una cadena pertenece a G(M) si antes o despu es aparece en la cinta de salida entre
dos smbolos #.
8.3.1. Dos M aquinas de Turing Generadoras B asicas.
Se describen, a continuaci on, dos generadores b asicos para la asignatura y que intervie-
nen en varias construcciones y demostraciones.
El Generador Can onico Se llama Generador Can onico del alfabeto , G
c
(

), a la M aqui-
na de Turing capaz de generar todas las cadenas de

, siguiendo el Orden Can onico,


que se dene de la siguiente forma
1
:
1. Se generan las cadenas por orden creciente de tama no,
2. Las cadenas del mismo tama no se generan en orden num erico creciente; para
ello, si
= a
0
, a
1
, a
2
, ..., a
k1
,
se supone que el smbolo a
i
es el i- esimo dgito en base k. Por lo tanto, las
cadenas de longitud n son los n umeros del 0 al k
n
1.
1
Este sera el generador necesario para poder realizar la simulaci on de una M aquina de Turing No Determi-
nista, tal y como se vio en el teorema 7.4 .
138 Captulo 8. Computabilidad
Ejemplo:
Si = 0, 1, entonces

se ir a generando en el siguiente orden: , 0,


1, 00, 01, 10, 11, 000, 001, 010, 011, 100, 101, 110, 111, 0000, ... etc.
N otese que 0, 00, 000, 0000, ... son distintas cadenas (igual que lo seran
a, aa, aaa, aaaa, ... si = a, b).
En el orden can onico, cada cadena ocupa una posici on determinada, pudi endose
caracterizar cada cadena por dicha posici on.
El Generador de Pares Se llama Generador de Pares a la M aquina de Turing capaz de
generar todos los pares (i, j) N N,
G(M) = (i, j) [ i, j N.
Si hay que generar todos los pares, la poltica de generaci on no puede ser del tipo
for i in range(1, ):
for j in range(1, ):
generar (i,j)
ya que nunca se llegara a generar el par (2,1). Para asegurar que todos los pares se
generan en tiempo nito, se recurre al orden que proporciona el Tri angulo de Tarta-
glia:
(1, 1)
(1, 2)(2, 1)
(1, 3)(2, 2)(3, 1)
(1, 4)(2, 3)(3, 2)(4, 1)
(1, 5)(2, 4)(3, 3)(4, 2)(5, 1)
...
En este tri angulo, los pares (i,j) se generan por orden creciente de sumas, y se podra
utilizar la secuencia algortmica,
for s in range(2, ):
i = 1
j = s - i
while (i<s):
generar (i,j)
i++
j--
De esta forma, se puede asegurar que el n umero de pares generado antes de generar
el par (i,j) es
(
i+j2

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

. Pero hay que tener en cuenta que el len-


guaje es recursivamente enumerable: por lo tanto, si w
i
no perteneciera a L, es posible que
la M aquina de Turing que reconoce L no pare nunca al trabajar sobre dicha cadena. Esto
supondra que nunca se llegara a trabajar con w
i+1
, w
i+2
, ... que puede que s pertenez-
can. Esta dicultad se puede solventar gracias al Generador de Pares, tal y como se ver a a
continuaci on.
Teorema 8.2 Un lenguaje L es L.R.E. ( M
2
[ L = L(M
2
)) L se puede generar
( M
1
[ L = G(M
1
)).
Demostraci on:
: Lema 8.1
: Por construcci on de la M aquina de Turing M
1
de acuerdo al esquema mostrado en
la gura 8.2: cada vez que el Generador de Pares produce un par (i,j), el valor de i
se introduce como entrada al Generador Can onico para que produzca w
i
, la i- esima
cadena en orden can onico. Esta cadena se suministra a M
2
, junto con el valor de j. Si
M
2
reconoce la cadena w
i
en exactamente j pasos, entonces M
1
, genera la cadena w
i
(la imprime en la cinta de salida).
Si una determinada cadena w pertenece a L, ocupar a una determinada posici on en
orden can onico en el lenguaje

y ser a reconocida en un n umero determinado y


8.4. Caracterizaci on de L.R. y L.R.E. 141
GP
M1
M2
wi
SI
Gc( *)
i
j
##w1#w2#w3#...#
Figura 8.2: Esquema de la M aquina de Turing que permite garantizar que es posible generar
cualquier lenguaje recursivamente enumerable.
nito de pasos; es decir, w se corresponder a con alg un par (i,j). Como cualquier par
es generado en un n umero nito de pasos por el generador de pares, si w L se
imprimir a en la cinta de salida (se generar a), en un n umero nito de pasos. Por lo
tanto, cualquier cadena del lenguaje puede ser generada por M
1
en tiempo nito.
c.q.d.
Corolario 8.1 Si L es un L.R.E., entonces hay un generador de L que produce cada
cadena exactamente una vez (M
1
, por ejemplo).
8.4.2. Caracterizaci on de los L.R. mediante Generadores.
Tal y como se ha visto, cualquier lenguaje que se puede generar mediante una M aquina
de Turing es un L.R.E. (y viceversa). A continuaci on se ver a que si, adem as, se puede
generar en orden can onico entonces es un L.R. (y viceversa: cualquier L.R. se puede generar
en orden can onico).
Lema 8.2 Si L es recursivo ( M
1
[ L = L(M
1
) y M
1
siempre para), entonces
existe un generador de L ( M
2
[ L = G(M
2
)) que imprime las cadenas de L en
orden can onico.
Demostraci on:
Idea b asica: Construcci on de M
2
a partir de la MT M
1
.
El lenguaje L ser a un subconjunto de todas las cadenas que se puedan construir a par-
tir de un cierto alfabeto, . Se construye M
2
, cuyo comportamiento queda descrito en el
siguiente diagrama de bloques:
142 Captulo 8. Computabilidad
M1
M2
SI
wi
Gc( *)
##w1#w2#w3#...#
NO
Se generan las cadenas de

en orden can onico. Despu es de generar cada cadena, M


2
simula el comportamiento de M
1
con la cadena generada. Si M
1
la acepta, M
2
la escribe
en la cinta de salida. Ya que M
1
siempre para, M
2
podr a generar cada cadena en tiempo
nito. Y puesto que las cadenas se producen en orden can onico, aparecer an tambi en en
orden can onico en la cinta de salida.
c.q.d.
Para demostrar el recproco, es decir, dado un lenguaje L, tal que L es generado por una
M aquina de Turing M
2
en orden can onico, L=G(M
2
), entonces L es un L.R., se podra se-
guir la misma pauta que en las demostraciones anteriores: construir una M aquina de Turing
M
1
, basada en M
2
, que acepte las cadenas de L y rechace las cadenas que no pertenezcan a
dicho lenguaje. La construcci on se podra basar en el esquema mostrado en la gura:
w=wk?
M1
##w1#w2#w3#...#wk#
w
SI
NO
w<wk?
NO
SI
NO
M2
La m aquina M
1
simulara el comportamiento de M
2
: cada cadena que se genere en la
cinta de salida de M
2
, se compara con la cadena que hay en la cinta de entrada de M
1
.
Si ambas son iguales, la cadena es aceptada. Si son distintas, se comprueba que la ultima
cadena generada no sea superior, en orden can onico, a la cadena de la cinta de entrada; en
este caso, dicha cadena pude ser rechazada, ya que se tiene la seguridad de que no pertenece
al lenguaje puesto que, si as fuera, ya habra aparecido en la cinta de M
2
.
Pero esta construcci on presenta un problema
- Si L es un lenguaje innito, est a garantizado que M
1
para, tal y como se ha hecho la
construcci on.
8.4. Caracterizaci on de L.R. y L.R.E. 143
- Pero si L es nito, no se sabe cu al ser a el comportamiento de M
2
cuando acabe de
generar cadenas, puede parar o puede seguir funcionando. En este ultimo caso, la
construcci on no permite garantizar que M
1
pare siempre.
Pero cualquier lenguaje nito tiene asociado una M aquina de Turing con parada asegu-
rada (un Aut omata Finito). Por lo tanto, se garantiza que, en cualquiera de los dos casos,
tanto si L es nito como innito, existe una M aquina de Turing que siempre para (aunque
no se pueda dar una receta unica para su construcci on). Seg un esto, se puede enunciar el
siguiente teorema,
Teorema 8.3 Un lenguaje L es L.R. ( M
1
[ L = L(M
1
) y M
1
siempre para) L
se puede generar ( M
2
[ L = G(M
2
)) en orden can onico.
Demostraci on:
: Lema 8.2
: Si L es innito, entonces L es reconocido por la M aquina de Turing M
1
descrita
anteriormente. Si L es nito, entonces hay alg un aut omata nito que acepta L; por lo
tanto, en cualquiera de los dos casos, existe una M aquina de Turing que acepta L y
siempre para.
c.q.d.
144 Captulo 8. Computabilidad
8.5. Propiedades de Lenguajes Recursivos y Lenguajes Recursi-
vamente Enumerables.
El objetivo de esta secci on es estudiar propiedades que pueden ayudar a determinar
cu ando un lenguaje es o no es un lenguaje recursivo o recursivamente enumerable. El primer
teorema muestra c omo estudiar una propiedad de clausura. Siguiendo el mismo modelo se
pueden estudiar la intersecci on, la diferencia, la clausura transitiva, etc.
Teorema 8.4
1. La uni on de dos lenguajes recursivos es un lenguaje recursivo.
2. La uni on de dos lenguajes recursivamente enumerables es un lenguaje recursi-
vamente enumerable.
Demostraci on:
1. Sean L
1
y L
2
, L.R. M
1
, M
2
[ L
1
= L(M
1
), L
2
= L(M
2
) y M
1
y M
2
siempre
paran:
- si x L
1
, M
1
acepta la cadena x y si x , L
1
, M
1
rechaza la cadena x.
- si x L
2
, M
2
acepta la cadena x y si x , L
2
, M
2
rechaza la cadena x.
Sea L = L
1
L
2
, M [ L = L(M) y M siempre para? S, construyendo la m aquina
que se presenta en la gura:
SI (x L1)
NO (x L1)
M1
x
M
NO
SI
M2
La construcci on es correcta puesto que
- si x L
1
OR x L
2
x L
1
L
2
= L (M
1
o M
2
aceptan M acepta)
- si x , L
1
AND x , L
2
x , L
1
L
2
= L (M
1
y M
2
rechazan M
rechaza).
Por lo tanto, M siempre para y si x L, M acepta y si x , L, M rechaza.
2. Sean L
1
y L
2
, L.R.E. M
1
, M
2
[ L
1
= L(M
1
), L
2
= L(M
2
), es decir, si x L
1
,
M
1
acepta y si x L
2
, M
2
acepta.
Sea L = L
1
L
2
, M [ L = L(M)? S, construyendo M de la siguiente forma:
8.5. Propiedades de L. R. y L. R. E. 145
SI (x L1)
M1
x
M
SI
M2
SI (x L2)
La construcci on es correcta puesto que si x L
1
OR x L
2
x L
1
L
2
= L
(M
1
o M
2
aceptan M acepta) por lo tanto, si x L, M acepta. El comportamiento
de M queda indeterminado si x , L
1
AND x , L
2
x , L
1
L
2
= L, pero se
intenta caracterizar un lenguaje recursivamente enumerable.
c.q.d.
Los dos siguientes teoremas se reeren a la operaci on complemento:
Teorema 8.5 El complemento de un lenguaje recursivo es un lenguaje recursivo.
Demostraci on:
Sea L un L.R. M [ L = L(M) y M siempre para: si x L, M acepta la cadena x y
si x , L, M rechaza la cadena x.
Sea

L =

- L, M

[

L = L(M

) y M

siempre para? S, construyendo la m aquina M

de la siguiente forma:
SI (x L)
NO (x L)
M
x
M'
NO (x L)

SI (x L)

La construcci on es correcta puesto que


- si x L x ,

L (M acepta M

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

rechaza. Y dado que es


posible construir 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)

La construcci on es correcta puesto que


- x L M
1
acepta M acepta,
- x , L x

L M
2
acepta M rechaza.
por lo tanto, M siempre para y si x L, M acepta y si x , L, M rechaza. Por lo tanto, L es
un lenguaje recursivo; y, por el teorema 8.5,

L tambi en es un lenguaje recursivo.
c.q.d.
Adem as, de los teoremas 8.5 y 8.6 se desprenden las siguientes relaciones: Dado el
lenguaje L y su complementario

L, s olo se puede cumplir una de estas cuatro armaciones,
1. L y

L son lenguajes recursivos,
2. L es recursivamente enumerable (no recursivo) y

L NO es recursivamente enumera-
ble,
3. L NO es recursivamente enumerable y

L es recursivamente enumerable (no recursi-
vo),
4. L y

L NO son lenguajes recursivamente enumerables.
Captulo 9
Indecidibilidad

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)

es aceptado por alguna M aquina de Turing L es


aceptado por una M aquina de Turing con alfabeto restringido a 0, 1, B.
Este teorema sostiene que cualquier lenguaje sobre el alfabeto 0,1 se puede recono-
cer en una M aquina de Turing cuyo alfabeto de cinta sea 0,1,B; por lo tanto, s olo son
necesarios tres smbolos en dicha M aquina de Turing.
Por otro lado, tambi en es posible armar que no hay necesidad de m as de un estado
nal en cualquier M aquina de Turing.
Con estas premisas, se propone la siguiente codicaci on para cualquier M aquina de
Turing con alfabeto restringido: Sea
M = 0, 1, Q, 0, 1, B, f, q
1
, B, q
2
)
una M aquina de Turing con alfabeto de entrada 0,1 y el B como unico smbolo adicional
en el alfabeto de la cinta. Se asume que Q = q
1
, q
2
, q
3
, .., q
n
es el conjunto de estados y
que s olo hay un estado nal q
2
(y, por supuesto, q
1
es el estado inicial).
Se renombra el alfabeto:
Smbolo Codicaci on
0 x
1
(Primer smbolo) 0
1
= 0
1 x
2
(Segundo smbolo) 0
2
= 00
B x
3
(Tercer smbolo) 0
3
= 000
Se renombran las direcciones:
Direcci on Codicaci on
L D
1
(Primera direcci on) 0
1
= 0
R D
2
(Segunda direcci on) 0
2
= 00
Y, si cada identicador de estado q
i
se representa como 0
i
, entonces se puede codicar
cada una de las transiciones:
f(q
i
, x
j
) = (q
k
, x
l
, D
m
) 0
i
10
j
10
k
10
l
10
m
A cada una de estas transiciones as codicadas se le denominar a c odigo y se le asigna
un orden, por lo que se puede codicar una M aquina de Turing M como
111c odigo
1
11c odigo
2
11c odigo
3
11 . . . 11c odigo
r
111
9.2. La M aquina Universal de Turing y Dos Problemas Indecidibles. 153
Los c odigos siempre estar an entre parejas de 11. El orden de los c odigos es irrelevante;
una misma M aquina de Turing puede tener distintas codicaciones
1
. Pero cada codicaci on
s olo puede estar asociada a una M aquina de Turing.
Por ejemplo: Sea la M aquina de Turing
M = 0, 1, q
1
, q
2
, q
3
, 0, 1, B, f, q
1
, B, q
2
)
con
f(q
1
, 1) = (q
3
, 0, R)
f(q
3
, 0) = (q
1
, 1, R)
f(q
3
, 1) = (q
2
, 0, R)
f(q
3
, B) = (q
3
, 1, L)
Una posible codicaci on de M es la cadena:
111010010001010011000101010010011000100100101001100010001
00010010111
Con esta codicaci on, una M aquina de Turing es un n umero en binario. Por lo tanto,
cualquier n umero en binario podr a ser considerado, inicialmente, un c odigo de M aquina de
Turing. Evidentemente, habr a cadenas binarias que representen M aquina de Turing y cade-
nas binarias que no representen ninguna M aquina de Turing: las cadenas que no comiencen
por 111, o no acaben en 111 o que no tengan parejas de 1s separando 5 bloques de 0s que,
a su vez, est an separados por 1, no codican M aquinas de Turing.
Se denota M,w) a la cadena formada al concatenar la codicaci on de M con la cadena
w. Se interpreta que la cadena w sera la cadena de entrada a la M aquina de Turing M.
En el ejemplo anterior, la cadena M, 1011) se codica como:
111010010001010011000101010010011000100100101001100010001
000100101111011
El establecimiento de esta codicaci on es b asico para la denici on de la M aquina Uni-
versal de Turing, como aquella M aquina de Turing cuyas cadenas de entrada son de la forma
M,w) y cuyo comportamiento consiste en la simulaci on del comportamiento de la m aquina
M cuando su entrada es la cadena w.
9.2.2. Ejemplo de un Lenguaje que NO es Recursivamente Enumerable.
A continuaci on se presenta un lenguaje que no es recursivamente enumerable; su inter es
consiste en poder utilizarlo como una herramienta para caracterizar el car acter recursivo o
1
Ya que una misma MT puede tener distintas codicaciones seg un el orden en el que se representen los
c odigos, cuando se utilice la notaci on M para representar un c odigo de MT, lo que realmente se representar a es
el conjunto de cadenas que codican a la MT M.
154 Captulo 9. Indecidibilidad
recursivamente enumerable de otros lenguajes, utilizando las relaciones vistas en la secci on
8.5.
Es un lenguaje construido con el prop osito de disponer de un lenguaje no recursivamente
enumerable.
Se construye mediante una tabla. La numeraci on de las las sirve para representar las
cadenas de (0 + 1)

en orden can onico: la primera la, representa la primera cadena; la


segunda la, a la segunda cadena en orden can onico, etc. Las columnas se numeran suce-
sivamente a partir del 1 y cada ndice de columna se interpreta en binario, de forma que
dichos n umeros en binario se interpretan como codicaciones de M aquina de Turing (j en
binario es la M aquina de Turing M
j
). Se construye la siguiente tabla innita
2
,
1 2 3 4 . . .
1 0 1 1 0 . . .
2 0 0 1 1 . . .
3 1 1 1 0 . . .
4 1 0 0 1 . . .
. . . . . . . . . . . . . . . . . .
en la que cada entrada es 1 o 0 de acuerdo al siguiente convenio: si w
i
L(M
j
), entonces
el elemento (i,j) es 1, si no es 0,
(i, j) = 1 w
i
L(M
j
),
(i, j) = 0 w
i
, L(M
j
).
Se construye el lenguaje L
d
, el lenguaje diagonal, formado por los elementos diagona-
les nulos; es decir, en L
d
est a la cadena w
i
si (i,i)=0; por lo tanto, M
i
NO acepta la cadena
w
i
:
L
d
= w
i
[ M
i
NO acepta w
i
= w
i
[ w
i
, L(M
i
)
Lema 9.1 El lenguaje L
d
NO es recursivamente enumerable.
Demostraci on:
Sup ongase, como hip otesis de partida, que existe alguna M aquina de Turing, M
j
que
acepte el lenguaje L
d
, es decir, L
d
= L(M
j
). Sea w
j
la cadena que ocupa la j- esima posici on
en orden can onico y el valor j codicado en binario, el c odigo de M
j
.
Si L
d
= L(M
j
) se debe cumplir que si w
j
L
d
, entonces w
j
L(M
j
). Y esto es
imposible:
w
j
L
d
(j, j) = 0 w
j
, L(M
j
),
w
j
, L
d
(j, j) = 1 w
j
L(M
j
).
2
No todas las codicaciones de las columnas tendr an sentido como c odigos de MT; de hecho, el ejemplo
que muestra c omo se llenara es cticio, puesto que todas esas entradas deberan ser ceros, ya que tanto 1, como
10, 11 o 100 no son c odigos v alidos de MT.
9.2. La M aquina Universal de Turing y Dos Problemas Indecidibles. 155
Por lo tanto, L
d
,= L(M
j
). La hip otesis es falsa y no existe ninguna M aquina de Turing
que acepte L
d
.
c.q.d
9.2.3. La M aquina Universal de Turing.
Denici on 9.4 (Lenguaje Universal, L
U
) Se denomina Lenguaje Universal al con-
junto de cadenas
L
U
= M,w) [ M acepta w .
En esta denici on se asume que M admite la codicaci on anteriormente descrita, dado
que si su alfabeto no est a restringido al alfabeto 0,1,B siempre se podr a encontrar la
m aquina equivalente con alfabeto restringido.
Teorema 9.1 L
U
es un lenguaje recursivamente enumerable.
Demostraci on:
La demostraci on se realiza mediante la construcci on de una M aquina de Turing, M1,
que acepta L
U
. Puesto que para determinar si la cadena M,w) L
U
hay que determinar si
la m aquina M acepta la cadena w, se construir a para permitir la simulaci on del comporta-
miento de M con w.
Dicha m aquina tendr a tres cintas. La primera cinta es de entrada; en ella ir a la cadena
M,w) y, puesto que en ella estar a la codicaci on de M, su papel en la simulaci on de su
comportamiento con la cadena w sera similar al de la memoria de un ordenador. Todas las
transiciones (todos los c odigos, entre pares de 11) est an en el primer bloque (entre los dos
111).
La segunda cinta de M1, simular a a la cinta de entrada de M y, por lo tanto, es la que se
realiza realmente la simulaci on del comportamiento de M. En ella se copiar a la cadena w.
La tercera cinta de M1, servir a para llevar cuenta del estado en que estara M; para ello,
q
i
se codicar a como 0
i
. Su papel en la simulaci on es similar al del contador de programa
de un ordenador.
El comportamiento de M1 es el siguiente:
1. Se comprueba que la cadena que est a en la cinta de entrada es correcta, es decir, que
el formato es adecuado (bloques 111 y bloques 11) y que no hay dos c odigos distintos
156 Captulo 9. Indecidibilidad
que comiencen con 0
i
10
j
para un mismo par i, j. Tambi en se comprueba que en cada
c odigo de la forma 0
i
10
j
10
k
10
l
10
m
, 1 j 3, 1 l 3 y 1 m 2 (para ello
se pueden usar las otras cintas como auxiliares si hiciera falta).
2. Se inicializa la cinta 2 con la cadena w. Se inicializa la cinta 3 con el valor 0 que
codica a q
1
. Los 3 cabezales de lectura/escritura se colocan en el smbolo situado
m as a la izquierda en las 3 cintas.
3. Repetir el siguiente proceso,
Sea x
j
el smbolo que se est a leyendo en la cinta 2 y sea 0
i
el estado representado en
la cinta 3. Se recorre la cinta 1 de izquierda a derecha (parando en el segundo 111)
buscando una subcadena (entre 11s) que comience por 0
i
10
j
. . . ; si no se encuentra
M1 para y rechaza ya que M no tiene transici on asociada. Si el c odigo se encuentra,
por ejemplo 0
i
10
j
10
k
10
l
10
m
, se escribe 0
k
en la cinta 3, se escribe x
l
en la celda
bajo el cabezal en la cinta 2 y en esa cinta el cabezal se desplaza en la direcci on D
m
.
hasta que en la cinta 3 se llega al c odigo 00 o M1 para y rechaza.
Si en la cinta 3 se llega al c odigo 00, quiere decir que M trabajando con la cadena w
llega a q
2
, estado nal; en este caso la m aquina M1 para y acepta la cadena M,w). Por lo
tanto, M1 acepta M,w) si y s olo si M acepta la cadena w. Tambi en se cumple que si M
para sin aceptar w, entonces M1 para sin aceptar M,w) y que si M no para con w, entonces
M1 tampoco para con M,w). De la existencia de M1 se sigue que L
U
es un Lenguaje
Recursivamente Enumerable.
c.q.d
Aplicando resultados anteriores (ver captulo 7), se podra construir una m aquina equi-
valente a M1, que tuviera una sola cinta, limitada a la izquierda y el alfabeto restringido a
0, 1, B. Esta m aquina es la denici on formal de la M aquina Universal de Turing,
Denici on 9.5 (M aquina Universal de Turing, /
U
) M aquina de Turing con una
sola cinta, limitada a la izquierda, y con alfabeto 0, 1, B que acepta el lenguaje
L
U
.
La culminaci on del modelo de computaci on establecido por Alan Turing con esta M aqui-
na Universal ha tenido, y sigue teniendo, mucha m as trascendencia del resultado puramente
l ogico.
Este resultado establece que es posible enumerar todas las cadenas que representan
computaciones v alidas. Desde el punto de vista l ogico permiti o asegurar que tiene que haber
funciones no computables, tal y como se estableci o en la introducci on del tema 8.
9.2. La M aquina Universal de Turing y Dos Problemas Indecidibles. 157
Pero, adem as, cuando Von Neumann estableci o la arquitectura que hoy se conoce con
su nombre, lo hizo inuenciado por el resultado de Turing: hasta que Von Neumann intro-
dujo el concepto de control por programa almacenado los computadores se programaban
(si as se puede denominar) recongurando completamente el hardware para cada c alculo
a realizar. Este modelo inspir o a Von Neumann la idea de que sera m as factible disponer
de una circuitera simple (un aut omata) gobernado por un conjunto de instrucciones, m as o
menos complejas, y fue, en denitiva, el punto de arranque del desarrollo de la programa-
ci on.
Se ha comentado que la M aquina de Turing se estudia como modelo formal de algorit-
mo; se puede establecer la analoga siguiente:
Una m aquina de Turing procesando una cadena de entrada, es un modelo de
un algoritmo procesando sus datos de entrada.
El concepto de M aquina Universal de Turing permite establecer una analoga que resulta
m as familiar todava,
Una M aquina Universal de Turing recibe como cadena de entrada el c odigo de
una M aquina de Turing y la cadena con la que esta trabajara; un computador
de prop osito general recibe como cadena de entrada el c odigo de un programa
y los datos con los que el programa trabaja.
9.2.4. Dos Problemas Indecidibles.
La existencia del lenguaje L
d
permite establecer que existe, al menos, un lenguaje que
no pertenece a la clase de los lenguajes recursivamente enumerables.
Es, adem as, un lenguaje que permitir a establecer resultados sobre la indecidibilidad.
No existe una herramienta como el Lema de Bombeo para lenguajes recursivos y recursiva-
mente enumerables. Por lo tanto, para poder estudiar que lenguajes pertenecen o no a dichas
clases, s olo se dispone, como herramientas de trabajo, de las propiedades de clausura y de
la reducci on de problemas.
Si se puede dise nar una M aquina de Turing que acepte las cadenas de un lenguaje,
se demuestra que este es computable. Si, adem as, la construcci on garantiza la parada, el
lenguaje es decidible. Y, entonces, existe un algoritmo para resolver el problema asociado.
Ya se ha establecido que L
U
es un lenguaje computable; si, adem as, fuera decidible,
existira un algoritmo de algoritmos, la posibilidad de determinar autom aticamente el exito
o el fracaso de una computaci on. Algo parecido al teorema de los teoremas que buscaba
Hilbert.
Para estudiar si L
U
es o no un lenguaje recursivo, se utiliza como herramienta el len-
guaje L
d
. En el lema 9.1, qued o establecido que L
d
es un lenguaje no recursivamente
enumerable. Por lo tanto, L
d
tampoco es un lenguaje recursivo y, por el teorema 8.5, su
complementario,

L
d
,
158 Captulo 9. Indecidibilidad

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)

, determina el valor de i tal que w = w


i
, la i- esima cadena en orden
can onico. Este valor i, expresado en binario, es el c odigo de alguna M aquina de Turing,
M
i
. La salida del convertidor es la cadena M
i
, w
i
) que se suministra al algoritmo A. As se
consigue una M aquina de Turing que acepta w si y s olo si M
i
acepta w
i
.
Convertidor
A (LU)
<Mi,wi> w
SI
NO
A'
Es decir, se ha construido un algoritmo A

que indica si la cadena w pertenece o no al


lenguaje

L
d
. Puesto que esto es imposible, ya que

L
d
no es recursivo, entonces la suposici on
de que existe el algoritmo A debe ser falsa.
Por lo tanto, L
U
es un lenguaje recursivamente enumerable no recursivo.
c.q.d
Es decir, el problema
Dada una M aquina de Turing M y una cadena w, acepta M la cadena w?
es un problema indecidible.
El Problema de la Parada.
Un problema tan importante como el anterior y tambi en indecidible es el Problema de
la Parada:
9.2. La M aquina Universal de Turing y Dos Problemas Indecidibles. 159
Sea M una M aquina de Turing y una cadena w. Para M con entrada w?.
Es mucha la importancia de este problema: si se pudiera predecir la parada de M, si se
pudiera predecir de forma autom atica la parada de cualquier proceso en ejecuci on, tambi en
se podra decidir autom aticamente el exito o el fracaso de esa ejecuci on.
Sup ongase que fuera posible predecir la parada de un proceso; es decir, que se dispone
de una funci on llamada Halts, tal que
int Halts(char
*
P, char
*
I)
/
*
Pre: P e I son cadenas de caracteres, siendo P
*
/
/
*
el codigo fuente de un programa e I los datos
*
/
/
*
(1) se determina si P es un programa correcto
*
/
/
*
sintacticamente (compilacion)
*
/
/
*
(2) se determina si P finaliza su ejecucion
*
/
/
*
cuando lee la cadena de entrada I
*
/
return halt;

/
*
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;

Este programa se almacena en el chero Diagonal.c. Una vez compilado y montado,


se obtiene el c odigo ejecutable, Diagonal. A continuaci on se ejecuta,
Diagonal<Diagonal.c
S olo hay dos casos posibles al ejecutar esta orden, y son mutuamente excluyentes:
Caso 1: Halts(I,I) devuelve 1.
160 Captulo 9. Indecidibilidad
Seg un la denici on de Halts, esto signica que Diagonal.c naliza su ejecuci on
cuando recibe como entrada Diagonal.c. Pero, seg un la denici on de Diagonal.c,
que Halts(I,I) devuelva 1, signica que en el condicional se ejecutar a la rama
if, que contiene el bucle innito; es decir, la ejecuci on de Diagonal.c no naliza
NUNCA.
Se llega a una contradicci on.
Caso 2: Halts(I,I) devuelve 0.
Seg un la denici on de Halts, esto signica que Diagonal.c NUNCA naliza
su ejecuci on cuando recibe como entrada Diagonal.c. PERO, seg un la denici on
de Diagonal.c, que Halts(I,I) devuelva 0, signica que en el condicional se
ejecutar a la rama else, por lo que naliza la ejecuci on de Diagonal.c.
Se llega, de nuevo, a una contradicci on.
Puesto que no hay m as casos posibles la suposici on inicial debe ser falsa: no es posible
que exista la funci on Halts.
La demostraci on formal de que el problema de la parada es un problema indecidible, se
basa en que el lenguaje asociado,
L
H
= M,w) [ M para con w ,
es un lenguaje recursivamente enumerable (modicando el comportamiento de /
U
, por
ejemplo, se obtiene una M aquina de Turing que indica si M para con la cadena w), pero no
es recursivo.
Para demostrarlo, se reduce L
d
a L
H
, sabiendo que L
d
es un lenguaje no recursivamente
enumerable.
Lema 9.2 L
H
es un lenguaje recursivamente enumerable no recursivo.
Demostraci on:
Sup ongase que el problema de parada es decidible; por lo tanto, la M aquina de Turing
que reconoce el lenguaje L
H
, /
H
, ante una entrada M,w) respondera SI o NO depen-
diendo de si M para o no para al trabajar sobre w.
Si esto fuera cierto, se podra construir el siguiente algoritmo para reconocer L
d
:
Esta M aquina de Turing, a la que se llamara /
d
, determinara si una cadena w
i
es
aceptada por M
i
, es decir, si la cadena w pertenece o no al lenguaje L
d
. Puesto que es
imposible, /
H
no puede existir tal y como se ha descrito y L
H
no puede ser un lenguaje
recursivo.
9.2. La M aquina Universal de Turing y Dos Problemas Indecidibles. 161
< Mi, i >
NO
Convertidor
Md
SI
MH
NO
NO SI
SI
Mu
c.q.d
En la construcci on anterior, n otese que si se sabe que M
i
para al trabajar sobre w
i
,
entonces seguro que al suministrar esa informaci on a /
U
, su respuesta ser a del tipo SI/NO.
< M, >
NO
SI
MH
NO
NO
SI
SI
Mu
Por lo tanto, si L
H
fuera un lenguaje recursivo, entonces tambi en L
U
sera un lenguaje
recursivo. Y existira la posibilidad de desarrollar herramientas autom aticas que permitieran
comprobar si un algoritmo es o no es correcto. Ello imposibilita que se pueda disponer de un
m etodo autom atico de an alisis sem antico
3
, similar a las herramientas de an alisis l exico
o de an alisis sint actico.
En el libro de Douglas R. Hofstadter, G odel, Escher, Bach: Un eterno y gr acil bu-
cle, se hace la siguiente reexi on sobre las dicultades de tal an alisis sem antico: el autor
comienza la reexi on sobre la diferencia entre apreciar los aspectos sint acticos de una for-
ma (reconocer una f ormula bien construida, apreciar las lneas y colores de una pintura o ser
capaces de leer una partitura de m usica) y los aspectos sem anticos asociados a dicha forma
(reconocer la verdad o falsedad de una f ormula o los sentimientos que puedan inspirar una
pintura o una determinada pieza de m usica):
Subjetivamente, se percibe que los mecanismos de extracci on de la signi-
caci on interior carecen por completo de parentesco con los procedimientos
de decisi on que verican la presencia o ausencia de una cualidad especca,
como, por ejemplo, el car acter de una f ormula bien formada. Tal vez sea por
ello que la signicaci on interior sea algo que descubre m as cosas de s misma
a medida que el tiempo pasa. A este respecto jam as se puede estar seguro, de
la misma forma en que s es posible estarlo a prop osito de lo bien formado, de
que uno ha niquitado el tema.
3
No debe confundirse el concepto que aqu se pretende describir con la fase habitualmente denominada de
an alisis sem antico en la compilaci on; el concepto que se pretende desarrollar aqu es el entender el signicado
de.
162 Captulo 9. Indecidibilidad
Esto nos propone la posibilidad de trazar una distinci on entre los dos tipos
sentidos de forma de las pautas que hemos comentado. Primero, tenemos
cualidades [. . . ] que pueden ser aprehendidas mediantes vericaciones pre-
dictiblemente nalizables. Propongo llamar a estas las cualidades sint acticas
de la forma. [. . . ] los aspectos sem anticos de la forma son aquellos que no
pueden ser vericados dentro de un lapso predictible: requieren vericaciones
de nalizaci on imprevisible [. . . ]. Por lo tanto, las propiedades sem anticas
est an vinculadas con b usquedas no nalizables ya que, en un sentido impor-
tante, la signicaci on de un objeto no est a situada en el objeto mismo. Esto no
equivale a sostener que no es posible captar la signicaci on de ning un objeto
[. . . ]. Con todo siempre quedan aspectos de aquella que siguen ocultos durante
lapsos no previsibles. [. . . ]
As, otra manera de caracterizar la diferencia entre propiedades sint acticas
y sem anticas, es la observaci on de que las primeras residen en el objeto
bajo examen, en tanto que las segundas dependen de sus relaciones con una
clase potencialmente innita de otros objetos.
9.3. Teorema de Rice. M as Problemas Indecidibles.
Hasta este momento se ha asociado la decidibilidad de un determinado problema a la
existencia de un lenguaje recursivo que lo describa.
El Teorema de Rice da una caracterizaci on m as simple, pero s olo se puede aplicar a los
problemas de decisi on que est an relacionados con propiedades de lenguajes recursivamente
enumerables. Estos problemas comparten un enunciado gen erico:
Sea una M aquina de Turing M. L(M) cumple la propiedad X?
y los lenguajes asociados son de la forma,
L
X
= M) [ L(M) tiene la propiedad X .
La siguiente subsecci on muestra un ejemplo de c omo estudiar este tipo de problemas y
los lenguajes asociados. En el ap endice 1, secci on 9.5, se puede encontrar otro ejemplo.
9.3.1. El Problema de la Vaciedad.
Sea una M aquina de Turing M. L(M) ,= ?.
Es un problema indecidible. Para estudiarlo, se trabaja con el lenguaje asociado
L
ne
= M) [ L(M) ,= ,
9.3. Teorema de Rice. M as Problemas Indecidibles. 163
que es el conjunto de los c odigos de todas las M aquinas de Turing que aceptan al menos
una cadena. Tambi en se estudiar a su lenguaje complementario,
L
e
= M) [ L(M) = ,
que incluye tanto a las cadenas binarias que no representan M aquinas de Turing (no se
ajustan al formato elegido para codicarlas), como a las cadenas binarias que representan
M aquinas de Turing que reconocen el lenguaje vaco. Se demostrar a que L
ne
es un lenguaje
recursivamente enumerable no recursivo y que L
e
no es recursivamente enumerable.
Lema 9.3 L
ne
es un lenguaje recursivamente enumerable.
Demostraci on:
GP
Mne
Mu
wi
SI
Gc( *)
i
j
<M>
SI
NO
Basta con construir una M aquina de Turing, /
ne
, que, dada la cadena M) como en-
trada, simule el comportamiento del generador de pares, G
p
(i, j), de forma que por cada
par (i,j) generado, /
U
simule el comportamiento de M sobre la cadena i- esima en orden
can onico en j pasos. En el momento en que /
U
acepte una cadena, /
ne
aceptar a la cadena
M).
c.q.d.
Lema 9.4 L
e
NO es un lenguaje recursivo.
Demostraci on:
La demostraci on se realiza por contradicci on: si L
e
fuera recursivo, habra un algoritmo,
la M aquina de Turing /
e
, que aceptara el lenguaje L
e
y que siempre parara. Si esta
M aquina de Turing existiera entonces existira tambi en un algoritmo para reconocer L
U
y
eso es imposible. Por lo tanto, mediante la reducci on de L
e
a L
U
, se demostrar a que L
e
no
puede ser recursivo.
164 Captulo 9. Indecidibilidad
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 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

. Para ver si w L(M), se estudia si la


siguiente instancia del PCPM
A = u
1
, u
2
, . . . , u
k
, B = v
1
, v
2
, . . . , v
k
,
tiene soluci on, sabiendo que los conjuntos A y B se forman a partir de la funci on de transi-
ci on de la M aquina de Turing M, mediante la construcci on de cinco grupos de chas: Sea $
, , sea q
1
el estado inicial de M,
Grupo 1:
$
$q
1
w$
, siendo q
1
el estado inicial de M.
Grupo 2:
$
$
,

, , ,= 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

es recursivo (, que es una expresi on regular y,


por lo tanto, un lenguaje recursivo) s olo si M no acepta w.
Sea un algoritmo A tal que si la 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 siguiente M aquina de Turing:
<M, >
A
<M'>
Mr
SI
SI
Si M no acepta w L(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

llega a un estado de aceptaci on.


Adem as, M

trabaja paralelamente sobre su propia entrada simulando el comportamiento de


/
U
: en el caso de que M no acepte w, M

tambi en llega a un estado de aceptaci on si su


entrada es una cadena de L
U
.
9.5. Ap endice 1: Otro Ejemplo de Reducci on. El Problema de la Recursividad. 175
x
M
M'
SI
Mu
SI
SI
Con este comportamiento, el lenguaje reconocido por 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

la M aquina de Turing descrita anteriormente, se puede construir


la siguiente M aquina de Turing, /:
<M, >
B
<M'>
Mnr
SI
SI
A
Si M no acepta w L(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

de una cinta que acepta L con complejidad temporal (T (n))


2
.
Demostraci on: (Idea Intuitiva)
Cuando se pasa de una M aquina de Turing con k cintas a una M aquina de Turing con una
cinta, cada movimiento en la multicinta equivale a un barrido en la de una cinta (teorema
7.2).
El peor caso para este barrido, en cuanto al n umero de movimientos, es que haya dos
cabezales movi endose siempre en sentido contrario. Si comienzan en la misma posici on,
despu es de un movimiento se habr an separado 2 celdas, despu es de 2 movimientos 4, des-
pu es de 3 movimientos 6 y, en general, despu es de t movimientos, 2t celdas.
Como el n umero de movimientos total es T (n), la expresi on para denir el n umero de
movimientos necesarios para completar los barridos sera,
T (n)

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

acotada espacialmente por co(n) que acepta L.


Demostraci on: (Idea Intuitiva)
Sea r ^ [ rc 1. Se construye M

a partir de M, de forma que cada smbolo de su


alfabeto codica un bloque de r smbolos del alfabeto de M; por lo tanto, adem as, habr a que
realizar las modicaciones correspondientes en las transiciones para que las m aquinas sean
equivalentes. Si la m aquina M consulta o(n), M

s olo consultar a o(n)/r, es decir, co(n).

Teorema 10.3 (de Aceleraci on Lineal) Supuesto que nf


n
T (n)
n
= , sea L un
lenguaje aceptado por una M aquina de Turing M de k cintas, con cota temporal T (n).
Para todo c > 0 hay una M aquina de Turing M

de k cintas, acotada temporalmente


por cT (n) que acepta L.
La idea de la demostraci on es similar a la del teorema de compresi on (se codica la
cadena en bloques de r smbolos; con menos smbolos habr a menos movimientos), pero el
aparato matem atico es mayor.
Estos teoremas permiten realizar el an alisis asint otico de la complejidad espacial y
temporal, a n de comparar el comportamiento de dos M aquinas de Turing: por ejem-
plo, dadas dos M aquina de Turing con complejidades espaciales o
1
(n) = 3n
3
+ 1 y
o
2
(n) = n
3
+ 5n
2
+ 1, se dice que ambas est an acotadas espacialmente por o(n) = n
3
.
Esto permite denir las clases de complejidad.
184 Captulo 10. Introducci on a la Complejidad Computacional
Denici on 10.3 (Clases de Complejidad Espacial)
La familia de lenguajes aceptados por M aquinas de Turing deterministas con comple-
jidad espacial o(n) es DSPACE(o(n)).
La familia de lenguajes aceptados por M aquinas de Turing no deterministas con com-
plejidad espacial o(n) es NSPACE(o(n)).
Son conocidas como clases de complejidad espacial.
Denici on 10.4 (Clases de Complejidad Temporal)
La familia de lenguajes aceptados por M aquinas de Turing deterministas con comple-
jidad temporal T (n) es DTIME(T (n)).
La familia de lenguajes aceptados por M aquinas de Turing no deterministas con com-
plejidad temporal T (n) es NTIME(T (n)).
Son conocidas como clases de complejidad temporal.
10.3. Relaciones entre las Clases de Complejidad Computacio-
nal.
Los siguientes teoremas establecen las relaciones b asicas entre las clases de complejidad
espacial:
Teorema 10.4 Sean o, o
1
y o
2
funciones de ^ en ^. Se asume que o
1
(n)
o
2
(n) n y que c > 0. Entonces
1. DSPACE(o
1
(n)) DSPACE(o
2
(n)),
2. NSPACE(o
1
(n)) NSPACE(o
2
(n)),
3. DSPACE(o(n)) = DSPACE(co(n)),
y entre las clases de complejidad temporal:
Teorema 10.5 Sean T , T
1
y T
2
funciones de ^ en ^. Se asume que T
1
(n)
T
2
(n) n y que c > 0. Entonces
1. DTIME(T
1
(n)) DTIME(T
2
(n)),
2. NTIME(T
1
(n)) NTIME(T
2
(n)),
3. Si nf
n
T (n)
n
= , DTIME(T (n)) = DTIME(cT (n)).
10.3. Relaciones entre las Clases de Complejidad Computacional. 185
En ambos teoremas, las relaciones (1) y (2) dan una medida que no es absoluta: se iden-
tica un problema con la clase m as restrictiva a la que pertenece (seg un el mejor algoritmo
conocido para resolverlo), pero la relaci on entre clases se establece con un ; es decir,
no se cierra la frontera entre clases, de forma que un problema puede pasar a una clase
inferior (en cuanto se encuentre un algoritmo m as eciente, por ejemplo). Por su parte, la
relaci on (3) supone una extensi on de los teoremas de compresi on y de aceleraci on lineal.
Adem as, puede establecerse una relaci on entre las clases de complejidad temporal y las
clases de complejidad espacial:
Teorema 10.6 (Relaci on espacio/tiempo) Si L DTIME(f(n)) entonces L
DSPACE(f(n)).
Demostraci on:
Si L DTIME(f(n)) la M aquina de Turing que lo acepta, en el peor de los casos
habr a realizado como m aximo f(n) movimientos, por lo que habr a visitado como mucho
f(n) +1 celdas L DSPACE(f(n) + 1). Como f(n) + 1 2f(n), y con la su-
posici on de que la complejidad temporal es al menos n+1, por el teorema de compresi on
L DSPACE(f(n)).
c.q.d
10.3.1. Relaciones entre Clases Deterministas y No Deterministas.
Un algoritmo determinista emplea procedimientos de decisi on que siguen un curso uni-
co y predeterminado de forma que, con el mismo juego de entradas, siempre seguir a el
mismo comportamiento. Pero es posible dise nar tambi en algoritmos no deterministas, que
ante una misma entrada pueden obtener salidas distintas, ya que al tener la posibilidad de
elegir una de entre varias opciones, elegir a la m as beneciosa en cada situaci on.
Por ejemplo, ante el problema de salir de una habitaci on con cinco puertas, pero con
una unica puerta que conduzca a la salida, un algoritmo determinista puede consistir en ir
probando una a una, hasta dar con la correcta; un algoritmo no determinista escoger a di-
rectamente cu al es la puerta correcta. Ambos algoritmos solucionan el mismo problema
(se consigue encontrar la salida) e, intuitivamente, parece que el no determinista ser a m as
r apido en general que el determinista.
El modelo de M aquina de Turing contempla el determinismo y el no determinismo; y, de
hecho, al presentar el modelo no determinista tambi en se introduca, intutitamente, la idea
de el no determinismo brinda un modelo de computaci on m as eciente que el determinista.
Esa idea intuitiva se formaliza con el siguiente teorema:
186 Captulo 10. Introducci on a la Complejidad Computacional
Teorema 10.7 Sean o y T funciones de ^ en ^. Entonces
1. DSPACE(o(n)) NSPACE(o(n)),
2. DTIME(T (n)) NTIME(T (n)).
Pero, en el mundo real s olo se dispone de m aquinas deterministas
5
y, en consecuencia,
un algoritmo no determinista se debe transformar en determinista, si se pretende codicarlo
en una m aquina real. Por eso, interesa saber cu al es el precio que se debe pagar en esa
transformaci on:
Teorema 10.8 (de Savitch) Sea o una funci on de ^ en ^. Entonces
NSPACE(o(n)) DSPACE((o(n))
2
).
Es decir, en el caso de la complejidad espacial, el paso de un algoritmo no determinista
a determinista supone, como mucho, elevar la funci on de complejidad al cuadrado.
Teorema 10.9 Si L es aceptado por una M aquina de Turing no determinista con com-
plejidad temporal T (n), entonces L es aceptado por una M aquina de Turing determi-
nista con complejidad temporal d
T (n)
, para alguna constante d.
Es decir,
si L NTIME(T (n)) entonces L DTIME(d
T (n)
),
para alguna constante d.
Demostraci on: (Idea Intuitiva)
Para la demostraci on, hay que recordar (teorema 7.4) c omo se simula una M aquina de
Turing no determinista mediante una M aquina de Turing determinista: la m aquina determi-
nista genera por orden can onico todas las cadenas sobre el alfabeto 1,2,. . . ,r, hasta que
encuentra la secuencia de opciones correcta. La cadena que indica la secuencia de opciones
correcta ha de tener longitud T (n); como la generaci on se hace por orden can onico, an-
tes se habr an generado todas las cadenas de longitud 1, 2,. . . , T (n)-1. Eso supone generar
r +r
2
+r
3
+.. +r
T (n)1
cadenas, como mnimo, antes de nalizar la simulaci on. De ah se
deriva esa expresi on exponencial.

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

[ w representa un conjunto de cl ausulas satifactibles,


siendo = 0, 1, ,, &, , asumiendo que la variable x
i
se codica como la
cadena &i, en la que i se expresa en binario.
Ejemplo:
C
1
= x
1
x
2
, x
1
x
2
x
3
, x
1
x
2
x
3

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 [

Ultima visita: 4 de Mayo de 2004]


195
196 Bibliografa
[Shall95] Jeffrey Shallit. A Very Brief History of Computer Science. Handout for CS134
course. University of Waterloo. 1995.
<http://www.math.uwaterloo.ca/shallit/Courses/134/history.html>
[

Ultima visita: 4 de Mayo de 2004]


[Shall98] Jeffrey Shallit. The Busy Beaver Problem. Handout for CS360 course. Univer-
sity of Waterloo. 1998.
[Sipser97] Michael Sipser. Introduction to the Theory of Computation. PWS Publishing
Company. 1997.