Vous êtes sur la page 1sur 242

INSTITUTO TECNOLGICO

de Celaya.

TEORA DE LA COMPUTACIN

LIBRO DE TEXTO

QUE PARA OBTENER EL TITULO DE:


INGENIERO EN SISTEMAS COMPUTACIONALES

PRESENTA:
ADRIANA ACEVEDO JUREZ

Celaya, Gto. Junio 2006.

DEDICATORIAS
A DIOS
Nuestro creador, por permitirme ver la luz de cada nuevo da, por ser la base de
mi fe, por ser mi amigo incondicional en toda ocasin de alegra o tristeza y el pilar de
mi existencia.
A MI MADRE
Quien me sustento, cuido, alent y motivo en todo momento. Gracias mam, por
el gran cario con el que me formaste, todos los principios que me inculcaste y sobre
todo el AMOR con el que me cubriste en todo instante de mi vida.
A MI PADRE
Por haberme hecho fuerte, por alentarme y empujarme a enfrentar la vida
apoyndome moral y espiritualmente.
A MIS HERMANAS Y MI CUADO
A mis hermanas, por ser mis compaeras de juegos y mis cmplices de
travesuras, por que su compaa es uno de los mejores regalos que me ha brindado la
vida.
A mi cuado, por la amistad y el apoyo que me ha brindado en el transcurso y
culminacin de mis estudios.
A JAIME
Por el cario brindado, por esas largas horas de compaa, por su apoyo en todo
el transcurso de mi carrera. Gracias por todo tu AMOR.

A MIS AMIGOS
Por su apoyo y compaerismo, por esos momentos de alegras y esos momentos
de trabajo. Por los logros obtenidos en el grupo, por mostrarme que la vida tambin
requiere de tiempo para uno mismo, y no solo de trabajo.
A MIS MAESTROS
Por ser parte de mi formacin profesional y humana. En especial a mi asesora
M. C. Maria de Jess Hernndez Morales por el apoyo brindado en la realizacin de
este trabajo.

CUANDO LAS COSAS DE LA VIDA PARECEN DEMASIADO Y LAS 24 HORAS DEL


DA NO SON SUFICIENTE, SIEMPRE HAY ESPACIO PARA UNA TAZA DE CAF.

Un profesor, delante de su clase de filosofa, sin decir palabra, tomo un frasco


grande y vaci de mayonesa y procedi llenarlo con pelotas de golf.
Luego, le pregunto a sus estudiantes si el frasco estaba lleno los estudiantes estuvieron
de acuerdo en decir que si. As que el maestro tomo una caja llena de canicas y la vaci
dentro del frasco de mayonesa .las canicas llenaron los espacios vacos entre las
pelotas de golf el profesor volvi a preguntarles a los estudiantes si el frasco estaba
lleno y ellos volvieron a decir que si.
Luego el maestro tomo una caja de arena y la vaci dentro del frasco, por supuesto, la
arena lleno todos los espacios vacos y el profesor cuestiono nuevamente si el frasco
estaba lleno. En esta ocasin los estudiantes respondieron con un si unnime.
El profesor enseguida agrego dos tazas de aromtico caf diluido en agua al contenido
del frasco, con lo que efectivamente, el lquido llenara todos los espacios vacos entre
la arena.
Los estudiantes rean en esta ocasin. Cuando la risa se apagaba, el maestro comento:
"Quiero que se den cuenta que este frasco representa la vida, las pelotas de golf son las
cosas importantes, como dios, la familia, los hijos, la salud, los amigos, las cosas que te
apasionan. Son cosas que incluso si todo lo dems lo perdiramos y solo estas
quedaran, nuestras vidas aun estaran llenas.
Las canicas son las otras cosas que importan, como el trabajo, la casa, el carro, etc.
la arena es todo lo dems, las pequeas cosas...si ponemos la arena en el frasco
primero, no habra espacio para las canicas ni para las pelotas de golf.
Lo mismo ocurre con la vida. Si gastamos todo nuestro tiempo y energa en las cosas
pequeas, nunca tendremos lugar para las que realmente son importantes...

as que presta atencin a las cosas que son cruciales para tu felicidad. Juega con tus
hijos, tomate tiempo para asistir al doctor, ve con tu pareja a cenar, practica tu deporte
favorito o aficin favorita. Siempre habr tiempo para limpiar la casa y reparar la
llave del agua... ocpate de las pelotas de golf primero, es decir de las cosas que real
mente

importan...

establece

tus

prioridades,

el

resto

es

sola

arena".

Uno de los estudiantes levanto la mano y pregunto que representaba el caf.


El profesor sonri y dijo: que bueno que lo preguntas.
Solo es para demostrarles que no importa cuan ocupada tu vida pueda parecer,
siempre hay lugar para un par de tazas de caf con un buen amigo!

DEDICATORIAS
A DIOS
Nuestro creador, por permitirme ver la luz de cada nuevo da, por ser la base de
mi fe, por ser mi amigo incondicional en toda ocasin de alegra o tristeza y el pilar de
mi existencia.
A MI MADRE
Quien me sustento, cuido, alent y motivo en todo momento. Gracias mam, por
el gran cario con el que me formaste, todos los principios que me inculcaste y sobre
todo el AMOR con el que me cubriste en todo instante de mi vida.
A MI PADRE
Por haberme hecho fuerte, por alentarme y empujarme a enfrentar la vida
apoyndome moral y espiritualmente.
A MIS HERMANAS Y MI CUADO
A mis hermanas, por ser mis compaeras de juegos y mis cmplices de
travesuras, por que su compaa es uno de los mejores regalos que me ha brindado la
vida.
A mi cuado, por la amistad y el apoyo que me ha brindado en el transcurso y
culminacin de mis estudios.
A JAIME
Por el cario brindado, por esas largas horas de compaa, por su apoyo en todo
el transcurso de mi carrera. Gracias por todo tu AMOR.

A MIS AMIGOS
Por su apoyo y compaerismo, por esos momentos de alegras y esos momentos
de trabajo. Por los logros obtenidos en el grupo, por mostrarme que la vida tambin
requiere de tiempo para uno mismo, y no solo de trabajo.
A MIS MAESTROS
Por ser parte de mi formacin profesional y humana. En especial a mi asesora
M. C. Maria de Jess Hernndez Morales por el apoyo brindado en la realizacin de
este trabajo.

CUANDO LAS COSAS DE LA VIDA PARECEN DEMASIADO Y LAS 24 HORAS DEL


DA NO SON SUFICIENTE, SIEMPRE HAY ESPACIO PARA UNA TAZA DE CAF.

Un profesor, delante de su clase de filosofa, sin decir palabra, tomo un frasco


grande y vaci de mayonesa y procedi llenarlo con pelotas de golf.
Luego, le pregunto a sus estudiantes si el frasco estaba lleno los estudiantes estuvieron
de acuerdo en decir que si. As que el maestro tomo una caja llena de canicas y la vaci
dentro del frasco de mayonesa .las canicas llenaron los espacios vacos entre las
pelotas de golf el profesor volvi a preguntarles a los estudiantes si el frasco estaba
lleno y ellos volvieron a decir que si.
Luego el maestro tomo una caja de arena y la vaci dentro del frasco, por supuesto, la
arena lleno todos los espacios vacos y el profesor cuestiono nuevamente si el frasco
estaba lleno. En esta ocasin los estudiantes respondieron con un si unnime.
El profesor enseguida agrego dos tazas de aromtico caf diluido en agua al contenido
del frasco, con lo que efectivamente, el lquido llenara todos los espacios vacos entre
la arena.
Los estudiantes rean en esta ocasin. Cuando la risa se apagaba, el maestro comento:
"Quiero que se den cuenta que este frasco representa la vida, las pelotas de golf son las
cosas importantes, como dios, la familia, los hijos, la salud, los amigos, las cosas que te
apasionan. Son cosas que incluso si todo lo dems lo perdiramos y solo estas
quedaran, nuestras vidas aun estaran llenas.
Las canicas son las otras cosas que importan, como el trabajo, la casa, el carro, etc.
la arena es todo lo dems, las pequeas cosas...si ponemos la arena en el frasco
primero, no habra espacio para las canicas ni para las pelotas de golf.
Lo mismo ocurre con la vida. Si gastamos todo nuestro tiempo y energa en las cosas
pequeas, nunca tendremos lugar para las que realmente son importantes...
as que presta atencin a las cosas que son cruciales para tu felicidad. Juega con tus

hijos, tomate tiempo para asistir al doctor, ve con tu pareja a cenar, practica tu deporte
favorito o aficin favorita. Siempre habr tiempo para limpiar la casa y reparar la
llave del agua... ocpate de las pelotas de golf primero, es decir de las cosas que real
mente

importan...

establece

tus

prioridades,

el

resto

es

sola

arena".

Uno de los estudiantes levanto la mano y pregunto que representaba el caf.


El profesor sonri y dijo: que bueno que lo preguntas.
Solo es para demostrarles que no importa cuan ocupada tu vida pueda parecer,
siempre hay lugar para un par de tazas de caf con un buen amigo!

Instituto Tecnolgico de Celaya

ANTECEDENTES

Cada ser humano pasa por varios periodos o etapas en su vida, cada una de ellas con
un grado de prioridad y de importancia; una de stas es la etapa estudiantil y en algunos
casos, sta se termina al culminar sus estudios universitarios y obtener un ttulo de acuerdo
a la carrera que se haya elegido.
En el transcurso estudiantil el alumno se enfrenta a varias adversidades; como la
falta de material didctico que le ayude a investigar y reafirmar los conocimientos
obtenidos en cada materia. Uno de estos casos es el de la materia Teora de la
Computacin; cuya falta de textos didcticos completos, que guen al alumno en su
transcurso por sta, pueden afectar su rendimiento. Tal situacin, es una de las causas por
las cuales se desea desarrollar un texto didctico que oriente al estudiante en el desarrollo
de esta materia.
Por otra parte, otro propsito por lo cual se desea llevar a cabo este proyecto es el de
concluir con los estudios acadmicos para obtener el grado de Ingeniero en Sistemas
Computacionales.

Teora de la Computacin

Instituto Tecnolgico de Celaya

OBJETIVO GENERAL
Desarrollar un texto didctico de tipo terico-prctico que ayude al estudiante a
comprender la base para la construccin de sistemas formales que se imparten en la materia
Teora de la Computacin.

OBJETIVOS ESPECFICOS
Fortalecer el aprendizaje del alumno al contar con un texto didctico de apoyo,
enfocado totalmente a la materia que se cursa.
Integrar el mejor material de texto que exista actualmente en las diferentes fuentes
bibliogrficas de la materia, en un material accesible para el estudiante.
Desarrollar un texto didctico de fcil comprensin para el estudiante.
Desarrollar un texto didctico cuya ndole llame la atencin del estudiante
aumentando su inters por la materia.
Desarrollar ejercicios prcticos que ayuden al estudiante a fortalecer la teora
plateada en esta materia.

Teora de la Computacin

II

Instituto Tecnolgico de Celaya

JUSTIFICACIN

La falta de material didcticos que guen al alumno de manera completa en los


temas que abarca la materia Teora de la Computacin, es un problema que afecta
directamente a los alumnos del Instituto Tecnolgico de Celaya, ya que el alumno suele
tener perdidas de tiempo en la bsqueda de material que pueda ayudarle en el estudio de
esta materia; material que muchas veces no es encontrado; tal situacin ha llevado a pensar
en desarrollar un libro de texto que ayude al alumno en el curso de esta materia mejorando
su rendimiento y por consecuencia moldeando mejores Ingenieros en Sistemas
Computacionales.

Teora de la Computacin

III

Instituto Tecnolgico de Celaya

NDICE
Antecedentes
Objetivo General
Objetivos Especficos
Justificacin
Introduccin general

I
II
II
III
VIII

UNIDAD 1. INTRODUCCIN
Objetivo
Diagrama temtico de la unidad
1. Introduccin

1
2
3

1.1 Introduccin

1.2 Nociones matemticas.

4
4

1.2.1

Conjuntos

1.2.2

Funciones y relaciones

11

1.2.3

Cadenas y lenguajes

18
25

1.3 Induccin matemtica.

27
28
32
36
37
39
41
42

1.4 Autmatas, Computabilidad y Complejidad


Resumen
Glosario
Ejercicios
Problemas
Lectura complementara
Bibliografa
Retroalimentacin

UNIDAD 2. LENGUAJES REGULARES


Objetivo
Diagrama temtico de la unidad
2. LENGUAJES REGULARES

44
45
46
46

2.1 Introduccin

Teora de la Computacin

IV

Instituto Tecnolgico de Celaya

47

2.2 Autmatas finitos


2.2.1

Jerarqua de Chomsky

48

2.2.2

Autmatas finitos determinsticos.

53

2.2.3

Autmatas finitos no determinsticos.

56

2.3 Expresiones regulares.

62

2.4 Lenguajes no regulares.

64

Resumen
Glosario
Ejercicios
Problemas
Lectura complementara
Bibliografa
Retroalimentacin

66
71
74
75
77
80
81

UNIDAD 3. LENGUAJES INDEPENDIENTES DEL CONTEXTO


Objetivo
Diagrama temtico de la unidad
3. LENGUAJES LIBRES DE CONTEXTO.

84
85
86

3.1 Introduccin.

86

3.2 Gramticas libres de contexto.

87

3.2.1

87

Construccin de gramticas

3.3 rboles de derivacin.

90

3.4 Formas normales de Chomsky,

93

3.4.1

Algoritmos de eliminacin de producciones intiles.

94

3.4.2

Algoritmos de eliminacin de producciones anulables

97

3.4.3

Algoritmos de eliminacin de producciones unitarias

100

3.5 Formas normales de Greibach.

104

3.6 Eliminacin de Factores Comunes izquierdos.

106

3.7 Eliminacin de recursividad izquierda.

108

3.8 Eliminacin de la ambigedad.

111

3.9 Autmatas Push-Down.

111

3.9.1

114

AP y gramticas independientes del contexto.

Teora de la Computacin

Instituto Tecnolgico de Celaya

Resumen
Glosario
Ejercicios
Problemas
Lectura complementara
Bibliografa
Retroalimentacin

118
124
125
126
128
130
131

UNIDAD 4. MQUINAS DE TURING


Objetivo
Diagrama temtico de la unidad
4. MQUINA DE TURING.

134
135
136

4.1 Introduccin.

136

4.2 Conceptos bsicos

137

4.2.1

138

Definicin formal de una mquina de Turing

140

4.3 Construccin modular de una mquina de Turing.


4.3.1

141

Bloques bsicos

4.4 Lenguajes aceptados por la MT.

144

4.5 Variantes de una mquina de Turing.

145

4.5.1

Permanencia

145

4.5.2

Subceldas

146

4.5.3

Cinta finita

146

4.5.4

Multicitas

147

4.5.5

MT no determinstica

148
149

4.6 Problemas de Hilbert


Resumen
Glosario
Ejercicios
Problemas
Lectura complementara
Bibliografa
Retroalimentacin

Teora de la Computacin

151
155
156
157
158
166
167

VI

Instituto Tecnolgico de Celaya

UNIDAD 5. DECIDIBILIDAD
Objetivo
Diagrama temtico de la unidad
5. DECIBILIDAD

172
173
174

5.1 Introduccin.

174

5.2 Lenguajes decidibles

175

5.3 El problema de Halting.

177

5.4 Decidibilidad de teoras lgicas.

179

Resumen
Glosario
Ejercicios
Lectura complementara
Bibliografa
Retroalimentacin

181
183
184
185
191
192

UNIDAD 6. REDUCIBILIDAD
Objetivo
Diagrama temtico de la unidad
6. REDUCIBILIDAD.

193
194
195

6.1 Introduccin

195

6.2 Problemas insolubles para la teora de lenguajes.

196

6.3 Un problema simple insoluble.

197

6.4 Funciones computables.

199

6.5 Reducibilidad de Turing.

201

Resumen
Glosario
Ejercicios
Lectura complementara
Bibliografa
Retroalimentacin

202
204
205
206
207
208

Anexos
Conclusiones

Teora de la Computacin

VII

Instituto Tecnolgico de Celaya

INTRODUCCIN GENERAL
El presente libro de texto pretende ser un instrumento de apoyo para todo alumno o
docente que desea adentrarse en el mundo de la computacin as como en los principios
cientficos que han llevado al hombre a uno de sus ms grandes triunfos, la invencin de la
computadora.
El lector encontrar en la primera unidad de este libro, algunos de los principios
matemticos bsicos para el estudio terico de la computacin, iniciando con las teoras de
conjuntos, relaciones, funciones, complementos, etc. Adems de presentar una introduccin
a la computabilidad, que es definida como la factibilidad de resolver un problema por
medio de algoritmos, y al anlisis de la complejidad que a su vez se define como el estudio
de la cantidad de recursos que se consumen en la ejecucin de un sistema.
En la segunda unidad, el lector se introduce al anlisis de los lenguajes formales,
llamados as, debido a que las reglas por los cuales son regidos han sido creadas antes de
construir dichos lenguajes; el lenguaje natural que usa el hombre para comunicarse carece
de esta condicin, lo que lo hace muy extenso y complicado. Los lenguajes formales suelen
dividirse en cuatro grupos: los lenguajes regulares, los independientes del contexto, los
dependientes del contexto y los de frase estructurada o tambin llamados recursivamente
enumerables. Cada uno cumple con diferentes caractersticas sobre las reglas gramaticales
que los construyen, dichas reglas han sido establecidas por varios estudiosos de la materia
de los cuales resalta el lingista Noam Chomsky.
Noam, menciona que cada uno de estos lenguajes es un subconjunto de otro, de los
cuales el ms pequeo es el conjunto de los lenguajes regulares. sta clase de lenguajes son
reconocidos nicamente por un tipo nico de mquina abstracta, o dicho de otra manera,
por un algoritmo computacional. Los autmatas finitos son mquinas abstractas
constituidas por un nmero finito de estados, un conjunto de transiciones, un alfabeto, entre

Teora de la Computacin

VIII

Instituto Tecnolgico de Celaya

otros; que permiten reconocer cada una de las cadenas por las que esta formado un lenguaje
regular; y las cuales se habla en la segunda unidad.
La tercera unidad es dedicada a los lenguajes independientes del contexto, as como a
las reglas gramaticales de las que proceden. Para finalmente hablar de las mquinas
abstractas que los reconocen y que son conocidas como autmatas de pila, cuyo poder de
reconocimiento rebasa el de los autmatas finitos; permitindole reconocer un conjunto
ms amplio de lenguajes. Sin embargo, an existe una mquina ms poderosa denominada
mquina de Turing; la cual es estudiada a fondo en la cuarta unidad.
Las mquinas de Turing, fueron construidas con base en la generacin de un
problema planteado por el matemtico David Hilbert, el cual propuso la siguiente pregunta:
Podr ser creado algn algoritmo que pueda resolver todos los problemas matemticos?
tal cuestin dejo un hueco de duda entre los matemticos colegas de Hilbert, los cuales no
pudieron darle una contestacin a sta interrogante; sin embargo aos ms tarde Alan
Turing tomo este problema llevndole a desarrollar lo que hoy se conoce como uno de los
sistemas de reconocimiento ms poderosos, las ya mencionadas mquinas de Turing.
Finalmente las unidades cinco y seis, involucran al lector en el anlisis de los
problemas decidibles, es decir en aquellos problemas para los cuales siempre habr una
solucin, ya sea a favor o en contra; y en el estudio de las inferencias lgicas con la
reducibilidad, que es dedicada a comprobar el estado de un problema en base al estado
actual de otro.

Teora de la Computacin

IX

C
A
P
I
T
U
L
O

INTRODUCCIN

OBJETIVO

Reafirmar los conocimientos matemticos


bsicos obtenidos por el estudiante, como
son la teora de conjuntos, las relaciones,
funciones,

entre

otros;

que

son

indispensables para el estudio de la Teora


de la Computacin.

Instituto Tecnolgico de Celaya

Introduccin

Induccin
matemtica.
Teora de la
computabilidad

Incluyen
Estudia
Introduccin a la
Teora de la
Computacin

Requiere

Estudia

Conceptos
matemticos bsicos

Incluyen

Teora de la
complejidad
Teora de
conjuntos

Figura 1.1 Diagrama temtico de la unidad I

Teora de la Computacin

Instituto Tecnolgico de Celaya

Introduccin

1. INTRODUCCIN

1.1 INTRODUCCIN

La presente unidad muestra un resumen sobre algunos conceptos matemticos como


son: la teora de conjuntos, las relaciones y funciones, el principio de induccin matemtica
y los principios bsicos de la teora de la computacin. Cada uno de estos puntos permitir
al alumno a comprender con mayor facilidad el estudio de los lenguajes formales, as como
de las mquinas formales que permiten su reconocimiento.
El primer punto a tratar es la teora de conjuntos, en la cual se muestran las
caractersticas de los conjuntos, as como las distintas operaciones que pueden realizarse
con ellos, como son: la unin, la interseccin, el producto cartesiano, etc.
El segundo punto que se presenta son las relaciones y funciones, cuyo origen se da en
el producto cartesiano de dos conjuntos, y cuya diferencia es marcada por las caractersticas
particulares con las que cuentan.
El tercer punto es la induccin matemtica que nos muestra la prueba de induccin
para comprobar algunas de las proposiciones matemticas.
Y por ltimo se presenta una breve introduccin a la computabilidad, a la teora de la
complejidad y a los autmatas como reconocedores de lenguajes.

Teora de la Computacin

Instituto Tecnolgico de Celaya

Introduccin

1.2 NOCIONES MATEMTICAS


As como todo nio necesita conocer las letras para poder leer, todo estudio cientfico
requiere del conocimiento previo de reglas, teoras y herramientas que ayuden al estudiante
en la comprensin de ste. Por ello para el estudio de la ciencia computacional es
conveniente el conocer herramientas matemticas bsicas para lograr una completa
compresin de esta ciencia; algunas de las herramientas que sern revisadas en esta unidad
son: la teora de conjuntos, los conceptos de funciones y relaciones, y los conceptos de
cadenas y lenguajes.
Se comenzar por recordar algunos conceptos de la terica de conjuntos.

1.2.1 Conjuntos
El trmino conjunto puede ser definido como una coleccin de objetos (Kelley, 1995,
Pg. 2], por ejemplo: el conjunto mujeres, el conjunto monedas, el conjunto canicas o bien
el conjunto personas. A cada objeto que forma estos conjuntos es llamado elemento o
miembro del conjunto (Kelley, 1995, Pg. 2). Si un grupo de mujeres es un conjunto y
Laura es un elemento de este conjunto, se dice, que Laura pertenece al conjunto Mujeres, y
la notacin a usar para la representacin de esta sentencia es Laura Mujeres, de la
misma manera se dice que una centavo pertenece al conjunto monedas, tal aseveracin
podra ser representada, de manera resumida como c M donde el smbolo , mostrado
tambin en la sentencia anterior, se lee como pertenece a En caso de que Laura no fuera
un elemento del conjunto Mujeres se escribira Laura Mujeres, donde el smbolo
niega la existencia del elemento Laura en el conjunto Mujeres y se lee como no pertenece.
(Kelley, 1995, Pg. 6).
Ahora si un conjunto N contiene varios elementos (a, e, i, o, u), se puede representar
haciendo uso de corchetes, de la siguiente manera N = { a, e, i, o, u }(Kelley, 1995, Pg.6);

Teora de la Computacin

Instituto Tecnolgico de Celaya

Introduccin

donde los corchetes forman parte esencial de esta notacin encerrando en ellos los
elementos que pertenecen a el conjunto N; ste conjunto tambin puede ser representando
de la siguiente manera N = {v:v es una vocal}, donde N equivale al conjunto de toda v tal
que v es una vocal, es decir, si v es una vocal, el conjunto de todas las vocales es igual a N;
o bien, N = {vv es una vocal} donde la notacin v se leera como el conjunto de todas
las v tales que v es una vocal (Kelley, 1995, Pg. 2). Otro ejemplo de esta notacin podra
ser el conjunto de enteros entre 0 y 9.

B = {1, 2, 3, 4, 5, 6, 7, 8}
B = {xx C y x > 0, x < 9} B = {x C x > 0 y x < 9}

Dentro de los conjuntos existe el denominado conjunto vaco o conjunto nulo siendo
ste el conjunto ausente de elemento el cual es representado por los corchetes vacos {}, o
bien por el smbolo (Kelley, 1995, Pg. 2).
Los conjuntos se clasifican en funcin de su cardinalidad en dos tipos; los conjuntos
finitos y los infinitos; los primeros estn caracterizados por el cumplimiento de dos reglas;
la primera menciona que s A es un conjunto, debe de ser igual al conjunto vaco , en
cuyo caso su cardinalidad es 0, llamamos cardinalidad a el nmero de elementos que
conforman un conjunto y es denotado por dos lneas verticales paralelas que encierran al
conjunto A. La segunda regla dice que A debe de tener una cardinalidad conocida X;
por lo tanto, para que un conjunto se pueda decir finito debe de estar constituido por un
nmero determinado de elemento de 0 a X. Un conjunto infinito es aquel cuya cardinalidad
no es conocida. (Kelley, 1995, Pg. 23)
Hasta ahora se ha hablado de conjuntos pequeos en los cuales su representacin ha
sido sencilla, pero existen conjuntos en los que no se pueden listar todos sus elementos,
para estos ltimos se acostumbra listar los primeros elementos del conjunto seguidos de
puntos suspensivos, por ejemplo, N = {0, 1, 2, 3...} donde se representara el conjunto de
todos los valores enteros positivos. En un conjunto, el orden en que aparecen sus elementos
Teora de la Computacin

Instituto Tecnolgico de Celaya

Introduccin

no es de gran inters, es decir el orden de los factores no altera el producto, como lo indica
la ley conmutativa de la multiplicacin; por lo tanto un conjunto solo se caracteriza por sus
elementos y no por el orden en que se encuentren enlistados. As pues el conjunto A ={a, b,
c, d, e} es igual al conjunto B ={c, e, b, a, d} (Figura 1.2), o el conjunto C ={0,1,2,3} es
igual al conjunto D ={3,1,0,2}.

b
c

c
d

e
b

a
d

Conjunto A

Conjunto B

Figura 1.2. Conjuntos.

Ya que se ha definido el concepto conjunto se debe tener cuidado en su manejo, ya


que la visualizacin a simple vista de ellos puede ser engaosa, por ejemplo, el conjunto
{{a, b}} es completamente diferente del conjunto {a, b}, ya que el conjunto {{a, b}}
contiene solo un elemento {a, b}; y el conjunto {a, b} tiene dos elementos, a y b. Por lo
tanto, estos dos conjunto no son iguales {{a, b}} {a, b}. (Kelley, 1995, Pg. 7)
Ahora, consider los conjuntos A y B los cuales estn formados por los elementos A
= {1,2,3} y B = {0,1,2,3,4,5,6}, puede darse cuenta que los elementos del conjunto A
tambin son elementos que se muestran en el conjunto B, por lo que se dice que A es un
subconjunto de B, cuya notacin es A B como se muestra en la figura 1.3, sin embargo
B no es un subconjunto de A ya que los valores 0,4,5,6 no se encuentran en A.

Teora de la Computacin

Instituto Tecnolgico de Celaya

Introduccin

Entre los elementos del conjunto A se encuentra el conjunto vaco, ya que ste forma
parte de todos los conjuntos (Kelley, 1995, Pg. 7); por lo tanto, el conjunto vaco es un
subconjunto del conjunto A, A; y por ende tambin es un subconjunto de B, B.

0
Conjunto A
5

4
1 2
3

Conjunto B
6

Figura 1.3. Subconjuntos.

1.2.1.1 Operaciones con Conjuntos


Dentro de la teora de conjuntos es posible realizar una serie de operaciones de la
misma manera que las realizadas con valores numricos, estas operaciones se concentran en
tres: la unin, la interseccin y el complemento. Las cuales sern analizadas en las
siguientes lneas.
Unin . La unin concentra los elementos de dos o ms conjuntos, en un nico
conjunto. Si A = {a, b, c} y B = {e, f, g} entonces A B = {a, b, c, e, f, g}; otra
manera de representar sta operacin es A B = {x x A o x B} que se lee la
unin de A con B es igual a todo el conjunto de todas las x, tal que x pertenece a A o
a B. (Brena, 2003, Pg. 5) (Figura 1.4).
Interseccin . La interseccin de dos o ms conjuntos, sta dada por la existencia
de elementos comunes entre conjuntos, es decir, el conjunto A esta formado por los
elementos {a, b, c, d, e, f} y el conjunto B por los elementos {e, f, g, h, i, j, k}, los

Teora de la Computacin

Instituto Tecnolgico de Celaya

Introduccin

a
c

e
b

f
g

Conjunto A

Conjunto B
a

e
c
b

f
g

Conjunto A B

Figura 1.4. Unin

elementos {e, f} aparecen en ambos conjuntos siendo estos los elementos de


interseccin de estos conjuntos A B = {e, f}; otra manera de representar esta
operacin de conjuntos es A B = {x x A y x B} que se lee la interseccin de
A con B es igual a todo el conjunto de todas las x, tal que x pertenece a A y a B.
(Brena, 2003, Pg. 6) (Figura 1.5).

a b c

e f g
h i
i j k

d e f
a b
Conjunto A

c d
e

f
e

g
h i
j k

Conjunto B

Conjunto A B
Figura 1.5. Interseccin

Teora de la Computacin

Instituto Tecnolgico de Celaya

Introduccin

Complemento. El complemento de un conjunto con respeto de otro, sta


representado por el smbolo de resta -, y se encuentra denotado por todos los
miembros que pertenecen a un conjunto, pero que no forman parte de otro. Por
ejemplo, el conjunto A esta compuesto por los elementos {a, b, c, d, e, f} y el
conjunto B por los elementos {e, f, g, h, i, j, k}, el complemento de A con respecto de
B estara representado por B A y sta dado por todos los miembros de B que no se
encuentran en A, B - A = {g, h, i, j, k}; otra manera de representar sta operacin de
conjuntos es B A = {x x A y x B}.(Brena, 2003, Pg. 6) (Figura 1.6).

a b c

e f g
h i
i j k

d e f
g
Conjunto A

h
i

Conjunto B

Conjunto B - A

Figura 1.6. Complemento

Todos los conjuntos existentes en el mundo alfanumrico, se engloban dentro de un


conjunto universal, es decir, todos los conjuntos son subconjuntos de ste, dicho conjunto
es denominado conjunto universal (U). Los complementos realizados con el conjunto
universal son denotados por una tilde x , es decir el complemento de U-A estara dado por
todos los elementos que no se encuentran en A, lo cual puede ser tambin representado por
A ; de tal manera, que si A esta compuesto por todas las vocales, entonces el complemento

de el conjunto universal con respecto de A, estara dado por todas las consonantes del
alfabeto espaol; podramos decir que negamos el conjunto, todo lo que no forme parte de

Teora de la Computacin

Instituto Tecnolgico de Celaya

Introduccin

A. Sin embargo se debe hacer notar que el conjunto nulo o vaco no forma parte de este
conjunto universal, por lo cual 0 = U. (Kelley, 1995, Pg. 9)
Ya se ha hablado de las operaciones bsicas de la teora de conjuntos, sin embargo
existen algunas otras que vale la pena mencionar, como el producto cartesiano de conjuntos
y el conjunto potencia, los cuales sern citados a continuacin.
Producto Cartesiano *. El producto cartesiano de dos conjuntos esta dado por el
conjunto de todos los pares ordenados de los elementos de cada conjunto. Si el
conjunto A esta formado por los elementos {a, b, c} y el conjunto B por los elementos
{e, f}, el producto cartesiano de A * B es {(a, e),(b, e),(c, e),(a, f),(b, f),(c, f)}, note el
orden en que aparecen los pares de elementos, primero son listados todos los
elementos del conjunto A, seguidos de los elementos del conjunto B; como puede
observarse el orden de los elementos es de gran importancia ya que el producto
cartesiano de A * B no es igual al producto cartesiano de B* A. (Brena, 2003, Pg. 6)
El total de elementos en un producto cartesiano sta determinado por el total de
elementos de A por el total de elementos de B.
Conjunto potencia 2v. Este conjunto esta constituido por todas las posibles
combinaciones de los elemento de l conjunto en cuestin, para ser ms claros,
supngase que A es un conjunto formado por los elementos {a, b, c}, donde el
conjunto potencia de A estara dado por {, {a}, {b}, {c}, {a, b},{a, c},{b, c},{a, b,
c}}, note que el elemento vaco o nulo tambin forma parte de este conjunto potencia.
Podr decirse que el conjunto potencia es igual a todos los subconjuntos del conjunto
en cuestin. El total de elementos del conjunto potencia es igual 2n donde n es la
cantidad de elementos que componen el conjunto original. (Brena; 2003, Pg. 6)

Teora de la Computacin

10

Instituto Tecnolgico de Celaya

Introduccin

1.2.2 Relaciones y Funciones


De acuerdo al diccionario espaol, una relacin se define como una accin y efecto
de referir o referirse a algo, o bien una conexin de un objeto o cosa con otra. De tal
manera que se puede decir que dos elementos de diferente conjunto pueden estar
relacionados entre s bajo una relacin particular.
Una relacin esta dada por un subconjunto del producto cartesiano obtenido del los
conjuntos en cuestin. (Kelley; 1995, Pg.12) Para una mayor explicacin se retomar uno
de los ejemplos utilizados anteriormente; el conjunto A esta formado por los elementos {a,
b, c} y el conjunto B por los elementos {e, f} el producto cartesiano de A * B es {(a, e),(b,
e),(c, e),(a, f),(b, f),(c, f)} por lo tanto una de las relaciones de estos dos conjuntos podra
estar dada por R = {(a, e),(b, e),(c, e)}. Cada par ordenado (x, y) que forman esta relacin
determina dos conjuntos, el conjunto dominio y el conjunto condominio o imagen de R, el
dominio esta determinado por todos los elementos x de la relacin, mientras que el
condominio o imagen estara determinado por todos los elementos y de la relacin, (Kelley;
1995, Pg.12) es decir:

Dom(R) = {x x A y (x, y) R para alguna y B}


Im(R)

= {y y B y (x, y) R para algn x A}


(Kelley; 1995, Pg.12)

Por lo tanto, el dominio y la imagen de la relacin anterior estaran dados por:

Dom (R) = {a, b, c}


Im(R) = {e}
(Kelley; 1995, Pg.12)

Teora de la Computacin

11

Instituto Tecnolgico de Celaya

Introduccin

Estas relaciones tambin pueden ser obtenidas del producto cartesiano de un solo y
nico conjunto, por ejemplo el conjunto A = {a, b, c}, cuyo producto cartesiano estara
determinado por A*A, y cuyos subconjuntos formara una relacin; a ste tipo de relacin
se le llama relacin sobre A. (Kelley, 1995, Pg. 12)
Las relaciones cuentan con cuatro propiedades que las caracterizan como un tipo
particular de relacin, estas propiedades son mencionadas a continuacin.
La primera de ellas es la propiedad reflexiva la que seala, que una relacin R es
reflexiva si para todo (x, x) R, x X, (Brena, 2003, Pg. 8) por ejemplo, si X es el
conjunto formado por:
x = {1, 2, 3, 4}

y la relacin R sobre X es igual

R = {(1,1), (1,2), (2,2), (1,3), (3,3), (4 ,4), (2,3)}

Donde cada (x, x) R por lo tanto si es una relacin reflexiva


Ahora que si la relacin presentara la siguiente estructura
R = {(1,1), (1,2), (1,3), (3,3), (4 ,4), (2,3)}
No seria una relacin reflexiva, ya que 2 X pero (2,2) R,
Observe esta propiedad en el grafo o digrfica de la figura 1.7, donde para cada
elemento del conjunto existe una arista circular que regresa al mismo vrtice.

Teora de la Computacin

12

Instituto Tecnolgico de Celaya

Introduccin

Figura 1.7. Grafo de relacin reflexiva

La segunda propiedad es la simetra, la cual indica que una relacin R es simtrica s


para todo (x, y) R existe un (y, x) R (Brena, 2003, Pg. 9) por ejemplo retomando el
conjunto anterior, y la relacin:
R = {(1,1), (1,2), (2,2), (2,1), (1,3), (3,1), (3,3), (4 ,4), (2,4), (4,2)}

donde para cada (x, y) existe un par (y, x), por lo que esta relacin se dice simtrica ya que
existe una adecuada proporcin de las partes que forman los pares de elementos.
Ahora que si la relacin presenta la siguiente estructura
R = {(1,1), (1,2), (1,3), (3,1), (3,3), (4 ,4), (1,4)}
No seria una relacin simtrica, ya que los pares (2,1) y (4,1) R
Obsrvese el grafo de la figura 1.8, donde existen las aristas que van de x a y y de y a
x lo que indica la simetra de la relacin.

Teora de la Computacin

13

Instituto Tecnolgico de Celaya

Introduccin

Figura 1.8. Grafo de relacin simtrica

Una relacin puede nombrarse antisimtrica si para cada (x, y) R donde x y


existe un (y, x) R, por ejemplo retomando el conjunto anterior se tiene la relacin:

R = {(1,1), (1,2), (1,3), (3,3), (4 ,4), (1,4)}


Donde esta relacin cumple con la condicin de antisimetra.
El grafo de la figura 1.9 muestra esta propiedad donde para cada nodo solo existe una
arista dirigida en un solo sentido.

Figura 1.9. Grafo de relacin reflexiva

El cuarto tipo de relaciones que se resaltarn son las relaciones transitivas donde se
menciona que para cada (x, y), (y, z) R debe existir un par (x, z) R (Kelley, 1995, Pg.
14), por ejemplo:

Teora de la Computacin

14

Instituto Tecnolgico de Celaya

Introduccin

R = {(1,1), (1,2), (1,4), (2,2), (2,1), (2,4), (3,1), (3, 4), (3, 2)}

Donde la relacin es una relacin transitiva, esta propiedad podra distinguirse como la
transferencia de un elemento de un grupo de elementos a otro. Observe el grafo de la figura
1.10, que muestra la transitividad de la relacin anterior.

Figura 1.10. Grafo de relacin transitiva

Cuando una relacin es transitiva, reflexiva y simtrica se dice que la relacin es una
relacin de equivalencia o de orden parcial. (Brena, 1995, Pg. 14)
Finalmente y antes de hablar de las funciones se menciona la inversa de una relacin
representada por R-1, la cual no es otra cosa que el cambio de orden en el que aparecen los
elementos de una relacin, por ejemplo:

= {(1,2), (1,3), (1,4), (3,3), (4 ,4)}

R-1 = {(2,1), (3,1), (4,1), (3,3), (4 ,4)}


Y de donde se puede decir que R-1= {(x, y) (y, x) R} (Brena; 2003, Pg.8)
As como se define a una relacin desde su fundamento matemtico, una funcin
puede definirse matemticamente como una cantidad cuyo valor depende de otra variable,
en las ciencias computacionales una funcin f se define como una relacin R A x B,

Teora de la Computacin

15

Instituto Tecnolgico de Celaya

Introduccin

(Kelley, 1995, Pg. 15) donde la dependencia se muestra entre los elementos de los
conjuntos relacionados (A y B), ya que un elemento del conjunto A solo puede relacionarse
con un elemento del conjunto B. Es decir, cada x A puede relacionarse con un elemento y
B, (x, y) donde ambos pertenecen a la relacin que se denomina como funcin. Las
funciones se representan con la notacin f: A B estableciendo una relacin f que va de A
a B; mientras que los elementos relacionados se representan por f(x) = y. (Kelley, 1995,
Pg. 15) (Figura 1.11).

f: A B

d
f
g

b
c

Conjunto A

e
h

Conjunto B

Figura 1.11. Funciones.

Ntese que todo el dominio de la funcin es igual al conjunto A, es decir todos los
elementos que forman el conjunto estn presentes en la relacin, mientras que solo unos
cuantos elementos del conjunto B se encuentran presentes en la funcin, a estos ltimos se
les denomina contradominio, rango o bien intervalo de la funcin. Las funciones pueden ser
de tres tipos: sobreyectivas, inyectivas y biyectivas.
Las funciones sobreyectivas son aquellas cuyo contradominio es igual al conjunto del
que procede (Johnsonbaugh, 2005, Pg.94), es decir, si el conjunto A esta formado por {a,
b, c} y el conjunto B por {e, f}, y la funcin de A a B esta determinada por f = {(a, e), (b, f),
(c, f)}, tenemos que el contradominio de esta funcin contiene todos los elementos que
pertenecen al conjunto B; como se muestra en la figura 1.12.

Teora de la Computacin

16

Instituto Tecnolgico de Celaya

Introduccin

f: A B

e
b

Dominio

Conjunto A

Contradominio

Conjunto B

Figura 1.12. Funcin Sobreyectiva

Las funciones inyectivas o uno a uno, son aquellas en las que cada x A se relaciona
con un nico y B (Brena, 2003, Pg. 10), por ejemplo la funcin f = {(a, e), (c, f)} es una
funcin inyectiva ya que a cada elemento del dominio le corresponde un nico elemento del
contradominio. (Figura 1.13).

f: A B

e
c

Conjunto A

Conjunto B

Figura 1.13. Funcin Inyectiva

S una funcin cumple con las dos caractersticas mencionadas anteriormente, a esta
funcin se le denomina como una funcin biyectiva (Brena, 1995, Pg. 16), por ejemplo,
considere que tenemos los conjuntos C = {0, 1, 2,3} y D = {I, II, III, IV} de los cuales se
deriva la funcin f = {(0, I), (1, II), (2, IV), (3, III)}que cumple con las dos caractersticas
antes mencionadas, por lo tanto la funcin se dice biyectiva. (Figura 1.14).
Teora de la Computacin

17

Instituto Tecnolgico de Celaya

Introduccin

f: C D

I II

III IV

Conjunto C

Conjunto D

Figura 1.14. Funcin Biyectiva

1.2.3 Cadenas y Lenguajes


Al escuchar la palabra cadena, suele venir a la cabeza un instrumento formado por
eslabones cuyo fin es el aprisionar; sin embargo el concepto cadena dentro del estudio de la
teora computacional es definido como una secuencia finita de smbolos de un alfabeto
(Kelley; 1995, Pg. 30). Un alfabeto suele estar constituido de un conjunto no vaco y finito
de smbolos (Kelley; 1995, Pg. 30) (a, b, 1, 3, , %,+`, [, ) as se tiene el conjunto de
nmeros del 0 al 9, utilizado por la humanidad como alfabeto numrico, el conjunto de
puntos usados por los ciegos conocido como alfabeto Braille el conjunto de letras de la A
a la Z que forman el alfabeto de la real academia espaola. Cada uno de estos conjuntos es
representado por smbolo , as pues se dira que el alfabeto constituido por las primeras 10
letras del alfabeto es representado como:

= {a, b, c, d, e, f, g, h, i, j}

Teora de la Computacin

18

Instituto Tecnolgico de Celaya

Introduccin

Donde representa cualquier smbolo del alfabeto que pertenece a , ( ). (Kelley,


1995, 30)
Como ya se menciono en prrafos anteriores las cadenas son una secuencia de
smbolos sobre un alfabeto, de tal manera que el valor 00365 es una cadena sobre el
alfabeto numrico; cuya longitud es finita y por lo tanto contable. La longitud de una
cadena se define como el nmero de smbolos por los cuales esta constituida y se representa
mediante la notacin c donde c es la cadena anterior y cuya longitud es igual a 5 ( c =5).
(Kelley; 1995, Pg. 32) Dentro del conjunto de cadenas obtenidas de un alfabeto se
encuentra la cadena vaca que es una secuencia vaca de smbolos cuya longitud esta
determinada por = 0 (Kelley, 1995, Pg. 32), y forma parte de cualquier conjunto de
palabras obtenidos sobre un alfabeto, ntese tambin que cada smbolo del alfabeto es una
cadena cuya longitud es igual a 1.
Un lenguaje es un conjunto de palabras o cadenas de un alfabeto (Martin, 2004, Pg.
28), as pues, el lenguaje espaol esta constituido por ms de 35,000 palabras o cadenas
provenientes del alfabeto. De tal manera se puede decir que, s es el alfabeto espaol y w
una cadena del alfabeto, entonces w pertenecer a el lenguaje espaol L (w L), es decir,
si w = humanidad y el lenguaje L = {hombre, mujer, nio, nia, joven, adulto,
humanidad}, entonces humanidad {hombre, mujer, nio, nia, joven, adulto, humanidad}.
Sin embargo, el lenguaje natural usado para hablar no puede ser utilizado como tal en el
estudio cientfico de la computacin debido a la gran variedad de palabras que lo
constituyen, y sobre todo por la carencia de reglas gramaticales fijas que rijan por completo
la creacin de estas palabras. Los lenguajes que utilizaremos en el estudio de la
computacin son los llamados lenguajes formales los cuales se rigen por reglas
gramaticales precisas, que a diferencia de la lenguajes naturales son establecidas antes de
crear el lenguaje lo que permite delimitacin de ste; un ejemplo de los lenguajes formales
son los lenguajes de programacin.
Dentro del concepto lenguajes se tiene el denominado lenguaje vaco compuesto de
cero cadenas, denotado de la misma manera que los conjuntos vacos por . (Kelley, 1995,
Pg. 31)
Teora de la Computacin

19

Instituto Tecnolgico de Celaya

Introduccin

1.2.3.1 Concatenacin
La concatenacin de dos cadenas no es ms que la unin fsica de ambas, de tal
manera que si c y b son cadenas del alfabeto espaol donde c = casa y b = roja, la
concatenacin de stas esta dada por la palabra casaroja = cb.
Una extensin de la concatenacin es el concepto potencia de una palabra donde se
dice que una palabra elevada a un valor n es igual a la concatenacin de esta palabra tantas
veces como indique el valor de n, es decir, si c = ab entonces

c3 produce la cadena ababab


c1 produce la cadena ab
c0 produce la cadena
(Kelley, 1995, Pg. 32)
matemticamente podramos definir el conjunto potencia como


Si n = 0
c n = n1
Si n > 0
cc
(Kelley, 1995, Pg. 32)
Ya para terminar de hablar sobre cadenas se ubicara el concepto inversa o transpuesta de
una palabra, que no es ms que el reflejo de la imagen de la palabra en cuestin y esta
denotada por el uso de un subndice I (cI). Por ejemplo, si c = alfa la inversa de c es
afla, la conversin completa de la palabra a su inversa estara dada por la siguiente
secuencia. (Kelley, 1995, Pg. 33)
cI = (alfa)I = (lfa)Ia
= (fa)Ila
Teora de la Computacin

20

Instituto Tecnolgico de Celaya

Introduccin

= (a)Ifla
= ( )Iafla
= afla
La concatenacin de dos lenguajes E y I esta definido por la notacin E I, y se
forma por la unin fsica de cada cadena de E con cada cadena de I. Por ejemplo, si E = {1,
2} I = {hombre, mujer, nio, nia} entonces E I = {1hombre, 1mujer, 1nio, 1nia,
2hombre, 2mujer, 2nio, 2nia} note que la concatenacin puede llevarse a cabo con
lenguajes cuyo alfabeto es diferente. La concatenacin tambin puede ser representada por
EI en lugar de E I.
El concepto potencia aplicado a las cadenas es tambin empleado para los lenguajes,
aplicndose de la misma manera, de tal manera se tiene

Si n = 0

En =
n 1
Si n 0
E E

(Kelley, 1995, Pg. 34)


Otra de las operaciones aplicadas a los lenguajes es la cerradura de Kleene o
estrella de Kleene, cuya representacin esta dada por un asterisco como superndice del
lenguaje ( E*). La cerradura de Kleene forma conjuntos que contienen la cadena vaca, las
cadenas del lenguaje y todas las posibles concatenaciones de las cadenas de este lenguaje
(Kelley, 1995, Pg. 37). Por ejemplo, si E = {1, 11, 12} la cerradura de Kleene de este
lenguaje esta dada por E* = { , 1, 11, 12, 12, 13, 111, 112, 112, 113,., 1112, 122,
123,....}.
Otro concepto muy parecido a la cerradura de Kleene es la cerradura positiva (E+) la
cual es desarrollada de la misma manera, excepto por que esta cerradura positiva no incluye

Teora de la Computacin

21

Instituto Tecnolgico de Celaya

Introduccin

la cadena vaca E+ = {1, 11, 12, 12,13, 111, 112, 112, 113,, 1112, 122, 123,....}.
(Kelley, 1995, Pg. 37)
Una vez que han sido introducidos estos conceptos puede definirse formalmente un
lenguaje.

Formalmente un lenguaje es un subconjunto A*, conocido como lenguaje


universal, donde A es un conjunto finito de elementos que es conocido como el

alfabeto del lenguaje. (Kelley, 1995, Pg. 31)

dicho en otras palabras, un lenguaje es el subconjunto de un monoide. Un monoide


se define como una estructura algebraica, que presenta el par (M,*), donde M es un
conjunto, y * una operacin que cumple con las siguientes caractersticas:

Es cerrada en M, es decir, el resultado de a*b pertenece a M para cualesquiera a y b


de M.

Cuenta con una identidad, es decir, un elemento "" tal que cumple a*=*a=a.

La operacin * es asociativa.
(http://es.wikipedia.org/wiki/Monoide, junio del 2006)
Al igual que en las cadenas, el concepto de inversa o transpuesta es tambin aplicado

a los lenguajes con el mismo procedimiento; as como todas las operaciones aplicadas a los
conjuntos (unin, interseccin, complemento).
Hasta este momento se han representado lenguajes comunes cuyas cadenas se
encuentran formadas por smbolos bien definidos pero que pasa, si se desean representar
lenguajes cuyas cadenas se encuentran formadas por uno o dos smbolos y cuyas
concatenaciones son muy amplias como los conjuntos obtenidos en la cerradura de Kleene,
la representacin de estos sera muy laboriosa o confusa, por tal motivo se debe de aprender
a representar estos lenguajes mediante formulas pequeas como por ejemplo; s L es un

Teora de la Computacin

22

Instituto Tecnolgico de Celaya

Introduccin

lenguaje cuyos elementos son {xxyy, xxxyy, xxxyyy, xxxxyy, xxxxyyy, xxxxyyyy,
xxxxxyy, xxxxxyyy,..} podra ser tambin representado por L = {xi yj i j > 1}, ya
que si observamos las caractersticas del lenguaje, podra deducirse que en la mayora de
las cadenas se muestra un mayor nmero de x que de y, sin embargo existen algunos casos
donde son iguales, adems el nmero mnimo de veces que se muestran tanto las x como
las y es de 2.
As pues algunos ejemplos de lenguajes son:
a) L1 = { ai bj i , j > 1 }
b) L2 = { ai bj ax by i j >1, 1< x y }
c) L3 = { ai bj cq q=2i+j y i, j 0 }
d) L4 = { ai c2i i 0 }

1.2.3.2 Operaciones con Lenguajes


Como ya se menciono los lenguajes son subconjuntos de elementos por lo cual las
operaciones de unin, interseccin y complemento son tambin aplicables.(Kelley, 1995,
Pg. 35) Por ejemplo, considere los lenguajes L1 y L2 cuyos elementos son:
L1 = {aa, aaaa, aaaaaa, aaaaaaaa}
L2 = {bb, bbbb, bbbbbb, bbbbbbbb}
La unin de estos dos lenguajes es igual a:
L1 L2 = {aa, aaaa, aaaaaa, aaaaaaaa, bb, bbbb, bbbbbb, bbbbbbbb}
La interseccin esta dada por:
L1 L2 = {}
Teora de la Computacin

23

Instituto Tecnolgico de Celaya

Introduccin

ya que no existe ningn elemento en comn entre ambos lenguajes. Finalmente la


operacin de complemento aplicada a estos lenguajes es
L1 - L2 = { aa, aaaa, aaaaaa, aaaaaaaa }
L2 L1 = { bb, bbbb, bbbbbb, bbbbbbbb }

Como puede verse la ejecucin de estas operaciones da como resultado la creacin de


nuevos lenguajes por lo que los lenguajes originales se convierten en sublenguajes, es decir
la unin de L1 L2 producir un nuevo lenguajes donde L1 L2 y L2 L1. Tal
aseveracin puede observarse en la figura 1.15

aa aaaa
aaaaaa
aaaaaaaa

bb bbbb
bbbbbb
bbbbbbbb

Conjunto A

Conjunto B
aa aaaa
aaaaaa aaaaaaaa
bb bbbb bbbbbb
bbbbbbbb

Conjunto B A

Figura 1.15 Unin de L1 y L2

Teora de la Computacin

24

Instituto Tecnolgico de Celaya

Introduccin

1.3 INDUCCIN MATEMATICA.


Las ciencias matemticas contienen varios conjuntos de nmeros, por ejemplo, el
conjunto de nmeros reales, el conjunto de nmeros reales negativos, el conjunto de
nmeros naturales el cual contiene los valores enteros del {0,1,2,3,..}, este conjunto
representa el denominado principio de induccin matemtica el cual constituye una
referencia para generar pruebas sobre supuestos o proposiciones matemticas. (Kelley,
1995, Pg. 19)
El principio de induccin matemtica permite la comprobacin por induccin de
proposiciones cuyos valores estn en funcin de un valor n, en donde para demostrar la
validez de la proposicin n debe de satisfacer:

1. Que la proposicin sea verdadera para n = 0


2. Y si la proposicin es verdadera para n > 0, debe tambin serlo para n + 1
(Kelley, 1995, Pg.19)
En particular para el estudio de los conjuntos, la prueba de induccin ser usada para
probar que cierta propiedad es valida para todos los elementos de un conjunto finito. (Brena,
2003, Pg. 15)
Las pruebas de induccin matemtica se dividen en dos partes, la primera es el paso
bsico seguido del paso de induccin. En esta segunda etapa se hace la suposicin de que n

es un nmero mayor de cero (n>0), a esta premisa se le denomina hiptesis de la induccin.


(Kelley, 1995, Pg. 19). Para aplicar esta prueba sobre los conjuntos primero se especifica
la propiedad que se desea probar y se supone que es cierta para todo el conjunto. El
segundo paso es probar que la propiedad es verdadera para el elemento 0 de dicho conjunto
(siendo ste el denominado paso base de induccin); una vez comprada la prueba para el
primer elemento, se supone que la prueba es cierta para cualquier elemento i (hiptesis de

Teora de la Computacin

25

Instituto Tecnolgico de Celaya

Introduccin

la induccin), posteriormente se verifica que la prueba sea cierta para el elemento i + 1.


Una vez que ambos pasos han sido comprobados se puede concluir que la propiedad es
cierta para todos los elementos del conjunto y se finaliza la prueba. (Brena, 2003, Pg.16)
Existen algunos casos en los que 0 no pertenece al conjunto de valores que probaran los
supuestos, en estos casos se debe de expresar una propiedad P(n) para todo n k, por lo que
la comprobacin se realiza sobre sta proposicin.
Un ejemplo de la aplicacin del principio de induccin matemtica puede
observarse con la comprobacin de la siguiente proposicin 20 + 21 +...+ 2n = 2n+1-1
para todo n 1.
El primer paso a comprobar es el paso base, en el cual se trata de comprobar la proposicin
para n = 0.
20 = 20+1-1
1 = 21-1
1 = 2-1
1 =1
La primera etapa ha sido verdadera, por lo cual se supone que tambin ser verdadera para
n +1, es decir 20 + 21 +...+ 2(n+1) = 2(n+1)+1-1 (hiptesis de la induccin). Lo cual hay que
comprobar, en el paso de induccin. Considere que n = 1
20 + 2(1+1) = 2(1+1)+1-1
1+22 = 22+1-1
1 + 4 = 6-1
5=5
La comprobacin a sido verdadera, por lo cual se concluye que la proposicin ser
verdadera para todo n .

Conjunto de enteros positivos.

Teora de la Computacin

26

Instituto Tecnolgico de Celaya

Introduccin

1.4 AUTMATAS, COMPUTABILIDAD Y COMPLEJIDAD.


Dentro de la teora de la computacin se manejan varios supuestos, todos ellos
encaminadas al entendimiento y estudio de la ciencia computacional. Dos de estas teoras
son, la teora de la computabilidad y la teora de la complejidad.
La teora de la computabilidad se ocupa de verificar la factibilidad de los problemas
para

ser

expresados

como

algoritmos

(http://es.wikipedia.org/wiki/Complejidad_

computacional , diciembre del 2005), sin tomar en cuenta los recursos necesarios para ello.
Mientras que la teora de la complejidad estudia los recursos requeridos para resolver un
problema. La primera teora hace referencia a que tan calculable (computable2) puede ser
una funcin por un algoritmo; la segunda estudia los recursos de procesamiento como el
tiempo, el cual se describe como el nmero de pasos de ejecucin de un algoritmo que se

usan para resolver un problema, para el clculo exacto del nmero de pasos y el coste que
generan se utiliza la notacin O; y el espacio que es la cantidad de memoria utilizada para
resolver un problema. (Glenn, 1993, Pg. 248) Aunque tambin pueden estudiarse otros
parmetros, tales como el nmero de procesadores necesarios para resolver el problema en
paralelo.
La teora de la complejidad clasifica los problemas de acuerdo al tipo de modelo
computacional necesario para resolverlo. El modelo ms popular es la mquina de Turing,
la cual ser abordada en los captulos posteriores a ste. Dentro de estos modelos se
encuentran los autmatas, que pueden definirse como maquinas abstractas cuyo
funcionamiento permite el reconocimiento de los distintos miembros de un lenguaje, estos
autmatas pueden parecer grafos dirigidos, donde los nodos son denominados como
estados, las aristas son denominadas transiciones y son rotulados con los elementos del
alfabeto de el lenguaje, dentro de estos autmatas existe un estado inicial y un conjunto de
estados de aceptacin el cual indicar si los elementos del lenguaje examinado son los
correctos para el lenguaje o no lo son. En el captulo siguiente se tratar ms a fondo ste
concepto.
2

Se llama cmputable a la obtencin de una solucin o resultado a partir de ciertos datos, utilizando para ello
un proceso o algoritmo. ( Encarta, 2006 )

Teora de la Computacin

27

Instituto Tecnolgico de Celaya

Introduccin

RESUMEN
El trmino conjunto es definido como una coleccin de objetos. Cada objeto es
llamado elemento o miembro del conjunto. Si M es un conjunto y L es un elemento de
este conjunto, se dice, que L M. En caso de que L no fuera un elemento del conjunto M
se escribira L M. Un conjunto formado de varios elementos es representado mediante la
notacin N = { a, e, i, o, u }; este conjunto tambin podra ser representando de la siguiente
manera N = {v:v es una vocal}, donde N equivale al conjunto de toda v tal que v es una
vocal, es decir, si v es una vocal, el conjunto de todas las vocales es igual a N; o bien, N =
{vv es una vocal} donde la notacin {v se lee como el conjunto de todas las v tales
que v es una vocal.

Dentro de los conjuntos existe el denominado conjunto vaco o conjunto nulo siendo
ste el conjunto ausente de elementos, representado por los corchetes vacos {}, o bien por
el smbolo .
Los conjuntos pueden ser clasificados en dos tipos los conjuntos finitos o infinitos.
Los primeros cuentan una cardinalidad conocida de 0 a X; llamamos cardinalidad al
nmero de elementos que forman un conjunto y es denotado por dos lneas verticales
paralelas que encierran al conjunto A. Un conjunto infinito es aquel cuya
cardinalidad no es conocida.
Ya que se ha definido el concepto conjunto, consider los conjuntos A = {1,2,3} y B
= {0,1,2,3,4,5,6}, puede darse cuenta que los elementos del conjunto A tambin son
elementos que se encuentran en el conjunto B, por lo que se dice que A es un subconjunto
de B, cuya notacin es A B. Entre los elementos de todo conjunto se encuentra el
conjunto vaco; por lo tanto, el conjunto vaco es un subconjunto de todos los conjuntos.
Dentro de la teora de conjuntos es posible realizar una serie de operaciones las cuales
se concentran en tres: la unin, la interseccin y el complemento.

Teora de la Computacin

28

Instituto Tecnolgico de Celaya

Introduccin

Unin . La unin concentra los elementos de dos o ms conjuntos, en un nico


conjunto. Si A = {a, b, c} y B = {e, f, g} entonces A B = {a, b, c, e, f, g}; otra
manera de representar esta operacin es A B = {x x A o x B} que se lee la
unin de A con B es igual a todo el conjunto de todas las x, tal que x pertenece a A o
a B.
Interseccin . La interseccin de dos o ms conjuntos, esta dado por la existencia
de elementos comunes entre conjuntos, es decir, el conjunto A = {a, b, c, d, e, f} y B
= {e, f, g, h, i, j, k}, los elementos de interseccin de estos conjuntos son A B = {e,
f}; otra manera de representar esta operacin de conjuntos es A B = {x x A y x
B} que se lee la interseccin de A con B es igual a todo el conjunto de todas las x,
tal que x pertenece a A y a B.
Complemento. Contiene todos los miembros que pertenecen a un conjunto, pero que
no forman parte de otro. S A = {a, b, c, d, e, f} y B = {e, f, g, h, i, j, k}, el
complemento de A con respecto de B es igual a {g, h, i, j, k}; otra manera de
representar esta operacin de conjuntos es B A = {x x A y x B}.
Todos los conjuntos mostrados pertenecen a un conjunto principal denominado
conjunto universal (U). Los complementos realizados con el conjunto universal son

denotados por una tilde x . Sin embargo se debe hacer notar que el conjunto nulo no forma
parte de este conjunto universal, por lo cual 0 = U.
Algunas otras operaciones realizadas con conjuntos que vale la pena mencionar son:
el producto cartesiano de conjuntos y el conjunto potencia.
Conjunto potencia 2n. Este conjunto est constituido por todas las posibles
combinaciones de los elemento de un conjunto. S A = {a, b, c} el conjunto potencia
de A = {, {a}, {b}, {c}, {a, b}, {a, c}, {b, c}, {a, b, c}}, note que el elemento vaco
o nulo tambin forma parte de este conjunto potencia. El total de elementos del

Teora de la Computacin

29

Instituto Tecnolgico de Celaya

Introduccin

conjunto potencia es igual 2n donde n es la cantidad de elementos que componen el


conjunto original.
Producto Cartesiano *. El producto cartesiano de dos conjuntos esta dado por el
conjunto de todos los pares ordenados de A por B. S A = {a, b, c} y B = {e, f} el
producto cartesiano de A * B = {(a, e),(b, e),(c, e),(a, f),(b, f),(c, f)}, como puede
observarse el orden en que aparecen los elementos es de gran importancia. El total de
elementos en un producto cartesiano esta determinado por A x B.
La creacin de un producto cartesiano da paso a otro concepto, la relacin. Una
relacin es un subconjunto del producto cartesiano. Es decir, s A = {a, b, c} y B = {e, f}
el producto cartesiano de A * B = {(a, e),(b, e),(c, e),(a, f),(b, f),(c, f)} por lo tanto una de
las relaciones es igual a R = {(a, e),(b, e),(c, e)}. Cada par ordenado (x, y) que forman esta
relacin determina dos conjuntos, el conjunto dominio y el conjunto condominio o imagen,
respectivamente. Estas relaciones tambin pueden ser obtenidas del producto cartesiano de
un solo y nico conjunto. Las relaciones cuentan con algunas propiedades que las
caracterizan como un tipo particular de relacin. La primera de ellas es la propiedad
reflexiva que dice, que una relacin R es reflexiva si para todo (x, x) R, x X. La
segunda propiedad es la simetra que dice, una relacin R es simtrica s para todo (x, y)
R existe un (y, x) R; una relacin puede nombrarse antisimtrica si para cada (x, y) R
donde x y existe un (y, x) R. El cuarto tipo de relacin que se resaltar es las relaciones
transitivas donde se menciona que si para cada (x, y), (y, z) R se tiene un (x, z) R.
Cuando una relacin es transitiva, reflexiva y simtrica se dice que la relacin es una
relacin de equivalencia o de orden parcial.
Una relacin puede contener caractersticas especiales, a este tipo de relaciones se les
conoce como una funcin. Una funcin f puede definirse como una relacin donde existe
una dependencia entre los elementos de los conjuntos relacionados (A y B), ya que un
elemento del conjunto A solo puede relacionarse con un elemento del conjunto B. Es decir
para cada x A puede relacionarse con un elemento y B, (x, y) donde ambos pertenecen
Teora de la Computacin

30

Instituto Tecnolgico de Celaya

Introduccin

a la relacin que se denomina como funcin. Las funciones se representan con la notacin f:
A B; y pueden ser de tres tipos: sobreyectivas, inyectivas y finalmente biyectivas.
El trmino conjunto puede ser transportado al concepto alfabeto. Un alfabeto suele
estar constituido de un conjunto no vaco y finito de smbolos (a, b, 1, 3, , %,+`, [, ). Un
alfabeto es considerado la fuente de una palabra o cadena, ya que sta se describe como una
secuencia finita y contable de smbolos de un alfabeto. La longitud de una cadena se define
como el nmero total de smbolos por los cuales esta formada la cadena y se representa
mediante la notacin c . A un conjunto de cadenas obtenidas de un alfabeto dado se le
denomina como lenguaje. Los lenguajes formales se rigen por reglas gramaticales precisas,
a diferencia de los lenguajes naturales cuyas reglas son establecidas antes de crear el
lenguaje.
Las ciencias matemticas contienen varios conjuntos de nmeros, por ejemplo, el
conjunto de nmeros reales, el conjunto de nmeros reales negativos, el conjunto de
nmeros naturales el cual contiene los valores enteros del {0,1,2,3,..}, este conjunto
representa el denominado principio de induccin matemtica el cual constituye una
referencia para generar pruebas sobre supuestos o proposiciones matemticas.
Dentro de la teora de la computacin se manejan varios supuestos, todos ellos
encaminadas al entendimiento y estudio de la ciencia computacional. Dos de estas teoras
son, la teora de la computabilidad y la teora de la complejidad.
La teora de la computabilidad se ocupa de verificar la factibilidad de los problemas
para ser expresados como algoritmos, sin tomar en cuenta los recursos necesarios para ello.
Mientras que la teora de la complejidad estudia los recursos requeridos para resolver un
problema.

Teora de la Computacin

31

Instituto Tecnolgico de Celaya

Introduccin

GLOSARIO
Conjuntos. Un conjunto se define como una coleccin de objetos. A cada uno de
los objetos que componen un conjunto se le llaman elementos o miembros del
conjunto. La notacin usada para indicar que un elemento pertenece a un conjunto
es l M, donde l es un elemento del conjunto M. Para la representacin de un
conjunto y de todos los elementos que lo forman se hace uso de las llaves {}, que
encierran en ellas, a todos los elementos que forman parte del conjunto, como se
muestra a continuacin, M = {l, m, n, o, p}. Otra manera de representar un
conjunto es mediante el uso del smbolo | , por ejemplo M = {x | x es una letra
del alfabeto}, donde el smbolo | se lee como tal que; por lo tanto la
representacin anterior se leera como el conjunto M esta constituido de x
elementos tal que x es una letra del alfabeto
Cardinalidad. La cardinalidad define el nmero de elementos que forman un
conjunto, y esta denotada por el smbolo || ; de tal manera que la cardinalidad
de un conjunto estara representada por || M || = 5.
Conjuntos finitos. Es aquel cuya cardinalidad es igual a 0 o bien es una
cardinalidad conocida.
Conjunto infinito. Es aquel cuya cardinalidad no es conocida.
Subconjunto. Conjunto de elementos que forma

parte de otro conjunto. El

smbolo usado para indicar que un conjunto es un subconjunto de otro es .


Unin ( ). Define como la concentracin de los elementos de dos o ms
conjuntos.
Interseccin ( ). La interseccin es la existencia de elementos comunes entre
conjuntos.
Complemento (-). Define los elementos que pertenecen a un conjunto, pero que
no se encuentran formando parte de otro.
Producto cartesiano (*). El producto cartesiano de dos conjuntos esta dado por el
conjunto de todos los pares ordenados de los elementos de los conjuntos. Por

Teora de la Computacin

32

Instituto Tecnolgico de Celaya

Introduccin

ejemplo, el producto cartesiano de loas conjuntos A y B es A * B = {(a, e),(b,


e),(c, e),(a, f),(b, f),(c, f)}
Conjunto potencia (2n). Es un conjunto constituido por todas las posibles
concatenaciones de los elementos del conjunto a elevar, incluyendo el conjunto
vaco. El total de elementos del conjunto potencia esta dado por el valor resultante
de elevar 2 a una n potencia, donde n es el nmero total de elementos por el cual
est constituido el conjunto original.
Relacin. Una relacin es un subconjunto del producto cartesiano aplicado sobre
un conjunto. Cada par ordenado (x, y) que forman una relacin determina dos
conjuntos, el dominio y el condominio o imagen de la relacin R, el dominio esta
determinado por todos los elementos x de la relacin, mientras que el condominio
o imagen estara determinado por todos los elementos y de la relacin.
Relaciones reflexivas. Una relacin R es reflexiva si para todo (x,x) R donde x
X.
Relaciones simtricas. Una relacin R es simtrica si para todo par (x,y) R
existe un par (y,x) R.
Relacin antisimtrica. Una relacin R es antisimtrica si para todo (x,y) R
donde x y existe un (y,x) R.
Relacin transitiva. Una relacin R es transitiva si para cada (x,y)(y,z) R, existe
un par (x,z) R.
Relacin equivalente. Una relacin R que es reflexiva, transitiva y simtrica se
denomina como una relacin equivalente.
Funcin. Una funcin se define como un relacin R, donde para cada elemento de
x A existe un nico elemento y B con el cual se relaciona.
Funciones sobreyectivas. Las funciones sobreyectivas son aquellas cuyo
contradominio es igual al conjunto original del que se construye la funcin.
Funciones inyectivas. Las funciones inyectivas o uno a uno, son aquellas donde
cada x A se relaciona con un nico y B.
Funcin biyectiva. S una funcin es sobreyectiva e inyectiva se le denomina
como una funcin biyectiva.
Teora de la Computacin

33

Instituto Tecnolgico de Celaya

Introduccin

Cadena. Se define a una cadena como la secuencia finita de smbolos de un


alfabeto.
Longitud. La longitud de una cadena se define como el nmero de smbolos que
constituye dicha cadena y se representa mediante dos lneas verticales ||, que
encierran a la palabra.
Lenguaje. El lenguaje se define como el conjunto de palabras o cadenas de un
alfabeto.
Concatenacin. La concatenacin se define como la unin fsica de las cadenas, el
smbolo que la denota es . La concatenacin de dos lenguajes se obtiene de la
unin fsica de cada una de las cadenas de ambos lenguajes.
Cerradura de Kleene (*). Si L es un conjunto, el concepto de cerradura de Kleene
permite formar un conjunto compuesto por todas las cadenas de pertenecientes a L,
por todas las posibles concatenaciones de estas cadenas y por la cadena vaca.
Cerradura positiva (+). La cerradura positiva al igual que la cerradura de Kleene
permite la formacin de conjuntos que contengan todas las cadenas de un lenguaje
dado, as como todas las posibles concatenaciones de ellas; sin embargo excluye
la existencia de la cadena vaca dentro de sus conjuntos.
Principio de induccin matemtica. Dicho principio permite la comprobacin por
induccin de proposiciones cuyos valores estn en funcin de un valor n, el cual
debe de cumplir con dos condiciones:
1. Que la proposicin sea verdadera para n = 0.
2. Si la proposicin es verdadera para n > 0, debe tambin serlo para n + 1.
Computabilidad. La teora de la computabilidad se encarga de verificar la
factibilidad de los problemas para ser expresados como algoritmos.+
Complejidad. La teora de la complejidad estudia los recursos requeridos para
resolver un problema.
Interseccin. Punto o lnea donde se cortan dos lneas. En nuestro caso lo
definimos como punto donde se cruzan dos conjuntos.

Teora de la Computacin

34

Instituto Tecnolgico de Celaya

Introduccin

Tilde. Signo ortogrfico de figura en coma o rasguillo, que se pone sobre la y


sobre algunas abreviaturas.
Grafo. Unidad abstracta que comprende el conjunto de grafas de una letra.
Abstraccin. Conocimiento de una cosa presidiendo de las dems que estn con
ella. Indica alguna cualidad de algn objeto.

Teora de la Computacin

35

Instituto Tecnolgico de Celaya

Introduccin

EJERCICIOS
1. Represente los siguientes conjuntos usando la notacin para conjuntos mostrada en
el apartado 1.2.1.
a. El conjunto de enteros positivos.
b. El conjunto de todos los enteros positivos menores a 20.
c. El conjunto de todos los enteros negativos mayores a 5 y menores a 15.
2. Cual es la cardinalidad de los siguientes conjuntos?
a. {0}
b. {0,1,2,3}
c. {a,b,c,d,e,f}
3. Considere los conjuntos A = {1, 2, 3, 4, 5, 6} y B = {5, 6, 7, 8}. Calcule
correctamente las siguientes operaciones.
a. (A B)
b. (A B) A
c. B A
d. A B
e. 2B
f. 2A
g. 2A B
h. A x B
i. A x A
4. Indique la longitud de cada una de las siguientes cadenas
a. Hoja
b. Silla
c. Piedra
d. fffffeeeefff
5. De cinco ejemplo de lenguajes basados en los conjuntos {4, 5, 7, 4, 9, 10,11}, {a, b},
{g, h, v}.
6. Exprese extensamente el conjunto {x|x N, x < 10}.

Teora de la Computacin

36

Instituto Tecnolgico de Celaya

Introduccin

PROBLEMAS
1. Calcular los conjuntos potencia de los siguientes conjuntos.
a. {a, b}
b.

{a, {b, c}}

c. {}
d. {1 {2}}
2. Analice los siguientes lenguajes y realice correctamente las operaciones indicadas.
L1 = {xi yj i 0, j > 0}

L2 = {xi-1 zj / i>1, j2}

Operaciones.
L1 L2 =
L1 L2 =

L1 * =
(L1 L2) L2 =

3. Considere la relacin R = {(a,d)(b,d)(d,d)(c,b)}, siendo el dominio el conjunto A =


{a,b,c,d} y el condominio el conjunto B = {d, b}. Indique s la relacin es:
a. Una funcin.
b. Una funcin inyectiva.
c. Una funcin sobreyectiva.
d. Una funcin biyectiva.
4. Considere el conjunto C = {e, f, g, h} proponga algunas relaciones y algunas
funciones sobre ste conjunto.
5. Observe las siguientes relaciones cuya fuente es el conjunto A = {a, b, c, e, f}. Indique
si son relaciones reflexivas, transitivas o simtricas.
a. R1 = {(a,a)(a,b)(b,c)(c,e)(c,b)(e,c)}
b. R2 = {(a,a)(a,b)(b,b)(a,f)(c,c)(c,f)(f,e)(e,e)(f,e)(f,f)}
c. R3 = {(a,a)(a,b)(b,b)(b,a)(a,e)(e,e)(e,a)(e,c)(c,c)(b,e)(c,e)(e,b)(f,f)}
d. R4 = {(a,b)(b,a)(c,e)(e,c)(a,a)(c,c)}
6. Obtenga un nuevo lenguaje, a partir de los lenguajes mostrados en los incisos a y b.
Use la concatenacin para tal fin.
a. {a, ab} y {a, bb, ba}
b. {, c} y {c, cc}
Teora de la Computacin

37

Instituto Tecnolgico de Celaya

Introduccin

7. Considrese la funcin madre(x), que obtiene la madre (biolgica) de cada persona.


Indica para esta funcin:
a. Cules son el dominio y el codominio?
b. Si es una funcin inyectiva, sobreyectiva o biyectiva.
8. Considera el conjunto de nmeros naturales tales que si son mayores que 5 o bien
terminan en 5, entonces contienen algn 1 o 2.
a. Propn 3 nmeros que cumplan la condicin y 3 que no la cumplan.
b. Expresa el enunciado como una frmula, donde M significa mayores que
5, T es terminan en 5, U es contienen algn 1 y D es contienen algn
2.

Teora de la Computacin

38

Instituto Tecnolgico de Celaya

Introduccin

LECTURA COMPLEMENTARIA.

Lenguaje una forma de comunicacin.


El concepto lenguaje en primera instancia es considerado como un medio de
comunicacin, basado en signos orales y escritos que poseen un significado particular.
Desde un punto de vista comn el lenguaje es considerado como la capacidad de habla
entre seres humanos, sin embargo, el concepto lenguaje se extiende a definiciones
matemticas y de computacin.
Alrededor de todo el mundo el lenguaje ha sido dividido en distintas lenguas, las
cuales cuentan con sus propios smbolos y reglas de comunicacin. Ferdinand de Saussure
(1857-1913), lingista suizo, considerado el fundador de la lingstica moderna; expone a
la lengua como un sistema de signos orales y escritos del que disponen los miembros de
una comunidad, y la cual no puede sufrir modificaciones. Sin embargo, Noam Chomsky,
(1928- ), lingista, profesor y activista poltico estadounidense; cambio este enfoque y
considera a la lengua como un sistema cambiante, cuyas modificaciones pueden ser
realizadas por los hablantes. (Encarta, 2006) ste enfoque suena lgico ya que al paso del
tiempo las lenguas han ido cambian y adecundose a la sociedad; aunque algunas veces
dichos cambios no sean bien aceptados.
El lenguaje puede ser estudiado desde dos puntos de vista: segn el uso o la estructura.
(Encarta, 2006)
De acuerdo al uso, los lenguajes se relaciones con otros campos, como la literatura,
la comunicacin de la informacin, la enseanza de idiomas, la sociologa, la ciencia
poltica y la psicologa. Los estudios sobre el uso del lenguaje tratan sobre lo que dicen las
personas, lo que piensan que dicen y lo que significa aquello que escriben o dicen para
comunicarse. Todo ello incluye el anlisis de los contenidos, la crtica literaria, el estudio

Teora de la Computacin

39

Instituto Tecnolgico de Celaya

Introduccin

del cambio lingstico y los factores sociales que determinan los comportamientos
lingsticos de los miembros de una comunidad idiomtica. (Encarta, 2006)
La estructura del lenguaje concierne a la lingstica, cuya parte de su estudio se
enfoca a la sintaxis de la lengua; es decir, estudia la estructura del texto, asegurando que la
forma en que son ordenadas las palabras y las oraciones constituyan un todo coherente.
(Encarta, 2006) ste es el enfoque que se estudia en la Teora de la Computacin, orientado
a los lenguajes de programacin que han sido desarrollados para la comunicacin entre
computadoras.
Un lenguaje de programacin es definido como cualquier lenguaje artificial que puede
utilizarse para definir una secuencia de instrucciones que sern procesadas por una
computadora. La creacin de dichos lenguajes involucra fundamentos matemticos, y
estudios lingsticos que son mencionados a lo largo de este libro.

Teora de la Computacin

40

Instituto Tecnolgico de Celaya

Introduccin

BIBLIOGRAFA
1. Brena,

verano

2003

Ramn

Brena.

Autmatas

Lenguajes.

En:

http://lizt.mty.itesm.mx/~rbrena/AyL.html. Consultado por ltima vez en Abril del


2006.
2. Dean Kelley, mayo 1995 Dean Kelley: Teora de autmatas y lenguajes formales.
Editorial: Prentice-Hall.
3. ENCARTA, 2006. Biblioteca de Consulta Microsoft Encarta. DE 1993 a 2005.
Editado por Microsoft Corporation.
4. Glenn. 1993. J. Glenn Brookshear. Teora de la computacin, lenguajes formales,
autmatas y complejidad. Editorial: Addison-Wesley
5. John Martin. 2004, John C. Martin. Lenguajes formales y teora de la
computacin. Editorial: Mc Graw Hill.
6. Johnsonbaugh, 2005, Richard Johnsonbaugh, Matemticas discretas. Sexta edicin.
Editorial: Pearson Education.
7. Winkipedia, 2005. Enciclopedia libre. Complejidad Computacional

En:

http://es.wikipedia.org/wiki/Complejidad_computacional. Consulado por ltima vez:


diciembre del 2005.

Teora de la Computacin

41

Instituto Tecnolgico de Celaya

Introduccin

RETROALIMENTACIN
Retroalimentacin a los ejercicios.
1.

a. A = {xx }
c. A = {xx y 5 < x <15}

2.

a. 1
c. 6

3. a. {5,6}
c. {7,8}
e. {, {5}, {6}, {7}, {8}, {5,6}, {5,7}, {5,8}, {6,7}, {6,8}, {7,8}, {5,6,7}, {5,7,8},
{5,6,8}, {6,7,8}, {5,6,7,8}}
h. {(1,5), (1,6), (1,7), (1,8), (2,5), (2,6), (2,7), (2,8), (3,5), (3,6), (3,7), (3,8), (4,5),
(4,6), (4,7), (4,8), (5,5), (5,6), (5,7), (5,8), (6,5), (6,6), (6,7), (6,8)}
4. a. 4
c. 6
5. a. Solo es una relacin.
c. Es una relacin reflexiva y simtrica.
6. a. Longitud igual a 4
c. Longitud igual a 6
Retroalimentacin a los problemas.
1. a. {,{a},{b},{a,b}}
c. { }
2.

L1 L2 = {xx L1 o x L2}
L1 * = {, j, xy, xjj, xxjj, xxxjj, xxxjjj, . }

Teora de la Computacin

42

Instituto Tecnolgico de Celaya

3.

Introduccin

c. Una funcin sobreyectiva

5. a. Solo es una relacin


c. Es reflexiva y simtrica.
7.

a. El dominio esta constituido por todos los hijos (x), mientras que el condominio
esta constituido por todas las madres de x.

Teora de la Computacin

43

C
A
P
I
T
U
L
O
II

LENGUAJES
REGULARES
OBJETIVO

Definir los lenguajes regulares, as como las


expresiones
(autmatas

mquinas

finitos)

que

abstractas
permiten

representacin y reconocimiento.

su

Instituto Tecnolgico de Celaya

Lenguajes Regulares

Expresiones
regulares.

Jerarqua de
Chomsky

Son descritos

Son representados

Lenguajes Regulares
Son reconocidos por

Se dividen

Lenguajes no regulares
Autmatas finitos
(AF)

Se clasifican

AF Determinista

AF No determinista

Figura 2.1 Diagrama temtico de la unidad II

Teora de la Computacin

45

Instituto Tecnolgico de Celaya

Lenguajes Regulares

2. LENGUAJES REGULARES

2.1 INTRODUCCIN.
La presente unidad permitir al estudiante analizar los lenguajes regulares (LR), que
son considerados como el conjunto ms pequeo de lenguajes y cuyas caractersticas los
hacen nicos. Dichos lenguajes pueden ser representados mediante expresiones regulares
(ER), que muestran de forma directa las cadenas de texto bsicas, por las que est
constituido el lenguaje regular. Adems slo son reconocidos por un tipo de mquinas
abstractas denominadas autmatas finitos (AF), de las que existen dos tipos: los autmatas
finitos determinsticos y los autmatas finitos no determinsticos.
Un LR puede ser representado por varios AF bien por varias ER, en cuyo caso se
dice que existe una equivalencia de AF o bien de ER, dichas igualdades pueden ser
demostradas mediante la aplicacin de las reglas de equivalencia ya establecidas, las cuales
son listadas en este apartado.
Como ya se dijo, los LR es el conjunto ms pequeo de lenguajes que existe, pero
como saber si un lenguaje es regular o no lo es?, esta pregunta puede ser respondida al
aplicar el conocido Lema de Bombeo; que demuestra si un lenguajes dado cumplen con
la propiedad de regularidad o simplemente es parte del conjunto de lenguajes no regulares.

Teora de la Computacin

46

Instituto Tecnolgico de Celaya

Lenguajes Regulares

2.2 AUTMATAS FINITOS.


En el capitulo anterior ya se ha mencionado de manera general los autmatas; un
autmata puede definirse como una mquina abstracta que permite el reconocimiento de los
elementos que constituyen un lenguaje. El diccionario hispano lo define como un
instrumento que encierra en su interior un mecanismo de movimientos secunciales; es
decir, este instrumento es una representacin de los eventos que se producen al realizar una
accin.
La representacin de las etapas por las que pasa un estudiante para culminar sus
estudios y convertirse en un profesionista es una abstraccin de los eventos que se realizan.
El estudiante tiene que pasar por varias etapas, primero cursa la primaria, pasa por
secundaria, preparatoria y profesional, una vez que haya concluido es aceptado como un
profesionista, sin embargo el orden de los eventos es crucial para el desarrollo del
estudiante, ya que no pudo cursar primero la preparatoria y posteriormente la primaria, ni
tampoco pudo saltar de una etapa a otra, todo se realizo en orden. Bien pues estas mquinas
abstractas que son denominadas como autmatas, permitirn representar estas secuencias
de eventos.
En particular los autmatas permiten el reconocimiento de lenguajes, de los cuales
existen diferentes tipos: los lenguajes recursivamente enumerables, los lenguajes libres del
contexto, independientes de contexto y los lenguajes regulares; la clasificacin de estos
lenguajes se debe al tipo de reglas que rigen su construccin; dichas reglas son
denominadas gramticas.
Cada regla que constituye a una gramtica es una expresin del tipo , donde y
representan cadenas, cuya cardinalidad y orden de elementos definirn el tipo de
gramtica.
De manera formal se define a una gramtica G, como un conjunto de cuatro
elementos G = (N, , S, P); donde el primero de ellos es el conjunto de smbolos no
Teora de la Computacin

47

Instituto Tecnolgico de Celaya

Lenguajes Regulares

terminales, se les llama as a aquellos smbolos que permitirn la construccin de una


palabra a travs de la sustitucin continua de los mismo, su principal caracterstica es que
son escritos siempre con letras maysculas; el segundo es el conjunto de los smbolos
terminales o alfabeto del lenguaje, estos smbolos siempre sern escritos con letras
minsculas; el tercero es el conjunto del smbolo inicial de la gramtica y el cuarto es el
conjunto de reglas o producciones3. Cada uno de los smbolos que forman una produccin
puede ser un elemento terminal y/o no terminales. Para visualizar mejor esta idea, observe
la siguiente gramtica. (Kelley, 1995, Pg.107)
S aS
S bS
Sb
La gramtica mostrada presenta el conjunto de los elementos no terminales N = {S},
en ste caso solo se cuenta con un elemento S note que dicho elemento est escrito en
letras maysculas como se mencion anteriormente; el conjunto de los elementos
terminales est constituido por = {a, b}, los cuales estn escritos con letras minsculas; el
conjunto del smbolo inicial es representado por S = {S}, y finalmente el conjunto de reglas
o producciones es P = { S aS, S bS, S b}. Dicha gramtica construye un lenguaje
constituido por palabras formadas por un indeterminado nmero de as, seguidas de bs.
La clasificacin de gramticas ms conocida es la del lingista Noam Chomsky, el
cual muestra las reglas de cada lenguaje a travs de una jerarqua.

2.2.1 Jerarqua de Chomsky


Chomsky, lingista estadounidense cre un conjunto de reglas especficas para la
seleccin y construccin de lenguajes. Chomsky estableci cuatro categoras de gramticas,
3

Se les llama as debido a la distincin de que produce () a .

Teora de la Computacin

48

Instituto Tecnolgico de Celaya

Lenguajes Regulares

las gramticas regulares, las gramticas independientes de contexto, las gramticas


dependientes de contexto y finalmente las gramticas de frase estructurada o
recursivamente enumerables (Kelley, 1995, Pg. 233); para las cuales defini las siguientes
caractersticas.
Gramticas regulares. Las reglas de esta gramticas tienen la forma donde
pertenece al conjunto de smbolos no terminal y cuya longitud debe de ser igual a uno;
es una cadena, cuya longitud debe ser mayor o igual a , adems puede estar
constituida de un smbolo o variable terminal seguido de un no terminal, o bien
nicamente de una variable terminal, es decir ( N) . Este tipo de
gramticas tambin es denominado gramtica de tipo 3. (Martin, 2004, Pg.385)
Gramticas independientes del contexto. Esta gramtica presenta reglas de la forma
, donde debe de pertenecer al conjunto de smbolos no terminales y su longitud
debe de ser igual a uno; mientras que la longitud de debe de ser mayor o igual a ,
adems puede estar constituido por smbolos terminales o no terminales, es decir
( N)*. Esta gramtica es tambin denominada gramtica del tipo 2. (Martin,
2004, Pg.385)
Gramticas dependientes del contexto. Las reglas de esta gramtica presentan al
igual que las anteriores, reglas de la forma sin embargo, la nica restriccin que
muestran es que la longitud de debe ser menor o igual a la longitud de , lo cual
puede traducirse en que y ( N)* mientras que || ||. Este tipo de
gramticas es tambin denominado como gramticas de tipo 1. (Martin, 2004,
Pg.385)
Gramticas de frase estructurada o recursivamente enumerables. Nuevamente
las reglas de esta gramtica presentan la forma , solo que este tipo de gramtica
no presenta ningn tipo de restriccin para o para , lo que se traducirse en que y
( N)*. Estas gramticas son tambin denominadas gramticas de tipo 0.
(Martin, 2004, Pg.385)
Teora de la Computacin

49

Instituto Tecnolgico de Celaya

Lenguajes Regulares

La clasificacin de estas reglas, como ya se menciono, permite la generacin de nuevos


lenguajes. La creacin de un lenguaje se basa en el reemplazo continuo de las reglas
gramaticales, llamndole a esta accin de sustitucin derivacin, y es representada por el
smbolo . De tal manera que la gramtica S aS, S bS, S b; mostrada en pginas
anterior puede ser derivada de la siguiente manera:

Derivacin 1

Derivacin 2

Derivacin 3

S aS

S aS

S aS

S aaS

S aaS

S aaS

S aab

S aaaS

S aaaS

S aaaS

S aaaaS

S aaabS

S aaaaaS

S aaabbS

S aaaaabS

S aaabbb

S aaaaabbS
S aaaaabbb

Como puede verse las derivaciones realizadas, obteniendo tres palabras diferentes que
formarn parte de un lenguaje regular, ya que la gramtica de la que proceden es clasificada
como de ste tipo.
Los lenguajes regulares (LR) son denominados como la clase ms pequea de
leguajes, seguidos de los lenguajes libres del contexto, los lenguajes dependientes del
contexto y finalmente de los lenguajes recursivamente enumerables. Como se muestra en la
figura 2.2. (Brena; 2003, Pg. 19)
Los LR tambin pueden ser definidos de la siguiente manera. Dado un alfabeto ,
pueden obtenerse un conjunto de lenguajes regulares a partir del lenguaje vaco , la
cadena nula (cuya longitud es igual a 0) { }, a partir de los lenguajes unitarios (cuya
cardinalidad sea igual a 1) { a }, y por todos los lenguajes obtenidos a partir de la
Teora de la Computacin

50

Instituto Tecnolgico de Celaya

Lenguajes
Regulares

Lenguajes Regulares

Lenguajes
libres de
contexto

Lenguajes
dependientes
al contexto

Lenguajes

Figura 2.2. Lenguajes

concatenacin ( ), unin ( ) y cerradura de estrella (*). (Kelley, 1995, Pg.49) Dicho de


otra manera para que un lenguaje se considere leguaje regular debe de cumplir con las
siguientes condiciones:
El lenguaje debe de ser finito.
El lenguaje es el resultado de la unin o concatenacin de lenguajes regulares.
El lenguaje es el resultado de la aplicacin de la cerradura de Kleene para un

lenguaje regular.
(Brena, 2003, Pg. 80)
De tal manera que si el alfabeto de un lenguaje esta determinado por = {c, e, f}, algunos
de los leguajes regulares obtenidos de este alfabeto seran:

LR =
LR = { }
LR = {e}
LR = {f}
LR = {c}
LR = {ce} ya que es la concatenacin de {c} y {e}
LR = {e, f} ya que es la unin de {e} y {f}

Teora de la Computacin

51

Instituto Tecnolgico de Celaya

Lenguajes Regulares

LR = {c, ef, e, f}
LR = { ci i0}
LR = {ei fii 0}
LR = { (ce)ii 0}

El reconocimiento de las cadenas pertenecientes a estos lenguajes puede ser auxiliado


por la construccin de diagramas. Que como ya se mencion en el capitulo anterior pueden
parecer grafos dirigidos a los cuales se les adiciona informacin sobre los elementos que
forman cada cadena del lenguaje. Los nodos de los grafos se transforman y se convierten en
estados, mientras que las aristas se convierten en transiciones y son rotuladas con los
elementos del lenguaje. Por ejemplo, consideremos el lenguaje regular representado por L
= { ei fji > 0 , j 0} del cual se obtienen las cadenas e , ef, eeeefff, eeee, el diagrama que
nos permitira validar la estructura de estas cadenas comienza su ejecucin en un estado
denominado estado inicial el cual se considerara como estado vaci, de ste a travs de
una transicin que reconozca el smbolo e permite la llegada a un estado; sta operacin
puede repetirse consecutivamente para cada elemento que constituye las cadenas, hasta
llegar a un estado que reconocer la estructura completa de estas cadenas; a dicho estado se
le denomina estado de aceptacin el cual se rtula con doble circulo como se muestra en el
diagrama de la figura 2.3. Dicho diagrama reconoce las cadenas antes mencionadas que
pueden estar formadas por una sola e, por muchas es, o por muchas es seguidas de
muchas fs.

Figura 2.3 Diagrama de transiciones

El diagrama de transiciones anterior, es la representacin del llamado autmata finito, ya


que como puede darse cuenta es una mquina abstracta cuya funcin es el reconocimiento
de los caracteres que forman las cadenas del lenguaje regular descrito en el prrafo anterior.
Teora de la Computacin

52

Instituto Tecnolgico de Celaya

Lenguajes Regulares

Dicho autmata finito es denominado as debido a que cuenta con un nmero determinado
de estados y solo reconocen a los denominados lenguajes regulares. Existen dos tipos de
autmatas finitos los deterministas y no deterministas.

2.2.2 Autmatas finitos determinsticos


Formalmente un autmata finito determinista (AFD) es una coleccin de cinco
elementos, un AFD = (Q,,s, F, ) donde
Q es una coleccin finita de estados.
es el alfabeto de entrada.
s es el estado inicial.
F es el conjunto de estados de aceptacin
es una funcin : Q x Q, la cual determina el nico estado siguiente para el

estado actual a travs de un smbolo de entrada.


(Kelley, 1995, Pg. 56)
Por ejemplo, el AFD correspondiente al diagrama de transicin de la figura 2.3 estara
representado por.
M = (Q,,s, F, ) donde
Q = {q0, q1}
= {e, f}
s = {q0}
F = {q1}
= {(q0, e) q1, (q1, e) q1,
(q1, f) q1}

Teora de la Computacin

53

Instituto Tecnolgico de Celaya

Lenguajes Regulares

Otra manera de representar estos autmatas es mediante tablas de transicin, estas


tablas son matrices cuyas columnas estn formadas por los elementos de entrada o alfabeto
del autmata (), y cuyos renglones estn constituidos por los estados que forman el
autmata, el estado inicial se marca con una flecha y el estado de aceptacin con un
asterisco, por ejemplo, el autmata de la figura 2.3 estara representado por la siguiente
tabla de transiciones. (Carrin, 2000, Pg. 21)
E

q0 q1 error
* q 1 q1

q1

Figura 2.4 Tabla de transiciones

De manera inversa podra construirse un autmata a partir de una tabla de transiciones.


El primer paso a realizar es la creacin de estados y etiquetarlo; el segundo paso a seguir es
la creacin de las aristas en donde para cada estado contenido en la celdas (i, j), por
ejemplo t(1,1) = q1, correspondiente fila i, por ejemplo, t(1) = q0, trazando una arista de q0 a
q1. (Kelley, 1995, Pg.57) Por ejemplo, el diagrama de transiciones para el AFD definido
por N = (Q,,s, F, ) donde
Q = {q0, q1, q2}
= {a, b}
s = {q0}
F = {q2}
Y cuyas estn representadas por

q0

Q0

q1

q1 error q2
* q2

Q2

q2

Figura 2.5 Tabla de transiciones del AFD N

Teora de la Computacin

54

Instituto Tecnolgico de Celaya

Lenguajes Regulares

Est dado por

Figura 2.6. AFD N

Tal diagrama acepta todas las cadenas derivadas del lenguaje L(N) = {ai bj ak i,k 0
y j es un nmero par mayor de 1}, observe que se ha introducido la notacin L(N) que
indica que todas las cadenas producidas por ste lenguaje es aceptado por el autmata N.

2.2.2.1 Equivalencia de AFD


Se dice que dos AFD son equivalentes si los lenguajes que representan cada uno de
estos autmatas son iguales, si L(N1) = L(N2), es decir pueden ser representados por
distintos AF pero las cadenas del lenguaje que reconocen, son las mismas. Por ejemplo,
observe los dos autmatas mostrados en la figura 2.7. (Kelley, 1995, Pg.60)

Figura 2.7. AFD Equivalentes

Teora de la Computacin

55

Instituto Tecnolgico de Celaya

Lenguajes Regulares

Ambos autmatas reconocen el mismo lenguaje L = {anbn 0}, sin embargo el ms


adecuado es el autmata de la figura 2.7 a), ya que cuenta con un menor nmero de estados.
A este tipo de autmatas se les denomina autmatas equivalentes.

2.2.3 Autmatas finitos no determinsticos.


Los autmatas mostrados en el apartado anterior contaban con una caracterstica en
particular, cada estado solo se cuenta con una nica transicin que llevaba de un estado a
otro por un nico smbolo de entrada. Los autmatas finitos no determinsticos (AFN) no
cumplen con esta propiedad, ya que en un AFN se pueden encontrar estados con cero, una o
ms transiciones cuyo smbolo de entrada sea el mismo. (Kelley, 1995, Pg. 61) Por
ejemplo, considere el autmata finito no determinstico que reconoce las cadenas formadas
por 0s y 1s de manera alternada (0001111000, 00000000, 1111111, 111000001110,
1100110010101), el cual esta representado por el diagrama de transicin de la figura 2.8.

Figura 2.8 AFN

Como puede observase en ambos estados existen ms de una transicin rotulada con
el mismo smbolo de entrada, lo cual produce una ambigedad.
Los autmatas finitos no determinsticos pueden definirse formalmente como una
coleccin de cinco elementos AFD = {Q, , s, F, } donde
Q es una coleccin finita de estados.
es el alfabeto de estrada.

Teora de la Computacin

56

Instituto Tecnolgico de Celaya

Lenguajes Regulares

s es el estado inicial.
F es el conjunto de estados de aceptacin
es una funcin :(Q x ) x Q, llamada relacin de transicin.

(Kelley, 1995, Pg. 62)


Observe que la definicin es prcticamente idntica a la de los AFD, excepto por las
transiciones en las cuales se indica que existe una coleccin de cero o ms transiciones con
el mismo smbolo de entrada para saltar al estado siguiente.
Con la anterior definicin puede representarse formalmente el AFN de la figura 2.8
como M = (Q, , s, F, ) donde
Q = {q0, q1}
= {0,1}
s = {q0}
F = {q1}
Y cuyas estn representadas por
0
q0 {q0, q1}
* q1

Error

1
q1
{q1, q0}

Figura 2.9 Tabla de transiciones del AFN M

Ntese que en las celdas de esta tabla se encuentran conjunto de estados lo que indica
la existencia de ms de una transicin a travs del mismo smbolo que lleva a otro estado;
esta situacin lleva a un estado de ambigedad dentro del modelo, ya que al trasladarse de
un estado a otro y existen dos transiciones iguales no es posible determinar cual de las dos
llevar al destino deseado, por lo general en este tipo de autmatas se intuye que se tomar
la transicin apropiada para el reconocimiento de las cadenas de un lenguaje. (Kelley, 1995,
Pg.63)

Teora de la Computacin

57

Instituto Tecnolgico de Celaya

Lenguajes Regulares

Al igual que en los AFD, los lenguajes que son reconocidos por un AFN se definen
como L(M) = {w w es una cadena aceptada por M}. (Kelley, 1995, Pg. 64)

2.2.3.1 Equivalencia de AFD y AFN


De igual manera que los AFD, los AFN pueden ser equivalentes. La equivalencia de
un AFD con un AFN se da cuando un lenguaje a sido reconocido tanto por un autmata
finito determinstico N como por un autmata finito no determinstico de tal manera que L
(N) = L (N) (Kelley, 1995, Pg.66). Un ejemplo de esta equivalencia se muestra en los
autmatas de la figura 2.10

Figura 2.10. a)AFD y b)AFN equivalente

Como puede observarse ambos autmatas reconocen el mismo lenguaje L = {an b


abmn, m 0}, sin embargo un autmata es determinstico mientras que el otro es un no es
Teora de la Computacin

58

Instituto Tecnolgico de Celaya

Lenguajes Regulares

determinstico. De tal manera se puede decir que dentro de los lenguajes aceptados un AFN
se incluye todos los lenguajes aceptados por AFN.

2.2.3.1 -Transiciones
Dentro de la construccin de AFN, puede encontrarse con el concepto de las transiciones, cuya funcin es de permitir el paso de un estado a otro sin consumir ningn
smbolo de entrada (Kelley, 1995, Pg. 70). Un ejemplo de este tipo de transiciones es
mostrado en la figura 2.11.

Figura 2.11.

-Transiciones

El AFN mostrado en la figura anterior presenta una -transicin que lleva del estado q1 al
estado de aceptacin q2, lo que permita que dichos autmatas reconozcan cadenas
constituidas de solo as.
Las -transiciones involucran un cambio en la funcin de transicin , la cual se
asocia pares Q x ( x { }) x Q. (Kelley, 1995, Pg.71)
La tabla de transiciones que representa el AFN de la figura 2.11 muestra una columna
ms para la cadena vaca. Figura 2.12

q0 {q1} Error error


Teora de la Computacin

59

Instituto Tecnolgico de Celaya

Lenguajes Regulares

q1 {q1}

{q2}

{q2}

q2 error Error error


Figura 2.12 Tabla de

-transiciones

La existencia de las -transiciones, permite la unin de dos autmatas finitos, lo cual


lleva a la construccin de nuevos lenguajes. Por ejemplo, se desea construir un AFN que
reconozca la unin de los lenguajes L1 = {(ab)nn 0} y L2 = {(aba)n n 0} ( L1(M1)
L2(M2) ). Cada uno de estos lenguajes es reconocido por diferentes autmatas como se
muestra en la figura 2.13 a) y 2.13 b).

Figura 2.13. Autmatas finitos. a) AFD para L1.


b) AFD para L2

Ambos AFD pueden ser unidos a travs de -transiciones, para el reconocimiento de


ambas cadenas, como se muestra en la figura 2.14 (Carrin, 2000, Pg.45) Como se
observa en la figura, el AFN reconoce la uni de ambos lenguajes, a travs de la funcin Q
x ( x { }) x Q.

Teora de la Computacin

60

Instituto Tecnolgico de Celaya

Lenguajes Regulares

Figura 2.14. L1 (M1) L2(M2)

Un segundo ejemplo de este tipo de transiciones es el siguiente, supngase que se


desea unir dos lenguajes de tipo regular (L1 L2) con fin de obtener un lenguaje L3 mucho
ms potente. El lenguaje L1 produce cadenas de un nmero indeterminado de xs seguidas
de un nmero indeterminado de ys; el segundo lenguaje produce cadenas de zs cuya
longitud mnima es de dos; o bien cadenas de xs cuya longitud mnima es de uno, seguidas
de zs cuya longitud mnima es de dos; de tal manera que el nuevo autmata permitir el
reconocimiento de cadenas del tipo: xxyy, xxxxyyyyy, zz, zzzzz, xzz, xxzzz, xxxzzzz,
xxxxxzzz. Dicho autmata es presentado en la figura 2.15.

Figura 2.15 Autmata finito reconocedor de L1 y L2

Teora de la Computacin

61

Instituto Tecnolgico de Celaya

Lenguajes Regulares

2.3 EXPRESIONES REGULARES.


En apartados anteriores los lenguajes han sido presentados mediante frmulas, en las
cuales su ejemplificacin puede no ser tan sencilla. Una manera ms natural de expresar
estos lenguajes es mediante la construccin de expresiones regulares (ER). Estas
expresiones regulares no son ms que la representacin inicial de las palabras que forman el
lenguaje. Una ER puede definirse como:
Sea un alfabeto . Las expresiones regulares (ER) sobre contienen las cadenas del
alfabeto unidos a la cadena vaca ( ), la unin (+), la concatenacin ( ), las
cerraduras (*, +), a los parntesis ( (,)), y al lenguaje vaco (); y que cumplen
con las siguientes caractersticas:
1. y ER
2. Si entonces ER
3. Si E1, E2 ER, entonces (E1 + E2) ER, (E1 E2 ) ER, (E1 *
E2 ) ER.
(Brena, 2003, Pg. 81)
Por ejemplo, el lenguaje L = {an b n 0 } puede ser representado como (a* b) , o bien
tan a* b omitiendo los parntesis, las comillas y la concatenacin, que normalmente quedan
explcitos en la expresin regular. Algunos ejemplos de expresiones regulares son:

1. aa*b
2. (ab)*
3. (ab)+
4. c*(c*d)*
5. (a + b)*

Teora de la Computacin

62

Instituto Tecnolgico de Celaya

Lenguajes Regulares

Para que una expresin regular sea aceptada como tal debe de cumplir con dos
caractersticas, la primera es la correccin en donde las palabras que representa la ER
deben satisfacer la descripcin del problema, es decir se debe validar que las cadenas
obtenidas de la expresin regular sea las requeridas por el lenguaje; la segunda
caracterstica es la de la completes, la ER propuesta debe representar todas las palabras que
satisfagan la condicin, ambas caractersticas se enfocan a que las cadenas que produzca la
ER debe satisfacer todas las condiciones del lenguaje que esta representado. (Brena, 2003
Pg. 83)

2.3.1 Equivalencia de expresiones regulares.


Ya se ha hablado de la equivalencia de autmatas, ahora se hablara de la equivalencia
entre ER. La equivalencia de ER se da cuando dos o ms expresiones producen los mismos
lenguajes, tales equivalencias son mostradas a continuacin.

1. R+S = S+R
2. R+ = +R = R
3. R+R = R
4. (R+S) + T = R+(S+T)
5. R = R=R
6. R = R =
7. (RS)T = R(ST)
8. R (S+T) = RS+RT
9. (S+T)R = SR+TR
10. R*= R*R*= (R*)*= ( + R)*= R*(R + ) = (R+ )R*= +RR*
11. (R+S)* = (R*+ S*)*=(R*S*)*=(R* S)*R*=R*(SR*)* R*+ S*
12. RR*= R*R
13. R(SR)*=(RS)*R

Teora de la Computacin

63

Instituto Tecnolgico de Celaya

Lenguajes Regulares

14. (R* S)*= +(R+S)*S


15. (R S*)*= +R(R+S)*
16. S(R+ )* (R+ )+S=SR*
(Brena, 2003, Pg. 87)
Estas equivalencias pueden ser usadas para comprobar si dos ER producen el mismo
lenguaje. Por ejemplo, verificar que las ER (s + )* y s* son equivalente.
Comprobando.
(s + )* = r* por la equivalencia 1 que dice R+S =S+R tenemos
(s + )* = ( + s)* por la equivalencia 10 que dice R*= ( +R)* tenemos
(s + )* = s* por lo tanto las expresiones si son equivalentes.

2.4 LENGUAJES NO REGULARES


Los lenguajes estudiados hasta este momento han sido los denominados lenguajes
regulares, los cuales se ha dicho, son los nicos que pueden ser representados mediante
autmatas finitos y expresiones regulares. Pero, cmo saber si un lenguaje L es regular o
no lo es?, antes de iniciar con la bsqueda de su expresin regular o bien de su autmata
finito; ya que como se sabe la clase de los lenguajes regulares es muy pequea y por lo
tanto la posibilidad de que un lenguaje cualquiera sea regular es tambin escasa.
Una manera de comprobar la regularidad de un lenguaje es mediante el lema de bombeo,
cuya definicin es la siguiente:

Teora de la Computacin

64

Instituto Tecnolgico de Celaya

Lenguajes Regulares

Si L es un lenguaje infinito; para el cual existe un entero n para cualquier w L, y


cuya longitud es mayor o igual a n (w n), existen cadenas x, y, z tal que:
w =xyz
xy n
y> 0
para cada xyi z L, donde i 0
(Martin, 2004, Pg.181)
La eleccin de la cadena w, es arbitraria la nica condicin que debe cumplir es que sea
mayor o igual a n. De la misma manera la eleccin de cmo dividir esta cadena en los tres
elementos es libre, solo se deben de cumplir con las condiciones de longitud para x y y.
La aplicacin de este lema sobre un lenguaje comprobar la regularidad o no
regularidad del mismo, siempre y cuando cumpla con la propiedad descrita.
Demostremos la funcionalidad de este lema a travs de un ejemplo. Consideremos el
lenguaje L = {ai bj cj i, j > 0} que produce cadenas como abc, abbcc, aabbbccc, aabbbccc,
cuya caracterstica principal es que exista el mismo nmero de bs que de cs. Apliquemos
el lema del bombeo para verificar si el lenguaje es un lenguaje regular, considrese que n
es la constante mencionada en el lema y adems que n = j y w = aabbbccc cuya longitud es
mayor a n. Ahora w se divide en x = aa, y= b y z=bbccc, donde xy 3 y y > 0; si
elevamos yi donde i=3, obtenemos la cadena aabbbbbccc la cual no pertenece al lenguaje
inicial, por lo tanto este es un lenguaje no regular.

Teora de la Computacin

65

Instituto Tecnolgico de Celaya

Lenguajes Regulares

RESUMEN
Un autmata puede definirse como una mquina abstracta que permite el
reconocimiento de los elementos que constituyen un lenguaje. Los lenguajes pueden ser
clasificados en cuatro tipos deferentes: los lenguajes recursivamente enumerables, los
lenguajes libres del contexto, independientes de contexto y los lenguajes regulares; la
clasificacin de estos lenguajes se debe al tipo de reglas que rigen su construccin; dichas
reglas son denominadas gramticas.
Cada regla que constituye a una gramtica es una expresin del tipo , donde y
representan cadenas, cuya cardinalidad y orden de elementos definirn el tipo de
gramtica.
De manera formal se define a una gramtica G, como una 4-tupla G = (N, , S, P);
donde el primero de ellos es el conjunto de todos los smbolos no terminales, su principal
caracterstica es que son escritos siempre con letras maysculas; el segundo es el conjunto
de los smbolos terminales o alfabeto del lenguaje, estos smbolos siempre son escritos con
letras minsculas; el tercero es el conjunto del smbolo inicial de la gramtica y el cuarto es
el conjunto de reglas o producciones de dicha gramtica. Cada uno de los smbolos que
forman una produccin puede ser un elemento terminal y/o no terminales.
La clasificacin de gramticas ms conocida es la del lingista Noam Chomsky, el
cual muestra las reglas de cada lenguaje a travs de la jerarqua de Chomsky presentada a
continuacin.
Gramticas regulares. Las reglas de esta gramticas tienen la forma donde
pertenece al conjunto de smbolos no terminal y cuya longitud debe de ser igual a uno,
y es una cadena de terminales y no terminales, cuya longitud debe ser mayor o igual
a .

Teora de la Computacin

66

Instituto Tecnolgico de Celaya

Lenguajes Regulares

Gramticas independientes del contexto. Esta gramtica presenta reglas de la forma


, donde debe de pertenecer al conjunto de smbolos no terminales y su longitud
debe de ser igual a uno; mientras que la longitud de debe de ser mayor o igual a , y
puede estar constituido por smbolos terminales o no terminales.
Gramticas dependientes del contexto. Las reglas de esta gramtica presentan,
reglas de la forma sin embargo, la nica restriccin que presentan es que la
longitud de debe ser menor o igual a la longitud de , lo cual puede traducirse en
que y ( N)* mientras que || ||.
Gramticas de frase estructurada o recursivamente enumerables. Nuevamente
las reglas de esta gramtica presentan la forma , solo que ste tipo de gramtica
no presenta ningn tipo de restriccin para o para .
La clasificacin de estas reglas, como ya se menciono, permite la generacin de
nuevos lenguajes. La creacin de un lenguaje se basa en el reemplazo continuo de las reglas
gramaticales, llamndole a esta accin de sustitucin derivacin, y es representada por el
smbolo .
Dado un lenguaje , pueden obtenerse un conjunto de lenguajes regulares (LR)
formados por el lenguaje vaco , por todos los lenguajes unitarios { }, y por todos los
lenguajes obtenidos a partir de la concatenacin ( ), unin ( ), cerradura de Kleen (*) y
cerradura positiva (+), de estos lenguajes unitarios. Dicho de otra manera para que un
lenguaje se considere leguaje regular debe de cumplir con las siguientes condiciones:
El lenguaje debe de ser finito.
El lenguaje es el resultado de la unin o concatenacin de lenguajes regulares.
El lenguaje es el resultado de la aplicacin de la cerradura de Kleene para un

lenguaje regular.
El reconocimiento de las cadenas pertenecientes a estos lenguajes puede ser auxiliado
por la construccin de diagramas. Estos diagramas son denominados autmata finito, y se

Teora de la Computacin

67

Instituto Tecnolgico de Celaya

Lenguajes Regulares

define como puede darse cuenta es una mquina abstracta cuya funcin es el
reconocimiento del lenguaje.
Existen dos tipos de autmatas finitos los deterministas y no deterministas.
Formalmente un autmata finito determinista (AFD) es una coleccin de cinco
elementos, un AFD = (Q,,s, F, ) donde
Q es una coleccin finita de estados.
es el alfabeto de entrada.
s es el estado inicial.
F es el conjunto de estados de aceptacin
es una funcin :Q x Q, la cual determina el nico estado siguiente para el

estado actual a travs de un smbolo de entrada.


Puede observar un ejemplo de esta representacin, en la pagina 53 de este capitulo.
Otra manera de representar estos autmatas es mediante una tabla de transicin, este
tipo de tablas son matrices cuyas columnas estn formadas por los elementos de entrada o
alfabeto del autmata (), y cuyos renglones estn constituidos por los estados que forman
el autmata, el estado inicial se marca con una flecha y el estado de aceptacin con un
asterisco.
De manera inversa podra construirse un autmata a partir de una tabla de transiciones.
El primer paso a realizar es la creacin de estados etiquetados; el segundo paso es la
creacin de las aristas en donde para cada estado contenido en la celdas (i, j),
correspondiente fila i, se traza una arista de qi al qi+1.
Los autmatas descritos anteriormente cuentan con una caracterstica en particular,
cada estado solo se cuenta con una nica transicin que llevaba de un estado a otro por un
nico smbolo de entrada. Sin embargo los autmatas finitos no determinsticos (AFN) no
Teora de la Computacin

68

Instituto Tecnolgico de Celaya

Lenguajes Regulares

cumplen con esta propiedad, ya que en un AFN se pueden encontrar estados con cero, una o
ms transiciones cuyo smbolo de entrada sea el mismo, lo cual produce ambigedad.
Los autmatas finitos no determinsticos pueden definirse formalmente como una
coleccin de cinco elementos AFD = {Q, , s, F, }, los cuatro primeros son idnticos a
los de un AFD, sin embargo las transiciones cambian si se convierten a la forma :(Q x )
x Q, indicando que existe una coleccin de cero o ms transiciones con el mismo smbolo
de entrada para saltar al estado siguiente.
Otra manera de expresar los lenguajes regulares de los que se han estado hablando es
mediante la construccin de expresiones regulares. Estas expresiones regulares es
construida con las cadenas de un alfabeto , unidas con la cadena vaca ( ), la unin
(+), a la concatenacin ( ), a las cerraduras (*, +), a los parntesis ( (,)), y al
lenguaje vaco (); y que cumplen con las siguientes caractersticas:

1. y ER
2. Si entonces ER
3. Si E1, E2 ER, entonces (E1 + E2) ER, (E1 E2 ) ER, (E1
* E2 ) ER.

Las ER pueden ser equivalentes entre ellas; tales equivalencias se muestran a


continuacin.
1. R+S = S+R
2. R+ = +R = R
3. R+R = R
4. (R+S) + T = R+(S+T)
5. R = R=R
6. R = R =
Teora de la Computacin

69

Instituto Tecnolgico de Celaya

Lenguajes Regulares

7. (RS)T = R(ST)
8. R (S+T) = RS+RT
9. (S+T)R = SR+TR
10. R*= R*R*= (R*)*= ( + R)*= R*(R + ) = (R+ )R*= +RR*
11. (R+S)* = (R*+ S*)*=(R*S*)*=(R* S)*R*=R*(SR*)* R*+ S*
12. RR*= R*R
13. R(SR)*=(RS)*R
14. (R* S)*= +(R+S)*S
15. (R S*)*= +R(R+S)*
16. S(R+ )* (R+ )+S=SR*
Se ha hablado ya de los lenguajes regulares como los nicos que pueden ser
representados mediante autmatas finitos y expresiones regulares. Pero, cmo saber si un
lenguaje L es regular o no lo es? Una manera de comprobar la regularidad de un lenguaje es
mediante el lema de bombeo, cuya definicin es la siguiente:
Si L es un lenguaje infinito; para el cual existe un entero n para cualquier w L, y
cuya longitud es mayor o igual a n (w n), existen cadenas x, y, z tal que:
w =xyz
xy n
y> 0
para cada xyi z L, donde i 0

La eleccin de la cadena w, es arbitraria la nica condicin que debe cumplir es que


sea mayor o igual a n. De la misma manera la eleccin de cmo dividir esta cadena en los
tres elementos es libre, solo se deben de cumplir con las condiciones de longitud para x y y.

Teora de la Computacin

70

Instituto Tecnolgico de Celaya

Lenguajes Regulares

GLOSARIO
Autmata finito. Mquina abstracta que representa una cantidad finita de estados.
Lenguajes regulares. Son denominados como la clase ms pequeo de lenguajes,

y cuentan con las siguientes caractersticas:


1. Un lenguaje regular es finito.
2. Un lenguaje unitario, es regular.
3. Un lenguaje regular es el resultado de la unin o concatenacin de lenguajes
regulares.
4. Un lenguaje regular es el resultado de la aplicacin de la cerradura de
Kleene para un lenguaje regular.
Diagrama de transicin. Un diagrama de transiciones puede parecer un grafo con

informacin adicional. En el cual se los nodos son convertidos es estados y las


aristas en transiciones. Los diagramas de transicin estn constituidos de un
nmero determinado de estados, entre los que se encuentra un estado inicial y un
estado aceptacin, rotulado por doble circulo, como se muestra en la figura 2.16

Figura 2.16 Diagrama de transiciones

Autmatas finitos determinsticos. Formalmente un autmata finito determinstico

(AFD), es una coleccin de cinco elementos, (Q, , s, F, ), donde


-

Q es una coleccin finita de estados.

es el alfabeto de estrada.

s es el estado inicial.

F es el conjunto de estados de aceptacin

Teora de la Computacin

71

Instituto Tecnolgico de Celaya

Lenguajes Regulares

es una funcin :Q x Q, la cual determina el nico estado siguiente


para el estado actual a travs de un smbolo de entrada.

Tabla de transicin. Matrices cuyas columnas estn formadas por los elementos de

entrada o alfabeto del autmata (), y cuyos reglones estn constituidos por los
estados que forman el autmata. El estado inicial del autmata en una tabla de este
tipo, es sealado con la flecha, mientras que el estado de aceptacin es sealado
con un asterisco.
Equivalencia de AFD. Se dice que dos AFD con equivalentes si los lenguajes que

representa son iguales L (N1) = L (N2).


Autmatas finitos no determinsticos (AFN). Los AFN son autmatas que

contiene estados con cero, una o ms transiciones cuyo smbolo de entrada es el


mismo. Un AFN puede definirse formalmente como una coleccin de cinco
elementos AFD = {Q, , s, F, } donde

Q es una coleccin finita de estados.

es el alfabeto de estrada.

s es el estado inicial.

F es el conjunto de estados de aceptacin

es una funcin :(Q x ) x Q, llamada relacin de transicin.

Equivalencia de AFD y AFN. La equivalencia de los AFD con los AFN se da

cuando un lenguaje a sido reconocido tanto por un AFD N como por un AFN N
de tal manera que L (N1) = L (N2).
-Transiciones. Las -transiciones tiene la funcin de permitir el paso de un

estado a otro sin consumir ningn smbolo de entrada.


Expresiones regulares. Podemos definir a una expresin regular como, sea un

alfabeto . Las expresiones regulares (ER) sobre son cadenas del alfabeto
unidas a la cadena vaca ( ), a la unin (+), a la concatenacin ( ), a las
cerraduras (*, +), a los parntesis ((,)), y al lenguaje vaco (); y que
cumplen con las siguientes caractersticas:
Teora de la Computacin

72

Instituto Tecnolgico de Celaya

Lenguajes Regulares

y ER

Si entonces ER

Si E1, E2 ER, entonces (E1 + E2) ER, (E1 E2 ) ER,


(E1 * E2 ) ER.

Lenguajes no regulares. Una manera de comprobar la regularidad de un lenguaje

es mediante el lema de bombeo, cuya definicin es la siguiente: Si L es un


lenguaje infinito; para el cual existe un entero n para cualquier w L, y cuya
longitud es mayor o igual a n (w n), existen cadenas x, y, z tal que:
w =xyz
xy n
y> 0
para cada xyi z L, donde i 0
La aplicacin de este lema sobre un lenguaje comprobar la regularidad o no
regularidad del mismo, siempre y cuando cumpla con la propiedad descrita.

Teora de la Computacin

73

Instituto Tecnolgico de Celaya

Lenguajes Regulares

EJERCICIOS.

1. De acuerdo a la jerarqua de Chomsky, clasifique las siguientes gramticas.


a)

A aA
A bA
A bB
B cB
B ccB
Cd

b)

S ScS
S SbS
Sa

c)

Z yZ
Z xY
Y zY
Yz

d)

S aSb
S Eb
E aS
E

e)

S AA
AA aAA
AA
AA aB
Ba
B bB
B

f)

S eB
Se
B eB
B fB
Be
Bf

2. Defina formalmente, que es un lenguaje?


3. Defina formalmente una gramtica.
4. Describa la clasificacin de las gramticas de acuerdo a Chomsky.
5. Conteste correctamente las siguientes preguntas.
a. Cmo se relaciona un lenguaje con una gramtica?
b. Qu es una derivacin?

Teora de la Computacin

74

Instituto Tecnolgico de Celaya

Lenguajes Regulares

PROBLEMAS
1. Disee los autmatas finitos determinstico, que reconozcan los siguientes lenguajes.
a. L = {xn ym zo n,m,o 0}
b. L = { e fn e n > 0}
c. L = {(aibbaj)k i, j, k 0}
d. L = {x x no contiene subacadenas aa o bb }
e. L = {w w

tiene cero o ms as, un nmero par de bs, seguidas

nuevamente de cero o ms as }
2. Defina formalmente los AFD que construyo en la pregunta anterior.
3. Disee los autmatas finitos no determinsticos equivalentes que reconozcan los
lenguajes de la pregunta 1.
4. Construya un AF usando las transiciones , que reconozcan los siguientes lenguajes.
a. (aa aba)*
b. c*(a ac*)*
c. b* ab*a
5. Compruebe la regularidad de los siguientes lenguajes.
a. L = {xn yn zo n,o 0}
b. L = {cn bbb n > 0}
c. L = {bn a m cs n,m,s >0}
d. L = {(kabba)k i, j, k 0}
e. L1 = {ai bj i 0, j > 0}
6. Simplifique las siguientes expresiones regulares.
a. ( aa)*
b. ( aa) ( aa)*
c.

(a ) a*b

d. a ( aa)*a
e. (aa)* a (aa)*

Teora de la Computacin

75

Instituto Tecnolgico de Celaya

Lenguajes Regulares

7. Dado el AFD representado por


Q = {q0, q1}
= {a,b}
s = {q0}
F = {q1}
Y cuyas estn representadas por
A
q0 {q0, q1}
* q1

Error

b
q1
{q0, q1}

Figura 2.17 Tabla de transiciones del AFD

Construir su diagrama de transiciones.

Teora de la Computacin

76

Instituto Tecnolgico de Celaya

Lenguajes Regulares

LECTURA COMPLEMENTARIA
Lingstica Computacional
La lingstica computacional, es una disciplina que estudia los sistemas
computacionales para la comprensin y generacin de lenguaje natural. Histricamente, el
trmino se acua en la dcada de 1960 en un contexto que vincula a esta disciplina a la
informtica y, ms concretamente, a la inteligencia artificial. Sin embargo, son muchas
otras las disciplinas que han contribuido a aquilatar su mbito de estudio, las tecnologas
que utiliza, los presupuestos tericos en que se apoya y los mtodos de investigacin que
aplica: desde la ingeniera elctrica y electrnica o la lingstica hasta la psicologa,
pasando por la lgica y la ciencia cognitiva.
Las aproximaciones al procesamiento automtico de las lenguas naturales desde cada
una de estas ramas del saber humano son muy diferentes, tanto en su extensin como en el
enfoque adoptado. As, la ingeniera elctrica se ha interesado slo en el procesamiento de
la seal acstica para el reconocimiento del habla y en el empleo de mtodos numricos, y
la lingstica en un enfoque terico basado en mtodos simblicos que resulte un simple
remedo de los niveles de descripcin de la gramtica, en tanto que la informtica ha
impuesto una visin aplicada, de ingeniera, que permita crear sistemas informticos con
capacidades lingsticas que los asemejen a los humanos. Esta disparidad de intereses y
objetivos ha enriquecido la disciplina, pero tambin ha introducido una variedad
terminolgica importante, pues el trmino lingstica computacional coexiste con otros
como los de procesamiento del lenguaje natural, ingeniera lingstica o tecnologas
del lenguaje humano, por mencionar tan solo unos pocos.
Aunque esta disciplina recibe su nombre hace tan solo 40 aos, en los 20 aos
anteriores se ha ido configurando a partir de una serie de paradigmas fundacionales como la
teora de autmatas, la teora de la informacin y la teora de lenguajes formales, as como
de la decepcionante experiencia adquirida en el desarrollo de los primeros sistemas de
traduccin automtica, primera aplicacin no numrica llevada a cabo con los ordenadores
Teora de la Computacin

77

Instituto Tecnolgico de Celaya

Lenguajes Regulares

y, probablemente, una de las tareas humanas relacionadas con las lenguas ms costosas y
difciles de formalizar.
Adems de las tcnicas, propias o tomadas de otras disciplinas, los avances en
lingstica computacional han sido posibles gracias a la creacin de recursos lingsticos
como lexicones, gramticas formales y corpus textuales, que han permitido aumentar el
grado de formalizacin de nuestro conocimiento de las lenguas naturales.
La lingstica computacional, en su enfoque prctico, persigue el desarrollo de
aplicaciones con capacidad lingstica, que pueden estructurarse en torno a cuatro ejes: la
mejora de la relacin persona/ordenador, la comunicacin entre las personas, la gestin de
la informacin y las herramientas de creacin de documentacin. En todos ellos, y no slo
en el segundo, es posible aadir tanto una dimensin multilinge como un componente de
procesamiento de habla (un conversor voz-texto o texto-voz).
En el primero de estos ejes se sitan aplicaciones como el reconocimiento del habla
natural, es decir, continua, e independiente del hablante (que se utiliza en los sistemas de
dictado automtico), la sntesis de voz (que escuchamos en algunos servicios de telefona) y
la interaccin con los ordenadores por medio de comandos de voz, pero tambin la
interrogacin a bases de datos en lengua natural y el desarrollo de interfaces
multimodalidades que permitan utilizar todos los canales sensoriales y que favorezcan, por
tanto, la integracin de los discapacitados.
La comunicacin entre las personas se materializa en la traduccin de lenguas
humanas. Junto a la traduccin automtica, uno de los sueos de la humanidad desde Blaise
Pascal y Gottfried Wilhelm von Leibniz, slo alcanzado, de momento, en dominios
restringidos, han surgido otras ayudas a la traduccin como los sistemas de memorias de
traduccin (colecciones de pares de segmentos de traduccin, que evitan la retraduccin de
fragmentos ya traducidos).
La recuperacin y la extraccin de informacin relevante de fondos documentales es
otro de los ejes de aplicacin de la lingstica computacional. La nuestra es todava una

Teora de la Computacin

78

Instituto Tecnolgico de Celaya

Lenguajes Regulares

generacin vinculada a la documentacin textual como portadora fundamental de


informacin, por lo que la recuperacin de documentos (realizada normalmente con
tcnicas numricas), la extraccin de informacin estructurada a partir de un texto (para la
que suelen aplicarse tcnicas simblicas) o la generacin automtica de resmenes de
textos (que suele emplear tcnicas estadsticas y conocimiento heurstico sobre la estructura
del discurso) se consideran aplicaciones fundamentales hoy en da, especialmente si los
criterios para recuperar o extraer conocimiento pueden expresarse en otra lengua (es decir,
los sistemas poseen una dimensin multilinge) y se vinculan a la gestin de informacin
procedente de Internet.
El ltimo de los ejes de aplicacin hace hincapi en la produccin lingstica. Si
resulta indispensable disponer de mecanismos adecuados de gestin de la informacin es
porque producimos una gran cantidad de documentos en formato electrnico. Durante el
proceso de creacin de estos documentos, tambin es posible intervenir desde la lingstica
computacional de manera que aspectos como la correccin lingstica, la adecuacin
pragmtica o la facilidad de traduccin se tengan en cuenta. As, los correctores
ortogrficos, gramaticales y de estilo facilitan la identificacin de errores en la escritura,
aunque de manera muy poco satisfactoria, de momento; y las herramientas de lenguaje
controlado permiten identificar el tipo de documento que se est escribiendo y sugerir
frmulas habituales, as como reducir el tipo de palabras y la complejidad de las estructuras
empleadas en su redaccin, lo que redunda en una mejora de resultados para un sistema de
traduccin automtica.

Artculo obtenido de:


Microsoft Encarta 2006. "Lingstica computacional." Microsoft Corporation, 2006.

Teora de la Computacin

79

Instituto Tecnolgico de Celaya

Lenguajes Regulares

BIBLIOGRAFA

1. Brena,

verano

2003

Ramn

Brena.

Autmatas

Lenguajes.

En:

http://lizt.mty.itesm.mx/~rbrena/AyL.html. Consultado por ltima vez en Abril del


2006.
2. Carrin Viramontes, 2000, Jorge Eduardo Carrin Viramontes. Lenguajes y
Autmatas. Primera edicin. Editorial: ACD.
3. Dean Kelley, mayo 1995 Dean Kelley: Teora de autmatas y lenguajes formales.
Editorial: Prentice-Hall.
4. ENCARTA, 2006. Biblioteca de Consulta Microsoft Encarta. DE 1993 a 2005.
Editado por Microsoft Corporation.
5. John Martin. 2004, John C. Martin. Lenguajes formales y teora de la
computacin Editorial: Mc Graw Hill.

Teora de la Computacin

80

Instituto Tecnolgico de Celaya

Lenguajes Regulares

RETROALIMENTACIN.
Retroalimentacin a los ejercicios.
1.

a) Gramtica independiente del contexto o de tipo 2.


c) Gramtica regular o de tipo 3.
e) Gramtica recursivamente enumerable o de tipo 0.

3. Una gramtica G es un tupla, representada por: G = (, N, S, P)


Donde
es un alfabeto
N es una coleccin de smbolos no terminales
S es un smbolo no terminal llamado smbolo inicial y
P es una coleccin de reglas de sustitucin, llamadas producciones.
5.

Todo lenguaje formal esta definido por una gramtica. El lenguaje es un conjunto
infinito y por lo tanto la finites o la infinites del lenguaje dependen de la gramtica
que lo gobierne.

Retroalimentacin a los problemas.


1.

a.

c.

Teora de la Computacin

81

Instituto Tecnolgico de Celaya

Lenguajes Regulares

e.

3. a.

c.

e.

Teora de la Computacin

82

Instituto Tecnolgico de Celaya

4.

Lenguajes Regulares

a.

c.

5.

a.

No es regular

c.

Si es regular

e.

Si es regular

7.

Teora de la Computacin

83

C
A
P
I
T
U
L
O
III

LENGUAJES
INDEPENDIENTES
DEL CONTEXTO
OBJETIVO
Definir los lenguajes libres de contexto, sus
propiedades y las mquinas que permiten su
reconocimiento.

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

rbol de derivacin.
Representan la derivacin
de la gramtica
Eliminacin de factores
comunes izquierdos.

Son representadas
Gramtica
Libres del
contexto

Provienen

Lenguajes
Independientes del
contexto.

Forma Normal de
Greibach

Tcnica
Transformndola la a
Estandarizacin
Una gramtica GIC
puede ser estandarizada

Tcnica

Eliminacin de recursividad
izquierda.

Transformndola a la

Forma Normal
Chomsky

Figura 3.1 Diagrama temtico de la unidad III

Teora de la Computacin

85

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

3. LENGUAJES INDEPENDIENTES DEL CONTEXTO

3.1 INTRODUCCIN
En la presente unidad se estudian los llamados lenguajes independientes del contexto,
su fuente y todas las propiedades con que cuentan.

Como ya se menciono en unidades anteriores las gramticas independientes del


contexto deben su clasificacin al lingista Noam Chomsky, el describe las caractersticas
con que deben de contar. En la unidad que est por abordar se presentan nuevamente estas
gramticas, su construccin y su representacin a travs de diagramas denominados
rboles de derivacin.

La existencia de dichos rboles permite observar una nueva caracterstica de estas


gramticas, la ambigedad. La cual permite que las gramticas produzcan palabras que
podran no pertenecer al lenguaje del que se supone procede dicha gramtica, lo que
producira un grave error.

Cuando una gramtica es descubierta como ambigua lo natural es que se desee


eliminar dicha ambigedad, una tcnica para la eliminacin de este problema es la
bsqueda empr ica de una nueva gramtica para el lenguaje, o bien pueden transformarse a
una forma normal, que no es otra cosa ms que una estandarizacin de formato; en
particular de la forma en que aparecen ordenados los smbolos terminales y no terminales.

Finalmente se describen las mquinas abstractas que reconocen los lenguajes


producidos por estas gramticas libre o independientes del contexto, ya que por sus
caractersticas no pueden ser reconocidos por un autmata finito; las mquinas de las que se
esta hablando son las denominadas como Autmatas de Pila AP que son estudiados al
final de la unidad.
Teora de la Computacin

86

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

3.2 GRAMTICAS LIBRES DE CONTEXTO.

As, como una empresa requiere de reglas firmes para que su desarrollo sea exitoso; la
creacin de los lenguajes formales requiere tambin de la existencia de reglas gramaticales
que indiquen cual ser su constitucin. Dichas reglas son llamadas gramticas.

La gramtica se define como una rama de la lingstica, que estudia la forma y la


composicin de las palabras. En particular la gramtica, se estudia como un conjunto de
reglas que rigen el orden de las palabras en una oracin. En el caso particular en el estudio
de la teora de la computacin las gramticas son un conjunto de reglas del tipo a ? , que
rigen la construccin de las palabras pertenecientes a un lenguaje, y como se menciono en
la unidad pasada se sabe que las gramticas estn clasificadas en cuatro grupos. Sin
embargo no se sabe como son construidas, pues bien, una gramtica puede ser construida
en base a las caractersticas que presentan las palabras pertenecientes a un lenguaje, o bien
en base a un autmata o mquina abstracta; tal construccin es presentada a continuacin.

3.2.1 Construccin de gramticas.


Una vez que se han definido los tipos de gramticas se puede considerar que toda
gramtica genera un tipo de lenguaje particular, el cual ser constituido por todas las
posibles cadenas de variables terminales que sean obtenidas a travs de una derivacin a
partir de un smbolo inicial. Las gramticas regulares (GR) construyen lenguajes regulares
como L = {e i f j i > 0, j = 0} estudiado en la unidad anterior, y cuyo AF esta representado
en la figura 3.2

Figura 3.2. AF para el leguaje L L = {e i f j i > 0, j = 0}

Teora de la Computacin

87

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

Sin embargo el lenguaje anterior no tiene establecida un conjunto de reglas que rijan su
construccin, por lo cual es conveniente que le construya n unas, para este fin se usar el
siguiente procedimiento.

La construccin de una gramtica a partir de un AF se inicia por dividir el autmata


en partes; en el caso del autmata anterior se considerarn dos divisiones, las cuales son
mostradas en la figura 3.3, donde puede observarse que la primera transicin construye
cadenas iniciadas con una e seguidas de algo ms, lo cual puede ser representado por algn
otro smbolo, por ejemplo por B; o bien tambin muestra que puede construir palabras que
contengan solo una e; de tal manera que obtenemos las dos primeras reglas de construccin
S ? eB y S ? e donde S es el smbolo inicial de la gramtica. La segunda parte del AF
produce es o bien fs, por lo que B puede producir dos caminos diferentes, B ? eB o bien
B ? fB, la presencia de B en le lado derecho de la regla creada permite que las es y fs se
repitan continuamente, finalmente se requiere de que las cadenas de dicho lenguaje
terminen con una e o una f para lo cuales crean las produccio nes B ? e y B ? f.

Figura 3.3. Divisin de un AF

La gramtica obtenida del AF de la figura 3.3 es:

S?

eB

S? e
B ? eB
B ? fB

Teora de la Computacin

88

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

B? e
B? f
Como se ha visto el proceso de construccin de una gramtica no es muy complicado, sin
embargo cabe la duda de saber, s en realidad la gramtica obtenida construye las mismas
cadenas que el AF del cual ha sido obtenida; de manera intuitiva se podra decir que s!,
ahora que si se desea obtener una repuesta basada en hechos, se pueden aplicar dos tipos de
pruebas; la prueba de correccin y la prueba de completez, las cuales se realizan en base a
la prueba de induccin matemtica que ya se ha mencionado en unidades anteriores.

La prueba de correccin garantiza que todas las palabras que se producen al utilizar la
gramtica, efectivamente corresponden a la descripcin del lenguaje dado; basndose en la
longitud de la derivacin. Mientras que la prueba de la completez se asegura que la
gramtica produzca todas las palabras requeridas por el lenguaje. (Brena, 2003, Pg. 125)

Del mismo modo que dice que una GR produce un lenguaje regular (LR), se puede
decir que las gramticas independientes del contexto (GIL), construyen lenguajes
independientes de contexto (LIC), de los cuales se hablar a continuacin.

Como ya se menciono las GIL se caracterizan por que el lado derecho de sus
producciones a? no cuentan con alguna restriccin en cuanto a los tipos de elementos
que deben frmala, por lo que una gramtica de este tipo puede ser:

S ? aCa
C ? aCa
C? b

Obsrvese que existe ms de un smbolo terminal que aparece en la primera y segunda


produccin, lo cual indica que la gramtica no es de tipo regular. Para obtener las cadenas

Teora de la Computacin

89

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

del LIC y poder representarlo mediante una formula, se hace uso del concepto de
derivacin que ya se ha mencionado en pginas anteriores, obteniendo la siguiente cadena.

S ? aCa
aaCaa
aaaCaaa
aaabaaa

De esta derivacin se obtiene la palabra aaabaaa que pertenece al LIC, y s se continua


derivando pueden obtenerse las cadenas: aabaa, aaaabaaaa, aaaaabaaaaa, etc., lo cual indica
que el lenguaje aqu presentado esta constituido por cadenas de la forma aba donde el
nmero de as que envuelven a b son iguales; por lo tanto, la formula que representara
dicho lenguaje seria { an b an | n >0}.

3.3 RBOLES DE DERIVACIN


Los rboles de derivacin son denominados as ya que con ellos pueden ser
representadas cada una de las acciones de sustitucin realizadas sobre una gramtica, las
cuales, como ya se dijo son conocidas como derivaciones. Los rboles de derivacin son
grficos que estn constituidos por nodos que son unidos entre si por medio de lneas
denominadas aristas; estas uniones construyen ramificaciones que se extienden de acuerdo
al nmero hijos con los que cuente cada nodo; dichos grficos no deben de ser
desconocidos para el lector que ya cuenta la experiencia de cursos de programacin
avanzada. (Kelley, 1995, Pg.117)

Estos rboles se construyen colocando en el nodo inicial o nodo raz el smbolo


inicial de la gramtica, el cual tendr como nodos hijos cada uno de los smbolos que

Teora de la Computacin

90

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

produce, y estos a su vez producirn nuevos nodos hijos, siempre y cua ndo no se llegue a
tener como nodo hijo a un smbolo terminal, ya que en cuyo caso se tendra un nodo hoja.
(Kelley, 1993, Pg. 117) Por ejemplo, considrese la gramtica siguiente:

S ? aCa
C ? aCa
C? b
Y la derivacin

S ? aCa
aaCaa
aaaCaaa
aaabaaa

Se obtiene la cadena aaabaaa, y para la cual se busca su rbol de derivacin. La creacin de


este rbol inicia con la colocacin del smbolo inicial S en la raz del rbol y continua con
la creacin de los nodos hijos que derivan de l, rotulados con las letras a, C, a como se
muestra en la figura 3.4. El smbolo no terminal C, solo puede producir a su vez, tres nodos
hijos, rotulados con los smbolos a, C, a; esta accin se repite una vez ms para finalmente
realizar la sustitucin de C por el smbolo terminal b; dando fin a la derivacin. (Kelley,
1995, Pg.118)

Figura 3.4. rbol de derivacin

Teora de la Computacin

91

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

Esta gramtica a generado un nico rbol de derivacin y todas las derivaciones que
se generen de esta gramtica en busca de la misma cadena producir el mismo rbol de
derivacin; sin embargo existen casos en los que una derivacin puede ser realizada de
diferentes maneras, y por lo tanto producen rboles de derivacin distintos. Un ejemplo de
este tipo de gramticas es la siguiente:

S ? ScS
S ? SbS
S? a
(Kelley, 1995, Pg. 118)

la cual produce las siguientes derivaciones,

Derivacin 1

Derivacin 2

S ? ScS

S ? SbS

S SbScS

S SbScS

S SbSbScS

S SbSca

S abSbScS

S SbSbSca

S ababScS

S SbSbaca

S ababacS

S Sbabaca

S ababaca

S ababaca

Dichas derivaciones tienen los rboles de derivacin mostrados en la figura 3.5.

Teora de la Computacin

92

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

a) rbol de derivacin 1

b) rbol de derivacin 2

Figura 3.5. rboles de derivacin

Como puede observarse, est gramtica produce dos rboles de derivacin distintos en la
bsqueda de la misma cadena, cuando existen este tipo de casos se dice que la gramtica de
la cual se ha derivado es una gramtica ambigua (Kelley; 1995, Pg. 119), lo comn es,
que se busque una gramtica no ambigua que produzca el mismo lenguaje, evitando la
creacin de cadenas con significado errneo; sin embargo puede existir gramticas cuya
ambigedad no puede evitarse, en dicho caso se dice que el lenguaje producido es un
lenguaje independiente del contexto inherentemente ambiguo. (Kelley, 1995, Pg. 120)

3.4 FORMAS NORMALES DE CHOMSKY


La Forma Normal de Chomsky (FNC) restringe la constitucin de una gramtica. Una
gramtica se encuentra en forma normal de Chomsky si no contienen producciones del tipo
A ?

denominadas anulables, producciones del tipo A ?

B donde B = 1,

denominadas producciones unitarias las cuales solo agregan un paso extra a la derivacin y
cuya existencia no tiene ningn sentido, y finalmente las producciones intiles; adems, el
resto de sus producciones son del tipo A ? a donde a ? ? , A ? AB donde ambos son
elementos no terminales. (Martin, 2004, Pg. 237)

Teora de la Computacin

93

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

Para lograr que una gramtica se encuentre en forma normal de Chomsky deben de
ser eliminadas las producciones no deseadas mencionadas en el prrafo anterior, para lo
cual se han planteado ya 4 tipos de algoritmos diferentes; que sern mencionados a
continuacin.

3.4.1 Algoritmos de eliminacin de producciones intiles.


Dentro de una gramtica pueden existir algunas producciones no deseadas como lo
son las producciones intiles, dicho tipo de producciones suelen contener elementos que
posiblemente no deriven alguna cadena valida, como es el caso de la gramtica siguiente:

S?
S?
A?
A?
B?
C?
C?
D?
E?
F?

aA
e
B
G
bC
aD
a
aA
aA
ab

Como puede observarse la gramtica anterior presenta tres producciones cuya existencia no
tiene gran significado, ya que su derivacin no produce cadenas de variables terminales
validas, como es el caso del no terminal E; y si las producen no hay manera de llegar a
dichos no terminales desde el smbolo inicial, como es el caso de D y F. Dichas
producciones deben ser eliminadas, con tal fin se presentan los siguientes dos algoritmos,
los cuales transformarn a una gramtica G = (N, ? , S, P) en una gramtica final G= (N,
? , S, P). (Kelley, 1995, Pg. 123)

Teora de la Computacin

94

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

3.4.1.1 Algoritmo A

El presente algoritmo elimina las producciones del tipo B ? w donde w ? N, para


toda w que no pertenezca a (N ? )* .

1. Inicializar N con todos los no terminales A para los que A ? w, es una


produccin de G, donde w ? ? * .
2. Inicializar P con todas las producciones A ? w para las cuales A ? N y
w ? ? *.
3. Repetir
Aadir a N todos los no terminales A para los cuales A ? w, para algn
w ? (N ? )* que sea una produccin de P y aadirla a P.
Hasta que no se pueda aadir ms no terminales a N.

(Kelley, 1995, Pg. 124)

3.4.1.2 Algoritmo B

El presente algoritmo elimina las producciones del tipo B ? w donde B ? N, para


toda B que pertenezca a N.
1. Inicializar N con el smbolo inicial de la gramtica, e inicializar P y ? a
.
2. Repetir
Para A ? N, si A ? w es una produccin en P, entonces:
a. Introducir A ? w en P
b. Para todo no terminal B de w, introducir B en N.
c. Para todo terminal s de w, introducir s en ? .
Hasta que no se puedan aadir nuevas producciones.

(Kelley, 1995, Pg. 125)


Teora de la Computacin

95

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

Un aspecto importante que hay que hacer resaltar con respecto de los algoritmos aqu
mostrados, es el de el orden de aplicacin, los algoritmos 3.4.1.1 y 3.4.1.2 deben de ser
aplicados en el orden que han sido mostrados, en caso contrario las gramticas producidas
no desarrollarn los lenguajes para los cuales originalmente se construyeron. (Kelley, 1995,
Pg. 126)

Aplicando el algoritmo 3.4.1.1 a la gramtica expuesta en la pagina anterior, se


obtiene la gramtica G mostrada a continuacin.

S?
S?
A?
B?
C?
C?
D?
E?
F?

aA
e
B
bC
aD
a
aA
aA
ab

Observ que solo se ha eliminado una produccin A ? E y se ha respetado la produccin S


? e, ya que el smbolo e es admitido como un smbolo terminal (Kelley, 1995, Pg. 124),
sin embargo, an quedan otras dos producciones que requieren ser eliminadas ya que
producen smbolos terminales y no terminales que nunca podrn ser alcanzados desde el
smbolo inicial, para tal fin se aplicar el algoritmo 3.4.1.2, obteniendo la siguiente
gramtica G.

S?
S?
A?
B?
C?
C?
D?

Teora de la Computacin

aA
e
B
bC
aD
a
aA

96

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

La gramtica obtenida produce el mismo lenguaje que la gramtica original, en otras


palabras L(G) = L(G), sin embargo an no se encuentra en forma normal de Chomsky ya
que contiene producciones anulable y unitarias.

3.4.2 Algoritmos de eliminacin de producciones anulables.

Para que una gramtica pueda transformarse a la forma normal de Chomsky debe de
estar libre de producciones del tipo A ?

e, las cuales son denominadas producciones

anulables. Este tipo de producciones suelen ser generadoras de ambigedad o bien de


cadenas extremadamente largas (Brena, 2003, Pg. 128). La eliminacin completa de este
tipo de producciones puede llevarse a cabo siempre y cuando el conjunto vaco e no
pertenezca al lenguaje independiente del contexto que construya la gramtica en cuestin,
sin embargo, en algunos casos la existencia de esta cadena vaca puede ser indispensable
para el lenguaje, por lo cual las producciones S ?

e no pueden ser completamente

eliminadas. Tal situacin no debe impedir que la gramtica en cuestin pueda ser
representada en la forma normal, por ello se permite la eliminacin momentnea de dichas
producciones y la transformacin de la gramtica a una forma normal; una vez
transformada la gramtica ser agregada la produccin S ?

e correspondiente. De tal

manera se obtendr el lenguaje original representado por L(G) {e}. (Kelley, 1995,
Pg.128)

Para la eliminacin de las producciones del tipo S ?

e primero es necesario

identificar cada una de stas producciones, para tal fin se muestra el algoritmo 3.4.1.2, que
identifica en un conjunto A, todos los smbolos no terminales anulables dentro de la
gramtica G.

Teora de la Computacin

97

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

3.4.2.1 Algoritmo A

1. Inicializar A con todos los no terminales B para los que existe una
produccin e, es decir B ? e.
2. Repetir
Si B ? w para algn w ? (N ? )* y todos los smbolos de w estn en
A, aadir B a A.
(Kelley; 1995, Pg. 127)
Hasta que no se pueda aadir ms no terminales a A.
(Kelley, 1995, Pg.127)

Una vez identificados las variables anulables es posible eliminarlas mediante


derivacin. Es decir, deben de ser sustituidas directamente las variables no terminales
anulables por las cadenas vacas correspondientes, lo que se crearn nuevas producciones.
(Brena, 2003, Pg. 129) Esta tcnica ser mejor comprendida con la aplicacin de un
ejemplo, para lo cual se usar la siguiente gramtica.

S?
S?
E?
D?

aSb
E
bD
e

Como puede observar, dicha gramtica esta libre de producciones intiles, sin
embargo contiene la produccin D ? e, la cual es una produccin anulable y al aplicar el
algoritmo 3.4.2.1 se observar que es la nica produccin de ste tipo.

El siguiente paso es bsqueda de aquellas produccin donde es posible la sustitucin


directa de D por la cadena vaca que esta produciendo, dicha produccin es E ? bD, en la
que se sustituye D de la siguiente manera.
E ? bD
E be
Teora de la Computacin

98

Instituto Tecnolgico de Celaya

La nueva produccin es E ?

Lenguajes Independientes
del Contexto.

b, la cual es aadida a la gramtica, mientras que la

produccin anulable es eliminada, obtenindose la siguiente gramtica.

S?
S?
E?
E?

aSb
E
bD
b

Como se ve la eliminacin de las producciones intiles no es un procedimiento


complicado, basta con ser buen observador para identificar en donde se originan las
variables anulables y realizar su sustitucin. En otras palabras, deben de ser identificadas
las producciones B ? sA, donde A ? e; y aadir la produccin B ? s , mientras que la
produccin A ? e es eliminada. (Brena, 2003, Pg.129)

La eliminacin de producciones anulables en la gramtica anterior ha construido una


gramtica equivalente cuyas derivaciones producen el mismo lenguaje que la presentada
por la gramtica original dond e la cadena vaca no forma parte del lenguaje; sin embargo
existe otro detalle que para el lector perspicaz ha de ser inevitable observar, la
transformacin de dicha eliminacin a construido una produccin intil. Por lo cual, ser
necesario aplicar los algoritmos 3.4.1.1 y 3.4.1.2 antes de continuar con la transformacin.

Al aplicar el algoritmo 3.4.1.1 se elimina la produccin intil encontrada y se obtiene


la gramtica
S ? aSb
S? E
E? b

cuya derivacin produce cadenas, idnticas a las producidas por la gramtica original, por
lo que la transformacin ha sido exitosa.

Teora de la Computacin

99

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

Este mtodo de eliminacin puede ser aplicado a la gramtica transformada


inicialmente por los algoritmos 3.4.1.1 y 3.4.1.2 y la cual es mostrada a continuacin; solo
debe de hacerse notar que el le nguaje que construye esta gramtica si requiere de la
existencia de la cadena vaca, por lo cual su eliminacin ser momentnea.

S?
S?
A?
B?
C?
C?
D?

aA
e
B
bC
aD
a
aA

La eliminacin de la cadena vaca de esta gramtica no produce ninguna nueva


produccin por lo que la nueva gramtica es

S?
A?
B?
C?
C?
D?

aA
B
bC
aD
a
aA

3.4.3 Algoritmos de eliminacin de producciones unitarias .


Dentro de una gramtica pueden existir producciones del tipo A ? B, las cuales son
denominadas producciones unitarias (Kelley, 1995, Pg. 128) y cuya existencia dentro de
una gramtica no tiene gran significado ya que solo agregan un paso ms a la derivacin;
por ejemplo, observe la gramtica del ejemplo anterior.

Teora de la Computacin

100

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

S?
A?
B?
C?
C?
D?

aA
B
bC
aD
a
aA

En esta gramtica S deriva aA, A deriva a B y B deriva bC; al realizar la sustitucin, A


termina siendo sustituida por bC, con lo cual se concluye que la existencia de la produccin
A ? B no tiene gran significado y puede ser eliminada.

La eliminacin de una produccin unitaria suele ser muy sencillo, basta con agregar
producciones del tipo A ? w, donde w es producida por B (B ? w), y B a su vez es
producida por A (A ? B), mientras que las producciones unitarias (A ? B) son eliminadas.
Un evento seguido a ste suele ser la aparicin de nuevas producciones intiles por lo cual
ser necesario aplicar nuevamente los algoritmos de eliminacin mostrados anteriormente.
(Kelley, 1995, Pg. 128)

Como se ha corroborado la eliminacin de producciones unitarias de manera intuitiva


suele no ser tan complicado, sin embargo para una mayor precisin es conveniente hacer
uso de algoritmos como los que se muestran a continuacin.

3.4.3.1 Algoritmo A
1. Si A? B es una produccin, B es derivable de A.
2. Si C es derivable de A, C ? B es una produccin y B ? A, entonces B es
derivable de A.
3. Si A ? A es una produccin, A es derivable de A.
4. Ninguna otra variable es derivable.

(Martin, 2004, Pg.236)


Teora de la Computacin

101

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

3.4.3.2 Algoritmo B

1. Inicializar P con todas las producciones en P.


2. Para cada A ? N (conjunto de variables no terminales), encontrar el
conjunto de variables derivables de A.
3. Para cada par (A, B) tal que B es derivable de A y cada produccin no
unitaria B ? a, aadir la produccin A ? a a P.
4. Eliminar todas las producciones unitarias de P.
(Martin, 2004, Pg.236)

El algoritmo 3.4.3.1 permite identificar todas las posibles variables unitarias candidatas a
ser eliminadas. Mientras que el algoritmo 3.4.3.2 elimina todas las producciones unitarias,
agregando las nuevas producciones. Al aplicar el algoritmo 3.4.3.2 a la gramtica anterior
se obtiene la gramtica G

S?
A?
B?
C?
C?
D?

aA
bC
bC
aD
a
aA

En este caso la produccin B ? bC se ha convertido en una produccin intil que puede ser
eliminada mediante el uso de los algoritmos 3.4.1.1 y 3.4.1.2, con lo cual se obtiene la
gramtica.

S?
A?
C?
C?
D?

Teora de la Computacin

aA
bC
aD
a
aA

102

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

La gramtica anterior ya se encuentra libre de producciones intiles, producciones


anulables y producciones unitarias, ahora puede procederse a transformar la gramtica a la
forma normal de Chomsky. Como ya se menciono una gramtica G, se encuentra en forma
normal si sus producciones son de la formas A ? s y A ? AB donde s ? ? , y A, B ? N .
(Martin, 2004, Pg. 237) Para cumplir con tal formato es necesaria la creacin de nuevas
variables no terminales que ayuden a la sustitucin de los elementos ya existentes. El crear
nuevas variables ayudar a transformar producciones del tipo A ? w, donde w ? (? N)*
y adems w > 2; por producciones del tipo A ? s. (Kelley, 1995, Pg.131)

La primera sustitucin por lo general se realiza con las variables terminales, ya que
pueden tenerse ms de una de estas variables en el lado derecho de la produccin; as pues
pueden transformarse producciones del tipo A ? s donde ambos son variables terminales,
por A ? BC, B ? s y C ? . (Martin, 2004, Pg. 238)

La segunda sustitucin suele realizarse con las variables no terminales, donde pueden
sustituirse producciones del tipo A ? ABC por producciones del tipo A? AX1 y X1 ? BC.
(Martin, 2004, Pg.238) Para una mejor explicacin se usar un ejemplo. Observe la
gramtica siguiente
S ? aSb
S? b
Dicha gramtica a sido limpiada de producciones anulables, intiles y unitarias, por los
algoritmos antes mencionados; como puede notarse una de sus producciones ya se
encuentra en forma normal de Chomsky, mientras que la otra debe de ser transformada. La
produccin S ? aSb puede ser remplaza por tres producciones nuevas, para tal fin se
crearn las variables no terminales Na y Mb que sustituirn las variables terminales a y b,
los cuales sern nuevamente producidos individualmente como sigue:

S
Na
Mb
S
Teora de la Computacin

?
?
?
?

NaSMb
a
b
b
103

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

Ahora, se tiene una produccin con ms de dos no terminales del lado derecho; nuevamente
esta produccin ser sustituida por una nueva, como se muestra a continuacin.

S
X1
Na
Mb

?
?
?
?

NaX1 b
SMb
a
b

La nueva gramtica G se encuentra ya, en FNC siendo equivalente a la gramtica


original G. Recuerde que esta forma no admite la existencia de producciones vacas (S ?
e), sin embargo s la gramtica lo requiere puede agregarse esta produccin, a la gramtica
ya transformada con la salvedad de que dicha produccin no se encontrar en FNC.

Una nota interesante sobre la forma normal de Chomsky es que las gramticas
transformadas a esta forma normal producen rboles de derivacin binarios que son ms
sencillos de seguir. (Kelley, 1995, Pg.136)

3.5 FORMAS NORMALES DE GREIBACH


La Forma Norma de Greibach (FNG) es otra de las formas normales para la
representacin de las GIC. Dicha forma normal restringe la posicin en que pueden
aparecer las variables terminales y no terminales en el lado derechos de una produccin.
(Kelley, 1995, Pg. 162)

Para poder transformar una gramtica a la FNG es conveniente obtener primero dicha
gramtica en la FNC, recuerde que dicha forma prohbe la existencia de producciones
vacas por lo tanto, un lenguaje independiente de contexto puede ser transformado a la
forma normal de Greibach siempre y cuando no sea un lenguaje vaco. (Kelley, 1995,
Pg.165)

Teora de la Computacin

104

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

Se dice que una gramtica G se encuentra en forma normal de Greibach si sus


producciones son del tipo A ? aw y A ? a, donde A ? N, a ? ? y w ? N * . (Kelley, 1995,
Pg.167) Como puede observarse los elementos que formen la variables w pertenecern
exclusivamente al conjunto de smbolos no terminales, lo cual indica que todas las posibles
derivaciones que se realicen con una gramtica en FNG crecern exclusivamente hacia la
derecha; las producciones con esta caracterstica de orden son conocidas como
producciones recursivas por la derecha. (Kelley, 1995, Pg.163) Para lograr que las
producciones de una gramtica en FNG cumplan con esta condicin se requiere de una
transformacin, lo cual involucra el uso de dos tcnicas, la eliminacin de factores
izquierdos y la eliminacin de la recursividad por la izquierda (este tipo de producciones
expanden los rboles de derivacin hacia la izquierda), (Kelley, 1995, Pg.163) de las
cuales se hablar en los siguientes dos apartados.

Otro aspecto que debe de tenerse en cuenta para que una gramtica pueda ser
transformada a la FNG es el orden en que aparecen sus smbolos no terminales. Cada no
terminal en una gramtica en FNG es etiquetado con un orden de prioridad (de 0 a n),
donde el smbolo inicial tiene la prioridad ms baja; de tal manera que un smbolo no
terminal no puede producir a otro de menor prioridad que l; (Kelley, 1995, Pg.165) tal
como se muestra en el caso siguiente; considrese la gramtica

S
S
A
N
M

?
?
?
?
?

NA
b
SM
a
b

s se etiquetan los smbolos no terminales de est gramtica comenzando del smbolo inicial
(S0 , N1 , A2 , M3 ), se observar que en la tercera produccin, el smbolo no terminal A
produce el smbolo inicial S cuya prioridad es menor que A; est produccin es invalida
para la FNG, por lo que es necesario transformarla. El mtodo ms apropiado para dicha
transformacin es la eliminacin de factores izquierdos.

Teora de la Computacin

105

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

3.6 ELIMINACIN DE FACTORES COMUNES IZQUIERDOS


En una gramtica independiente de contexto pueden existir varias formas de
producciones. En particular se dice que s, una gramtica independiente de contexto
contiene producciones del tipo A ? aB? o B ? Y1 Y2 . Yn 4 , entonces las variables
producidas por B pueden ser sustituidas directamente en la produccin A ? aB?, sin alterar
el lenguaje generado por dicha gramtica. De tal forma que se obtendran producciones del
tipo A ? a Y1 ? a Y2 ? . a Yn ?. (Kelley, 1995, Pg.162) Tal aseveracin puede ser
comprobada mediante una prueba de induccin, la cual se desarrolla a continuacin. (Brena,
2004, Pg. 125)

Prueba por induccin.

Afirmacin. Las cadenas producidas por la gramtica G pertenecen indudablemente


al lenguaje original producido por la gramtica G; ya que ambas contienen todas las
posibles derivaciones de variables terminales.

Bases de induccin. Las cadenas producidas en 0 pasos de derivacin de G,


pertenecen al lenguaje definido por L(G).

Hiptesis de induccin. En n pasos de derivacin de G, se construye n palabras


pertenecientes a L, ya que a , Yn , ? de las producciones A ? a Yn ?, pertenecen al
conjunto de variables terminales.

Paso de induccin. Las palabras generadas por G en n pasos, han de contener los
elementos producidos por las reglas B ? Yn , tal situacin indica que al realizar n + 1
pasos las cadenas contendrn todos los smbolos no terminales necesarios para
finalizar la derivacin.
4

El uso del smbolo en una gramtica se lee como lo indica que el smbolo no terminal puede producir
uno u otro conjunto de variables. Es lo mismo escribir B ? Y1 Y2 que B ? Y1 , B ? Y2 . (Martin, 2004, Pg.
204)

Teora de la Computacin

106

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

Finalmente, se observa que al aplicar las reglas de G que solo contienen variables
terminales, w pertenece a L.

Como puede analizar la prueba presentada muestra las razones por las cuales G genera las
misma cadenas que G; tal situacin quedar completamente comprendida con la aplicacin
de un ejemplo. Considere las siguientes gramticas.

S
S
A
A
A
A

?
?
?
?
?
?

aAb
bAa
aSb
bSa
a
b

S
S
S
S
S
S
S
S

a)

?
?
?
?
?
?
?
?

aaSbb
abSab
aab
abb
baSba
bbSaa
baa
bba
b)

La gramtica mostrada del inciso a es la gramtica original G, cuyas derivaciones produce


palabras del tipo aab, baba, babbaaaba; la gramtica del inciso b es la gramtica G, en la
cual se le han sustituido las producciones A ? aYn? en S. Not que las producciones de A
han sido eliminadas debido a que la accin de sustitucin las ha convertido en producciones
intiles. Con el fin de comprobar la equivalencia de gramtica (G = G) se realizan las
siguientes sustituciones.

Derivacin 1.a

Derivacin 1.b

Derivacin 2.a

Derivacin 2.b

S ? aAb
S aab

S?

S?
S
S
S

S ? bbSaa
S bbaabaa

Teora de la Computacin

aab

bAa
bbSaa
bbaAbaa
bbaabaa

107

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

Como puede observar ambas gramticas generan las mismas cadenas; por lo que su
equivalencia es ms que comprobable, G = G.

3.7 ELIMINACIN DE RECURSIVIDAD POR LA IZQUIERDA


Las producciones de la forma S ? Sa donde a ? (? N)* (Kelley, 1995, Pg. 164),
son conocidas como producciones recursivas por la izquierda; este tipo de producciones,
como ya se dijo; tiene la caracterstica de expandirse continuamente hacia la izquierda
mientras se les deriva, produciendo constantemente la misma cadena lo cual, suele ser
incmodo y confuso, adems de que una gramtica en forma normal de Greibach rechaza
este tipo de producciones; por lo cual en esta seccin sern eliminadas.

Considrese las producciones recursivas por la izquierda S ? Sa 1 , S ? Sa 1 ,...S ?


Sa n de G, y adems considrese que S tambin produce S ? ?1 , S? ?2 ,.. S ? ?n dentro
de la misma gramtica. (Kelley, 1995, Pg.164) Para poder eliminar las producciones
recursivas por la izquierda de una gramtica G, se agrega un nuevo no terminal
construyendo nuevas producciones con la combinacin ?n y a n . El procedimiento es el
siguiente, las producciones S ? ?1 , S? ?2 ,.. S ? ?n sern respetadas como tales, y
adems sern rescritas nuevamente agregndoles el nuevo no terminal (para cuestiones de
representacin se usar aqu el no terminal N para ser agregado a las producciones, el lector
ser libre de usar cualquier smbolo no terminal en las transformaciones que l realice),
como se muestra a continuacin.

S ? ?1 ?2 ....... ?n
S ? ?1 N ?2 N ?mN

(Kelley, 1995, Pg.164)

Teora de la Computacin

108

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

El segundo paso es agregar nuevas producciones del tipo N ? a n y N ? a n N, donde


el nuevo terminal deriva a ; como se muestra a continuacin.

N ? a 1 a 2 . a n
N ? a 1 N a 2N a nN

(Kelley, 1995, Pg.164)


De esta manera las producciones recursivas por la izquierda sern eliminadas. Para una
mejor comprensin de este concepto se realiza un ejemplo; considere para tal fin, la
siguiente gramtica.
S ?
A ?
A ?

aA
AS
bbb

La gramtica mostrada presenta en su segunda produccin recursividad, y debe de


eliminarse. Aplicando las reglas descritas arriba se obtiene la siguiente gramtica
equivalente.

S
A
A
N
N

?
?
?
?
?

aA
bbb
bbbN
S
SN

Se ha logrado eliminar las producciones recursivas mientras que las producciones


encontradas son equivalentes a las producciones originales.

Ya que se han asimilado las dos tcnicas anteriores (tcnica de eliminacin de


recursividad por la izquierda y la tcnica de eliminacin de factores izquierdos) se puede
proceder a la transformacin de una gramtica a la FNG, para lo cual se alterna n las
Teora de la Computacin

109

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

tcnicas antes mencionadas. Como ejemplo ilustrativo, se realiza la conversin de la


siguiente gramtica.
S
C1
A
Na
Mb

?
?
?
?
?

SC1 a b
N aA
MbMb
a
b

Esta gramtica se encuentra en FNC por lo que el lenguaje que produce es un lenguaje no
vaci y puede ser trans formada a la FNG, recuerde que sta forma solo admite
producciones del tipo A ? aw y A ? a, donde A ? aw debe de ser una produccin
recursiva por la derecha. (Kelley, 1995, Pg.167) Se inicia por eliminar la recursividad por
la izquierda, ya que no existen producciones donde un smbolo no terminal produzca a otro
de menor prioridad. Se crea un nuevo no terminal (E) que sustituye las producciones
recursivas.
S
C1
A
Na
Mb
E

?
?
?
?
?
?

a b aE bE
N aA
MbMb
a
b
C1 C1 E

Ya se ha eliminado la recursividad pero la gramtica an no se encuentra en FNG por


lo cual se continua con la eliminacin de factores izquierdos, sustituyendo Mb, Na y C1 en
la segunda, tercera, y sexta produccin. Finalmente todas las producciones se encuentran en
FNG.
S
C1
A
Na
Mb
E

Teora de la Computacin

?
?
?
?
?
?

a b aE bE
aA
bMb
a
b
aA aAE

110

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

3.8 ELIMINACIN DE LA AMBIGEDAD


Como ya se menciono en el apartado 3.3, una gramtica que produce dos rboles de
derivacin distintos, en la construccin de una misma palabra es denominada como
gramtica ambigua (Kelley, 1995, Pg. 119).

La ambigedad es una caracterstica que puede ser eliminada mediante la bsqueda de


una nueva gramtica o bien mediante la conversin de las gramticas a las formas normales,
eliminando todas las producciones vacas, intiles, unitarias y recursivas por la izquierda,
ya que la mayora de las gramticas ambiguas que presenta recursividad por la izquierda
suelen desarrollar ambigedad, sin embargo no es una caractersticas especifica que pudiera
afirmar la ambigedad de una gramtica, por lo que el lector debe asegurar la ambigedad
de una gramtica con el desarrollo de los rboles de derivacin.

Tambin se ha

mencionado la existencia de gramticas cuya ambigedad es imposible eliminar, por lo que


los lenguajes producidos por dichas gramticas reciben el nombre de lenguaje
independiente del contexto inherentemente ambiguo, cuya ambigedad es permanente.
(Kelley, 1995, Pg. 120)

3.9 AUTMATAS PUSH-DOWN


En la unidad pasada se estudi los autmatas finitos, descritos como mquinas
abstractas capaces de reconocer los lenguajes regulares; sin embargo existe la incgnita
ests mquinas son tambin capaces de reconocer el conjunto de lenguajes independientes
del contexto?; la respuesta a esa pregunta es no !, ya que los lenguajes independientes del
contexto tienen la caracterstica de construir lenguajes cuyas cadenas requieran de algn
conteo, lo cual indica que la mquina abstracta que pueda reconocer un lenguaje de ste
tipo debe contar con la posibilidad de recordar los elementos ledos en una cadena y la
cantidad que se ha ledo; dichas mquinas abstractas son conocidas como autmatas pushdown o autmatas de pila (AP).
Teora de la Computacin

111

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

Un AP es muy parecido a AF, adicionndole algunos nuevos conjuntos de smbolos


(Kelley, 1995, Pg.145), as como un mecanismo de almacenamiento conocido como pila,
el cual asemeja una memoria virtual. Una pila puede ser visualizada como un montn de
libros apilados uno sobre de otro; para poder obtener el libro de la base del cmulo se
necesita quitar todos los libros de encima, de tal manera que el primer libro que fue apilado
es el ltimo en ser eliminado, bien el ltimo libro en ser apilado es el primero en ser
eliminado; est es la principal caracterstica de una pila por lo que es denominada como una
estructura del tipo LIFO (Last in, first out; -el ltimo en entrar el primero en salir).(Martin, 2004,Pg. 251) Este mecanismo de apilamiento permite al AP leer y almacenar o
eliminar los smbolos de entrada del autmata, mientras pasa de un estado a otro; una vez
que el AP ha llegado a un estado de aceptacin, la pila debe de estar completamente vaca y
la cadena de entrada ser aceptada.

Formalmente un autmata de pila (AP) se define como una 7-tupla, AP = (Q, ? , ?, s,


z, F, ? ) donde
Q es una coleccin finita de estados.
? es el alfabeto de entrada.
Z es el alfabeto de la pila
s es el estado inicial.
z es el smbolo inicial de la pila
F es el conjunto de estados de aceptacin
? es una funcin ? : Q x (? {e}) x ??

Q x Z* , denominada funcin de

transicin.
(Martin, 2004, Pg. 255)

Como se observa los elementos que componen a un AP son los mismo que los que
componen a un AF, solo que son agregados dos elementos ms, el alfabeto de la pila y el
smbolo inicial de la pila. El alfabeto de pila suele ser diferente al alfabeto de entrada ya
suelen contener identificadores de parada para indicar el tope de la pila.

Teora de la Computacin

112

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

Otra gran diferencia que salta a la vista son las funciones de transicin, las cuales han
cambiado su estructura y ahora forman ternas del tipo (q, s, a ), (p, ) donde se indica que
de un estado actual q, a travs de un smbolo de entrada s y un smbolo del alfabeto de la
pila a que es sacado de la pila; se llega a un nuevo estado p, insertando ( ? Z ) dentro de
la pila.(Kelley, 1995, Pg. 145) Sin embargo las funciones de transiciones usadas en el
diagrama de un AP, son reducidas a la forma s / a / donde s es el smbolo de entrada
que esta siendo ledo, a es el smbolo que ser eliminado de la pila y es el smbolo que
ser insertado en la pila.(Brena, 2003, Pg. 146) Antes de continuar con las definiciones
formales de este tipo de autmatas, se realiza un ejemplo del diagrama de transiciones que
permite la representacin de dichos autmatas.
Considere el siguiente lenguaje, L = {xi y

2i

i > 0} el cual desarrolla cadenas

formadas por xs y ys, donde por cada x que exista deben de haber dos ys presentes en la
cadena. El AP que reconoce a est lenguaje tiene como alfabeto de entrada ? = {x, y},
como alfabeto de pila Z = {? #} y por smbolo inicial de la pila z = {#}. El smbolo #
ser el identificador que permitir verificar si la pila esta vaca. La figura 3.6 muestra el
autmata de pila que reconoce ste lenguaje.

Figura 3.6 Autmata de pila , reconocedor


de cadenas xyy,xxyyyy.xi y 2i

El AP de la figura 3.6 introduce en una pila el smbolo #, l marcar el fondo de la


pila; posteriormente lee una x e introduce una x en la pila; es decir, por cada x leda se
introduce una x en la pila; en cuanto lee una y se extrae una x de la pila y no se inserta nada,
la siguiente transicin solo lee una y, sin insertar ni sacar nada de la pila con lo cual el
autmata se asegura que la cadena leda contenga dos ys por cada una de sus xs;

Teora de la Computacin

113

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

finalmente se extrae el smbolo # con lo que se asegura que la pila ha quedado vaca, y la
cadena es aceptada.

Formalmente el AP de la figura 3.6 esta constituido por:


Q = {q0, q1, q2, q,3, q4, q5}
? = {x, y}
Z = { x, #}
s = {q0}
z = {#}
F = {#}
? es igual a la lista mostrada a continuacin.
? (q0, e, e) = (q1, #)

? (q3,y,e) = (q4, e)

? (q1,x,e) = (q2,x)

? (q4,y,x) = (q3,e)

? (q2,x,e) = (q2,x)

? (q4,e,#) = (q5,e)

? (q2,y,x) = (q3,e)

3.9.1 AP y gramticas independientes del contexto.


Hasta este momento se ha dicho que un lenguaje independientes de contexto (LIC) es
catalogado as, s tal lenguaje proviene de una gramtica del mismo tipo (GIC). Para
comprobar que un AP acepta LIC suele ser obvio que se compruebe que dichas gramticas
son aceptadas por estos autmatas; para lo cual se muestra el siguiente mtodo de
construccin de un AP, a partir de una gramtica.

Teora de la Computacin

114

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

La idea principal segn Dean Kelley es el de construir un AP que permita realizar


un derivacin por la izquierda a partir de una gramtica G. La derivacin se representa
guardado en la pila los smbolos no terminales del extremo derecho de la derivacin,
mientras que la parte izquierda (compuesta por terminales) deber ser idntica a las
cadenas de entrada que se lee.

La construccin del autmata inicia con la introduccin en pila (que ya contendr


el smbolo identificador del tope de pila), del smbolo inicial de la gramtica G.

Ahora, ya que en la cima de la pila se encuentra un no terminal A, se proceder a


sustituirse por el lado derecho de su produccin. Pero, s el smbolo de la cima de la pila
fuese un terminal, el cual se corresponda con el siguiente smbolo de entrada, se
desapila. Esta accin es repetida continuamente hasta que no se tengan ms elementos
que eliminar de la pila.
(Kelley, 1995, Pg.152)

En las siguientes pginas se realiza un ejemplo que desarrolla este mtodo. Considere
la gramtica G, constituida por las siguientes producciones.

S
M
N
M
N

?
?
?
?
?

zMNz
aMa
bNb
z
z

El primer pas a realizar, es la insercin del smbolo inicial S dentro de la pila; la cual
ya debe contener el smbolo inicial del alfabeto de pila, como se muestra en la figura 3.7.

Teora de la Computacin

115

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

Figura 3.7 Construccin de


autmata de pila, paso 1.

Como segundo paso se elimina el smbolo no terminal de la cima de la pila y se


introduce los smbolos que esta produciendo (los smbolos son introducidos de izquierda a
derecha, colocndose en la cima, el ultimo smbolo que aparece a la derecha de la
produccin), como se muestra en la figura 3.8.

Figura 3.8 Construccin de un


autmata de pila, paso 2.

Como puede observarse al introducir los nuevos elementos en la pila, la cima de sta
es ocupada por un smbolo terminal (z), si ste elemento coincide con el smbolo de la
cadena de entrada es eliminado de la pila, dando lugar a un nuevo smbolo no terminal (N)
en la cima de la pila, por lo que nuevamente es sustituido por los smbolos que produce
(bNb o z), ste procedimiento se lleva a cabo consecutivamente hasta que la pila se
encuentre vaca, como se muestra en la figura 3.9.

Figura 3.9 Estado final de autmata de pila.

Teora de la Computacin

116

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

Una vez que el AP de la figura 3.9 ha terminado su ejecucin y la pila ha quedado


vaca, la cadena es aceptada, y el lenguaje producido por esta gramtica es aceptado
incondicionalmente como un lenguaje independiente del contexto. Por lo tanto, se puede
realizar la siguiente afirmacin Si L es un lenguaje independiente del contexto, entonces
existir un AP no determinstico para el cual L = L (G). (Kelley, 1995, Pg. 145) Ntese
que se ha introducido el trmino autmata de pila no determinstico (APND), ya que el
autmata de pila que se ha diseado contiene transiciones del tipo ? : Q x (? {e}) x ??
Q x Z* , las cuales permiten que el AP elija de manera no determinista la siguiente
transicin a ejecutar, como es el caso del AP mostrado en la figura 3.9.

Antes de abandonar el tema se presenta otro de ejemplo de la construccin de este


tipo de mquinas abstractas; para lo cual se usa una de las gramticas ya conocidas por el
lector, y que es presentada a continuacin.

S
C1
A
Na
Mb
E

?
?
?
?
?
?

a b aE bE
aA
bMb
a
b
aA aAE

El diagrama reconocedor de sta gramtica se muestra en la figura 3.10, mostrada a


continuacin.

Figura 3.10. Autmata de pila reconocedor de gramticas.

Teora de la Computacin

117

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

RESUMEN
La construccin de lenguajes formales requiere de la existencia de reglas gramaticales
que indiquen cual ser su constitucin. Dichas reglas son llamadas gramticas.

La gramtica se define como una rama de la lingstica, que estudia la forma y la


composicin de las palabras. En particular la gramtica se estudia como un conjunto de
reglas que rigen el orden de las palabras en una oracin. En el caso particular en el estudio
de la teora de la computacin las gram ticas son un conjunto de reglas del tipo a? , que
rigen la construccin de las palabras pertenecientes a un lenguaje; una gramtica puede ser
construida en base a las caractersticas que presentan las palabras pertenecientes a un
lenguaje, o bien en base a un autmata

La construccin de una gramtica a partir de un AF se inicia por dividir el autmata


en varias partes; en el caso del autmata mostrado en la figura 3.3 se considerarn dos
divisiones, donde puede observarse que la primera transicin construye cadenas iniciadas
con una e seguidas de algo ms, lo cual puede ser representado por algn otro smbolo, por
ejemplo por B; o bien tambin muestra que puede construir palabras que contengan solo
una e; de tal manera que obtenemos las dos primeras reglas de construccin S ? eB y S ?
e donde S es el smbolo inicial de la gramtica. La segunda parte del AF produce es o bien
fs, por lo que B puede producir dos caminos diferentes, B ? eB o bien B ?

fB, la

presencia de B en le lado derecho de la regla creada permite que las es y fs se repitan


continuamente, finalmente se requiere de que las cadenas de dicho lenguaje terminen con
una e o una f para lo cuales crean las producciones B ? e y B ? f.

La construccin de una gramtica requiere de un mtodo de comprobacin que ayude


a asegurar que las reglas gramaticales obtenidas son correctas, para tal fin pueden
emplearse dos tipos de pruebas; la prueba de correccin y la prueba de completez, las
cuales se realizan en base a la prueba de induccin matemtica. La prueba de correccin
garantiza que todas las palabras que se producen al utilizar la gramtica, efectivamente

Teora de la Computacin

118

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

corresponden a la descripcin del lenguaje dado; basndose en la longitud de la derivacin.


Mientras que la prueba de la completez se asegura que la gramtica produzca todas las
palabras requeridas por el lenguaje.

Una vez definidas las reglas gramaticales de un lenguaje pueden obtenerse todas las
posibles cadenas o palabras de las cuales sta constituido a partir de un mtodo de
derivacin, el cul puede ser representado por medio de diagramas denominados rboles de
derivacin. Un rbol de derivacin es un grfico constituido por nodos que son unidos entre
si por medio de lneas denominadas aristas, estas uniones construyen ramificaciones que
representan cada una de las producciones de la gramtica que son utilizadas en una
derivacin. Estos rboles se construyen colocando en el nodo inicial o nodo raz el smbolo
inicial de la gramtica, el cual tendr como nodos hijos cada uno de los smbolos que
produce, y estos a su vez producirn nuevos nodos.

Cuando una gramtica produce dos rboles distintos para la misma derivacin se dice
que la gramtica de la cual se ha derivado es una gramtica ambigua, lo comn es que se
busque una gramtica no ambigua que produzca el mismo lenguaje, evitando la creacin de
cadenas con significado errneo; sin embargo puede existir gramticas cuya ambigedad no
puede evitarse, en dicho caso se dice que el lenguaje producido es un lenguaje
independiente del contexto inherentemente ambiguo.

Otra manera de eliminar la ambigedad de una gramtica es trasformndola a una


forma normal. La forma normal de Chomsky (FNC) restringe la constitucin de una
gramtica. Una gramtica se encuentra en forma normal de Chomsky si no contienen
producciones del tipo A ? denominadas anulables, producciones del tipo A ? B donde
B = 1, denominadas producciones unitarias y producciones intiles; y adems, s el resto
de sus producciones son del tipo A ? a donde a ? ? , A ? AB donde ambos son
elementos no terminales.

Para lograr que una gramtica se encuentre en forma normal de Chomsky deben de
ser eliminadas las producciones no deseadas mencionadas en el prrafo anterior, para lo
Teora de la Computacin

119

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

cual se han planteado ya 4 algoritmos diferentes, los algoritmo 3.4.1a y 3.4.2a para le
eliminacin de producciones intiles, el algoritmo 3.4.2a para la eliminacin de
producciones anulables, y el algoritmo 3.4.3a para la eliminacin de producciones unitarias.
Una vez que se ha eliminado ste tipo de producciones se requiere transformar aquellas
producciones que contengan ms de un smbolo terminal o ms de dos no terminales de su
lado derecho; para tal fin se requiere de la generacin de nuevos no terminales que
sustituyan los smbolos terminales y no terminales excedentes en las producciones. Como
se muestra a continuacin; suponga que la gramtica mostrada del lado izquierdo es a
gramtica original mientras que la del lado derecho es la gramtica ya transformada.

S ? aSb
S? b

S
X1
Na
Mb

?
?
?
?

NaX1 b
SMb
a
b

La forma norma de Greibach (FNG) es otra de las formas normales para la


representacin de las GIC. Dicha forma normal restringe la posicin en que pueden
aparecer las variables terminales y no terminales en el lado derechos de una produccin.
Para poder transformar una gramtica a la FNG es conveniente obtener primero dicha
gramtica en la FNC. Un lenguaje independiente de contexto puede ser transformado a la
forma normal de Greibach siempre y cuando no sea un lenguaje vaco.

Se dice que una gramtica G se encuentra en forma normal de Greibach si sus


producciones son del tipo A ? aw y A ? a, donde A ? N, a ? ? y w ? N * . Las gramticas
en FNG cuentan con la caracterstica de crecer exclusivamente hacia la derecha, mientras se
les esta derivando; ya que todo no terminal que aparezca en cada nue va sustitucin ser
encontrado en el extremo derecho de cada derivacin. Las producciones con esta
caracterstica de orden son conocidas como producciones recursivas por la derecha. Para
lograr que las producciones de una gramtica en FNG cumplan con esta condicin se
requiere de una transformacin, para lo cual se hace uso de dos tcnicas, la eliminacin de
factores izquierdos y la eliminacin de la recursividad por la izquierda.

Teora de la Computacin

120

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

La eliminacin de factores izquierdos, indica lo siguiente: s, una gram tica


independiente de contexto contiene producciones del tipo A ? aB? y producciones B ?
Y1 Y2 . Yn , entonces las producciones de B pueden ser sustituidas directamente en la
produccin A ? aB?. De tal forma que se obtendran producciones del tipo A ? a Y1 ?
a Y2 ? . a Yn ?. Tal indicacin permite la transformacin inicial de una gramtica libre
de contexto a una FNG.

Otra de las tcnicas utilizadas para esta transformacin es la eliminacin de


recursividad por la izquierda. Toda produccin de la forma S ? Sa donde a ? (? N)* ,
es conocida como una produccin recursiva por la izquierda; ste tipo de producciones
tiene la caracterstica de expandirse continuamente hacia la izquierda mientras se les deriva.

Considere las producciones recursivas por la izquierda S ? Sa 1 , S ? Sa 1 ,...S ?


Sa n de G, y las producciones S ? ?1 , S? ?2 ,.. S ? ?n dentro de una misma gramtica.
Para poder eliminar las producciones recursivas por la izquierda de la gramtica G, se
agregar un nuevo no terminal que construir nuevas producciones combinado ?n y a n con
l mismo. El procedimiento es el siguiente, las producciones S ? ?1 , S? ?2 ,.. S ? ?n
sern respetadas como tales, y adems sern rescritas nuevamente agregndoles el nuevo no
terminal, de tal manera que se obtengan producciones del tipo S ? ?1 N, S? ?2N,.. S ?
?n N. Adems se agregan nuevas, producciones donde el nuevo no terminal deriva a n ; de tal
manera que se obtengan producciones del tipo N ?

a 1 a 2 . a n a 1N

a 2N a nN. De esta manera las producciones recursivas por la izquierda sern


eliminadas.

Estas dos tcnicas son aplicadas una y otra vez hasta transformar la gramtica a la
forma deseada. Un aspecto que debe de tener en cuenta para que una gramtica pueda ser
transformada a la FNG es el orden en que aparecen sus smbolos no terminales. Cada no
terminal en una gramtica en FNG es etiquetado con un orden de prioridad (de 0 a n),
donde el smbolo inicial tiene la prioridad ms baja; de tal manera que un smbolo no
terminal no puede producir a otro smbolo no terminal de menor prioridad que l.

Teora de la Computacin

121

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

Los lenguajes independientes del contexto tienen la caracterstica de construir


lenguajes de mayor complejidad que los LR por lo cual es imposible que un AF pueda
reconocer un lenguaje de ste tipo. Los autmatas push-down o autmatas de pila (AP) son
las mquinas abstractas designadas para el reconocimiento de los LIC.

Un autmata de pila es muy parecido a AF, adicionndole algunos nuevos conjuntos


de elementos, as como un mecanismo de almacenamiento conocido como pila, el cual
asemeja una memoria virtual. Una pila es denominada como una estructura del tipo LIFO
(Last in, first out; -el ltimo en entrar el primero en salir-). ste mecanismo de apilamiento
permite al autmata de pila (AP) leer y almacenar o eliminar los smbolos de entrada del
autmata, mientras pasa de un estado a otro; una vez que el AP a llegado a un estado de
aceptacin, la pila debe de encontrarse completamente vaca y la cadena de entrada ser
aceptada.

Formalmente un autma ta de pila (AP) se define como una 7-tupla, AP = (Q, ? , ?, s,


z, F, ? ) donde
Q es una coleccin finita de estados.
? es el alfabeto de entrada.
Z es el alfabeto de la pila
s es el estado inicial.
z es el smbolo inicial de la pila
F es el conjunto de estados de aceptacin
? es una funcin ? : Q x (? {e}) x ??

Q x Z* , denominada funcin de

transicin.

Las funciones de transicin de una AP son de la forma (q, s, a), (p, ) donde se indica
que de un estado actual q, a travs de un smbolo de entrada s y un smbolo del alfabeto de
la pila a que es sacado de la pila; se llega a un nuevo estado p, insertando (smbolo del
alfabeto de pila) dentro de la pila. Sin embargo las funciones de transiciones usadas en el

Teora de la Computacin

122

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

diagrama de un AP, son reducidas a la forma s / a / donde s es el smbolo de entrada


que esta siendo ledo, a es el smbolo que ser eliminado de la pila y es el smbolo que
ser insertado en la pila. Un ejemplo de ste tipo de diagrama de transiciones se presenta en
la figura 3.6.

Teora de la Computacin

123

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

GLOSARIO
Gramtica. Conjunto de reglas que rigen el orden de las palabras en una oracin.
Derivacin. Sustitucin contina de las reglas gramaticales.
rbol de derivacin. Grfico constituido por nodos y lneas que los unen entre si,
formando ramificaciones; que representan cada una de las producciones de la
gramtica que son utilizadas en una derivacin.
Ambigedad. Termino usado para indicar algo incierto o de doble sentido.
Lenguaje independiente del contexto inherentemente ambiguo. Se le llama as a
aquel LIC cuya gramtica contiene ambigedad permanente.
Prueba de correccin. La prueba de correccin garantiza que todas las palabras que
produce una gramtica, efectivamente corresponden a la descripcin del lenguaje
basndose en la longitud de la derivacin.
Prueba de completez. La completez se asegura que la gramtica produzca todas las
palabras requeridas por el lenguaje.
Producciones vacas o anulables. Son aquellas producciones de la forma S ? e.
Producciones unitarias. Son aquellas producciones de la forma S ? B, donde la
longitud de B es igual a uno.
Producciones intiles. Son aquellas producciones que no tienen ningn significado
dentro de una gramtica, ya que no producir ninguna cadena a partir del smbolo
de inicial.
Autmata de pila (AP). Formalmente un autmata de pila (AP) se define como una
7-tupla, AP = (Q, ? , ?, s, z, F, ?) donde
o
o
o
o
o
o
o

Q es una coleccin finita de estados.


? es el alfabeto de entrada.
Z es el alfabeto de la pila
s es el estado inicial.
z es el smbolo inicial de la pila
F es el conjunto de estados de aceptacin
? es una funcin ? : Q x (? {e}) x ?? Q x Z* , denominada funcin de
transicin.

Teora de la Computacin

124

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

EJERCICIOS.

1. Conteste correctamente las siguientes preguntas.


a. Cuales son los pasos para construir una gramtica a partir de un Autmata
de Pila?
b. De que gramtica proviene el lenguaje reconocido por un autmata de pila?
Descrbala
c. Describa el funcionamiento de un autmata de pila.
d. Qu es la ambigedad?

2. Mencione los pasos necesarios para transformar una gramtica a la forma normal de
Greibach.
3. Mencione los pasos necesarios para transformar una gramtica a la forma normal de
Chomsky.
4. Describe el funcionamiento de un autmata de pila.
5. Defina formalmente un autmata de pila.
6. Haciendo uso de los algoritmos de transformacin y elimina las producciones e,
producciones y producciones unitarias estandariza las siguientes gramticas.

a)

S?
C?
D?
E?
F?

CD
aC e
ab bD e
fF c
c

b)

S ? aSb bSa e
C ? aC e
D ? ab bD e

c)

S?
A?
B?
C?
D?

a aA B C
aB e
Aa
bCD
ccc

d)

S?
A?
B?
C?
D?

Teora de la Computacin

aAb cEB CE
dBE eeC
ff D
gFB ae
h

125

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

PROBLEMAS
1. Observe los siguientes AF y construya la gramtica que represente a cada uno de ellos.

a.

b.

c.

2. Observe cada una de las siguientes gramticas y defina su estado de ambigedad.

a) S ? AB
A ? aA e
B ? a bB e

b) S ?
A?
A?
B?

c) S ? ABA
A ? aA e
B ? bB e

e)

AcA
aA e
aB
aB bB e

A? AcA
A? AbA
A? a

Teora de la Computacin

126

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

3. Obtenga una gramtica independiente del contexto para cada uno de los siguientes
lenguajes.
a. L = {am bn m = n}
b. L = {am bn n m 2n}
4. Obtenga un autmata de pila que reconozca cada uno de los siguientes lenguajes.
a. L = {[m an bn ] m m > 0, n > 0}
b. L = {( m(n xa yb )n )m m,n = , a > 1, b = 2}
c. L = {an bn+m cm n, m > 0}
d. L = {w ? {a,b}* w contiene una a ms que bs}
5. Obtenga el autmata de pila que reconozca la siguiente gramtica.

a) S ?
A?
A?
B?
B?

AyB
xAy
zB
x
z

Teora de la Computacin

b)

S?
F?
G?
H?

eF
G H
eG H
fH f

127

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

LECTURA COMPLEMENTARIA
Noam Chomsky
Como ya se menciono, la gramtica se define como una rama de la lingstica, que
estudia la forma y la composicin de las palabras. En particular la gramtica generativa es
aquella que permite establecer las reglas de generacin para todas las posibles oraciones de
un lenguaje.

La gramtica generativa fue fundada por el lingista estadounidense Noam Chomsky.


Abraham Noam Chomsky naci en Filadelfia, Pensilvania. Estudi en la Universidad de
Pensilvania, donde se doctor en Lingstica en 1955. Ese mismo ao se incorpor como
profesor de francs y alemn al Instituto de Tecnologa de Massachusetts (MIT) y en 1976
pas a ser catedrtico de Lingstica de la mencionada institucin.

Chomsky fue el creador de un nuevo modelo lingstico, la gramtica generativa, que


expuso por primera vez en su libro Estructuras sintcticas. Estableci una diferencia entre
el conocimiento innato y con frecuencia inconsciente que los individuos tienen de la
estructura de su lengua y el modo en que utilizan sta diariamente.

Chomsky inici su activismo poltico relativamente pronto, pero comenz a publicar


ms intensamente sobre estos temas en la dcada de 1960, en respuesta a la actuacin de su
pas en el Sureste asitico. Rest dedicacin a su trabajo sobre lingstica para escribir
acerca del papel de la comunidad acadmica y de los medios de comunicacin en la
obtencin del apoyo de la opinin pblica a la poltica de Estados Unidos. Abord
igualmente las consecuencias de la poltica exterior de Estados Unidos, y se manifest a
favor de que los intelectuales recurran a mtodos cientficos para cuestionar las polticas
gubernamentales que encuentren inmorales y desarrollar estrategias prcticas que las
combatan.

Teora de la Computacin

128

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

Entre las publicaciones ms importantes de Chomsky, aparte de la ya mencionada


Estructuras sintcticas (1957), se encuentran: Aspectos de la teora de la sintaxis (1965),
Principios de fonologa generativa (1968, escrito en colaboracin con Morris Halle),
Lingstica cartesiana (1969), El lenguaje y el entendimiento (1971) y El programa
minimalista (1995). Algunos de sus escritos polticos son La responsabilidad de los
intelectuales y otros ensayos histricos y polticos (1969), Guerra o paz en Oriente Medio
(1974), El miedo a la democracia (1991), El nuevo orden mundial (y el viejo) (1996),
Estados canallas (2001) y 11-09-2001 (2001), obra esta ltima que recoge siete entrevistas
en las que Chomsky analiza el ms sangriento atentado terrorista de la historia de Estados
Unidos.

Teora de la Computacin

129

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

BIBLIOGRAFA

1. Brena,

verano

2003

Ramn

Brena.

Autmatas

Lenguajes.

En:

http://lizt.mty.itesm.mx/~rbrena/AyL.html. Consultado por ltima vez en Abril del


2006.
2. Dean Kelley, mayo 1995 Dean Kelley: Teora de autmatas y lenguajes formales.
Editorial: Prentice-Hall.
3. ENCARTA, 2006. Biblioteca de Consulta Microsoft Encarta. DE 1993 a 2005.
Editado por Microsoft Corporation.
4. John Martin. 2004, John C. Martin. Lenguajes formales y teora de la
computacin. Editorial: Mc Graw Hill.

Teora de la Computacin

130

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

RETROALIMENTACIN.
Retroalimentacin a los ejercicios.
1.

a. La construccin de una gramtica a partir de un AF se inicia por dividir el


autmata en partes; cada una de las transiciones marcar el smbolo que entrara al
autmata y que debe de ser generado por la gramtica, mientras que cada divisin
marca un nuevo smbolo no terminal que debe de ser generado y con lo cual se
busaca la generacin de nuevas producciones y construyan las cadenas
reconocidas por el autmata.

c. El funcionamiento de un AP es muy parecido al de un AF, lee los smbolos de


una cadena de entrada, pasando de una transicin a otra; aunndole un
mecanismo de apilamiento que permite al AP leer y almacenar o eliminar los
smbolos de entrada, mientras pasa de un estado a otro; una vez que el AP ha
llegado a un estado de aceptacin, la pila debe de estar completamente vaca y la
cadena de entrada es aceptada.

3.

Una gramtica se transforma en forma normal de Chomsky eliminando producciones


anulables (A ? ), producciones unitarias (A ? B donde B = 1), y finalmente
las producciones intiles; adems, el resto de sus producciones son del tipo A ? a
donde a ? ? , A ? AB donde ambos son elementos no terminales.

5.

Formalmente un autmata de pila (AP) se define como una 7-tupla, AP = (Q, ? ,


?, s, z, F, ?) donde
Q es una coleccin finita de estados.
? es el alfabeto de entrada.
Z es el alfabeto de la pila
s es el estado inicial.
z es el smbolo inicial de la pila

Teora de la Computacin

131

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

F es el conjunto de estados de aceptacin


? es una funcin ? : Q x (? {e}) x ?? Q x Z* , denominada funcin de
transicin.
Retroalimentacin a los problemas.
1.

a. S ? aA e
A ? bB
B ? a aS
c. S ? aE aF b
E ? bE b
F ? aF b

2.

3.

a) La gramtica no es ambigua, ya que los rboles de derivacin que se obtienen de


ella son iguales.
c) La gramtica es ambigua, ya que los rboles de derivacin que se obtienen de ella
son diferentes.
a. S ? aE a e
E ? Eb aS e

4.

a.

Teora de la Computacin

132

Instituto Tecnolgico de Celaya

Lenguajes Independientes
del Contexto.

c.

5.

a.

Teora de la Computacin

133

C
A
P
I
T
U
L
O
IV

MQUINAS DE
TURING
OBJETIVO

Conocer el origen, funcionamiento, variantes


y aplicaciones de las Mquina de Turing, as
como los lenguajes que reconocen.

Instituto Tecnolgico de Celaya

Mquinas de Turing

Lenguajes
recursivamente
enumerables
Variantes de una Mquina
de Turing

Que forman parte de


Lenguajes recursivos

Puede transformarse
Reconocedoras

Mquinas de
Turing

Dan inicio con

El Problema de Hilbert

Son vistas como

Cintas infinitas aunadas a


una cabezada de
lectura/escritura.

Se representacin grfica

Construccin modular de
una MT

Figura 4.1. Diagrama temtico de la unidad IV

Teora de la Computacin

135

Instituto Tecnolgico de Celaya

Mquina de Turing

4. MQUINA DE TURING

4.1 INTRODUCCIN

La presente unidad introducir al lector en el mundo del matemtico ingles Alan


Turing, que en la dcada de los 1930 construyo una mquina abstracta, cuya ejecucin
provee de una solucin computacional a los problemas matemticos; solucin que alguna
vez haba sido cuestionada por el matemtico alemn David Hilbert. Dicha mquina lleva
su nombre Mquina de Turing. Y es hoy en da la mquina de mayor potencia de anlisis
en la teora de la computacin.

Turing propuso con su mquina la existencia de una cinta infinita en ambos sentidos
(izquierda y derecha), la cual esta ligada a una cabeza de lectura/escritura que poda
moverse en ambos sentidos sobre la cinta. Adems fue adicionado un alfabeto para esta
cinta cuyo elemento esencial es el smbolo en blanco que permite marca el inicio y final de
toda cadena sobre la cinta. Dichas cintas pueden sufrir algunas modificaciones dando lugar
a la existencia de variaciones en la MT; sin embargo, estas variaciones no implican cambio
drsticos sobre la esencia de las mquinas propuestas por Turing, pero si permiten que su
construccin sea ms sencilla.

La construccin grafica de las MT suele realizarse mediante bloques bsicos de MT,


cuya unin construye mquinas comple jas capaces de reconocer la mayora de los lenguajes
recursivamente enurables. Los cuales involucran los lenguajes regulares, dependientes e
independientes de contexto; por lo que las mquinas propuestas por ste gran cientfico
revolucionaron las ciencias computacionales.

Teora de la Computacin

136

Instituto Tecnolgico de Celaya

Mquina de Turing

4.2 CONCEPTOS BSICOS.


En unidades pasadas se analizaron dos tipos de lenguajes formales, sin embargo, de
acuerdo a la jerarqua de Chomsky existen otros dos tipos, los lenguajes dependientes del
contexto y los lenguajes recursivamente enumerables, los cuales no pueden ser reconocidos
por los AF o por los AP que han sido estudiados; pero esto, no quiere decir que no exista
una mquina que pueda reconocer estos tipos de lenguajes. Las denominadas Mquinas de
Turing (MT) son mquinas abstractas que permiten el reconocimiento de los lenguajes de
tipo 0 (recursivamente enumerables).

Una mquina de Turing es representada como una cinta infinita dividida en celdas de
almacenamiento, a las que se puede acceder en cualquier parte de la cinta; cada una de las
celdas puede almacenar un smbolo que es reconocido por una cabeza de lectura/escritura
que recorre la cinta en cualquier sentido (izquierda a derecha derecha a izquierda), (figura
4.2). (Kelley, 1995, Pg. 172)

Figura 4.2 Cinta y cabeza de lectura escritura


de una mquina de Turing.

Teora de la Computacin

137

Instituto Tecnolgico de Celaya

Mquina de Turing

4.2.1 Definicin formal de una mquina de Turing.


Formalmente una mquina de Turing se define como una 7-tupla M = (Q, ? , ?, s,
?, F , d) donde
Q conjunto finito de estados
? es el alfabeto de entrada
? es el alfabeto de la cinta
s es el estado inicial de la pila
? es un smbolo en blanco ? ?
d es una funcin parcial de transicin definida por d : Q x ? ? Q x ? x {L,
R}
(Kelley, 1995, Pg. 172)

La funcin de transicin mostradas en la definicin anterior transforma pares (q, a) en


ternas del tipo (p, s, m) donde q es el estado actual en que se encuentra, a es el smbolo de
la cinta que se esta leyendo actualmente, p es el estado nuevo al que se llega, s es el
smbolo que se rescribe sobre la cinta y m es el movimiento que realiza la cabeza de lectura
escritura que puede ser a la derecha (D) o a la izquierda (I). (Kelley, 1995, Pg. 172)

Por ejemplo, considere la mquina de Turing que reconoce el lenguaje definido por L
= {an bn cn n > 0}.

Q = {q0, q1, q2, q3, q4, q5, q6, q7}


? = {a, b, c}
? = {a, b, c, x, y, z, ? }
s = {q0}
? = {? }
F = {q7}

Teora de la Computacin

138

Instituto Tecnolgico de Celaya

Mquina de Turing

d (q0, ? ) = (q1, ? , R)
d (q1, a) = (q2, x, R)
d (q2, a) = (q2, a, R)
d (q2, y) = (q2, y, R)
d (q2, b) = (q3, y, R)
d (q3, b) = (q3, b, R)
d (q3, z) = (q3, z, R)
d (q3, c) = (q4, z, L)
d (q4, z) = (q4, z, L)
d (q4, y) = (q4, y, L)
d (q4, b) = (q4, b, L)
d (q4, a) = (q4, a, L)
d (q4, x) = (q1, x, R)
d (q1, y) = (q5, y, R)
d (q5, y) = (q5, y, R)
d (q5, z) = (q6, z, R)
d (q6, z) = (q6, z, R)
d (q6, ? ) = (q7, ?, L)

La mquina de Turing mostrada anteriormente permite el reconocimientos del


lenguaje formado por cadenas del tipo: abc, aabbcc, aaabbbccc; dichas cadenas no pueden
ser reconocidas por autmatas de finitos o por autmatas de pila. La mquina de Turing
mostrada permite que exista solo una b y c para cada a que aparece en la cadena, tal
reconocimiento lo realiza al permitir que la cabeza de escritura/lectura se mueva
constantemente a travs de la cinta.

Una MT tambin puede ser representada de manera grfica, mediante diagramas de


transiciones o bien mediante de bloques, de los cuales se hablara en la siguiente seccin.

Teora de la Computacin

139

Instituto Tecnolgico de Celaya

Mquina de Turing

4.3 CONSTRUCCIN MODULAR FORMAL DE UNA MQUINA DE


TURING.

Como ya se dijo las MT pueden representarse mediante diagramas de transiciones, los


cuales muestran transiciones de la forma x/y/m donde el primer elemento (x) representa el
smbolo que se est leyendo en la cinta, el segundo elemento (y) representa el smbolo que
ser reescrito en la cinta y finalmente el tercer elemento (m) representa el movimiento a
realizar sobre la cinta que como se sabe puede ser hacia la derecha o izquierda. (Martin,
2004, Pg. 232) Un ejemplo claro de este tipo de diagrama se muestra en la figura 4.3.

Figura 4.3 MT reconocedor del lenguaje L= {an b n cn n >0}

Otra manera de construir una MT es haciendo uso de los bloques bsicos para la
construccin de mquinas de Turing. Cada uno de stos bloques representa ya por si solos
una mquina, la unin de estos bloques permiten la construccin de mquinas complejas
capaces de reconocer un lenguaje.

Teora de la Computacin

140

Instituto Tecnolgico de Celaya

Mquina de Turing

4.3.1. Bloques bsicos

Antes de poder visualizar los bloques bsicos de una MT, se debe recordar que la MT
permite realizar dos movimientos sobre una cinta, los cuales son descritos a continuacin.

Permite el mover la cabeza de lectura/escritura una celda hacia la derecha


de su posicin actual.

Permite el mover la cabeza de lectura/escritura una celda hacia la


izquierda de su posicin actual.
Tabla. 4.1 Funciones bsicas de las MT

Cada uno de estos movimientos permite la construccin de las siguientes mquinas


bsicas de Turing.

a ) Movimiento de lectura

b) Movimiento de lectura y reescritura

c) Movimiento y lectura a la derecha

d) Movimiento y lectura hacia la izquierda

Figura 4.4 Bloques bsicos

(Kelley, 1995, Pg. 190)


Las mquinas de la figura 4.4 presentan los movimientos bsicos de una MT sobre
una cinta; el inciso a), genera un movimiento a la derecha, la lectura de una a y finalmente

Teora de la Computacin

141

Instituto Tecnolgico de Celaya

Mquina de Turing

un movimiento a la derecha de la posicin actual de la cabeza de lectura/escritura; el inciso


b) realiza nuevamente los movimientos del inciso anterior adicionndole la reescritura de x
antes de realizar el cambio de celda. Los incisos c) y d) generan movimientos hacia la
derecha o izquierda, respectivamente, leyendo solo uno de los tres smbolos en la cinta y
finalizan con un movimiento a la derecha e izquierda respectivamente. La construccin de
estas mquinas no se limita solamente a la lectura lineal de un solo smbolo, si no tambin
pueden realizarse lecturas cclicas, o bien, bsquedas continuas de un smbolo como es el
caso que se presenta en la figura 4.5 a) y b). Cada uno de estos incisos muestra la lectura
continua de los smbolo y y ? , cuando encuentra un smbolo diferente a alguno de ellos la
lectura se detiene este tipo de mquinas puede resumirse mediante la notacin Rx donde x
representa el smbolo que esta buscando sobre la cinta, es decir, suponga que la cinta sobre
la que esta trabajando contiene palabras formadas por yyyyxxxx, y se requiere e localizar la
siguiente x existente en la cinta para su contabilizacin. Las mquinas mostradas en la
figura 4.5 recorrera la cinta leyendo las y y lo s espacios en blanco, en cuanto encontrarn
una x se detendran; la notacin Rx hara lo mismo, recorre la cinta buscando una x, en
cuanto la encontr se detiene. (Kelley, 1995, Pg. 186) Las figuras 4.4 a) y b) muestran los
bloques que realizan esta accin.

a) Rx (Recorre la cinta hacia la derecha hasta

b) Lx (Recorre la cinta hacia la izquierda hasta


encontrar una x )

encontrar una x )
Figura 4.5 Bloques de bsqueda

(Kelley, 1995, Pg. 190)

Teora de la Computacin

142

Instituto Tecnolgico de Celaya

Mquina de Turing

[
5
a) Movimiento continuo hacia la derecha

b)Movimiento continuo hacia la izquierda

buscando x.

buscando y.
Figura 4.6 Movimientos cclicos de MT

(Kelley, 1995, Pg. 190)

La unin de ests mquinas construyen mecanismos complejos, que permiten el


reconocimiento de un lenguaje, por ejemplo, el lenguaje examinado por el diagrama de
transicin de la figura 4.3, es tambin reconocido por la MT construida mediante bloque de
la figura 4.7; dicha mquina considera como posicin inicial de la cabeza de
lectura/escritura la celda que contiene el espacio en blanco y que marca el inicio de cadena.

Figura 4.7 MT basada en bloques

La mquina mostrada en la figura anterior realiza en su primera accin un


movimiento hacia la derecha de su posicin actual lee la primera a que existe en la cadena
y la sobrescribe con una x, nuevamente se mueve hacia la derecha buscando una b la cual
sobrescribe con una y, una vez realizada esta accin, la mquina busca la siguiente c sobre
la cinta la sobrescribe por una z, y continua su bsqueda hacia la izquierda, hasta encontrar
la ltima x rescrita; una vez marcadas todas las as, bs y cs, la mquina verifica que solo
existan ys y zs en la cinta hasta llegar a el espacio blanco, y al estado de aceptacin.
Teora de la Computacin

143

Instituto Tecnolgico de Celaya

Mquina de Turing

4.4 LENGUAJES ACEPTADOS POR UNA MQUINA DE TURING


Se dice que un lenguaje es aceptado por una MT s todas las cadenas de ste son
reconocidas por dicha mquina. Los lenguajes que son aceptados por una MT son los
denominados lenguajes recursivamente enumerables (R.E.), en particular solo una parte de
stos lenguajes son completamente aceptados por una mquina de ste tipo, dicho s
lenguajes son los lenguajes recursivos (Kelley, 1995, Pg. 180), o tambin denominados
lenguajes decidibles, que son aquellos para los que existe una MT que reconozca al
lenguaje.

De manera formal un lenguaje recursivo puede ser definido como:

Dado un alfabeto ? , un lenguaje L es recursivo en ? ; s para alguna cadena e ? ?

existe un procedimiento efectivo para decidir s e ? L o bien e L.


(Chesevar, 2003, Pg. 250)

Mientras tanto, todos los problemas que no pueden ser reconocidos por una mquina
de Turing son denomina algoritmos irresolubles.

Lenguajes irresolubles
Lenguajes recursivamente
enumerables
Lenguajes recursivos

Figura 4.8. Clasificacin de lenguajes aceptados por una MT

Teora de la Computacin

144

Edited by Foxit Reader


Copyright(C) by Foxit Software Company,2005-2007
Mquina de Turing
For Evaluation Only.

Instituto Tecnolgico de Celaya

4.5 VARIANTES DE UNA MQUINA DE TURING


Una MT puede ser modificada de diferentes maneras, creando nuevas mquinas que
permiten, al igual que la MT bsica, el reconocimiento de lenguajes; sin embargo, dichas
modificaciones suelen presentar mtodos ms sencillos de reconocimiento de lenguajes.
Tales modificaciones se extienden desde evitar el movimiento de la cabeza de
lectura/escritura sobre la cinta, hasta crear cinta de mltiples dimensiones, es decir, cintas
que se extienden hacia la izquierda, derecha, arriba y abajo de manera infinita.

4.5.1 Permanencia

Una de las primeras variaciones que puede realizrsele a una MT es el estado de


permanencia, es decir, las mquinas de Turing bsicas permiten que la cabeza de
lectura/escritura se mueva nicamente en dos sentidos teniendo funciones de transiciones
de la siguiente forma

d : Q x ? ? Q x ? x {L, R}
(Kelley, 1995, Pg. 194)

Sin embargo, la variacin de permanencia permite introducir un nuevo movimiento S


que significa permanecer cambiando las funciones de transicin a la forma

d : Q x ? ? Q x ? x {L, R, S}
(Kelley, 1995, Pg. 194)

permitiendo que la cabeza de lectura/escritura mantenga una posicin fija al leer y rescribir
cualquier smbolo sobre la cinta.

Teora de la Computacin

145

Instituto Tecnolgico de Celaya

Edited by Foxit Reader


Copyright(C) by Foxit Software Company,2005-2007
Mquina de Turing
For Evaluation Only.

4.5.2 Subceldas

Una segunda modificacin que puede ser aplicada a la MT bsicas es la divisin en


subceldas. Cada celda es dividida en varias subceldas capaces de contener un smbolo de la
cinta (Kelley, 1995, Pg.195). Un ejemplo visual de dicha alteracin se muestra en la figura
4.9.

a a

. b

b b

c ?

Figura 4.9 Subceldas

Como puede verse la cinta se ha transformado y ahora puede decirse que contiene
varias pistas. El contenido de las celdas puede ser representado por n-tuplas ordenas, por
ejemplo (? , a, a), (b, b, b), (c, c, ? ) (presentados en la figura 4.9).

4.5.3 Cintas finitas

Las MT bsicas que se han tratado, presentan la caracterstica de crecimiento infinito


de su cinta hacia izquierda o derecha, un tercera modificacin a est mquina restringe el
crecimiento de esta cinta hacia su lado izquierdo, impidiendo el movimiento de la cabeza
hacia la izquierda de su smbolo en blanco que marca el inicio de cadena. Una mquina de
ste tipo puede representar una mquina bsica, pero con dos pistas. Por ejemplo, considere
la MT bsica mostrada en la figura 4.10, la cual es infinita en ambos lados; est puede ser
representada por una cinta finita de su lado izquierdo marcando un punto de referencia para
la divisin de la cadena en cuestin. Tal representacin se muestra en la figura 4.11

Teora de la Computacin

146

Instituto Tecnolgico de Celaya

Mquina de Turing

a A a b b b ?

Punto de referencia divisorio


Figura 4.10 Cinta infinita en ambos lados

* B b b

* a

a ?

Figura 4.11 Cinta infinita

El smbolo * marca el lmite izquierdo de la cinta. Cuando la MT pasa por el punto de


referencia tendra que encontrase con la celda marcada con * ; s se encontrara trabajando en
el lado derecho al punto de referencia estara trabajando en la pista superior de la cita finita.
(Kelley, 1995, Pg. 198)

4.5.4 Multicintas

Una mquina multicintas requiere de mayor complicacin en comparacin con las


variantes ya presentadas. Est tipo de mquinas cont iene varias cintas cada una con su
propia cabeza de lectura/escritura, que se mueva independientemente al resto de la cabezas.
En un solo movimiento una mquina de est tipo realiza las siguientes acciones.

1. Cambia de estado dependiendo del estado actual y del contenido de las


celdas de todas las cintas, que estn analizando las cabezas.
2. Escribe un nuevo smbolo en cada una de las celdas barridas por las
cabezas de lectura/escritura.
3. Mueve cada una de sus cabezas en el sentido requerido.
(Kelley, 1995, Pg. 198)

Teora de la Computacin

147

Instituto Tecnolgico de Celaya

Edited by Foxit Reader


Copyright(C) by Foxit Software Company,2005-2007
Mquina de Turing
For Evaluation Only.

Lo cual cambia las funciones de transicin a la forma


d : Q x ? n ? Q x ? n x {L, R}n

(Kelley, 1995, Pg. 198)

Esta funcin de transicin puede traducirse de la siguiente manera:

d (q, (s 1 s 2 s 3 ..s n )) = (p, (a 1 a 2 a 3 .a n ),(m1 m2 m3.. mn ))

Significa que cambia del estado q al p, reemplazando s n por a n y mueve la cabeza de la


cinta n en la direccin mn . (Kelley, 1995, Pg. 199)

4.5.5 MT no deterministas

Las mquinas de Turing tambin pueden ser creadas de manera no deterministicas


realizando una modificacin a su funcin de transicin. Tal modificacin elimina el
concepto de funcin de transicin y lo transforma en una regla de la forma

d (q, s ) Q x ? x {L, R}
(Kelley, 1995, Pg. 199)
Y al igual que los AF, es posible representar una MT determinista mediante una no
determinista y viceversa.

Teora de la Computacin

148

Instituto Tecnolgico de Celaya

Edited by Foxit Reader


Copyright(C) by Foxit Software Company,2005-2007
Mquina de Turing
For Evaluation Only.

4.6 PROBLEMAS DE HILBERT

La teora de la computacin moderna nace de un problema planteado por David


Hilbert en 1900.
(http://www.webzinemaker.com/admi/m6/page.php3?page=2&total=63&num_web=1604&
rubr=4&id=10460, Abril 2006)
David Hilbert matemtico y filsofo alemn, nacido en Knigsberg (1862-1943).
Trabaj en muchos campos de las matemticas, incluyendo la teora de nmeros y el
clculo de variaciones, pero sus ms importantes contribuciones las hizo en el terreno de la
geometra (Encarta, 2006).
En sus estudios Hilbert, propuso buscar un algoritmo que pudiera solucionar todos los
problemas matemticos. La bsqueda de este algoritmo por los matemticos de aquellos
tiempos result ser infructuosa; sin embargo no se llego a probar que fuera imposible su
creacin.
Posteriormente Turing, parti del problema planteado por Hilbert denominado
Entscheidungsproblem, el cual esbozaba la siguiente pregunta: existe un procedimiento
mecnico para contestar todos los problemas matemticos, dentro de alguna clase amplia
pero bien definida?. (http://www.claudiogutierrez.com/bid- fod-uned/Teoria_II.html, Abril
2006)
Tal problema produjo la creacin de un "procedimiento eficazmente calculable" el
cual es ahora denominado mquina de Turing.
Turing introdujo el concepto de MT como herramienta para estudiar la computacin
desde dos puntos de vista bsicos:

a) La posibilidad de computar ciertas funciones, estableciendo que "cualquier funcin


que sea computable, se puede computar mediante una mquina de Turing constituida
por un dispositivo fsico razonable".
Teora de la Computacin

149

Instituto Tecnolgico de Celaya

Mquina de Turing

b) Y desde la eficiencia que se establece clasificando los algoritmos en determinadas


Clases de Complejidad, en funcin de cmo escalan los recursos de un clculo con el
tamao de los datos. En aquellos tiempos no se crea que est clasificacin tuviera
relacin alguna con el tratamiento fsico de la informacin, por lo que se poda
estudiarse completamente la teora de computadoras sin referencia a su
implementacin fsica. Sin embargo, est creencia cambio su enfoque con al aparicin
de la computacin cuntica.
(http://www.webzinemaker.com/admi/m6/page.php3?page=2&total=63&num_web=1
604&rubr=4&id=10460, Abril 2006)
Sin embargo, la creacin de ste procedimiento aun dejo en el aire la pregunta de
Hilbert.
Turing encontr que existan mquinas para las cuales no poda comprobarse la
culminacin de su ejecucin; es decir, no poda asegurarse que dichas mquinas llegarn a
un punto decisorio final.
La bsqueda de un algoritmo que pudiera terminar con la ejecucin continua de
dichas mquinas no produjo frutos por lo cual Turing concluyo que no puede haber un
algoritmo general para decidir todas las cuestiones matemticas. Por lo que el problema
decisorio de Hilbert no tiene solucin. (http://www.claudiogutierrez.com/bid-foduned/Teoria_II.html, Abril 2006)
Esto no quiere decir que en casos individuales no se pueda decidir, sobre alguna
cuestin matemtica en particular; o decidir si alguna mquina Turing se detiene o no. Por
ingenio, o incluso simplemente por sentido comn, se puede decidir la cuestin en un caso
dado. (Por ejemplo, si una lista de instrucciones en una mquina Turing no contiene la
orden de detenerse, entonces, el sentido comn basta para decirnos si se detendr o no).
Pero no hay ningn algoritmo que funcione para todas las cuestiones matemticas, ni para
todas las mquinas Turing y todos los nmeros sobre los que pueden actuar.
(http://www.claudiogutierrez.com/bid-fod- uned/Teoria_II.html, Abril 2006)
Teora de la Computacin

150

Instituto Tecnolgico de Celaya

Mquina de Turing

RESUMEN
Las denominadas Mquinas de Turing (MT) son mquinas abstractas que permiten el
reconocimiento de los lenguajes de tipo 0 (recursivamente enumerables).

Las mquinas de Turing son vistas como una cinta infinita dividida en celdas de
almacenamiento a la cual puede acceder en cualquier parte de la cinta; cada una de las
celdas puede almacenar un smbolo y puede ser ledo por una cabeza de lectura/escritura
que recorre la cinta en cualquier sentido (izquierda a derecha derecha a izquierda).

Formalmente una mquina de Turing se define como una 7-tupla M = (Q, ? , ?, s, ?,


F , d) donde
Q conjunto finito de estados
? es el alfabeto de entrada
? es el alfabeto de la cinta
s es el estado inicial de la pila
? es un smbolo en blanco ? ?
d es una funcin parcial de transicin definida por d : Q x ? ? Q x ? x {L,
R}

Una MT tambin puede ser representada de manera grafica, mediante diagramas de


transiciones o bien mediante de bloques.

Los diagramas de transiciones, muestran transiciones de la forma x/y/m donde el


primer elemento (x) representa el smbolo que se est leyendo en la cinta, el segundo
elemento (y) representa el smbolo que ser reescrito en la cinta y finalmente el tercer
elemento (m) representa el movimiento a realizar sobre la cinta que como ya se haba dicho
puede ser hacia la derecha o izquierda.

Teora de la Computacin

151

Instituto Tecnolgico de Celaya

Mquina de Turing

Los bloques bsicos para la construccin de mquinas de Turing, representa ya por s


solos una mquina, la unin de estos bloques permiten la construccin de mquinas
complejas capaces de reconocer un lenguaje.

Se dice que un lenguaje es aceptado por una MT s todas las cadenas de ste son
reconocidas por dicha mquina. Los lenguajes que son aceptados por una MT son los
denominados lenguajes recursivamente enumerables (R.E.), en particular solo una parte de
estos lenguajes son completamente aceptados por una mquina de est tipo, dicho lenguajes
son los lenguajes recursivos, o tambin denominados lenguajes decidibles, que son
aquellos para los que existe una MT que reconozca un al lenguaje.

De manera formal un lenguaje recursivo puede ser definido como:

Dado un alfabeto ?, un lenguaje L es recursivo en ?, s para alguna cadena e ? ?

existe un procedimiento efectivo para decidir s e ? L o bien w L.

Una MT puede ser modificada de diferentes maneras, creando nuevas mquinas que
permiten, al igual que la MT bsica, el reconocimiento de lenguajes. Tales modificaciones
se extienden desde evitar el movimiento de la cabeza de lectura/escritura sobre la cinta,
hasta crear cinta de mltiples dimensiones, es decir, dichas cintas se extienden hacia la
izquierda, derecha, arriba y abajo de manera infinita.

Una de las primeras variaciones que puede realizrsele a una MT es el estado de


permanencia, cambiando las funciones de transicin a la forma bsica por la funcin

d : Q x ? ? Q x ? x {L, R, S}

Teora de la Computacin

152

Instituto Tecnolgico de Celaya

Mquina de Turing

Una segunda modificacin que puede ser aplicada a la MT bsicas es la divisin en


subceldas. Cada celda es dividida en varias subceldas capaces de contener un smbolo de la
cinta.

Las MT bsicas presentan la caracterstica de crecimiento infinito de su cinta hacia la


izquierda o derecha, una tercera modificacin a esta mquina restringe el crecimiento de
esta cinta hacia su lado izquierdo, impidiendo el movimiento de la cabeza hacia la izquierda
de su smbolo en blanco que marca el inicio de cadena.

Una modificacin de gran importancia es la creacin multicintas. Este tipo de


mquinas contiene varias cintas cada una con su propia cabeza de lectura/escritura, que se
mueva independientemente al resto de las cabezas. En un solo movimiento una mquina de
est tipo realiza las siguientes acciones.

1. Cambia de estado dependiendo de l estado actual y del contenido de las


celdas de todas las cintas, que estn analizando las cabezas.
2. Escribe un nuevo smbolo en cada una de las celdas barridas por las
cabezas de lectura/escritura.
3. Mueve cada una de sus cabezas en el sentido requerido.

Lo cual cambia las funciones de transicin a la forma

d : Q x ? n ? Q x ? n x {L, R}n

La creacin de la mquina de Turing vino a tratar de resolver uno de los


planteamientos ms complicados propuesto por David Hilbert matemtico y filsofo
alemn. Hilbert propuso buscar un algoritmo que pudiera solucionar todos los problemas
matemticos.

Posteriormente

Teora de la Computacin

Turing,

parti

de

ste

problema

denominado

153

Instituto Tecnolgico de Celaya

Mquina de Turing

Entscheidungsproblem, y creo un "procedimiento eficazmente calculable" el cual es ahora


denominado mquina de Turing.
Turing introdujo el concepto de MT como herramienta para estudiar la computacin
desde dos puntos de vista bsicos:

a) La posibilidad de computar ciertas funciones, estableciendo que "cualquier funcin


que sea computable, se puede computar mediante una mquina de Turing constituida
por un dispositivo fsico razonable".

b) Eficiencia: La eficiencia se establece clasificando los algoritmos en determinadas


Clases de Complejidad, en funcin de cmo escalan los recursos de un clculo con el
tamao de los datos. En aquellos tiempos no se crea que est clasificacin tuviera
relacin alguna con el tratamiento fsico de la informacin, por lo que se poda
estudiarse completamente la teora de computadoras sin referencia a su
implementacin fsica. Sin embargo, est creencia cambio su enfoque con al aparicin
de la computacin cuntica.
Sin embargo, la creacin de ste procedimiento no aseguro la solucin completa del
planteamiento de Hilbert; ya que Turing encontr que existan mquinas para las cuales no
poda comprobarse la culminacin de su ejecucin; es decir, no poda asegurarse que dichas
mquinas llegarn a un punto decisorio final.
La bsqueda de un algoritmo que pudiera terminar con la ejecucin continua de
dichas mquinas no produjo frutos por lo cual Turing concluyo que no puede haber un
algoritmo general para decidir todas las cuestiones matemticas. Por lo que el problema
decisorio de Hilbert no tiene solucin.

Teora de la Computacin

154

Instituto Tecnolgico de Celaya

Mquina de Turing

GLOSARIO
Mquina de Turing. Formalmente una mquina de Turing se define como una 7tupla M = (Q, ? , ?, s, ?, F , d) donde
- Q conjunto finito de estados
- ? es el alfabeto de entrada
- ? es el alfabeto de la cinta
- s es el estado inicial de la pila
- ? es un smbolo en blanco ? ?
- d es una funcin parcial de transicin definida por d : Q x ? ? Q x ? x {L,
R}
Lenguajes recursivamente enumerable. La palabra enumerable proviene de que las
cadenas de dichos lenguajes pueden ser listadas (enumeradas) por una mquina de
Turing. (Kelley, 1995, Pg. 180)
Decidibles. Termino que es utilizado para indicar si un problema cuenta con una
solucin, es decir se puede decidir o explicar.
Lenguajes recursivos. Un lenguaje L es recursivo sobre de un alfabeto ?, si para
cada cadena que perteneces ? * existe un procedimiento decidible.
Algoritmos irresolubles. Se definen as a aquellos problemas que no pueden ser
resueltos por una secuencia determinada de operaciones. (Brena, 2003, Pg.191)
Computar. Contar o calcular por medio de nmeros alguna operacin, evento,
problema.
Computable. Que se puede computar.
Complejidad. La complejidad computacional hace referencia a la cantidad de
recursos computacionales requeridos para resolver un problema.

Teora de la Computacin

155

Instituto Tecnolgico de Celaya

Mquina de Turing

EJERCICIOS

1. Defina de manera general cual es el funcionamiento de las mquinas de Turing.

2. Defina formalmente una MT.

3. Explique cada una de las variantes que presentan las mquinas de Turing y busque un
ejemplo de cada una de ellas.

4. Mencione cuales son los bloques bsicos para la construccin de una MT.

5. Quin fue Alan Turing?

6. Turing introdujo el concepto de MT como herramienta para estudiar la computacin


desde dos puntos de vista bsicos. Cules son estos?

7. Quin fue David Hilbert y cual es el problema que el planteo, dando origen al
planteamiento de la mquina de Turing?

Teora de la Computacin

156

Instituto Tecnolgico de Celaya

Mquina de Turing

PROBLEMAS
1. Construya una maquina de Turing que permita reconocer el siguiente lenguaje.
a. L = {xn ym zn n,m = 0}
b. L = {zn am zn am by zn by zn n = 1, m,y 0}
c. L = {an b2n n >0}
d. L = { xn yn+2 zn+3 n = 0}
e. L = { an bm cn+m n >0 ,m = 0}

2. Haciendo uso de las variantes de las MT construya una MT que reconozca los lenguajes
mostrados en la pregunta anterior y adems que reconozca los mostrados a
continuacin.
a. L = {zn am zn am by zn by zn n = 1, m,y 0}
b. L = {w w es una cadena cuyo nmero de xs es mayor al nmero de ys por las
que esta formada}

3. Construya la gramtica que represente la siguiente MT.

a.

Teora de la Computacin

157

Instituto Tecnolgico de Celaya

Mquina de Turing

LECTURA COMPLEMENTARIA

Biografas de los pioneros de la computacin: el enigmtico Alan Turing

Por: Carlos Artemio Coello Coello


El matemtico ingls Alan Turing fue uno de los pioneros ms importantes en el
delineamiento de lo que eventualmente se convertira en la Teora de la Computacin. El
misterio fue un comn denominador a lo largo de la vida de Turing, entre otras cosas, por
su participacin en el servicio britnico de inteligencia durante la Segunda Guerra Mundial.
El repudio de la sociedad britnica debido a su homosexualidad, y su trgico suicidio,
siguen siendo motivo de las ms enconadas controversias.
Su infancia y juventud
Alan Mathison Turing fue el segundo y ltimo hijo de Julius Mathison y Ethel Sara
Turing. El inusual apellido Turing lo colocaba en el rbol genealgico de una familia que,
aunque no era rica, perteneca a la clase media alta inglesa. Su padre ingres al servicio
civil de la India, y durante su estancia en ese pas conoci a la que ms tarde sera su
esposa: Ethel Sara Stoney. Ethel era la hija del ingeniero en jefe de los ferrocarriles de
Madras, y provena de una familia Anglo-Irlandesa de un status socio-econmico similar al
de Julius.
Aunque fue concebido en la India, probablemente en el pueblo de Chatrapur [1], Alan
Turing naci en un hospital de Paddington, Londres, en Inglaterra, el 23 de junio de 1912.
Alan y su hermano mayor John pasaron una infancia alejados de sus padres, siempre bajo el
cuidado de terceras personas en diversos hogares ingleses, hasta que su padre se retir del
servicio en 1926. Se dice que la inteligencia de Alan Turing se manifest a temprana edad,
pues a los tres aos pareca mostrar una inusual capacidad para recordar nuevas palabras

Teora de la Computacin

158

Instituto Tecnolgico de Celaya

Mquina de Turing

[2]. A los 8 aos se empez a interesar en la Qumica y mont un laboratorio rudimentario


en el stano de su casa. Al parecer, una de las influencias seminales de Turing en aquellos
das fue un popular libro llamado "Maravillas naturales que todo nio debiera conocer", el
cual le fue obsequiado por sus padres. Pese al temor de su madre de que no sera aceptado
en una escuela pblica inglesa, el joven Turing ingres en Sherborne cuando contaba con
13 aos de edad. A los 14 aos ya era capaz de comprender cuestiones relativamente
avanzadas de clculo, pese a que no haba estudiado el tema detalladamente.
Asimismo, se dice que tena una increble capacidad para realizar clculos mentales.
Fue en esta poca tambin, en la que empez a desarrollar una aficin hacia el atletismo
que le acompaara toda su vida. Pese a su mal desempeo en materias no relacionadas con
las ciencias, Turing logr sobrevivir Sherborne, y continu estudiando matemticas por su
cuenta. En 1928 se interes en la teora de la relatividad, y aunque se dice que sus notas
privadas sobre la materia bien podran atribuirse a un estudiante de postgrado, casi se le
impidi tomar los exmenes para obtener el certificado de educacin media. Fue en esos
das que Turing conoci al joven Christopher Morcom, un estudiante muy brillante que le
sirvi de compaero intelectual durante una poca de intensa curiosidad cientfica, que se
vi abruptamente interrumpida por la prematura muerte de Morcom, el 13 de febrero de
1930. Segn la narracin del mismo Turing, cuando ambos se dirigan a Cambridge, se
detuvieron en Londres para visitar a la Sra. Morcom. Durante su estancia en su casa,
Christopher se comi una pera que extrajo de una caja de herramientas de Vanadio. Al
parecer, la pera haba estado en suficiente contacto con el vanadio como para envenenarse y
causarle la muerte al joven Morcom, quien tan slo un ao antes haba obtenido una beca
para estudiar en Cambridge (Turing aplic para la misma beca, pero fue rechazado). La
muerte de Morcom dej huella profunda en Turing, quien se prometi a s mismo
completar la prometedora carrera cientfica que Morcom haba apenas comenzado. A partir
de entonces, Turing inici una correspondencia frecuente con la mam de Christopher, y
sus intereses se tornaron hacia los misterios que rodean al encapsulamiento de la mente en
la materia. Con el firme propsito de develar los secretos de la muerte con ayuda de la
ciencia, Turing comenz a estudiar fsica cuntica. En su segundo intento por obtener una

Teora de la Computacin

159

Instituto Tecnolgico de Celaya

Mquina de Turing

beca a Cambridge, Turing finalmente logr ser aceptado en el King's College tras haber
fracasado dos veces consecutivas en su intento por obtener una beca del Trinity College.
En 1932, comenz a estudiar el entonces reciente trabajo de Von Neumann en
mecnica cuntica, lo cual le permiti canalizar sus dudas espirituales por la va de la
rigurosidad cientfica. Al mismo tiempo, la homosexualidad se volvi un rasgo distintivo de
su personalidad [3]. En esa poca hizo amistad con un joven estudiante de matemticas
llamado James Atkins, quien ms tarde sera su amante. Pese a que los crculos ms
frecuentados por los homosexuales en King's College eran los literarios, Turing prefera los
deportes, y era frecuente que practicara remo, carreras a campo traviesa, y veleo en un
pequeo bote. Tambin aprendi a tocar el violn, pero nunca se hizo diestro con el
instrumento.
Las cosas empezaron a ir bien para Turing, pues se gradu de la licenciatura en
matemticas con honores en 1934. En 1935, obtuvo otra beca del King's College por su
trabajo en el teorema del lmite central en probabilidad (el cual redescubri sin saber nada
sobre el trabajo previo en la materia). En 1936 obtuvo el Premio Smith por su trabajo en
teora de la probabilidad, y comenz a profundizar su estudio del Entscheidungsproblem,
propuesto originalmente por Hilbert, y que nadie haba podido resolver. Bsicamente, la
pregunta es si existe, al menos en principio, cualquier mtodo o proceso definido mediante
el cual todas las cuestiones matemticas pueden decidirse (es decir, determinar si existe
alguna manera de escribir un algoritmo para cualquier tipo de problema).
De Europa a Amrica
El resultado del trabajo de Turing en el problema de Hilbert concluy en abril de
1936, pero debido a que al mismo tiempo el lgico norteamericano Alonzo Church haba
publicado un trabajo similar, Turing tuvo que posponer su artculo (ahora considerado
clsico) hasta agosto de 1936, que fue titulado "Sobre los nmeros computables, con una
aplicacin al Entscheidungsproblem". Tras la publicacin del artculo de Turing, la
comunidad cientfica se dio cuenta de que la forma en la que ste abord el problema era
muy distinta al enfoque de Church, y aunque Turing no lo saba, el concepto de mquina de
Teora de la Computacin

160

Instituto Tecnolgico de Celaya

Mquina de Turing

Turing que l inventara en su artculo para ilustrar la idea moderna de un algoritmo se ha


vuelto uno de los cimientos ms slidos de la teora de la computacin en nuestros das. En
septiembre de 1936, Turing arrib a la Universidad Princeton, en los Estados Unidos, que
en ese entonces contaba con algunas de las figuras ms prominentes del mundo cientfico.
Su artculo atrajo la atencin precisamente de uno de estos destacados cientficos, John Von
Neumann, quien le ofreci una beca en el Instituto de Estudios Avanzados de Princeton.
Turing obtuvo su doctorado en matemticas en mayo de 1938, un mes antes de cumplir 26
aos de edad. Su tesis se titul "Sistema de Lgica Basado en Ordinales", y consisti
bsicamente en una extensin de su trabajo original sobre computabilidad. Tras su
graduacin, Von Neumann le ofreci una plaza como su asistente, pero Turing declin la
propuesta para regresar al King's College, pese a no contar con una oferta firme de trabajo
en Inglaterra. Entre 1938 y 1939 vivi de una beca universitaria, mientras estudiaba
filosofa de las matemticas y trataba de construir una mquina para calcular la funcin
Zeta de Riemann. De esta poca se recuerda a un Turing extravagante, que tartamudeaba
frecuentemente, y tena una risa nerviosa que haca casi imposible poder sostener una
conversacin con l. Era muy descuidado en su forma de vestir, y sola pasar largas
temporadas sin rasurarse, por temor a cortarse (se dice que se desmayaba cuando vea el
menor rastro de sangre). Cuando montaba su bicicleta, sola ponerse una mscara antgas,
en un intento por controlar sus agudos ataques de fiebre del heno.
Estalla la Segunda Guerra Mundial
La vieja aficin de Turing por la criptografa lo convirti en uno de los primeros 10
acadmicos ingleses en ser reclutados por su gobierno, en 1939, para trabajar en Bletchley
Park, una vieja casa solariega ub icada a la mitad del camino entre Cambridge y Oxford. Su
tarea era descifrar el complicado cdigo enigma utilizado por los alemanes. Los ingleses
haban fracasado en sus intentos por descifrar este cdigo, hasta que un joven polaco
llamado Robert Lewinski ofreci su ayuda tras haber sido expulsado de una fbrica
alemana por ser judo. Lewinski reconstruy de memoria la mquina usada por los
alemanes para encriptar sus mensajes, cambiando radicalmente el curso de la Segunda
Guerra Mundial. El trabajo inicial de Turing fue construir unas mquinas llamadas

Teora de la Computacin

161

Instituto Tecnolgico de Celaya

Mquina de Turing

"Bombas", que se utilizaban para descifrar el cdigo enigma. Aunque el descifrar los
mensajes de la fuerza area alemana se volvi cosa rutinaria para la inteligencia britnica,
los mensajes de la marina seguan siendo considerados como imposibles de descifrar.
Turing se sinti feliz de poder trabajar en la ambiciosa tarea de descifrar tales mensajes, y
dio muestra de su genio una vez ms cuando sus sofisticadas tcnicas estadsticas
empezaron a producir frutos hacia fines de 1939, aunque no fue sino hasta mediados de
1941 que pudieron descifrar cotidianamente los mensajes de la marina teutona. Los
alemanes complicaron an ms los cdigos de sus submarinos en febrero de 1942, y
repentinamente los ingleses fueron nuevamente incapaces de descifrarlos. En su deseo por
obtener mayores velocidades con sus mquinas descifradoras, la gente de Bletchley Park
comenz a construir la primera computadora electrnica, llamada Colossus, que estuvo
bajo la supervisin de Turing. Eventualmente, se construiran diez de estas mquinas, y la
primera empez a operar en diciembre de 1943, dos aos antes que el ENIAC (la
computadora digital electrnica construida en la Universidad de Pensilvania, en Estados
Unidos). Aunque el Colossus tambin usaba un gran nmero de tubos de vaco e
interruptores digitales, esta mquina (a diferencia de su contraparte americana) se dise y
utiliz exclusivamente para descifrar mensajes.
Se dice que, en un cierto punto de la Segunda Guerra Mundial, Turing se lleg a convencer
tanto de que los alemanes invadiran Inglaterra, que convirti todo su dinero a lingotes de
plata, y los transport en una carriola al bosque que rodea a Bletchley Park, donde enterr
su tesoro en dos sitios distintos. Esta operacin le cost a Turing no slo lesionarse la
espalda, sino tambin la prdida de sus ahorros, porque cuando la guerra termin, no pudo
acordarse de ninguno de los dos sitios donde haba enterrado los lingotes de plata.
Otra ancdota que se recuerda del llamado 'Prof' Turing es que le ofreci matrimonio
a una de sus colegas en Bletchley Park, llamada Joan Clark, la cual acept gustosamente.
Turing hubo de retractarse despus de la oferta, dicindole a su prometida acerca de su
homosexualidad. De los seis aos que Turing pas trabajando para el servicio de
inteligencia britnico, lo que ms se lamenta es que un hombre de su talla intelectual no

Teora de la Computacin

162

Instituto Tecnolgico de Celaya

Mquina de Turing

pudiera seguir publicando ms trabajos cientficos como los tres que logr publicar antes de
que estallara la guerra.
Por su trabajo en el Colossus, que para l no fue ms que la representacin fsica de la
mquina universal que diera a conocer en su artculo de 1937, recibi la Orden del Imperio
Britnico en 1946.
Despus de la Guerra
En 1944, Turing estaba cautivado con el potenc ial de la computadora que haba
concebido tericamente, y fue contratado por el Laboratorio Nacional de Fsica (NLP por
sus siglas en ingls) en Inglaterra para competir con el proyecto americano EDVAC, de
John Von Neumann, el cual irnicamente se haba adelantado a Turing en la publicacin de
la idea de una computadora electrnica. Turing fungi como Oficial Cientfico Principal en
el NLP, trabajando en el Automatic Computing Engine (ACE). Turing tuvo la visin de una
computadora con memoria que implementara las funciones aritmticas mediante
programacin en vez de con componentes electrnicos, y que podra desempear todo tipo
de tareas (por ejemplo, manejo de archivos, lgebra, jugar ajedrez, encriptamiento, etc.)
Hacia 1947, concibi la idea de las redes de cmputo y el concepto de subrutina y
biblioteca de software. Sin embargo, al percatarse que los ingenieros involucrados en su
proyecto no haban producido nada tangible de su mquina en un largo perodo, comenz a
sentirse sumamente frustrado. En 1947 Turing pidi un ao sabtico en el que se fue al
King's College. En vez de publicar los principios fundamentales de cmputo que haba
descubierto, se dedic a estudiar fisiologa y neurologa, y en un reporte interno del NLP de
esa poca, describe las ideas bsicas de lo que hoy se conoce como una red neuronal.
Cuando Turing regres al NLP en 1948 y se dio cuenta de que no se haba realizado mayor
progreso en su proyecto, decidi renunciar.
Fue tambin en esos das en que Turing comenz a correr largas distancias con
frecuencia, sintiendo que necesitaba el ejercicio. Se sabe que gan los campeonatos de las 3
y 10 millas de su club (el Walton Athletic Club), y que qued en 5o. lugar en un maratn de
aficionados de 1947. De hecho, se interes en prepararse para el equipo britnico de
Teora de la Computacin

163

Instituto Tecnolgico de Celaya

Mquina de Turing

atletismo con vistas a las Olimpadas de 1948, pero sus planes se vinieron abajo debido a
una lesin en la cadera.
El regreso de Turing a Cambridge le ayud a formar un crculo de amigos ms
extenso, y le motiv a hablar ms abiertamente acerca de su sexualidad. Un estudiante de
matemticas del King's College, llamado Neville Johnson, fue su amante en aquellos das.
Tras su renuncia al NLP, Turing se fue a trabajar al laboratorio de cmputo de la
universidad de Manchester, donde su viejo mentor, Newman, haba logrado construir la
mquina de sus sueos. Su trabajo fue el desarrollo de software, y nada realmente
memorable se produjo durante este perodo. Un poco ms tarde, sin embargo, Turing
plasm sus ideas sobre la filosofa de las mquinas y la mente en un artculo llamado
"Computing Machinery and Intelligence", que se public en 1950, y todava se considera
un clsico en Inteligencia Artificial.
En 1950, comenz a interesarse en los usos prcticos de las matemticas, y desarroll
un trabajo pionero en la teora de la morfognesis: la teora del crecimiento y la forma en
biologa. Turing se fue a vivir a Manchester, comprando su primera casa propia en
Wilmslow. En julio de 1951 fue electo "fellow" (miembro) de la Sociedad Real por sus
contribuciones cientficas de 15 aos atrs.
La humillacin y su misteriosa muerte
En la navidad de 1951, Turing entabl amistad con un joven desempleado de
Manchester, que despus sera su amante. A principios de 1952, su casa en Wilmslow fue
robada por un amigo de su amante, y Turing acudi a la polica, sin revelar su relacin
homosexual. Cuando la polica averigu la historia completa, decidi arrestar a Turing por
"indecencia mayor", y fue llevado a juicio el 31 de marzo de 1952. En la corte, Turing, no
neg su homosexualidad, y dijo que no vea nada malo en ella. Eso le vali ser condenado a
un ao de prisin, y conmut su condena por un ao de tratamiento con hormonas
femeninas que le causaron impotencia, y le hicieron brotar senos, adems de provocarle
depresiones agudas. Aunque eso no le impidi continuar con su trabajo en la morfognesis

Teora de la Computacin

164

Instituto Tecnolgico de Celaya

Mquina de Turing

y en otras aplicaciones de matemticas a la biologa, se hizo para l cada vez ms molesto


el cerco de aislamiento que le tendi el servicio de inteligencia britnica, ante el temor de
que pudiera revelar secretos al enemigo. Se sabe, por ejemplo, que oficiales de seguridad
catearon su casa cuando un amigo noruego lo fue a visitar a Manchester en 1953.
Ni su siquiatra, sus amigos o familiares sintieron que Turing estuviera pasando por
ninguna crisis particularmente grave en 1954, pero el 8 de junio de ese ao fue encontrado
muerto por su ama de llaves. El forense determin que se haba suicidado un da antes, con
una manzana que tena cianuro, y que fue encontrada al lado de su cama. Su madre crey
que la ingestin de cianuro pudo haber sido accidental, pues Turing sola realizar varios
experimentos de qumica en su casa, y se especul que algo de este veneno pudo habrsele
impregnado en los dedos. Esa hiptesis, sin embargo, se cree poco probable, dado que
Turing tena una vasta experiencia en la manipulacin de sustancias qumicas, pero la teora
del suicidio parece tambin un tanto extraa. Hay quienes tambin especulan que se le
mand a matar porque resultaba una incomodidad para el gobierno britnico.
Independientemente de cul sea la verdad sobre su muerte, lo nico que podemos afirmar
es que el mundo perdi a un gran cientfico, que se encontraba en el punto mximo de su
produccin intelectual. En su honor, la ACM (Association for Computing Machinery) llama
"Turing Award" a su premio ms importante, el cual se otorga desde 1966 a los expertos
que han realizado las contribuciones ms importantes al avance de la computacin en el
mundo.
Referencias
[1] Hodges, Andrew. "Alan Turing: The Enigma", Simon and Schuster, New York, 1983.
[2] Slater, Robert. "Portraits in Silicon", The MIT Press, 1992.
[3] Lee, J. A. N. "Computer Pioneers", IEEE Computer Science Press, 1995.

Teora de la Computacin

165

Instituto Tecnolgico de Celaya

Mquina de Turing

BIBLIOGRAFA

1. Brena,

verano

2003

Ramn

Brena.

Autmatas

Lenguajes.

En:

http://lizt.mty.itesm.mx/~rbrena/AyL.html. Consultado por ltima vez en Abril del


2006.
2. Chesevar I. Carlos, Maquitman Ana G. y otro. 2003. Tecnologas Informticas en
un curso de Lenguajes Formales y Teoras de Autmatas: un enfoque
constructivista.

En: http://fermat.eup.udl.es/~cic/2003/2003_cacic_construc.pdf

Consultado por ltima vez en marzo del 2006.


3. Coello Coello, Otoo- invierno 1999. Biografas de los Pioneros de la
Computacin:

El

Enigmtico

Alan

Turing.

En:

http://www.lania.mx/biblioteca/newsletters/1999-otono- invierno/aturing.html.
Consultado por ltima vez Abril 2006.
4. Dean Kelley, mayo 1995 Dean Kelley. Teora de autmatas y lenguajes formales.
Editorial: Prentice-Hall.
5. ENCARTA, 2006. Biblioteca de Consulta Microsoft Encarta. De 1993 a 2005.
Editado por Microsoft Corporation.
6. Gutirrez, 1997; Claudio Gutirrez. La informtica como ciencia terica. En:
http://www.claudiogutierrez.com/bid- fod-uned/bibliografia.html#Penrose%2089.
Consultado por ltima vez Abril 2006.
7. Salas, Sanz; octubre 2001 Pedro Salas y Angel Sanz. Tendencias Cientficas. En:
http://www.webzinemaker.com/admi/m6/page.php3?page=2&total=63&num_web=
1604&rubr=4&id=10460. Consultado por ltima vez en Abril del 2006.

Teora de la Computacin

166

Instituto Tecnolgico de Celaya

Mquina de Turing

RETROALIMENTACIN
Retroalimentacin a los ejercicios.

1.

Una mquina de Turing es representada como una cinta infinita dividida en celdas de
almacenamiento, a las que se puede acceder en cualquier parte de la cinta; cada una
de las celdas puede almacenar un smbolo que es reconocido por una cabeza de
lectura/escritura que recorre la cinta en cualquier sentido (izquierda a derecha
derecha a izquierda). Tal cinta es representada en la siguiente figura.

3.

Las mquinas de Turing suelen presenta en su construccin algunas variantes, entre


las cuales existen cuatro principales que son:
Permanencia. La variacin de permanencia permite introducir un nuevo movimiento
(S) a la cabeza de lectura / escritura. Por lo cual la funcin de transiciones presenta la
siguiente forma.

d : Q x ? ? Q x ? x {L, R, S}

Permitiendo que la cabeza de lectura/escritura mantenga una posicin fija al leer y


reescribir cualquier smbolo sobre la cinta.

Subceldas. Cada celda es dividida en varias subceldas capaces de contener un smbolo


de la cint a. La divisin de la cinta construye pistas por lo que sta variacin tambin
es llamada multipistas. Como puede observarse en la siguiente figura.

Teora de la Computacin

167

Instituto Tecnolgico de Celaya

Mquina de Turing

a A

. B b B .
C c ?
Subceldas

El contenido de las celdas puede ser representado por n-tuplas ordenas, por ejemplo
(? , a, a), (b, b, b), (c, c, ? ).

Cintas finitas. Las MT bsicas cuentan con la caracterstica de crecimiento infinito de


su cinta, hacia izquierda y derecha de la misma, un tercera modificacin a est
mquina restringe el crecimiento de esta cinta hacia su lado izquierdo, impidiendo el
movimiento de la cabeza hacia la izquierda de su primer smbolo en blanco.

Multicintas. Una mquina multicintas requiere de mayor complicacin en


comparacin con las variantes ya presentadas. Est tipo de mquinas contiene varias
cintas cada una con su propia cabeza de lectura/escritura, que se mueva
independientemente al resto de la cabezas. En un solo movimiento una mquina de
est tipo realiza las siguientes acciones.

1.

Cambia de estado dependiendo del estado actual y del contenido de las


celdas de todas las cintas, que estn analizando las cabezas.

2. Escribe un nuevo smbolo en cada una de las celdas barridas por las
cabezas de lectura/escritura.
3. Mueve cada una de sus cabezas en el sentido requerido
Lo cual cambia las funciones de transicin a la forma
d : Q x ? n ? Q x ? n x {L, R}n

Teora de la Computacin

168

Instituto Tecnolgico de Celaya

Mquina de Turing

Esta funcin de transicin puede traducirse de la siguiente manera:

d (q, (s 1 s 2 s 3 ..s n )) = (p, (a 1 a 2 a 3 .a n ),(m1 m2 m3.. mn ))

Significa que cambia del estado q al p, reemplazando s n por a n y mueve la cabeza de


la cinta n en la direccin mn .
5.

Alan Mathison Turing (1912 - 1954). Naci en Londres (Gran Bretaa), estudio en la
universidad de Cambridge, en donde se gradu de la licenciatura de matemticas con
honores en 1934. En abril de 1936, public el artculo "On computable numbers, with
an application to the Entscheidungsproblem" en el que introduce el concepto de
algoritmo y de mquina de Turing dando respuesta al problema de decisin
planteado por Hilbert en 1900. Estudia tambin en la universidad de Princeton
(EE.UU). Turign colabor en la Segunda Guerra Mundial, descifrando los cdigos
emitidos por la mquina Enigma utilizada por los alemanes. Y comienza la
construccin de la primera computadora electrnica, llamada Colossus. Otro de los
campos de investigacin de Turing fue la inteligencia artificial, se puede decir que
esta disciplina naci a partir del artculo titulado "Computing Machinery and
Inteligence" publicado por Turing en 1950. En 1951, es nombrado miembro de la
Sociedad Real de Londres por sus contribuciones cientficas.

7.

David Hilbert (1862-1943), destacado matemtico y filsofo alemn. Naci en


Knigsberg, al este de Prusia (hoy Kaliningrado, Rusia). Hilbert trabaj en muchos
campos de las matemticas, incluyendo la teora de nmeros y el clculo de
variaciones, pero sus ms importantes contribuciones las hizo en el terreno de la
geometra. Hilbert haba concebido la idea de reducir la esencia de las matemticas al
concepto de prueba o algoritmo. De acuerdo con este intento, propuso a los
matemticos de su tiempo (primer tercio del siglo veinte) buscar un algoritmo que
pudiera solucionar todos los problemas matemticos.

Teora de la Computacin

169

Instituto Tecnolgico de Celaya

Mquina de Turing

Retroalimentacin a los problemas.

1. a.

c.

e.

Teora de la Computacin

170

Instituto Tecnolgico de Celaya

Mquina de Turing

2. a.

c.

e.

Teora de la Computacin

171

C
A
P
I
T
U
L
O
V

DECIBILIDAD

OBJETIVO

Definir

los

lenguajes

decidibles,

los

problemas que presentan y la relacin que


tiene la computacin con la lgica

Instituto Tecnolgico de Celaya

Decibilidad

Lenguajes
recursivamente
enumerables
Que forman parte de
Lenguajes decibibles

El Problema de Halting

Presenta

Define a

Decidibilidad

Se relaciona

Decidibilidad de Teoras
Lgicas

Figura 5.1 Diagrama temtico de la unidad V

Teora de la Computacin

173

Edited by Foxit Reader


Copyright(C) by Foxit Software Company,2005-2007
Decidibilidad
For Evaluation Only.

Instituto Tecnolgico de Celaya

5. DECIBILIDAD

5.1 INTRODUCCIN

La toma de decisiones es un aspecto muy importante y cotidiano en la vida de todo


ser humano, desde elegir que se va a comer hasta definir si comprar nuevas acciones para la
empresa, son operaciones vitales y de gran importancia para la sobrevivencia del hombre;
el enfocar su mente al anlisis de un problema para encontrar una solucin apta a l, ha
generado que al paso del tiempo el ser humano haya evolucionado.

Hoy en da la toma de decisiones permite que un sistema de cmputo mejore nuestra


vida diaria. Estos sistemas creados por el hombre, han sido basados en las denominadas
tablas de verdad, cuyos orgenes se remontan a los aos de 281 al 206 A.C. perodo en el
que vivi Crisipo de Soli, quien fue criticado y humillado por el planteamiento de estas
tablas, cuando ahora son la base de los sistemas computacionales con los que se cuentan. El
anlisis del verdadero y falso se extiende a la clasificacin de lenguajes. Se dice que un
lenguaje que es reconocido por una MT es un lenguaje computable, por ende, s los
sistemas computacionales son basados en la toma de decisiones, los lenguajes reconocidos
por un sistema de este tipo deben de ser decidibles. Es decir, puede tener dos posibles
soluciones, el ser aceptado por el sistema o algoritmo, o bien, el ser rechazado; lo que
depender de sus caractersticas. ste es el primer enfoque que se visualiza en la presente
unidad, posteriormente se analiza la posibilidad de que alguno de estos lenguajes o bien
problemas no encuentre una solucin, lo cual ha sido denominado como problema de
Halting. Finalmente, se analiza la relacin de la lgica con la computacin y se definen
conceptos de teoras lgicas decidibles.

Teora de la Computacin

174

Instituto Tecnolgico de Celaya

Decidibilidad

5.2 LENGUAJES DECIDIBLES


El termino decidible proviene del concepto decisin o decidir; es decir dar solucin a
algo. Un sistema formal5 es decidible s existe un algoritmo que afirme en tiempo finito, s
una cadena cualquiera es un teorema o no lo es. (http://es.wikipedia.org/wiki/Sistema
_formal, Abril 2006) Dicho en otras palabras, el concepto decidibilidad, tambin conocida
como resolubilidad, es aplicado sobre aquellos problemas para los que existen algn
algoritmo cuyo resultado de computacin sea verdadero o falso (si o no).
En la unidad pasada se estudio una de las mquina s abstractas reconocedoras de
lenguajes. Dicha mquina es considerada como la ms poderosa, capaz de reconocer desde
un lenguaje regular hasta un lenguaje recursivamente enumerables.
Las Mquinas de Turing (MT) estudiadas, han definido nicamente un estado de
aceptacin; cuando una cadena entra a la mquina y llega a ste estado, se dice, que la
cadena ha sido aceptada, mientras que el resto de las cadenas suelen quedarse sobre algn
estado intermedio, deducindose que la cadena no es vlida. Ahora considere una MT que
define dos estados; uno de aceptacin y uno de rechazo, cuando una cadena no es valida
para el lenguaje, la MT suele llevar a un estado de rechazo o de parada, indicando de
manera formal que la cadena no es aceptada.
De la clasificacin anterior se puede definir dos tipos de lenguajes, los lenguajes
aceptables y los lenguajes decidibles. Los primeros son aquellos para los cuales existe una
mquina de Turing que acepta todas las cadenas pertenecientes al lenguaje, estos lenguajes
son los denominados lenguajes recursivamente enumerables. Los segundos son aquellos
lenguajes para los cuales existe una mquina de Turing que brinde un valor de aceptacin o
de rechazo, estos lenguajes son tambin denominados como lenguajes recursivos, y como
en el caso de los lenguajes regulares, dependientes e independientes del contexto forman
parte de los lenguajes recursivamente enumerables, es decir son un subconjunto de ste.
5

Un sistema formal o un sistema axiomtico es un artificio matemtico compuesto de smbolos que se unen
entre s formando cadenas que a su vez pueden ser manipuladas segn reglas para producir otras cadenas.
(http://es.wikipedia.org/wiki/Sistema_formal, Abril 2006)

Teora de la Computacin

175

Instituto Tecnolgico de Celaya

Decidibilidad

Los lenguajes recursivamnete enumerables o aceptables son aquellos para los que
existe una MT cuya ejecucin obtiene un estado de parada para cada cadena que entra en l.
Formalmente se define a un lenguaje aceptable como :

Un lenguaje L es Turing-aceptable si hay una MT que lleva a un estado halt (de


parada) para toda w ? L.
(Brena, 2003, Pg.179)

Los lenguajes recursivos pueden verse como aquellos para los cuales existe una
funcin recursiva que puede ser calculada por una MT (f(x) = y). En otras palabras se dice
que un lenguaje es decidible si la secuencia de cadenas que lo forman son tambin
decidibles; de manera formal un lenguaje recursivo se define como:

Se dice que un lenguaje L es Turing-decidible si hay una MT que entregue un


resultado 1(s) si la entrada w ? L, y un 0(no) en caso de que la entrada w L.
(Brena, 2003, Pg.182)

Por ejemplo, si considere el problema de reconocer palabras cuyo nmero de bs sea


el doble que de as (abb, aabbbb,), si la cadena es correcta la MT decidible arrojara un 1,
en caso contrario arrojar como 0.
Cabe hacer resaltar que para que un lenguaje pueda ser considerado como decidible,
debe comprobarse primero como aceptable, es decir

Un lenguaje L es Turing-decidible solamente si en Turing-aceptable.


(Brena, 2003, Pg.182)
Teora de la Computacin

176

Instituto Tecnolgico de Celaya

Decidibilidad

S un lenguajes no es decidible, entonces es indecidible o irresoluble, sin sta una


desventaja ya que los lenguaje no decidibles o no computables sobrepasen a los decidibles.
(http://www.filosoficas.unam.mx/~morado/LogicaHoy/alvarado.htm, Mayo 2006)
Debe entenderse que una MT suele considerarse como un algoritmo computable ya
que su ejecucin es considerada como un conjunto de procesos e instrucciones cuya entrada
es un lenguaje decidible; por lo que la computabilidad de dichos procesos es indiscutible.

5.3 EL PROBLEMA DE PARADA (HALTING PROBLEM)

El problema de parada o Halting problem, se presenta en aquellas MT cuya


secuencia de anlisis no encuentra un estado de parada. Es decir, las MT decidible suelen
llevar a un estado de aceptacin o bien a un estado de no aceptacin; pero que ocurre s
una MT nunca puede llegar a ninguno de estos dos estados?, se encontrara en un ciclo
constante para el que no se sabe si existe un momento de parada. Tal situacin involucra
que dicho lenguaje sea no computable ya que al no haber una MT que pueda resolver dicho
problema, no habr un algoritmo que pueda hacerlo. Tal situacin puede ser probada a
travs de la siguiente suposicin.
Presmase que se crea una MT A que determina si cualquier otra, MT B se va a
detener o no; es decir, termina con un 1, si B se detiene, y con un 0 si B no se detiene;
adems de que podr comprobar su propio estado de parada, es decir, su propia
codificacin. (Domnguez, 2004, Pg.47)

Adems se cuenta con una tercer mquina, C, la cual se detendr si A no se detiene, y


viceversa. Lo que implica la creacin de un ciclo infinito. Ahora, qu sucede si C trata de
comprobar su estado actual, es decir, s C trabaja sobre su propia codificacin? La respuesta
a esta pregunta tiene la siguiente lgica, C se detendr si no se detiene, y no se detiene s, y
slo s, se detiene. Esto es una contradiccin total. Lo que quiere decir que tal mquina no

Teora de la Computacin

177

Edited by Foxit Reader


Copyright(C) by Foxit Software Company,2005-2007
Decidibilidad
For Evaluation Only.

Instituto Tecnolgico de Celaya

puede existir; lo que a su vez equivale a decir que el problema que estamos estudiando es
indecible.

Tal

proceso

es

representado

grficamente

en

la

figura

5.2.

(http://www.monografias.com /trabajos16/automatas-y- gramaticas/automatas- y gramaticas


.shtml, Abril 2006)

Para a w 1
w

B
No para a w 0

Para a B(w) 1

Para a w 1
w

B
No para a w 0
No para B(w) 0

No para a A(w) 0

Para a B(w) 1
B(w)

A
No para a B(w) 0
Para a A(w) 1

Figura 5.2. Problema de Parada

Los lenguajes que presentan el problema de Halting son denominados como


problemas irresolubles. (Kelley, 1995, Pg. 242)
El problema de paro ha sido de gran importancia, ya que fue el primer problema
considerado como irresoluble; y es la base para probar la irresolubilidad de nuevos
problemas. (Brena, 2003, Pg. 191) Para tal fin, suele suponerse que el problema de parada
es soluble, si existe un algoritmo (una MT) que resuelva el problema en cuestin (Kelley,
1995, Pg. 243).
Teora de la Computacin

178

Instituto Tecnolgico de Celaya

Edited by Foxit Reader


Copyright(C) by Foxit Software Company,2005-2007
Decidibilidad
For Evaluation Only.

5.4 DECIDIBILIDAD DE TEORAS LGICAS

La lgica es considerada como una disciplina y rama de la filosofa que estudia los
principios formales del conocimiento humano (Microsoft, 2003, Lgica). La lgica se basa
en la creacin de premisas o proposiciones cuyo estudio lleva a la construccin de
conclusiones validas.
A travs de varios siglos la lgica formal ha pasado por varios periodos, desde sus
inicios con los griegos, entre los que sobresalen Platn, Euclides, Arqumedes, Aristteles,
Leibniz, Crisipo de Soli cuyo planteamiento de las tablas de verdad son fundamentales hoy
en da para la creacin de una PC; pasando por los matemticos britnicos George Boole y
Augustus De Morgan, el alemn Gottlob Frege, los matemticos britnicos Bertrand
Russell y Alfred North Whitehead hasta nuestros das con la colaboracin de cientos de
personas distinguidas en estos mbitos de estudio . La evolucin de la lgica con la
aportacin de todos estos cientficos y filsofos llev cientos de aos por lo cual la historia
de la lgica puede dividirse en varios periodos, la lgica tradicional de 500 A. C. a 1847
D.C.; la lgica en edad media de 1847 a 1880; la lgica en edad moderna de 1880 a 1960 y
la lgica en una edad contempornea a partir de 1960 hasta nuestros das, de la cual surge
la Lgica Computacional que hoy en da fluye y se expande por todo el mundo,
permitiendo a la humanidad construir sistemas tan poderosos y serviciales que seguramente
Platn nunca imagino.
A travs de todo este estudio puede concluirse que la lgica ha tenido como objetivo
el de mecanizar tareas en las que interviene la capacidad deductiva. Esto a travs del
planteamiento de proposiciones que llevan a una deduccin lgica, creando teoras estables.
En nuestros das la lgica ha tomado otro enfoque. La computacin, cuyo poder
deductivo se encuentra ligado a los alcances lgicos que se han encontrado; concluye que
todo aquello que involucra una deduccin lgica valida, es computable.

Una de estas

nociones computables son, como ya se sabes, las tan mencionadas Mquinas de Turing,
cuyo poder permite el reconocimiento de lenguajes y teoras lgicas.
Teora de la Computacin

179

Instituto Tecnolgico de Celaya

Edited by Foxit Reader


Copyright(C) by Foxit Software Company,2005-2007
Decidibilidad
For Evaluation Only.

Una teora lgica (TL) se define a partir de un conjunto de enunciados dados,


llamados axiomas6 , unas reglas de inferencia y un esquema de derivacin. A partir de los
axiomas y aplicando las reglas de inferencia y el esquema de derivacin se infieren los
teoremas de la teora. El conjunto de teoremas de la teora forman un lenguaje formal.
(http://www.filosoficas.unam.mx/~morado/LogicaHoy/alvarado.htm, Mayo 2006.)
De la definicin anterior se puede deducir que si esta teora construye lenguajes y los
lenguajes son aceptados por una MT de manera que puedan definirse como decidibles,
entonces por ende los teoremas de los que provienen tambin sern decidibles. De tal
manera que podra utilizarse los trminos de teoras lgicas y lenguajes decidibles de
manera indistinta.
El uso lgica provee de grandes beneficios para el hombre en todos los rubros, por
ejemplo, la lgica difusa (fuzzy logic), es utilizada en la manufactura de dispositivos tales
como hornos de microondas, lavadoras, planchas, etc., hasta los grandes sistemas como
aviones y satlites aeroespaciales. La Lgica Modal, cuyo lenguaje, es una extensin del
lenguaje de la Lgica de Primer Orden, hace posible el estudio formal, simblico de
conceptos tales como conocimiento (Lgica Epistmica), creencia (Lgica Doxstica),
temporalidad (Lgica Temporal), normatividad (Lgica Dentica), etc.; cuyos desarrollos
son producto de la as llamada Inteligencia Artificial Computacional, cuyo objetivo es la
implementacin en una computadora de procesos que emulen o reproduzcan conductas
inteligentes, tales como el aprendizaje, el razonamiento, la adaptacin, entre otros. (
http://www.filosoficas.unam.mx/~ morado/LogicaHoy /alvarado .htm, Mayo 2006)

Proposicin tan clara y evidente que se admite sin necesidad de demostracin. Cada uno de los principios
fundamentales e indemostrables sobre los que se construye una teora.

Teora de la Computacin

180

Instituto Tecnolgico de Celaya

Decidibilidad

RESUMEN
Las Mquinas de Turing (MT) estudiadas en la unidad pasada, han definido
nicamente un estado de aceptacin; cuando una cadena entra a la mquina y llega a este
estado, se dice, que la cadena ha sido aceptada, mientras que el resto de las cadenas suelen
quedarse sobre algn estado intermedio, deducindose que la cadena no es valida. Ahora
considere una MT que define dos estados, el de aceptacin y el de rechazo cuando una
cadena no es valida para el lenguaje, la MT suele llegar a este estado de rechazo o de
parada, indicando de manera formal que la cadena no es aceptada. Dichas mquinas suelen
obtener un resultado de aceptacin o de rechazo sobre las cadenas que recibe como entrada,
cuando esto ocurre se dice que las entradas recibidas por dicha mquina son decidibles.
Los lenguajes decidibles son clasificados as, si existe una funcin recursiva que
puede ser calculada por una MT; de tal manera que se considera que los lenguajes
denominados como recursivos son decidibles.
Los leguajes aceptables son aquellos cuyas cadenas han sido aceptadas por una MT,
un lenguaje no puede ser decible si no es aceptable; sin embargo un lenguaje aceptable si
puede ser no decidible.
Los lenguajes o problema que no es reconocido por una MT se denomina como
irresoluble, un ejemplo clsico y podra clasificarse como el principal, es el denominado
Problema de Parada o Halting Problem.
El problema de parada o Halting problem, se presenta en aquellas MT cuya
secuencia de anlisis no encuentra un estado de parada. Es decir, las MT decidible suelen
llevar a un estado de aceptacin o bien a un estado de no aceptacin; pero que ocurre s
una MT nunca puede llegar a ninguno de estos dos estados?, se encontrara en un ciclo
constante para el que no se sabe si existe un momento de parada. Tal situacin involucra
que dicho lenguaje sea no computable ya que al no haber una MT que pueda resolver dicho
problema, no habr un algoritmo que pueda hacerlo.

Teora de la Computacin

181

Instituto Tecnolgico de Celaya

Decidibilidad

El problema de paro es de gran importancia, ya que fue el primer problema


considerado como irresoluble; y es la base para probar la irresolubilidad de nuevos
problemas. Para tal fin, suele suponerse que el problema de parada es resoluble, si existe un
algoritmo (una MT) que resuelva el problema en cuestin.
La lgica es considerada como una disciplina y rama de la filosofa que estudia los
principios formales del conocimiento humano (Microsoft, 2003, Lgica). La lgica se basa
en la creacin de premisas o proposiciones cuyo estudio lleva a la construccin de
conclusiones validas.
Una teora lgica (TL) se define a partir de un conjunto de enunciados dados
llamados axiomas, unas reglas de inferencia y un esquema de derivacin. A partir de los
axiomas y aplicando las reglas de inferencia y el esquema de derivacin se infieren los
teoremas de la teora. El conjunto de teoremas de la teora forman un lenguaje formal.
De la definicin anterior se puede deducir que si sta teora construye lenguajes y
los lenguajes son aceptados por una MT de manera que puedan definirse como decidibles,
entonces por ende los teoremas de los que provienen tambin sern decidibles.

Teora de la Computacin

182

Instituto Tecnolgico de Celaya

Decidibilidad

GLOSARIO.
Decibilidad. El termino decidibilidad, tambin conocido como resolubilidad, es
aplicado a problemas para los cuales exista un algoritmo computable.
Lenguaje decid ibles. Un lenguaje es decidible, s existe una MT que entregue un
resultado falso o verdadero (0,1) para una entrada dada.
Lenguajes aceptables. Un lenguaje aceptado por una MT es el conjunto de palabras
aceptadas por ella.
Lenguajes no decidible. Todos aquellos para los que no existe un algoritmo que
puede resolverlos.
Problema de parada. Es el primer problema irresoluble detectado, y se caracteriza
por ser un problema cuya ejecucin nunca finaliza.
Teorema. Proposicin demostrable lgicame nte partiendo de axiomas o de otros
teoremas ya demostrados, mediante reglas de inferencia aceptadas.
Proposicin. Enunciacin de una verdad demostrada o que se trata de demostrar
Teora. Serie de las leyes que sirven para relacionar determinado orden de
fenmenos. Hiptesis cuyas consecuencias se aplican a toda una ciencia o a parte
muy importante de ella.
Inferencia. Sacar una consecuencia o deducir algo de otra cosa.

Teora de la Computacin

183

Instituto Tecnolgico de Celaya

Decidibilidad

EJERCICIOS.
1. Conteste correctamente las siguientes preguntas.
a. Explique con sus propias palabras, el termino decibilidad.
b. Cual es la diferencia entre un lenguaje decidible y un lenguaje aceptable?
c. Cmo suele identificarse a un lenguaje decidible o computable?
d. De que manera se modifican las MT para poder reconocer un lenguaje
decidible?
e. Explique con sus propias palabras el problema de parada o de Halting
f.

Defina el termino resolubilidad?

g. Que diferencia hay entre los lenguajes recursivamente enumerables y los


numerables?
h. Explique por que el problema de parada es irresoluble.
i.

Defina el concepto de teora lgica.

2. Afirme o rechace al siguiente suposicin.


Un L es Turing-aceptable si es Turing-decidible

Teora de la Computacin

184

Instituto Tecnolgico de Celaya

Decidibilidad

LECTURA COMPLEMENTARIA

La importancia de la Lgica en las Ciencias de la


Computacin

Por: Miguel Carrillo Barajas


Los temas de computacin son muy populares en esta poca. La televisin exhibe
propaganda de los procesadores de computadora ltimo modelo. El acceso a Internet se
ofrece hasta en los telfonos mviles. Pero, a pesar de esta popularidad, casi nadie sabe que
detrs del origen y del desarrollo de la computacin hay una precursora annima: la lgica.
El papel ms sencillo de la lgica se observa cuando, al usar el lenguaje, intentamos
dotar de un sentido lgico a las ideas que expresamos. Algo similar se observa en
computacin cuando se usa la lgica en los lenguajes de programacin para dotar de
sentido lgico a las instrucciones de los programas de computadora, mediante
construcciones de la forma if... then... Pero la importancia de la lgica en la computacin va
mucho ms all de su uso. Para empezar, basta decir que la lgica se ocupa de temas de
computacin antes de que las computadoras existieran.
Aqu exponemos, sin recurrir a tecnicismos, a una descripcin breve de la lgica y
de su papel en la computacin, resaltando algunos de sus xitos y fracasos. Al final,
especulamos sobre el posible impacto de la lgica en el futuro de la computacin.
Qu es la lgica?
Si se quiere evitar entrar en cualquier tipo de complicacin, puede decirse que la
lgica es la materia que se encarga del estudio de los mecanismos del pensamiento
deductivo.

Teora de la Computacin

185

Instituto Tecnolgico de Celaya

Decidibilidad

En el contexto de la cultura occidental, el origen de la lgica (y de casi todo) se


remonta a la poca de los griegos (2). Dos figuras de influencia fundamental son:
Aristteles (3) (384 a.C. 322 a.C.) y Euclides (4). Aristteles coloc a la lgica en un
lugar distinguido del Conocimiento y Euclides fue el principal promotor del Mtodo
Axiomtico mediante el texto de Los Elementos, considerado como la obra de mayor
influencia en la historia de las matemticas. En esta poca, la lgica no se conceba como
una ciencia sino como un conjunto de herramientas aplicables a la ciencia. Estas
herramientas consistan, bsicamente, en esquemas de razonamiento, tales como: (i) todo
griego es una persona; (ii) toda persona es mortal; (iii) por lo tanto, todo griego es mortal.
Despus de los griegos, otra figura que resalta en la historia de la lgica es Gottlob
Frege (5) (1848 1925). A Frege se le considera el fundador de la Lgica Simblica
Moderna, mejor conocida como Lgica Matemtica. La participacin de Frege en la
historia de la lgica ha quedado curiosamente marcada por un error que cometi al
proponer (y publicar) un sistema axiomtico para la aritmtica, que result ser
inconsistente, es decir, permita deducir proposiciones falsas. Los errores no son
generalmente bien vistos, nadie quisiera mencionarlos (sobre todo los propios), pero suelen
ser muy importantes, a veces ms que los xitos. Este error de Frege fue sealado por otro
gran personaje, Bertrand Russell (6), y se convirti en un factor importante en la generacin
de un ambiente de duda alrededor de la idea de fundamentar las matemticas mediante
sistemas axiomticos. En esta poca inicia la corriente del Logicismo, cuya tesis principal
consiste en afirmar que todas las matemticas son reducibles a la lgica.
Quizs ahora es difcil imaginar la ilusin y el entusiasmo que, con el Logicismo
sentan los matemticos en el inicio del siglo XX, pero es indudable que esa ilusin y
entusiasmo le dieron un gran impulso a la lgica. La ilusin comenz con el programa de
David Hilbert (7) (1862-1943). Este programa pretenda, como dicta el Logicismo,
fundamentar las matemticas mediante un sistema axiomtico pero, para asegurar que dicho
sistema fuera consistente (que no permitiera deducir proposiciones falsas), o para al menos
eliminar las dudas sobre su consistencia, Hilbert introdujo una restriccin: en la
construccin de dicho sistema se permitira usar solamente mtodos finitarios. Una vez

Teora de la Computacin

186

Instituto Tecnolgico de Celaya

Decidibilidad

construido dicho sistema, Hilbert crea que se podra demostrar la consistencia del mismo;
sin embargo, Kurt Gdel demostr que esto era imposible. Ello signific el fin del
programa de Hilbert, pero tambin dio inicio a investigaciones ms profundas sobre la
naturaleza de las matemticas, aunque eso es parte de otra historia.
La relevancia de los mtodos finitarios es que entre ellos se encuentra uno que
consiste en ejecutar una lista de instrucciones precisas que produzca, independientemente
de quin las ejecute, y despus de un tiempo finito, un objeto determinado. El concepto que
se puede abstraer de este mtodo es el de algoritmo. El hecho de que el resultado de la
ejecucin de las instrucciones sea independiente del ejecutante significa que stas pueden
ser ejecutadas por una mquina. Los conceptos de algoritmo y mquina maduraron durante
las primeras dcadas del siglo XX y personas destacadas en su concepcin fueron Alan M.
Turing (8) y Alonzo Church (9). A Turing se debe el modelo abstracto de mquina ms
conocido: la mquina de Turing, y a ambos se debe el enunciado de la tesis ChurchTuring (10). Las mquinas de Turing son mquinas abstractas que realizan operaciones
extremadamente simples, como escribir o leer un smbolo sobre una cinta y moverse a la
izquierda o la derecha de la misma. Sorprendentemente, a pesar de su simplicidad, se cree
que las mquinas de Turing son capaces de realizar cualquier cmputo, es decir, la tesis (de
Church-Turing) es que cualquier tarea computable se puede realizar con una mquina de
Turing. Se trata de una tesis, porque con tarea computable se hace referencia a lo que se
entiende intuitivamente por computable, por ejemplo: computable en forma clara por un ser
humano abstracto (sin limites de tiempo o espacio), pero en matemticas es imposible
demostrar una afirmacin que se refiere a conceptos intuitivos. Lo importante a resaltar es
que toda esta teora, que formaliza los conceptos de mquina y tarea computable, surgi
antes de que se realizara la primera computadora.
Esta parte de la historia de la lgica culmina, a mediados del siglo XX, con la
consolidacin de sus principales disciplinas, entre ellas la Teora de las Funciones
Recursivas, que estudia precisamente los temas relacionados con lo computable. A partir de
entonces, como en toda la ciencia, el desarrollo de la lgica ha sido a un ritmo muy
acelerado.

Teora de la Computacin

187

Instituto Tecnolgico de Celaya

Decidibilidad

Pasado inmediato y futuro


El pasado inmediato de la influencia de la lgica en Ciencias de la Computacin
puede resumirse, en forma no exhaustiva, con la siguiente lista que enumera reas de la
lgica, y su respectivo uso en Ciencias de la Computacin. Cada uno de los elementos de
esta lista, desarrollado en amplitud, forma un rea de estudio de la lgica en Ciencias de la
Computacin:

lgebra de Boole, en el diseo y fabricacin de circuitos.

Lgica de Predicados, especficamente lgebra Relacional, en los Lenguajes de


Consulta de Bases de Datos.

Lgicas Temporales, en la verificacin de sistemas con concurrencia

Lgicas Modales en Lenguaje Natural y Representacin de Conocimiento.

Restricciones de Lgica de Primer Orden, en Programacin Lgica.

Calculo Lambda, en Programacin Funcional.

Teora de Tipos, en diseo y construccin de Lenguajes de Programacin.

Semntica Formal, en el diseo y estudio de Programas y Lenguajes de


Programacin.

Lgica de Hoare, en Verificacin de Programas.

Teora de Modelos Finitos, en Bases de Datos y en Complejidad Estructural.

Deduccin Automtica, en Verificacin de Programas.

Lgicas de Punto Fijo, y otras extensiones y restricciones de la Lgica de Primer


Orden, en Complejidad Estructural.

En lo que se refiere al futuro de la lgica, casi cualquier afirmacin lleva implcito el


riesgo de equivocarse, cualquier prediccin es aventurada. Pero aun as, no deja de ser
interesante especular sobre el futuro. Tres predicciones (11), por ejemplo, son:

Que el problema P versus NP (12) ser resuelto, en el marco de la lgica, antes del
2020.

Teora de la Computacin

188

Instituto Tecnolgico de Celaya

Decidibilidad

Que durante el siglo XXI, se lograr un avance significativo, aunque limitado, en


Razonamiento Automatizado, que permitir el desarrollo de algunas reas de
Inteligencia Artificial en dominios de conocimiento restringidos.

Como consecuencia del avance significativo en Razonamiento Automatizado,


durante el siglo XXI, el desarrollo sis tematizado en matemticas, mediante grandes
bases de conocimiento matemtico, tendr un gran impacto (en las matemticas),
que se revertir en el resto de las ciencias.

Podemos concluir estas especulaciones sobre el futuro papel de la Lgica con una analoga
que apoyan muchos de sus partidarios: el papel de la Lgica en Ciencias de la Computacin
durante el siglo XXI puede ser similar al papel que tuvo el Anlisis en Fsica durante el
siglo XX. Y para finalizar, una frase atribuida a A. Turing: podemos ver muy poco haca
adelant, pero ah podemos ver mucho por hacer. (13)
Referencias:
1. El texto es un juego de palabras algo difcil de traducir.
I know what youre thinking about, said Tweedledum; but it isnt so, nohow.
Contrariwise, continued Tweedledee, if it was so, it might be; and if it were so, it
would be; but as it isnt, it aint. Thats logic.
2. A Short History of Rigour in Mathematics,
http://www.rbjones.com/rbjpub/maths/math003.htm.
3. Aristotle,http://wwwgroups.dcs.stand.ac.uk/~history/Mathematicians/Aristotle.ht
ml.
4. Euclid of Alexandria,
http://wwwgroups.dcs.stand.ac.uk/~history/Mathematicians/Euclid.html.
5. F. L. Gottlob Frege,
http://wwwgroups.dcs.stand.ac.uk/~history/Mathematicians/Frege.html.
6. Bertrand A. W. Russell, http://www-groups.dcs.stand.ac.uk/~history/Mathematicians/Hilbert.html.
7. Alan Mathison Turing, http://www- groups.dcs.stand.ac.uk/~history/Mathematicians/Turing.html.
Teora de la Computacin

189

Instituto Tecnolgico de Celaya

Decidibilidad

8. Alonzo Church, http://www- groups.dcs.stand.ac.uk/~history/Mathematicians/Church.html.


9. Douglas Hofstadter, Gdel, Escher, Bach: una eterna trenza dorada. Conacyt
1979. Traduccin de Gdel, Escher, Bach: an Eternal Golden Braid, NY: Basic
Books.
10. Samuel R. Buss et al, The Prospects for Mathematical Logic in the Twenty-First
Century, Journal of Symbolic Logic 7 (2001) 169-196. Disponible en
http://www.math.ucsd.edu/~sbuss/ResearchWeb/FutureOfLogic/.
11. El problema P-NP es un problema cuya solucin tendra importantes consecuencias
tericas y prcticas, vea, por ejemplo:
http://www.claymath.org/Millenium_Prize_Problems/P_vs_NP/
12. A. Turing: We can see a short distance ahead, but we can see plenty there that needs
to be done.

Teora de la Computacin

190

Instituto Tecnolgico de Celaya

Decidibilidad

BIBLIOGRAFA

1. Alvarado,

Matas

Alvarado.

Lgica

Computacin.

http://www.filosoficas.unam.mx/~morado/LogicaHoy/alvarado.htm.

En:

Fecha

de

Lenguajes.

En:

consulta: 1 de mayo del 2006.


2. Brena,

verano

2003

Ramn

Brena.

Autmatas

http://lizt.mty.itesm.mx/~rbrena/AyL.html Consultado por ltima vez en Abril del


2006.
3. Carrillo Barajas, verano del 2003, Miguel Carrillo Barajas. La importancia de la
Lgica

en

las

Ciencias

de

la

Computacin.

En:

http://www.lania.mx/biblioteca/newsletters/2003-primaveraverano/importancia.html. Fecha de ltima revisin: mayo del 2006.


4. Carrin Viramontes, 2000, Jorge Eduardo Carrin Viramontes. Lenguajes y
Autmatas. Primera edicin. Editorial: ACD.
5. Dean Kelley, mayo 1995 Dean Kelley. Teora de autmatas y lenguajes formales.
Editorial: Prentice-Hall.
6. Domnguez Olmos, 2004, Martha Elizabeth Domnguez Olmos. Principios
fundamentales

de

autmatas

gramticas.

En:

http://www.monografias.com/trabajos16/automatas-y- gramaticas/automatas- ygramaticas.shtml Fecha de ltima revisin: Abril 2006.


7. ENCARTA, 2006. Biblioteca de Consulta Microsoft Encarta. de 1993 a 2005.
Editado por Microsoft Corporation.
8. John Martin. 2004, John C. Martin. Lenguajes formales y teora de la
computacin. Editorial: Mc Graw Hill.
9. Wikipedia, Abril del 2006, Wikimedia Foundation, Inc. Sistemas Formales. En:
http://es.wikipedia.org/wiki/Sistema_formal Fecha de ltima revisin: abril del
2006.

Teora de la Computacin

191

Instituto Tecnolgico de Celaya

Decidibilidad

RETROALIMENTACIN.

1. Conteste correctamente las siguientes preguntas.


a.

El concepto de la decidibilidad, tambin conocida como resolubilidad,


es aplicado sobre aquellos problemas para los que existe algn
algoritmo que pueda resolverlo.

c.

Los lenguajes decidib les o computables son aquellos para los cuales,
existe una funcin recursiva que puede ser calculada por una MT

e.

El problema de Halting o problema de parada, se presenta en aquellas


MT cuya secuencia de anlisis no encuentra un estado de parada.

g.

Los lenguajes recursivamente numerables son denominados como la


clase de lenguajes que son reconocidos por una MT, ya que se pueden
numerar.

i.

Una teora lgica (TL) se define a partir de un conjunto de enunciados


dados, llamados axiomas, unas reglas de inferencia y un esquema de
derivacin.

2. Falso

Teora de la Computacin

192

C
A
P
I
T
U
L
O
VI

REDUCIBILIDAD
OBJETIVO

Apoyar al estudiante a comprender los


esquemas de inferencias lgicas que pueden
construirse aplicando la reducibilidad, a los
problemas insolubles.

Instituto Tecnolgico de Celaya

Reducibilidad

Un problema simple
insoluble

Reducibilidad de Turing

Hace uso

Contiene problemas base

Reducibilidad

Muestra

Problemas insolubles para la


teora de lenguajes

Muestra

Funciones computables

Figura. 6.1 Diagrama temtico de la unidad VI

Teora de la Computacin

194

Instituto Tecnolgico de Celaya

Reducibilidad

6. REDUCIBILIDAD.

6.1 INTRODUCCIN
En el estudio de la computacin existen factores que colocan en duda la eficiencia
de un proceso, algunos de estos factores son: el tiempo, que tarda un computador en
realizar algn clculo o bien el espacio de memoria que ocupa para ello, entre otros; el
exceso de estos eventos afecta la eficiencia de sistema etiquetndolo como
inapropiados.

El estudio de la factibilidad de un sistema, es denominado como complejidad


computacional, la cual clasifica los problemas en dos categoras: los solubles y los
insolubles.
La insolubilidad de un problema puede ser probada por medio de inferencias
lgicas, es decir, no es imprescindible el aplicar algn clculo matemtico riguroso que
muestre la solubilidad o insolubilidad de un problema, ya que al contar con un problema
bsico insoluble, como es el problema de parada, puede deducirse la solubilidad o
insolubilidad de un segundo problema . Lo que hace suponer que existe un lazo entre lo
que se llama complejidad computacional y la lgica, a dicho lazo se le denomina
reducibilidad la cual ser tratada en la presente unidad. Dando paso a algunos
problemas insolubles ya comprobados.

Teora de la Computacin

195

Instituto Tecnolgico de Celaya

Reducibilidad

6.2 PROBLEMAS INSOLUBLES PARA LA TEORA DE LENGUAJES.


El estudio de los procesos computacionales (complejidad), clasifica a los
problemas en dos clases: los problemas con solucin (solubles) y los problemas sin
solucin (insolubles), (Cortz, 2004, Pg. 103). Pero, como probar la solubilidad o
insolubilidad sin tener que invertirle tiempo en pasarlo a un lenguaje de programacin y
ejecutarlo sobre un sistema de cmputo, para medir su tie mpo y la memoria utilizada?
Para tal fin, se puede establecer una liga entre la complejidad computacional
comprobada, sobre algunos sistemas y la lgica; a tal liga se le conoce como
reducibilidad.

La solubilidad de los problemas ha sido establecida de acuerdo a la


implementacin de la MT, cuyo poder de decisin permite establecer s un problema es
decidible o no lo es.
Como se observo en la unidad pasada, el proble ma de parada ya es considerado
como un problema insoluble, permitiendo ser la base para probar la insolubilidad de
otros problemas. Esto puede lograrse basndose en la lgica bsica, generando
supuestos sobre la solubilidad o insolubilidad del problema, ta l como se muestra en el
siguiente planteamiento.

Considere contar con dos problemas de decisin P1 y P2, los cuales se relacionan
con el supuesto de poder reducir P1 a P 2. S P2 es soluble se podra decir que P1
tambin lo es, o bien si P 2 es insoluble P 1 tambin lo ser.
(Martin, 2004, Pg. 411)

La reducibilidad basada en el ejemplo anterior, podra ser definida como la


posibilidad de encontrar dos MT equivalentes que permitan solucionar los problemas P1
y P2 de manera semejante. De tal conjetura se obtiene n las dos siguientes definicio nes.

Teora de la Computacin

196

Instituto Tecnolgico de Celaya

Reducibilidad

Si P1 y P2 son problemas de decisin, se afirma que P1 es reducible a P2 (P1 P2 )


(Martin , 2004, Pg. 412) si existe un procedimiento algortmico que permita,
encontrar una solucin para los P2 en funcin de los valores que tomen los
problemas de P 1.

La insolubilidad de un problema, puede ser definida como la ausencia de un


sistema algortmico que encuentre una solucin validad para los casos de un
problema.

Pueden existir procedimiento que den solucin a uno, dos, tres,..., etc.; casos de
un problema P, pero no para todos los casos de dicho problema, en sta situacin se
puede definir al problema P como un problema insoluble.

6.3 UN PROBLEMA SIMPLE INSOLUBLE.


Dentro de la clasificacin de los problemas insolubles existe un gran nmero de
problemas, sin embargo cabe destacar el problema de Auto aceptacin como uno de los
primeros problemas de ste tipo. El problema de Auto aceptacin, plantea la siguiente
situacin

Problema de Auto aceptacin


Dada una MT T, acepta T ala cadena e(T)?
(Martin, 2004, Pg. 410)

Para determinar la insolubilidad de un problema como ste, suele plantearse una


funcin de codificacin, al cual ob tendr sus resultados con base en los valores que
tomen los diferentes casos presentados por el problema en cuestin. En el caso de los
lenguajes se dira que la funcin de codificacin esta representada por g(c) donde se
evalan cada una de las cadenas generadas por un alfabeto ? . Si para cada caso de g(c),
Teora de la Computacin

197

Instituto Tecnolgico de Celaya

Reducibilidad

existe la solubilidad del problema sobre de una alfabeto ? * se dice que el lenguaje es
recursivo y soluble.
Existen varios problemas insolubles entre los que se pueden mencionar el
problema de Auto aceptacin, el de Aceptacin, el de Detencin entre otros, los cuales
plantean las siguientes situaciones.

Aceptacin: Dada una MT T y una cadena w, w ? L(T)?


Detencin: Dada una MT y una cadena w, se detiene T con la entrada w?
Acepta e: Dada una MT T es e ? L(T)?
AceptaAlgo: Dada una MT T, es L(T) un lenguaje no vaci ?
AceptaTodos: Dada una MT T con alfabeto de entrada ? , es L(T) = ? * ?
Subconjuntos: Dadas dos MT T1 y T2 es L(T1) L(T2)?
EscribirSmbolo: Dada un MT T y un smbolo a en su alfabeto de cinta, a caso
T llega a escribir a s comienza con la cinta en blanco?
(Martin, 2004, Pg. 409, 413, 414, 418)

Cada uno de estos problemas puede ser resuelto probndolos contra otro problema
insoluble ya estab lecido, como son el problema de parada o el problema de Auto
aceptacin. Un ejemplo de este tipo de inferencia es: si B es el denominado problema
AceptaTodos y es considerado como soluble, entonces A (problema de parada) es
tambin soluble . Como bien se sabe el problema A es insoluble y por lo tanto B
tambin es insoluble. (Figura 6.2)

A
Para a B(w) 1
B(w)

B(w)

No para a A(w) 0

A
No para a B(w) 0
Para a A(w) 1
Problema de parada

Figura 6.2. Inferencia de insolubilidad

Teora de la Computacin

198

Instituto Tecnolgico de Celaya

Reducibilidad

6.4 FUNCIONES COMPUTABLES.


Una funcin matemticamente se define como una cantidad numrica cuyo valor
depende o se encuentra en funcin de otra variable, dentro de la computabilidad, una
funcin puede definirse como todo programa que obtiene una cadena de salida a partir
de una cadena de entrada. Tal definicin puede ser trasladada a una MT, donde para
cada entrada de ? , puede computar una funcin cuyo dominio es un subconjunto de ? * .
(Martin, 2004, Pg. 328) Las mquinas construidas en la ltima unidad solo indican la
llegada a un estado de aceptacin para aquellas cadenas que son reconocidas por la
mquina , sin prove er de una opcin para las cadenas que no son reconocidas por dichas
mquinas. Una mquina de Turing que compute una funcin debe de proveer de un
resultado vlido para cualquier cadena que pase por ella, sea aceptada o no aceptada,
por el autmata ; de tal manera que pueda decirse que para cada cadena de entrada que
recibe, existe una cadena de salida.
As podra definirse una MT M y una funcin parcial (subconjunto) F en ? * con
valores en ? * (alfabeto de la cinta) f = ? * ? ? *. Una mquina se considera como
reconocedora de una funcin F s, para cada cadena (x) que pertenece a ? * existe un
valor definido por f(x).
Una funcin puede ser considerada como computable 7 s sus datos fuente son
tuplas de enteros no negativos. Las funciones pueden ser clasificadas jerrquicamente
en 4 grupos, funciones iniciales, funciones recursivas primitivas, funciones -recursivas
(o de Ackermann) y las funciones primitivas parciales. (Figura 6.3)
Las funciones iniciales forman la base de la jerarqua que se muestra en la teora
de funciones recursivas. (Glenn, 1993, Pg. 207)

Las funciones recursivas primitivas son todas aquellas funciones que pueden
construirse a partir de funciones iniciales aplicando tres tcnicas diferentes, las
combinaciones, las composiciones y las recursividades primitivas. (Glenn, 1993, Pg.
7

Son llanadas as a todas aquellas funciones que pueden se calculadas por medio de algoritmo s (Glenn,
1993, Pg. 204)

Teora de la Computacin

199

Instituto Tecnolgico de Celaya

Reducibilidad

210) La combinacin de dos funciones f 1 y f2 es la funcin f1 * f2:Nk? N m+n , la cual


toma entradas en forma de k-tuplas y produce salidas m+n-tuplas cuyos primeros m
elementos forman la salida de f 1 y los n son la salida de f 2. (Glenn, 1993, Pg. 207)

F. I.

F. R. P.

F. A

F. R. PA.

F.

Funciones iniciales
Funciones recursivas primitivas
Funciones -recursivas (Ackermann)
Funciones recursivas parciales
Funciones
Figura. 6.3. Jerarqua de funciones

Las funciones recursivas Ackermann son del tipo A :N2? N, las cuales son
funciones computables totales 8, pero no son funciones recursivas primitivas. (Glenn,
1993, Pg. 217)

Finalmente las funciones recursivas parciales es la clase de funciones parciales


que son creados aplicando un conjunto de tcnicas sobre funciones como es la
combinacin, composicin, recursividades recursivas y minimalizacin9 (Glenn, 1993,
Pg. 219)

Una funcin total de X es una funcin parcial de X cuyo dominio es todo el conjunto X.( Glenn, 1993,
Pg. 205)
9

Para obtener mayor explicacin acerca de stas tcnicas favor de consultar el libro: Teora de la
computacin, lenguajes formales, autmatas y complejidad. Autor: J. Glenn Brookshear. Editorial:
Addison-Wesley

Teora de la Computacin

200

Instituto Tecnolgico de Celaya

Reducibilidad

6.5 REDUCIBILIDAD DE TURING

A lo largo de ste libro de texto, se ha trabajado con cuatro tipos de lenguajes


clasificados de acuerdo a Chomsky.

Chomsky englobo los cuatro tipos de lenguajes en uno solo, los lenguajes
recursivamente enumerable, de los cuales solo una parte se convierten en lenguajes
computables o decidibles, a tales lenguajes se les clasifica tambin como lenguajes
recursivos. Se dice que un lenguaje L es recursivo, si existe una MT T que reconozca a
L. (Martin, 2004, Pg. 365) Y podra usted preguntarse Cmo comprobar que dicho
lenguaje es recursivo? Bien la respuesta a esta cuestin hace nfasis a la enumeracin de
un lenguaje. La palabra enumerar, enunciar o listar sucesiva y ordenadamente las partes
de un conjunto. De tal manera que se existe una MT que enumere los elementos de un
lenguaje , dicho lenguaje se considera como un lenguaje recursivo. Ahora bien, se sabe
que por medio de deducciones e inferencias lgicas se logra probar el estado de algn
objeto, de tal manera que podra comprobarse el estado de recursividad de un lenguaje
L2 en base a la existencia de un lenguaje L1 cuya recursividad ya ha sido comprobada. A
tal comprobacin se le conoce como reducibilidad de Turing.

Tal concepto es

planteado de manera formal en la siguiente definicin.


Si L1 y L2 son lenguajes de un alfabeto 1 y 2 , se afirma que L1 es reducible a
L2 (L1 L2 ), si existe una funcin computable con MT f : 1* *2 tal que,
para cada x ? 1* , se tiene:
x ? L1 si y solo si f ( x) L2
(Martin, 2004, Pg. 412)

Tal definicin persiste en que para que un lenguaje pueda ser reducible a otro debe
existir un elementos x que pertenezca a L y cuya funcin pertenezca tambin a un
segundo lenguaje. De tal manera que si se tiene una MT M que tiene como entrada x y
calcula la funcin f(x) donde x pertenece a L1 se dice que L(M) = L1 y por lo tanto L1 es
Turing-reducible en L2.

Teora de la Computacin

201

Instituto Tecnolgico de Celaya

Reducibilidad

RESUMEN
El estudio de los procesos computacionales (complejidad), clasifica a los
problemas en dos clases: los problemas con solucin (solubles) y los problemas sin
solucin (insolubles). La clasificacin de los lenguajes en alguna de estas dos categoras
puede hacer uso de la reducibilidad, la cual establece un lazo entre la complejidad de un
sistema y las inferencias lgicas.

A travs de la reducibilidad se puede comprobar la solubilidad o insolubilidad de


un problema en base a problemas ya definidos como solubles o insolubles, como es el
caso del siguiente enunciado.

Considere contar con dos problemas de decisin P1 y P2, los cuales se relacionan
con el supuesto de poder reducir P1 a P2 . S P2 es soluble se podra decir que P1
tambin lo es, o bien si P2 es insoluble P1 tambin lo ser.

La reducibilidad basada en el ejemplo anterior, podra ser definida como la


posibilidad de encontrar dos MT equivalentes que permitan solucionar los problemas P1
y P2 de manera semejante. De tal conjetura se obtienen las dos siguientes definiciones:
Si P1 y P2 son problemas de decisin, se afirma que P1 es reducible a P2 (P1 P2 )
(Martin , 2004, Pg. 412) si existe un procedimiento algortmico que permita,
encontrar una solucin para los P2 en funcin de los valores que tomen los
problemas de P 1.

La insolubilidad de un problema, puede ser definida como la ausencia de un


sistema algortmico que encuentre una solucin validad para los casos de un
problema.

Dentro de la clasificacin de los problemas insolubles existe un gran nmero de


problemas, sin embargo cabe destacar el problema de Auto aceptacin como uno de los
Teora de la Computacin

202

Instituto Tecnolgico de Celaya

Reducibilidad

primeros problemas de ste tipo. El problema de Auto aceptacin, plantea la siguiente


situacin
Problema de Auto aceptacin : Dada una MT T, acepta T ala cadena e(T)?
Para determinar la insolubilidad de un problema como ste, suele plantearse una
funcin de codificacin, la cual obtendr sus resultados en base a los valores que tomen
los diferentes casos presentados por el problema en cuestin.

Una funcin matemticamente se define como una cantidad numrica cuyo valor
depende o se encuentra en funcin de otra variable, dentro de la computabilidad, una
funcin puede definirse como todo programa que obtiene una cadena de salida a partir
de una cadena de entrada. Una mquina de Turing que compute una funcin debe de
proveer de un resultado valido para cualquier cadena que pase por ella, sea aceptada o
no aceptada, por el autmata; de tal manera que pueda decirse que para cada cadena de
entrada que recibe, existe una cadena de salida. As podra definirse una MT M y una
funcin parcial (subconjunto) F en ? * con valores en ? * (alfabeto de la cinta) f = ? * ?
? *. Una mquina se considera como reconocedora de una funcin F s, para cada cadena
(x) que pertenece a ? * existe un valor definido por f(x). Las funciones computables son
clasificadas en cuatro grupos, las funciones iniciales, las funciones recursivas
primitivas, las funciones Ackermann y las funciones recursivas parciales.
Se sabe que por medio de deducciones e inferencias lgicas se logra probar el
estado de algn objeto, de tal manera que podra comprobarse es estado de recursividad
de un lenguaje L2 en base a la existencia de un lenguaje L1 cuya recursividad ya ha sido
comprobada. A tal comprobacin se le conoce como reducibilidad de Turing. Tal
concepto es planteado de manera formal en la siguiente definicin.
Si L1 y L2 son lenguajes de un alfabeto 1 y 2 , se afirma que L1 es reducible a
L2 (L1 L2 ), si existe una funcin computable con MT f : 1* *2 tal que,
para cada x ? 1* , se tiene:
x ? L1 si y solo si f ( x) L2

Teora de la Computacin

203

Instituto Tecnolgico de Celaya

Reducibilidad

GLOSARIO
Reducibilidad. Accin de reducir un problema a otro. La reducibilidad permite
el comprobar el estado de un problema en base al estado de un segundo
problema.
Complejidad Computacional. La teora de la complejidad estudia los recursos
requeridos para resolver un problema mediante la ejecucin de un algoritmo.
Funcin. Aquella en que el valor de la variable dependiente es directamente
calculable a partir de los valores que toman la variable o variables
independientes.
Funcin Parcial. Una funcin parcial del conjunto X es aquella cuyo dominio
constituye un subconjunto de X.
Funcin total. Es una funcin parcial del conj unto X cuyo dominio constituye
un todo el conjunto X.
Las funciones iniciales. Forman la base de la jerarqua que se muestra en la
teora de funciones recursivas.
Las funciones recursivas primitivas. Son todas aquellas funciones que pueden
construirse a partir de funciones iniciales aplicando tres tcnicas diferentes, las
combinaciones, las composiciones y las recursividades primitivas. La
combinacin de dos funciones f 1 y f 2 es la funcin f1 * f2:Nk? Nm+n , la cual
toma entradas en forma de k-tuplas y produce salidas m+n-tuplas cuyos
primeros m elementos forman la salida de f 1 y los n son la salida de f 2.
Las funciones recursivas Ackermann. Son del tipo A :N 2? N, las cuales son
funciones computables totales 10, pero no son funciones recursivas primitivas.
Finalmente las funciones recursivas parciales es la clase de funciones parciales
que son creados aplicando un conjunto de tcnicas sobre funciones como es la
combinacin, composicin, recursividades y minimilizacin

10

Una funcin total de X es una funcin parcial de X cuyo dominio es todo el conjunto X.( Glenn, 1993,
Pg. 205)

Teora de la Computacin

204

Instituto Tecnolgico de Celaya

Reducibilidad

EJERCICIOS

1. Conteste correctamente las siguientes preguntas.


a. A que se refiere el termino reducibilidad?
b. Cul es la clasificacin de los procesos computables?
c. Que es una funcin computable?
d. Mencione algunos problemas insolubles
e. A que hace referencia la reducibilidad de Turing?
f.

Cul es la clasificacin de las funciones?

Teora de la Computacin

205

Instituto Tecnolgico de Celaya

Reducibilidad

LECTURA COMPLEMENTARIA
La mquina universal de Turing
Turing, gran matemtico ingl s planteo la famosa Mquina de Turing, que ha sido
considerada como el sistema ms potente en el reconocimiento de lenguajes. Tales
mquinas cuentan con diversas modificaciones una de ellas es la Mquina de Turing
Universal (MTU).
La MTU no es solo una mquina con uso especfico, como las que se han mostrado a
lo largo de ste texto; la MTU es un algoritmo capaz de realizar cualquier clculo. Dichas
mquina tiene como valores de entrada las cadenas obtenidas por otra mquina de uso
especfico, la MTU procesa estas cadenas y obtiene un resultado. Es decir la MTU permite
ejecutar cualquier otra mquina de Turing cuyo uso sea especfico. Tal caracterstica
permite citar el siguiente concepto.

Cualquier clculo que se pueda realizar de forma mec nica puede ser procesado
por una Mquina de Turing.

Originado en la denominada tesis de Church-Turing.


Los actuales computadores son casi mquinas universales de Turing; slo les falta
tener memoria ilimitada para serlo del todo. El primer computador (o "cerebro
electrnico", como entonces se deca) universal (no diseado para una tarea especfica)
fue el ENIAC, que hizo su primera demostracin pblica en Philadelphia en 1946.

Teora de la Computacin

206

Instituto Tecnolgico de Celaya

Reducibilidad

BIBLIOGRAFA

1. Dean Kelley, mayo 1995 Dean Kelley: Teora de autmatas y lenguajes


formales. Editorial: Prentice-Hall.
2. Barreiro, febrero de 1997, lvaro Barreiro Garca. Mquinas de Turing. En:
http://www.dc.fi.udc.es/os/~barreiro/cogdocen/cctema03/node3.html Fecha de
ltima revisin: Abril de 2006.
3. ENCARTA, 2006. Biblioteca de Consulta Microsoft Encarta. DE 1993 a
2005. Editado por Microsoft Corporation.
4. Glenn. 1993. J. Glenn Brookshear. Teora de la computacin, lenguajes
formales, autmatas y complejidad. Editorial: Addison-Wesley
5. John Martin, 2004, John C. Martin. Lenguajes formales y teora de la
computacin. Editorial: Mc Graw Hill.

Teora de la Computacin

207

Instituto Tecnolgico de Celaya

Reducibilidad

RETROALIMENTACIN

a.

La liga entre la complejidad computacional y la lgica; es conocida como


reducibilidad.

c.

Una funcin se considera computable, si existe una MT T que la compute. Una


mquina de Turing que compute una funcin debe de proveer de un resultado
valido para cualquier cadena que pase por ella, sea aceptada o no aceptada, por el
autmata; de tal manera que pueda decirse que para cada cadena de entrada que
recibe, existe una cadena de salida

d.

La reducibilidad de Turing permite la comprobacin del estado de recursividad de


un problema en base a deducciones e inferencias lgicas. Por ejemplo: Si L1 y L2
son lenguajes de un alfabeto 1 y 2 , se afirma que L1 es reducible a L2 (L1
L2 ), si existe una funcin computable con MT f : *1 *2 tal que, para cada x
? 1* , se tiene:
x ? L1 si y solo si f ( x) L2

Teora de la Computacin

208

A
N
E
X
O
S

Instituto Tecnolgico de Celaya

TEMARIO OFICIAL

1.- DATOS DE LA ASIGNATURA

2.- HISTORIA DEL PROGRAMA

Anexo I

Instituto Tecnolgico de Celaya

Anexo I

3.- UBICACIN DE LA ASIGNATURA


a). Relacin con otras asignaturas del plan de estudio

b). Aportacin de la asignatura al perfil del egresado


Comprende la base terica para la construccin de sistemas formales y
utiliza tcnicas de programacin para modelarlos.

4.- OBJETIVO(S) GENERAL(ES) DEL CURSO


El estudiante comprender la base terica para la construccin de s
sistemas formales y utilizar tcnicas de programacin para modelarlos.

Instituto Tecnolgico de Celaya

5.- TEMARIO

Anexo I

Instituto Tecnolgico de Celaya

Anexo I

5.- TEMARIO (Continuacin)

6.- APRENDIZAJES REQUERIDOS


Conocer la teora vista en matemticas discretas, como base conjuntos,
funciones y relaciones.
Conocer y manejar las estructuras de datos, su representacin y
programacin.
Conocer y manejar lenguajes de programacin de alto nivel.
7.- SUGERENCIAS DIDCTICAS
Investigacin previa a la clase de los conceptos de la asignatura, por
equipos analizarlos y discutirlos
Propiciar el trabajo por equipos, exposicin, discusin grupal, entre otros
Plantear y analizar casos tpicos
Desarrollar prcticas en laboratorio para modelar casos tipo
Realizar ejercicios como reforzamiento de temas
Realizar dinmicas de grupo que permitan reforzar la teora
8.- SUGERENCIAS DE EVALUACIN
Evaluacin terica
Elaboracin de ejercicios
Prcticas de laboratorio para modelar a travs de lenguajes
computacionales
Prcticas en laboratorio de electrnica para la programacin de PLCs o
utilizar un simulador
Visitas a laboratorios de Ingeniera Industrial para conocer el
funcionamiento de un CIM o a travs de un simulador
Trabajos de investigacin (artculos, libros, Internet, etc.)
Elaboracin de ensayos y artculos sobre Teora de la Computacin

Instituto Tecnolgico de Celaya

9.- UNIDADES DE APRENDIZAJE


UNIDAD 1.- Introduccin.

UNIDAD 2.- Lenguajes regulares.

Anexo I

Instituto Tecnolgico de Celaya

UNIDAD 3.- Lenguajes libres de contexto.

UNIDAD 4.- Mquina de Turing.

Anexo I

Instituto Tecnolgico de Celaya

UNIDAD 5.- Decibilidad.

UNIDAD 6.- Reducibilidad.

Anexo I

Instituto Tecnolgico de Celaya

Anexo I

10. FUENTES DE INFORMACIN


1.

Martin, John C. Introduction to Languages and the Theory of


Computation. Prentice Hall.
2. Sipser, Michael. Introduction to the Theory of Computation. PWS
Publishing Company.
3. Cohen, Daniel I.A. Introduction to Computer Theory. Ed. Wie Wiley.
4. Davis, Martn D., Weyuker, Elaine. Computability, Complexity and
Languages Fundamentales of Teorical Computer Science. Academic
Press.
5. Denning, Peter J. Machines, Langueges and Computation.Prentice Hall.
6. Hopcroft, John, Ullman, Jeffrey. Introduction to Automatas Theory,
Languages and Computation. Addison-Wesley.
7. Kelley, Dean. Teora de Automatas y Lenguajes Formales.Prentice Hall.
8. Lewis, Larry, Papadimitrion, Chistos H. Elements of the Theory of
Computation. Prentice Hall.
9. Rayward-Smith, V.S. A First Course in a Formal Language Theory.
Mc Graw Hill.
10. Jeffey E.F. Friedl. Mastering Regular Expressions. Oreilly & Associates,
Inc.
11. Brookshear. Teora de la Computacin, Lenguajes Formales, Autmatas
y Complejidad. Addison Wesley.
12. Isasi, Martnez y Borrajo. Lenguajes, Gramticas y Autmatas. Addison
Wesley.

Teora de la Computacin

Instituto Tecnolgico de Celaya

RETCULA OFICIAL

Anexo II

Instituto Tecnolgico de Celaya

CONCLUSIONES

El desarrollo del presente libro de texto nombrado Teora de la Computacin, ha sido


una experiencia retadora y muy enriquecedora.

El reto se genero al tratar de construir un libro confiable y amigable en conceptos, para la


asignatura en que se basa, ya que el estudio terico de la computacin muchas veces suele ser
algo confuso; por lo cual el desarrollar un libro de texto que se acerque al estudiante con
conceptos bsicos y entendibles, sin alterar los conceptos formales de los que procede, es todo un
reto.

Por otra parte, la elaboracin de ste libro ha sido muy enriquecedora ya que ha permitido
ampliar y reafirmar los conocimiento personales que he adquirido con respeto a esta materia y
que para un ingeniero en sistemas son fundamentales. Adems de poder desarrollar mtodo de
redaccin y estructuracin de contenido de una manera ms amplia y formal.

Otro aspecto de entusiasmo en la redaccin de este libro, es el hecho de proveer a los


estudiantes de otro medio de estudio para el desarrollo de la materia Teora de la Computacin.
Sin embargo se debe estar consiente que este libro puede no abarcar temas que pudieran ser del
inters del alumno, por lo que se sugiere buscar otras fuentes de informacin que logren
complementar su formacin.

Finalmente, se concluye este trabajo con una gran satisfaccin; considerando que los
objetivos planteados han sido logrados en un alto porcentaje. Agradeciendo el apoyo brindado, y
considerando nuevas metas; seguir construyendo y enriqueciendo el conocimiento de las ciencias
computacionales, sin dejar, a un lado el aspecto humano y alegre que ha sido dado al hombre, ya
que la compaa de un monitor, no suele ser tal agradable como la de otro ser humano.

Teora de la Computacin

Vous aimerez peut-être aussi