Documentos de Académico
Documentos de Profesional
Documentos de Cultura
de Celaya.
“TEORÍA DE LA COMPUTACIÓN”
LIBRO DE TEXTO
PRESENTA:
ADRIANA ACEVEDO JUÁREZ
A DIOS
Nuestro creador, por permitirme ver la luz de cada nuevo día, por ser la base de
mi fe, por ser mi amigo incondicional en toda ocasión de alegría 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 cariño 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
A JAIME
Por el cariño brindado, por esas largas horas de compañía, por su apoyo en todo
el transcurso de mi carrera. Gracias por todo tu AMOR.
A MIS AMIGOS
A MIS MAESTROS
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 vacíos 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 vacíos y el profesor cuestiono nuevamente si el frasco
estaba lleno. En esta ocasión los estudiantes respondieron con un si unánime.
El profesor enseguida agrego dos tazas de aromático café diluido en agua al contenido
del frasco, con lo que efectivamente, el líquido llenaría todos los espacios vacíos entre
la arena.
Los estudiantes reían en esta ocasión. 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 demás lo perdiéramos y solo estas
quedaran, nuestras vidas aun estarían llenas.
Las canicas son las otras cosas que importan, como el trabajo, la casa, el carro, etc.
la arena es todo lo demás, las pequeñas cosas...si ponemos la arena en el frasco
primero, no habría espacio para las canicas ni para las pelotas de golf.
Lo mismo ocurre con la vida. Si gastamos todo nuestro tiempo y energía en las cosas
pequeñas, nunca tendremos lugar para las que realmente son importantes...
así que presta atención 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 afición favorita. Siempre habrá tiempo para limpiar la casa y reparar la
llave del agua... ocúpate de las pelotas de golf primero, es decir de las cosas que real
mente importan... establece tus prioridades, el resto es sola arena".
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 día, por ser la base de
mi fe, por ser mi amigo incondicional en toda ocasión de alegría 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 cariño 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
A JAIME
Por el cariño brindado, por esas largas horas de compañía, por su apoyo en todo
el transcurso de mi carrera. Gracias por todo tu AMOR.
A MIS AMIGOS
A MIS MAESTROS
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 vacíos 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 vacíos y el profesor cuestiono nuevamente si el frasco
estaba lleno. En esta ocasión los estudiantes respondieron con un si unánime.
El profesor enseguida agrego dos tazas de aromático café diluido en agua al contenido
del frasco, con lo que efectivamente, el líquido llenaría todos los espacios vacíos entre
la arena.
Los estudiantes reían en esta ocasión. 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 demás lo perdiéramos y solo estas
quedaran, nuestras vidas aun estarían llenas.
Las canicas son las otras cosas que importan, como el trabajo, la casa, el carro, etc.
la arena es todo lo demás, las pequeñas cosas...si ponemos la arena en el frasco
primero, no habría espacio para las canicas ni para las pelotas de golf.
Lo mismo ocurre con la vida. Si gastamos todo nuestro tiempo y energía en las cosas
pequeñas, nunca tendremos lugar para las que realmente son importantes...
así que presta atención 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 afición favorita. Siempre habrá tiempo para limpiar la casa y reparar la
llave del agua... ocúpate de las pelotas de golf primero, es decir de las cosas que real
mente importan... establece tus prioridades, el resto es sola arena".
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 Tecnológico 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 título de acuerdo
a la carrera que se haya elegido.
Por otra parte, otro propósito por lo cual se desea llevar a cabo este proyecto es el de
concluir con los estudios académicos para obtener el grado de Ingeniero en Sistemas
Computacionales.
Teoría de la Computación I
Instituto Tecnológico de Celaya
OBJETIVO GENERAL
OBJETIVOS ESPECÍFICOS
♦ Integrar el mejor material de texto que exista actualmente en las diferentes fuentes
bibliográficas de la materia, en un material accesible para el estudiante.
Teoría de la Computación II
Instituto Tecnológico de Celaya
JUSTIFICACIÓN
ÍNDICE
Antecedentes I
Objetivo General II
Objetivos Específicos II
Justificación III
Introducción general VIII
UNIDAD 1. INTRODUCCIÓN
Objetivo 1
Diagrama temático de la unidad 2
1. Introducción 3
1.1 Introducción 3
1.2 Nociones matemáticas. 4
1.2.1 Conjuntos 4
1.2.2 Funciones y relaciones 11
1.2.3 Cadenas y lenguajes 18
1.3 Inducción matemática. 25
1.4 Autómatas, Computabilidad y Complejidad 27
Resumen 28
Glosario 32
Ejercicios 36
Problemas 37
Lectura complementaría 39
Bibliografía 41
Retroalimentación 42
Objetivo 44
Diagrama temático de la unidad 45
2. LENGUAJES REGULARES 46
2.1 Introducción 46
Teoría de la Computación IV
Instituto Tecnológico de Celaya
Objetivo 84
Diagrama temático de la unidad 85
3. LENGUAJES LIBRES DE CONTEXTO. 86
3.1 Introducción. 86
3.2 Gramáticas libres de contexto. 87
3.2.1 Construcción de gramáticas 87
3.3 Árboles de derivación. 90
3.4 Formas normales de Chomsky, 93
3.4.1 Algoritmos de eliminación de producciones inútiles. 94
3.4.2 Algoritmos de eliminación de producciones anulables 97
3.4.3 Algoritmos de eliminación de producciones unitarias 100
3.5 Formas normales de Greibach. 104
3.6 Eliminación de Factores Comunes izquierdos. 106
3.7 Eliminación de recursividad izquierda. 108
3.8 Eliminación de la ambigüedad. 111
3.9 Autómatas Push-Down. 111
3.9.1 AP y gramáticas independientes del contexto. 114
Teoría de la Computación V
Instituto Tecnológico de Celaya
Resumen 118
Glosario 124
Ejercicios 125
Problemas 126
Lectura complementaría 128
Bibliografía 130
Retroalimentación 131
Objetivo 134
Diagrama temático de la unidad 135
4. MÁQUINA DE TURING. 136
4.1 Introducción. 136
4.2 Conceptos básicos 137
4.2.1 Definición formal de una máquina de Turing 138
4.3 Construcción modular de una máquina de Turing. 140
4.3.1 Bloques básicos 141
4.4 Lenguajes aceptados por la MT. 144
4.5 Variantes de una máquina 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 determinística 148
4.6 Problemas de Hilbert 149
Resumen 151
Glosario 155
Ejercicios 156
Problemas 157
Lectura complementaría 158
Bibliografía 166
Retroalimentación 167
Teoría de la Computación VI
Instituto Tecnológico de Celaya
UNIDAD 5. DECIDIBILIDAD
Objetivo 172
Diagrama temático de la unidad 173
5. DECIBILIDAD 174
5.1 Introducción. 174
5.2 Lenguajes decidibles 175
5.3 El problema de Halting. 177
5.4 Decidibilidad de teorías lógicas. 179
Resumen 181
Glosario 183
Ejercicios 184
Lectura complementaría 185
Bibliografía 191
Retroalimentación 192
UNIDAD 6. REDUCIBILIDAD
Objetivo 193
Diagrama temático de la unidad 194
6. REDUCIBILIDAD. 195
6.1 Introducción 195
6.2 Problemas insolubles para la teoría de lenguajes. 196
6.3 Un problema simple insoluble. 197
6.4 Funciones computables. 199
6.5 Reducibilidad de Turing. 201
Resumen 202
Glosario 204
Ejercicios 205
Lectura complementaría 206
Bibliografía 207
Retroalimentación 208
Anexos
Conclusiones
INTRODUCCIÓN 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 computación así como en los principios
científicos que han llevado al hombre a uno de sus más grandes triunfos, la invención de la
computadora.
Noam, menciona que cada uno de estos lenguajes es un subconjunto de otro, de los
cuales el más pequeño es el conjunto de los lenguajes regulares. Ésta clase de lenguajes son
reconocidos únicamente por un tipo único de máquina abstracta, o dicho de otra manera,
por un algoritmo computacional. Los autómatas finitos son máquinas abstractas
constituidas por un número finito de estados, un conjunto de transiciones, un alfabeto, entre
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 máquinas
abstractas que los reconocen y que son conocidas como autómatas de pila, cuyo poder de
reconocimiento rebasa el de los autómatas finitos; permitiéndole reconocer un conjunto
más amplio de lenguajes. Sin embargo, aún existe una máquina más poderosa denominada
máquina de Turing; la cual es estudiada a fondo en la cuarta unidad.
Teoría de la Computación IX
C
A INTRODUCCIÓN
P
I OBJETIVO
T
Reafirmar los conocimientos matemáticos
U básicos obtenidos por el estudiante, como
son la teoría de conjuntos, las relaciones,
L funciones, entre otros; que son
indispensables para el estudio de la Teoría
O de la Computación.
I
Instituto Tecnológico de Celaya Introducción
Inducción
matemática.
Teoría de la
Incluyen
computabilidad
Estudia
Requiere
Introducción a la Conceptos
Teoría de la matemáticos básicos
Computación
Estudia Incluyen
Teoría de la
complejidad
Teoría de
conjuntos
Teoría de la Computación 2
Instituto Tecnológico de Celaya Introducción
1. INTRODUCCIÓN
1.1 INTRODUCCIÓN
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 características
particulares con las que cuentan.
Teoría de la Computación 3
Instituto Tecnológico de Celaya Introducción
Así como todo niño necesita conocer las letras para poder leer, todo estudio científico
requiere del conocimiento previo de reglas, teorías y herramientas que ayuden al estudiante
en la comprensión de éste. Por ello para el estudio de la ciencia computacional es
conveniente el conocer herramientas matemáticas básicas para lograr una completa
compresión de esta ciencia; algunas de las herramientas que serán revisadas en esta unidad
son: la teoría de conjuntos, los conceptos de funciones y relaciones, y los conceptos de
cadenas y lenguajes.
1.2.1 Conjuntos
El término conjunto puede ser definido como una colección de objetos (Kelley, 1995,
Pág. 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, Pág. 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 notación a usar para la representación de esta sentencia es Laura ∈ Mujeres, de la
misma manera se dice que una centavo pertenece al conjunto monedas, tal aseveración
podría ser representada, de manera resumida como c Є M donde el símbolo Є, mostrado
también en la sentencia anterior, se lee como “pertenece a” En caso de que Laura no fuera
un elemento del conjunto Mujeres se escribiría Laura ∉ Mujeres, donde el símbolo ∉
niega la existencia del elemento Laura en el conjunto Mujeres y se lee como “no pertenece”.
(Kelley, 1995, Pág. 6).
Teoría de la Computación 4
Instituto Tecnológico de Celaya Introducción
donde los corchetes forman parte esencial de esta notación encerrando en ellos los
elementos que pertenecen a el conjunto N; éste conjunto también 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 = {v│v es una vocal} donde la notación v│ se leería como “el conjunto de todas
las v tales que” v es una vocal (Kelley, 1995, Pág. 2). Otro ejemplo de esta notación podría
ser el conjunto de enteros entre 0 y 9.
B = {1, 2, 3, 4, 5, 6, 7, 8}
B = {x│x Є C y x > 0, x < 9} ó B = {x Є C │x > 0 y x < 9}
Dentro de los conjuntos existe el denominado conjunto vacío o conjunto nulo siendo
éste el conjunto ausente de elemento el cual es representado por los corchetes vacíos {}, o
bien por el símbolo Ø (Kelley, 1995, Pág. 2).
Teoría de la Computación 5
Instituto Tecnológico de Celaya Introducción
no es de gran interés, es decir el orden de los factores no altera el producto, como lo indica
la ley conmutativa de la multiplicación; 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}.
a b c e
c d b a
e d
Conjunto A = Conjunto B
Ahora, consideré los conjuntos A y B los cuales están 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
también son elementos que se muestran en el conjunto B, por lo que se dice que A es un
subconjunto de B, cuya notación 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.
Teoría de la Computación 6
Instituto Tecnológico de Celaya Introducción
Entre los elementos del conjunto A se encuentra el conjunto vacío, ya que éste forma
parte de todos los conjuntos (Kelley, 1995, Pág. 7); por lo tanto, el conjunto vacío es un
subconjunto del conjunto A, Ø ⊆ A; y por ende también es un subconjunto de B, Ø ⊆ B.
0 4
1 2 Conjunto B
Conjunto A
3
5 6
Teoría de la Computación 7
Instituto Tecnológico de Celaya Introducción
a e f
c b g
Conjunto A Conjunto B
a e
c f
b g
Conjunto A ∪ B
a b c e f g
h i
d e f i j k
a b f g
h i
Conjunto A c d e j k Conjunto B
e
Conjunto A ∩ B
Teoría de la Computación 8
Instituto Tecnológico de Celaya Introducción
a b c e f g
h i
d e f i j k
g h
i
Conjunto A Conjunto B
j k
Conjunto B - A
Teoría de la Computación 9
Instituto Tecnológico de Celaya Introducción
A”. Sin embargo se debe hacer notar que el conjunto nulo o vacío no forma parte de este
conjunto universal, por lo cual 0 = U. (Kelley, 1995, Pág. 9)
Conjunto potencia 2v. Este conjunto esta constituido por todas las posibles
combinaciones de los elemento de él conjunto en cuestión, para ser más claros,
supóngase que A es un conjunto formado por los elementos {a, b, c}, donde el
conjunto potencia de A estaría dado por {Ø, {a}, {b}, {c}, {a, b},{a, c},{b, c},{a, b,
c}}, note que el elemento vacío o nulo también forma parte de este conjunto potencia.
Podrá decirse que el conjunto potencia es igual a todos los subconjuntos del conjunto
en cuestión. El total de elementos del conjunto potencia es igual 2n donde n es la
cantidad de elementos que componen el conjunto original. (Brena; 2003, Pág. 6)
Teoría de la Computación 10
Instituto Tecnológico de Celaya Introducción
De acuerdo al diccionario español, una relación se define como una acción y efecto
de referir o referirse a algo, o bien una conexión 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 relación particular.
Una relación esta dada por un subconjunto del producto cartesiano obtenido del ó los
conjuntos en cuestión. (Kelley; 1995, Pág.12) Para una mayor explicación 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 podría
estar dada por R = {(a, e),(b, e),(c, e)}. Cada par ordenado (x, y) que forman esta relación
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 relación, mientras que el
condominio o imagen estaría determinado por todos los elementos y de la relación, (Kelley;
1995, Pág.12) es decir:
Teoría de la Computación 11
Instituto Tecnológico de Celaya Introducción
Estas relaciones también pueden ser obtenidas del producto cartesiano de un solo y
único conjunto, por ejemplo el conjunto A = {a, b, c}, cuyo producto cartesiano estaría
determinado por A*A, y cuyos subconjuntos formaría una relación; a éste tipo de relación
se le llama relación sobre A. (Kelley, 1995, Pág. 12)
Las relaciones cuentan con cuatro propiedades que las caracterizan como un tipo
particular de relación, estas propiedades son mencionadas a continuación.
x = {1, 2, 3, 4}
Observe esta propiedad en el grafo o digráfica de la figura 1.7, donde para cada
elemento del conjunto existe una arista circular que regresa al mismo vértice.
Teoría de la Computación 12
Instituto Tecnológico de Celaya Introducción
1 2
3 4
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 relación se dice simétrica ya que
existe una adecuada proporción de las partes que forman los pares de elementos.
Obsérvese 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 simetría de la relación.
Teoría de la Computación 13
Instituto Tecnológico de Celaya Introducción
1 2
3 4
El grafo de la figura 1.9 muestra esta propiedad donde para cada nodo solo existe una
arista dirigida en un solo sentido.
1 2
3 4
El cuarto tipo de relaciones que se resaltarán son las relaciones transitivas donde se
menciona que para cada (x, y), (y, z) Є R debe existir un par (x, z) Є R (Kelley, 1995, Pág.
14), por ejemplo:
Teoría de la Computación 14
Instituto Tecnológico de Celaya Introducción
R = {(1,1), (1,2), (1,4), (2,2), (2,1), (2,4), (3,1), (3, 4), (3, 2)}
Donde la relación es una relación transitiva, esta propiedad podría 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 relación anterior.
1 2
3 4
Figura 1.10. Grafo de relación transitiva
Cuando una relación es transitiva, reflexiva y simétrica se dice que la relación es una
relación de equivalencia o de orden parcial. (Brena, 1995, Pág. 14)
Finalmente y antes de hablar de las funciones se menciona la inversa de una relación
representada por R-1, la cual no es otra cosa que el cambio de orden en el que aparecen los
elementos de una relación, por ejemplo:
Y de donde se puede decir que R-1= {(x, y) │ (y, x) Є R} (Brena; 2003, Pág.8)
Así como se define a una relación desde su fundamento matemático, una función
puede definirse matemáticamente como una cantidad cuyo valor depende de otra variable,
en las ciencias computacionales una función f se define como una relación R ⊆ A x B,
Teoría de la Computación 15
Instituto Tecnológico de Celaya Introducción
(Kelley, 1995, Pág. 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 relación que se denomina como función. Las
funciones se representan con la notación f: A → B estableciendo una relación f que va de A
a B; mientras que los elementos relacionados se representan por f(x) = y. (Kelley, 1995,
Pág. 15) (Figura 1.11).
f: A → B
a d e
b f
c g h
Conjunto A Conjunto B
Nótese que todo el dominio de la función es igual al conjunto A, es decir todos los
elementos que forman el conjunto están presentes en la relación, mientras que solo unos
cuantos elementos del conjunto B se encuentran presentes en la función, a estos últimos se
les denomina contradominio, rango o bien intervalo de la función. 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, Pág.94), es decir, si el conjunto A esta formado por {a,
b, c} y el conjunto B por {e, f}, y la función de A a B esta determinada por f = {(a, e), (b, f),
(c, f)}, tenemos que el contradominio de esta función contiene todos los elementos que
pertenecen al conjunto B; como se muestra en la figura 1.12.
Teoría de la Computación 16
Instituto Tecnológico de Celaya Introducción
f: A → B
a e
Dominio b Contradominio
c f
Conjunto A Conjunto B
Las funciones inyectivas o uno a uno, son aquellas en las que cada x Є A se relaciona
con un único y Є B (Brena, 2003, Pág. 10), por ejemplo la función f = {(a, e), (c, f)} es una
función inyectiva ya que a cada elemento del dominio le corresponde un único elemento del
contradominio. (Figura 1.13).
f: A → B
a e
c f
Conjunto A Conjunto B
Sí una función cumple con las dos características mencionadas anteriormente, a esta
función se le denomina como una función biyectiva (Brena, 1995, Pág. 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 función f = {(0, I), (1, II), (2, IV), (3, III)}que cumple con las dos características
antes mencionadas, por lo tanto la función se dice biyectiva. (Figura 1.14).
Teoría de la Computación 17
Instituto Tecnológico de Celaya Introducción
f: C → D
0 1 I II
2 3 III IV
Conjunto C Conjunto D
∑ = {a, b, c, d, e, f, g, h, i, j}
Teoría de la Computación 18
Instituto Tecnológico de Celaya Introducción
Donde σ representa cualquier símbolo del alfabeto que pertenece a ∑, (σ Є ∑). (Kelley,
1995, 30)
Como ya se menciono en párrafos anteriores las cadenas son una secuencia de
símbolos sobre un alfabeto, de tal manera que el valor “00365” es una cadena sobre el
alfabeto numérico; cuya longitud es finita y por lo tanto contable. La longitud de una
cadena se define como el número de símbolos por los cuales esta constituida y se representa
mediante la notación c donde c es la cadena anterior y cuya longitud es igual a 5 ( c =5).
(Kelley; 1995, Pág. 32) Dentro del conjunto de cadenas obtenidas de un alfabeto se
encuentra la cadena vacía que es una secuencia vacía de símbolos cuya longitud esta
determinada por ε = 0 (Kelley, 1995, Pág. 32), y forma parte de cualquier conjunto de
palabras obtenidos sobre un alfabeto, nótese también que cada símbolo del alfabeto es una
cadena cuya longitud es igual a 1.
Teoría de la Computación 19
Instituto Tecnológico de Celaya Introducción
1.2.3.1 Concatenación
ε Si n = 0
c n = n−1
cc Si n > 0
cI = (alfa)I = (lfa)Ia
= (fa)Ila
Teoría de la Computación 20
Instituto Tecnológico de Celaya Introducción
= (a)Ifla
= ( ε )Iafla
= afla
El concepto potencia aplicado a las cadenas es también empleado para los lenguajes,
aplicándose de la misma manera, de tal manera se tiene
ε Si n = 0
En = n −1
E • E Si n ≥ 0
Teoría de la Computación 21
Instituto Tecnológico de Celaya Introducción
la cadena vacía E+ = {1, 11, 12, 12,13…, 111, 112, 112, 113,…, 1112, 122, 123,..……..}.
(Kelley, 1995, Pág. 37)
Una vez que han sido introducidos estos conceptos puede definirse formalmente un
lenguaje.
Teoría de la Computación 22
Instituto Tecnológico de Celaya Introducción
lenguaje cuyos elementos son {xxyy, xxxyy, xxxyyy, xxxxyy, xxxxyyy, xxxxyyyy,
xxxxxyy, xxxxxyyy,……..} podría ser también representado por L = {xi yj │i ≥ j > 1}, ya
que si observamos las características del lenguaje, podría deducirse que en la mayoría de
las cadenas se muestra un mayor número de x que de y, sin embargo existen algunos casos
donde son iguales, además el número mínimo de veces que se muestran tanto las x como
las y es de 2.
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 }
Como ya se menciono los lenguajes son subconjuntos de elementos por lo cual las
operaciones de unión, intersección y complemento son también aplicables.(Kelley, 1995,
Pág. 35) Por ejemplo, considere los lenguajes L1 y L2 cuyos elementos son:
Teoría de la Computación 23
Instituto Tecnológico de Celaya Introducción
aa aaaa bb bbbb
aaaaaa bbbbbb
aaaaaaaa bbbbbbbb
Conjunto A Conjunto B
aa aaaa
aaaaaa aaaaaaaa
bb bbbb bbbbbb
bbbbbbbb
Conjunto B ∪ A
Teoría de la Computación 24
Instituto Tecnológico de Celaya Introducción
En particular para el estudio de los conjuntos, la prueba de inducción será usada para
probar que cierta propiedad es valida para todos los elementos de un conjunto finito. (Brena,
2003, Pág. 15)
Teoría de la Computación 25
Instituto Tecnológico de Celaya Introducción
20 = 20+1-1
1 = 21-1
1 = 2-1
1 =1
La primera etapa ha sido verdadera, por lo cual se supone que también será verdadera para
n +1, es decir 20 + 21 +…...+ 2(n+1) = 2(n+1)+1-1 (hipótesis de la inducción). Lo cual hay que
comprobar, en el paso de inducción. Considere que n = 1
20 + 2(1+1) = 2(1+1)+1-1
1+22 = 22+1-1
1 + 4 = 6-1
5=5
1
Conjunto de enteros positivos.
Teoría de la Computación 26
Instituto Tecnológico de Celaya Introducción
Teoría de la Computación 27
Instituto Tecnológico de Celaya Introducción
RESUMEN
Dentro de los conjuntos existe el denominado conjunto vacío o conjunto nulo siendo
éste el conjunto ausente de elementos, representado por los corchetes vacíos {}, o bien por
el símbolo Ø.
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
número de elementos que forman un conjunto y es denotado por dos líneas verticales
paralelas que encierran al conjunto ││A││. Un conjunto infinito es aquel cuya
cardinalidad no es conocida.
Dentro de la teoría de conjuntos es posible realizar una serie de operaciones las cuales
se concentran en tres: la unión, la intersección y el complemento.
Teoría de la Computación 28
Instituto Tecnológico de Celaya Introducción
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 operación de conjuntos es B – A = {x │x Є A y x ∉ B}.
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 vacío
o nulo también forma parte de este conjunto potencia. El total de elementos del
Teoría de la Computación 29
Instituto Tecnológico de Celaya Introducción
Cuando una relación es transitiva, reflexiva y simétrica se dice que la relación es una
relación de equivalencia o de orden parcial.
Una relación puede contener características especiales, a este tipo de relaciones se les
conoce como una función. Una función f puede definirse como una relación 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
Teoría de la Computación 30
Instituto Tecnológico de Celaya Introducción
a la relación que se denomina como función. Las funciones se representan con la notación f:
A → B; y pueden ser de tres tipos: sobreyectivas, inyectivas y finalmente biyectivas.
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.
Teoría de la Computación 31
Instituto Tecnológico de Celaya Introducción
GLOSARIO
Teoría de la Computación 32
Instituto Tecnológico de Celaya Introducción
Teoría de la Computación 33
Instituto Tecnológico de Celaya Introducción
Teoría de la Computación 34
Instituto Tecnológico de Celaya Introducción
Teoría de la Computación 35
Instituto Tecnológico de Celaya Introducción
EJERCICIOS
Teoría de la Computación 36
Instituto Tecnológico de Celaya Introducción
PROBLEMAS
Operaciones.
L1 ∪ L2 = L1 * =
L1 ∩ L2 = (L1 ∩ L2) ∪ L2 =
Teoría de la Computación 37
Instituto Tecnológico de Celaya Introducción
Teoría de la Computación 38
Instituto Tecnológico de Celaya Introducción
LECTURA COMPLEMENTARIA.
El lenguaje puede ser estudiado desde dos puntos de vista: según el uso o la estructura.
(Encarta, 2006)
De acuerdo al uso, los lenguajes se relaciones con otros campos, “como la literatura,
la comunicación de la información, la enseñanza de idiomas, la sociología, la ciencia
política y la psicología. 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 análisis de los contenidos, la crítica literaria, el estudio
Teoría de la Computación 39
Instituto Tecnológico de Celaya Introducción
del cambio lingüístico y los factores sociales que determinan los comportamientos
lingüísticos de los miembros de una comunidad idiomática”. (Encarta, 2006)
Teoría de la Computación 40
Instituto Tecnológico de Celaya Introducción
BIBLIOGRAFÍA
Teoría de la Computación 41
Instituto Tecnológico de Celaya Introducción
RETROALIMENTACIÓN
1. a. A = {x│x Є Ν }
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 relación.
c. Longitud igual a 6
1. a. {Ø,{a},{b},{a,b}}
c. { Ø }
2. L1 ∪ L2 = {x│x Є L1 o x Є L2}
L1 * = {∈, j, xy, xjj, xxjj, xxxjj, xxxjjj, ………. }
Teoría de la Computación 42
Instituto Tecnológico de Celaya Introducción
c. Es reflexiva y simétrica.
7. a. El dominio esta constituido por todos los hijos (x), mientras que el condominio
esta constituido por todas las madres de x.
Teoría de la Computación 43
C
LENGUAJES
A
REGULARES
P
I OBJETIVO
T
Definir los lenguajes regulares, así como las
U expresiones y máquinas abstractas
(autómatas finitos) que permiten su
L representación y reconocimiento.
II
Instituto Tecnológico de Celaya Lenguajes Regulares
Expresiones Jerarquía de
regulares. Chomsky
Son descritos
Son representados
Lenguajes Regulares
Se dividen
Son reconocidos por
Lenguajes no regulares
Autómatas finitos
(AF)
Se clasifican
AF Determinista AF No determinista
Teoría de la Computación 45
Instituto Tecnológico de Celaya Lenguajes Regulares
2. LENGUAJES REGULARES
2.1 INTRODUCCIÓN.
La presente unidad permitirá al estudiante analizar los lenguajes regulares (LR), que
son considerados como el conjunto más pequeño de lenguajes y cuyas características los
hacen únicos. Dichos lenguajes pueden ser representados mediante expresiones regulares
(ER), que muestran de forma directa las cadenas de texto básicas, por las que está
constituido el lenguaje regular. Además sólo son reconocidos por un tipo de máquinas
abstractas denominadas autómatas finitos (AF), de las que existen dos tipos: los autómatas
finitos determinísticos y los autómatas finitos no determinísticos.
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 aplicación de las reglas de equivalencia ya establecidas, las cuales
son listadas en este apartado.
Como ya se dijo, los LR es el conjunto más pequeño 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.
Teoría de la Computación 46
Instituto Tecnológico de Celaya Lenguajes Regulares
La representación de las etapas por las que pasa un estudiante para culminar sus
estudios y convertirse en un profesionista es una abstracción 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 máquinas
abstractas que son denominadas como autómatas, permitirán representar estas secuencias
de eventos.
Cada regla que constituye a una gramática es una expresión del tipo α→β, donde α y
β representan cadenas, cuya cardinalidad y orden de elementos definirán el tipo de
gramática.
Teoría de la Computación 47
Instituto Tecnológico de Celaya Lenguajes Regulares
terminales, se les llama así a aquellos símbolos que permitirán la construcción de una
palabra a través de la sustitución continua de los mismo, su principal característica es que
son escritos siempre con letras mayúsculas; el segundo es el conjunto de los símbolos
terminales o alfabeto del lenguaje, estos símbolos siempre serán escritos con letras
minúsculas; el tercero es el conjunto del símbolo inicial de la gramática y el cuarto es el
conjunto de reglas o producciones3. Cada uno de los símbolos que forman una producción
puede ser un elemento terminal y/o no terminales. Para visualizar mejor esta idea, observe
la siguiente gramática. (Kelley, 1995, Pág.107)
S → aS
S → bS
S→b
3
Se les llama así debido a la distinción de que α produce (→) a β.
Teoría de la Computación 48
Instituto Tecnológico de Celaya Lenguajes Regulares
Gramáticas regulares. Las reglas de esta gramáticas tienen la forma α→β donde α
pertenece al conjunto de símbolos no terminal y cuya longitud debe de ser igual a uno;
β es una cadena, cuya longitud debe ser mayor o igual a α, además puede estar
constituida de un símbolo o variable terminal seguido de un no terminal, o bien
únicamente de una variable terminal, es decir β Є (∑ • N) ó β Є ∑. Este tipo de
gramáticas también es denominado gramática de tipo 3. (Martin, 2004, Pág.385)
Teoría de la Computación 49
Instituto Tecnológico de Celaya Lenguajes Regulares
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
formarán parte de un lenguaje regular, ya que la gramática de la que proceden es clasificada
como de éste tipo.
Los lenguajes regulares (LR) son denominados como la clase más pequeña 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, Pág. 19)
Teoría de la Computación 50
Instituto Tecnológico de Celaya Lenguajes Regulares
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 serían:
LR = Ø
LR = { ∈ }
LR = {e}
LR = {f}
LR = {c}
LR = {ce} ya que es la concatenación de {c} y {e}
LR = {e, f} ya que es la unión de {e} y {f}
Teoría de la Computación 51
Instituto Tecnológico de Celaya Lenguajes Regulares
LR = {c, ef, e, f}
LR = { ci │i≥0}
LR = {ei fi│i ≥ 0}
LR = { (ce)i│i ≥ 0}
Teoría de la Computación 52
Instituto Tecnológico de Celaya Lenguajes Regulares
Dicho autómata finito es denominado así debido a que cuenta con un número determinado
de estados y solo reconocen a los denominados lenguajes regulares. Existen dos tipos de
autómatas finitos los deterministas y no deterministas.
M = (Q,∑,s, F, δ) donde
Q = {q0, q1}
∑ = {e, f}
s = {q0}
F = {q1}
δ = {(q0, e) → q1, (q1, e) → q1,
(q1, f) → q1}
Teoría de la Computación 53
Instituto Tecnológico de Celaya Lenguajes Regulares
E f
q0 q1 error
* q 1 q1 q1
a b
q0 Q0 q1
q1 error q2
* q2 Q2 q2
Teoría de la Computación 54
Instituto Tecnológico de Celaya Lenguajes Regulares
Tal diagrama acepta todas las cadenas derivadas del lenguaje L(N) = {ai bj ak │i,k ≥ 0
y j es un número par mayor de 1}, observe que se ha introducido la notación L(N) que
indica que todas las cadenas producidas por éste lenguaje es aceptado por el autómata N.
Se dice que dos AFD son equivalentes si los lenguajes que representan cada uno de
estos autómatas 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 autómatas mostrados en la figura 2.7. (Kelley, 1995, Pág.60)
Teoría de la Computación 55
Instituto Tecnológico de Celaya Lenguajes Regulares
Ambos autómatas reconocen el mismo lenguaje L = {anb│n ≥ 0}, sin embargo el más
adecuado es el autómata de la figura 2.7 a), ya que cuenta con un menor número de estados.
A este tipo de autómatas se les denomina autómatas equivalentes.
Como puede observase en ambos estados existen más de una transición rotulada con
el mismo símbolo de entrada, lo cual produce una ambigüedad.
Teoría de la Computación 56
Instituto Tecnológico de Celaya Lenguajes Regulares
♦ s es el estado inicial.
♦ F es el conjunto de estados de aceptación
♦ ∆ es una función ∆:(Q x ∑ ) x Q, llamada relación de transición.
Observe que la definición es prácticamente idéntica a la de los AFD, excepto por las
transiciones en las cuales se indica que existe una colección de cero o más transiciones con
el mismo símbolo de entrada para saltar al estado siguiente.
0 1
q0 {q0, q1} q1
Nótese que en las celdas de esta tabla se encuentran conjunto de estados lo que indica
la existencia de más de una transición a través del mismo símbolo que lleva a otro estado;
esta situación lleva a un estado de ambigüedad 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 autómatas se intuye que se tomará
la transición apropiada para el reconocimiento de las cadenas de un lenguaje. (Kelley, 1995,
Pág.63)
Teoría de la Computación 57
Instituto Tecnológico 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, Pág. 64)
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 autómata
finito determinístico N como por un autómata finito no determinístico de tal manera que L
(N) = L (N’) (Kelley, 1995, Pág.66). Un ejemplo de esta equivalencia se muestra en los
autómatas de la figura 2.10
Teoría de la Computación 58
Instituto Tecnológico de Celaya Lenguajes Regulares
determinístico. 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
El AFN mostrado en la figura anterior presenta una ε -transición que lleva del estado q1 al
estado de aceptación q2, lo que permita que dichos autómatas reconozcan cadenas
constituidas de solo a’s.
La tabla de transiciones que representa el AFN de la figura 2.11 muestra una columna
más para la cadena vacía. Figura 2.12
A B ε
q0 {q1} Error error
Teoría de la Computación 59
*
Instituto Tecnológico de Celaya Lenguajes Regulares
Teoría de la Computación 60
Instituto Tecnológico de Celaya Lenguajes Regulares
Teoría de la Computación 61
Instituto Tecnológico de Celaya Lenguajes Regulares
En apartados anteriores los lenguajes han sido presentados mediante fórmulas, en las
cuales su ejemplificación puede no ser tan sencilla. Una manera más natural de expresar
estos lenguajes es mediante la construcción de expresiones regulares (ER). Estas
expresiones regulares no son más que la representación 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 vacía (“ ε ”), la unión (“+”), la concatenación (” • ”), las
cerraduras (”*”, “+”), a los paréntesis ( “(“,”)”), y al lenguaje vacío (”Ø”); y que cumplen
con las siguientes características:
1. “ ε ” y ” Ø” Є ER
2. Si σ Є ∑ entonces σ Є ER
3. Si E1, E2 Є ER, entonces “(“E1 “+” E2“)” Є ER, “(“E1“ • ” E2 “)” Є ER, “(“E1 “*”
E2 “)” Є ER.
Por ejemplo, el lenguaje L = {an b │n ≥ 0 } puede ser representado como “(a* • b)” , o bien
tan a* b omitiendo los paréntesis, las comillas y la concatenación, que normalmente quedan
explícitos en la expresión regular. Algunos ejemplos de expresiones regulares son:
1. aa*b
2. (ab)*
3. (ab)+
4. c*(c*d)*
5. (a + b)*
Teoría de la Computación 62
Instituto Tecnológico de Celaya Lenguajes Regulares
Para que una expresión regular sea aceptada como tal debe de cumplir con dos
características, la primera es la corrección en donde las palabras que representa la ER
deben satisfacer la descripción del problema, es decir se debe validar que las cadenas
obtenidas de la expresión regular sea las requeridas por el lenguaje; la segunda
característica es la de la completes, la ER propuesta debe representar todas las palabras que
satisfagan la condición, ambas características se enfocan a que las cadenas que produzca la
ER debe satisfacer todas las condiciones del lenguaje que esta representado. (Brena, 2003
Pág. 83)
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. (R•S)•T = R•(S•T)
8. R• (S+T) = R•S+R•T
9. (S+T)•R = S•R+T•R
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
Teoría de la Computación 63
Instituto Tecnológico de Celaya Lenguajes Regulares
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.
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
autómatas finitos y expresiones regulares. Pero, ¿cómo saber si un lenguaje L es regular o
no lo es?, antes de iniciar con la búsqueda de su expresión regular o bien de su autómata
finito; ya que como se sabe la clase de los lenguajes regulares es muy pequeña y por lo
tanto la posibilidad de que un lenguaje cualquiera sea regular es también escasa.
Teoría de la Computación 64
Instituto Tecnológico de Celaya Lenguajes Regulares
La elección de la cadena w, es arbitraria la única condición que debe cumplir es que sea
mayor o igual a n. De la misma manera la elección de cómo dividir esta cadena en los tres
elementos es libre, solo se deben de cumplir con las condiciones de longitud para x y y.
Teoría de la Computación 65
Instituto Tecnológico de Celaya Lenguajes Regulares
RESUMEN
Cada regla que constituye a una gramática es una expresión del tipo α→β, donde α y
β representan cadenas, cuya cardinalidad y orden de elementos definirán el tipo de
gramática.
De manera formal se define a una gramática G, como una 4-tupla G = (N, ∑, S, P);
donde el primero de ellos es el conjunto de todos los símbolos no terminales, su principal
característica es que son escritos siempre con letras mayúsculas; el segundo es el conjunto
de los símbolos terminales o alfabeto del lenguaje, estos símbolos siempre son escritos con
letras minúsculas; el tercero es el conjunto del símbolo inicial de la gramática y el cuarto es
el conjunto de reglas o producciones de dicha gramática. Cada uno de los símbolos que
forman una producción puede ser un elemento terminal y/o no terminales.
Gramáticas regulares. Las reglas de esta gramáticas tienen la forma α→β donde α
pertenece al conjunto de símbolos 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 α.
Teoría de la Computación 66
Instituto Tecnológico de Celaya Lenguajes Regulares
Teoría de la Computación 67
Instituto Tecnológico de Celaya Lenguajes Regulares
define como puede darse cuenta es una máquina abstracta cuya función es el
reconocimiento del lenguaje.
Otra manera de representar estos autómatas es mediante una tabla de transición, este
tipo de tablas son matrices cuyas columnas están formadas por los elementos de entrada o
alfabeto del autómata (∑), y cuyos renglones están constituidos por los estados que forman
el autómata, el estado inicial se marca con una flecha y el estado de aceptación con un
asterisco.
Teoría de la Computación 68
Instituto Tecnológico de Celaya Lenguajes Regulares
cumplen con esta propiedad, ya que en un AFN se pueden encontrar estados con cero, una o
más transiciones cuyo símbolo de entrada sea el mismo, lo cual produce ambigüedad.
Otra manera de expresar los lenguajes regulares de los que se han estado hablando es
mediante la construcción de expresiones regulares. Estas expresiones regulares es
construida con las cadenas de un alfabeto ∑, unidas con la cadena vacía (“ ε ”), la unión
(“+”), a la concatenación (” • ”), a las cerraduras (”*”, “+”), a los paréntesis ( “(“,”)”), y al
lenguaje vacío (”Ø”); y que cumplen con las siguientes características:
1. “ ε ” y ” Ø” Є ER
2. Si σ Є ∑ entonces σ Є ER
3. Si E1, E2 Є ER, entonces “(“E1 “+” E2“)” Є ER, “(“E1“ • ” E2 “)” Є ER, “(“E1
“*” E2 “)” Є ER.
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 = Ø
Teoría de la Computación 69
Instituto Tecnológico de Celaya Lenguajes Regulares
7. (R•S)•T = R•(S•T)
8. R• (S+T) = R•S+R•T
9. (S+T)•R = S•R+T•R
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 autómatas finitos y expresiones regulares. Pero, ¿cómo 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 definición es la siguiente:
Teoría de la Computación 70
Instituto Tecnológico de Celaya Lenguajes Regulares
GLOSARIO
♦ Autómata finito. Máquina abstracta que representa una cantidad finita de estados.
♦ Lenguajes regulares. Son denominados como la clase más pequeño de lenguajes,
y cuentan con las siguientes características:
Teoría de la Computación 71
Instituto Tecnológico de Celaya Lenguajes Regulares
♦ Tabla de transición. Matrices cuyas columnas están formadas por los elementos de
entrada o alfabeto del autómata (∑), y cuyos reglones están constituidos por los
estados que forman el autómata. El estado inicial del autómata en una tabla de este
tipo, es señalado con la flecha, mientras que el estado de aceptación es señalado
con un asterisco.
♦ Equivalencia de AFD. Se dice que dos AFD con equivalentes si los lenguajes que
representa son iguales L (N1) = L (N2).
♦ Autómatas finitos no determinísticos (AFN). Los AFN son autómatas que
contiene estados con cero, una o más transiciones cuyo símbolo de entrada es el
mismo. Un AFN puede definirse formalmente como una colección de cinco
elementos AFD = {Q, ∑, s, F, ∆} donde
Teoría de la Computación 72
Instituto Tecnológico 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 definición 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
Teoría de la Computación 73
Instituto Tecnológico de Celaya Lenguajes Regulares
EJERCICIOS.
a) A → aA b) S → ScS c) Z → yZ
A → bA S → SbS Z → xY
A → bB S→a Y → zY
B → cB Y→z
B → ccB
C→d
d) S → aSb e) S → AA f) S → eB
S → Eb AA → aAA S→e
E → aS AA → ε B → eB
E →ε AA → aB B → fB
B→a B→e
B → bB B→f
B →ε
Teoría de la Computación 74
Instituto Tecnológico de Celaya Lenguajes Regulares
PROBLEMAS
1. Diseñe los autómatas finitos determinístico, 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 más a’s, un número par de b´s, seguidas
nuevamente de cero o más a’s }
2. Defina formalmente los AFD que construyo en la pregunta anterior.
3. Diseñe los autómatas finitos no determinísticos 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)*
Teoría de la Computación 75
Instituto Tecnológico de Celaya Lenguajes Regulares
Q = {q0, q1}
∑ = {a,b}
s = {q0}
F = {q1}
A b
q0 {q0, q1} q1
Teoría de la Computación 76
Instituto Tecnológico de Celaya Lenguajes Regulares
LECTURA COMPLEMENTARIA
Lingüística Computacional
Aunque esta disciplina recibe su nombre hace tan solo 40 años, en los 20 años
anteriores se ha ido configurando a partir de una serie de paradigmas fundacionales como la
teoría de autómatas, la teoría de la información y la teoría de lenguajes formales, así como
de la decepcionante experiencia adquirida en el desarrollo de los primeros sistemas de
traducción automática, primera aplicación no numérica llevada a cabo con los ordenadores
Teoría de la Computación 77
Instituto Tecnológico de Celaya Lenguajes Regulares
y, probablemente, una de las tareas humanas relacionadas con las lenguas más costosas y
difíciles de formalizar.
Teoría de la Computación 78
Instituto Tecnológico de Celaya Lenguajes Regulares
Teoría de la Computación 79
Instituto Tecnológico de Celaya Lenguajes Regulares
BIBLIOGRAFÍA
Teoría de la Computación 80
Instituto Tecnológico de Celaya Lenguajes Regulares
RETROALIMENTACIÓN.
5. Todo lenguaje formal esta definido por una gramática. El lenguaje es un conjunto
infinito y por lo tanto la finites o la infinites del lenguaje dependen de la gramática
que lo gobierne.
1. a.
c.
Teoría de la Computación 81
Instituto Tecnológico de Celaya Lenguajes Regulares
e.
3. a.
c.
e.
Teoría de la Computación 82
Instituto Tecnológico de Celaya Lenguajes Regulares
4. a.
c.
5. a. No es regular
c. Si es regular
e. Si es regular
7.
Teoría de la Computación 83
C
A LENGUAJES
P INDEPENDIENTES
I DEL CONTEXTO
T
U OBJETIVO
O
reconocimiento.
III
Instituto Tecnológico de Celaya Lenguajes Independientes
del Contexto.
Árbol de derivación.
Representan la derivación
de la gramática
Eliminación de factores
Son representadas comunes izquierdos.
Forma Normal de
Gramática Greibach
Libres del
contexto Técnica
Provienen
Transformándola la a
Lenguajes Estandarización
Una gramática GIC
Independientes del puede ser estandarizada
contexto.
Transformándola a la
Técnica
Forma Normal
Eliminación de recursividad Chomsky
izquierda.
Teoría de la Computación 85
Instituto Tecnológico de Celaya Lenguajes Independientes
del Contexto.
3.1 INTRODUCCIÓN
Teoría de la Computación 86
Instituto Tecnológico de Celaya Lenguajes Independientes
del Contexto.
Así, como una empresa requiere de reglas firmes para que su desarrollo sea exitoso; la
creación de los lenguajes formales requiere también de la existencia de reglas gramaticales
que indiquen cual será su constitución. Dichas reglas son llamadas gramáticas.
Una vez que se han definido los tipos de gramáticas se puede considerar que toda
gramática genera un tipo de lenguaje particular, el cual será constituido por todas las
posibles cadenas de variables terminales que sean obtenidas a través de una derivación a
partir de un símbolo inicial. Las gramáticas 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
Sin embargo el lenguaje anterior no tiene establecida un conjunto de reglas que rijan su
construcción, por lo cual es conveniente que le construya n unas, para este fin se usará el
siguiente procedimiento.
S? eB
S? e
B ? eB
B ? fB
Teoría de la Computación 88
Instituto Tecnológico de Celaya Lenguajes Independientes
del Contexto.
B? e
B? f
La prueba de corrección garantiza que todas las palabras que se producen al utilizar la
gramática, efectivamente corresponden a la descripción del lenguaje dado; basándose en la
longitud de la derivación. Mientras que la prueba de la completez se asegura que la
gramática produzca todas las palabras requeridas por el lenguaje. (Brena, 2003, Pág. 125)
Del mismo modo que dice que una GR produce un lenguaje regular (LR), se puede
decir que las gramáticas independientes del contexto (GIL), construyen lenguajes
independientes de contexto (LIC), de los cuales se hablará a continuación.
Como ya se menciono las GIL se caracterizan por que el lado derecho de sus
producciones a? ß no cuentan con alguna restricción en cuanto a los tipos de elementos
que deben fórmala, por lo que una gramática de este tipo puede ser:
S ? aCa
C ? aCa
C? b
Obsérvese que existe más de un símbolo terminal que aparece en la primera y segunda
producción, lo cual indica que la gramática no es de tipo regular. Para obtener las cadenas
Teoría de la Computación 89
Instituto Tecnológico de Celaya Lenguajes Independientes
del Contexto.
del LIC y poder representarlo mediante una formula, se hace uso del concepto de
derivación que ya se ha mencionado en páginas anteriores, obteniendo la siguiente cadena.
S ? aCa
⇒ aaCaa
⇒ aaaCaaa
⇒ aaabaaa
Los árboles de derivación son denominados así ya que con ellos pueden ser
representadas cada una de las acciones de sustitución realizadas sobre una gramática, las
cuales, como ya se dijo son conocidas como derivaciones. Los árboles de derivación son
gráficos que están constituidos por nodos que son unidos entre si por medio de líneas
denominadas aristas; estas uniones construyen ramificaciones que se extienden de acuerdo
al número hijos con los que cuente cada nodo; dichos gráficos no deben de ser
desconocidos para el lector que ya cuenta la experiencia de cursos de programación
avanzada. (Kelley, 1995, Pág.117)
Teoría de la Computación 90
Instituto Tecnológico de Celaya Lenguajes Independientes
del Contexto.
produce, y estos a su vez producirán nuevos nodos hijos, siempre y cua ndo no se llegue a
tener como nodo hijo a un símbolo terminal, ya que en cuyo caso se tendría un nodo hoja.
(Kelley, 1993, Pág. 117) Por ejemplo, considérese la gramática siguiente:
S ? aCa
C ? aCa
C? b
Y la derivación
S ? aCa
⇒ aaCaa
⇒ aaaCaaa
⇒ aaabaaa
Teoría de la Computación 91
Instituto Tecnológico de Celaya Lenguajes Independientes
del Contexto.
Esta gramática a generado un único árbol de derivación y todas las derivaciones que
se generen de esta gramática en busca de la misma cadena producirá el mismo árbol de
derivación; sin embargo existen casos en los que una derivación puede ser realizada de
diferentes maneras, y por lo tanto producen árboles de derivación distintos. Un ejemplo de
este tipo de gramáticas es la siguiente:
S ? ScS
S ? SbS
S? a
Derivación 1 Derivación 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
Teoría de la Computación 92
Instituto Tecnológico de Celaya Lenguajes Independientes
del Contexto.
Como puede observarse, está gramática produce dos árboles de derivación distintos en la
búsqueda de la misma cadena, cuando existen este tipo de casos se dice que la gramática de
la cual se ha derivado es una gramática ambigua (Kelley; 1995, Pág. 119), lo común es,
que se busque una gramática no ambigua que produzca el mismo lenguaje, evitando la
creación de cadenas con significado erróneo; sin embargo puede existir gramáticas cuya
ambigüedad no puede evitarse, en dicho caso se dice que el lenguaje producido es un
lenguaje independiente del contexto inherentemente ambiguo. (Kelley, 1995, Pág. 120)
Teoría de la Computación 93
Instituto Tecnológico de Celaya Lenguajes Independientes
del Contexto.
Para lograr que una gramática se encuentre en forma normal de Chomsky deben de
ser eliminadas las producciones no deseadas mencionadas en el párrafo anterior, para lo
cual se han planteado ya 4 tipos de algoritmos diferentes; que serán mencionados a
continuación.
S? aA
S? e
A? B
A? G
B? bC
C? aD
C? a
D? aA
E? aA
F? ab
Como puede observarse la gramática anterior presenta tres producciones cuya existencia no
tiene gran significado, ya que su derivación 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 símbolo 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 transformarán a una gramática G = (N, ? , S, P) en una gramática final G’= (N’,
? ’, S’, P’). (Kelley, 1995, Pág. 123)
Teoría de la Computación 94
Instituto Tecnológico de Celaya Lenguajes Independientes
del Contexto.
3.4.1.1 Algoritmo A
3.4.1.2 Algoritmo B
Teoría de la Computación 95
Instituto Tecnológico 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 aplicación, 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 gramáticas producidas
no desarrollarán los lenguajes para los cuales originalmente se construyeron. (Kelley, 1995,
Pág. 126)
S? aA
S? e
A? B
B? bC
C? aD
C? a
D? aA
E? aA
F? ab
S? aA
S? e
A? B
B? bC
C? aD
C? a
D? aA
Teoría de la Computación 96
Instituto Tecnológico de Celaya Lenguajes Independientes
del Contexto.
Para que una gramática 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 ambigüedad o bien de
cadenas extremadamente largas (Brena, 2003, Pág. 128). La eliminación completa de este
tipo de producciones puede llevarse a cabo siempre y cuando el conjunto vacío e no
pertenezca al lenguaje independiente del contexto que construya la gramática en cuestión,
sin embargo, en algunos casos la existencia de esta cadena vacía puede ser indispensable
para el lenguaje, por lo cual las producciones S ? e no pueden ser completamente
eliminadas. Tal situación no debe impedir que la gramática en cuestión pueda ser
representada en la forma normal, por ello se permite la eliminación momentánea de dichas
producciones y la transformación de la gramática a una forma normal; una vez
transformada la gramática será agregada la producción S ? e correspondiente. De tal
manera se obtendrá el lenguaje original representado por L(G’) ∪ {e}. (Kelley, 1995,
Pág.128)
Teoría de la Computación 97
Instituto Tecnológico 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
producción e, es decir B ? e.
2. Repetir
Si B ? w para algún w ? (N ∪ ? )* y todos los símbolos de w están en
A, añadir B a A.
(Kelley; 1995, Pág. 127)
Hasta que no se pueda añadir más no terminales a A.
S? aSb
S? E
E? bD
D? e
Como puede observar, dicha gramática esta libre de producciones inútiles, sin
embargo contiene la producción D ? e, la cual es una producción anulable y al aplicar el
algoritmo 3.4.2.1 se observará que es la única producción de éste tipo.
E ? bD
E ⇒ be
Teoría de la Computación 98
Instituto Tecnológico de Celaya Lenguajes Independientes
del Contexto.
S? aSb
S? E
E? bD
E? b
S ? aSb
S? E
E? b
cuya derivación produce cadenas, idénticas a las producidas por la gramática original, por
lo que la transformación ha sido exitosa.
Teoría de la Computación 99
Instituto Tecnológico de Celaya Lenguajes Independientes
del Contexto.
S? aA
S? e
A? B
B? bC
C? aD
C? a
D? aA
S? aA
A? B
B? bC
C? aD
C? a
D? aA
Dentro de una gramática pueden existir producciones del tipo A ? B, las cuales son
denominadas producciones unitarias (Kelley, 1995, Pág. 128) y cuya existencia dentro de
una gramática no tiene gran significado ya que solo agregan un paso más a la derivación;
por ejemplo, observe la gramática del ejemplo anterior.
S? aA
A? B
B? bC
C? aD
C? a
D? aA
La eliminación de una producción 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 aparición de nuevas producciones inútiles por lo cual
será necesario aplicar nuevamente los algoritmos de eliminación mostrados anteriormente.
(Kelley, 1995, Pág. 128)
3.4.3.1 Algoritmo A
3.4.3.2 Algoritmo B
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 gramática anterior
se obtiene la gramática G’
S? aA
A? bC
B? bC
C? aD
C? a
D? aA
En este caso la producción B ? bC se ha convertido en una producción inútil 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
gramática.
S? aA
A? bC
C? aD
C? a
D? aA
La primera sustitución por lo general se realiza con las variables terminales, ya que
pueden tenerse más de una de estas variables en el lado derecho de la producción; así pues
pueden transformarse producciones del tipo A ? sß donde ambos son variables terminales,
por A ? BC, B ? s y C ? ß. (Martin, 2004, Pág. 238)
La segunda sustitución 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, Pág.238) Para una mejor explicación se usará un ejemplo. Observe la
gramática siguiente
S ? aSb
S? b
Dicha gramática a sido limpiada de producciones anulables, inútiles 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
producción S ? aSb puede ser remplaza por tres producciones nuevas, para tal fin se
crearán las variables no terminales Na y Mb que sustituirán las variables terminales a y b,
los cuales serán nuevamente producidos individualmente como sigue:
S ? NaSMb
Na ? a
Mb ? b
S ? b
Ahora, se tiene una producción con más de dos no terminales del lado derecho; nuevamente
esta producción será sustituida por una nueva, como se muestra a continuación.
S ? NaX1 ¦ b
X1 ? SMb
Na ? a
Mb ? b
Una nota interesante sobre la forma normal de Chomsky es que las gramáticas
transformadas a esta forma normal producen árboles de derivación binarios que son más
sencillos de seguir. (Kelley, 1995, Pág.136)
Para poder transformar una gramática a la FNG es conveniente obtener primero dicha
gramática en la FNC, recuerde que dicha forma prohíbe la existencia de producciones
vacías por lo tanto, un lenguaje independiente de contexto puede ser transformado a la
forma normal de Greibach siempre y cuando no sea un lenguaje vacío. (Kelley, 1995,
Pág.165)
Otro aspecto que debe de tenerse en cuenta para que una gramática pueda ser
transformada a la FNG es el orden en que aparecen sus símbolos no terminales. Cada no
terminal en una gramática en FNG es etiquetado con un orden de prioridad (de 0 a n),
donde el símbolo inicial tiene la prioridad más baja; de tal manera que un símbolo no
terminal no puede producir a otro de menor prioridad que él; (Kelley, 1995, Pág.165) tal
como se muestra en el caso siguiente; considérese la gramática
S ? NA
S ? b
A ? SM
N ? a
M ? b
sí se etiquetan los símbolos no terminales de está gramática comenzando del símbolo inicial
(S0 , N1 , A2 , M3 ), se observará que en la tercera producción, el símbolo no terminal A
produce el símbolo inicial S cuya prioridad es menor que A; está producción es invalida
para la FNG, por lo que es necesario transformarla. El método más apropiado para dicha
transformación es la eliminación de factores izquierdos.
Paso de inducción. Las palabras generadas por G’ en n pasos, han de contener los
elementos producidos por las reglas B ? Yn , tal situación indica que al realizar n + 1
pasos las cadenas contendrán todos los símbolos no terminales necesarios para
finalizar la derivación.
4
El uso del símbolo ¦ en una gramática se lee como “ó” lo indica que el símbolo no terminal puede producir
uno u otro conjunto de variables. Es lo mismo escribir B ? Y1 ¦ Y2 que B ? Y1 , B ? Y2 . (Martin, 2004, Pág.
204)
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 situación quedará completamente comprendida con la aplicación
de un ejemplo. Considere las siguientes gramáticas.
S ? aAb S ? aaSbb
S ? bAa S ? abSab
A ? aSb S ? aab
A ? bSa S ? abb
A ? a S ? baSba
A ? b S ? bbSaa
S ? baa
S ? bba
a)
b)
Como puede observar ambas gramáticas generan las mismas cadenas; por lo que su
equivalencia es más que comprobable, G = G’.
S ? ?1 ¦ ?2 ¦ .......¦ ?n
S ? ?1 N¦ ?2 N ¦ ……¦ ?mN
N ? a 1 ¦ a 2 ¦ …….¦ a n
N ? a 1 N ¦ a 2N¦ ……¦ a nN
De esta manera las producciones recursivas por la izquierda serán eliminadas. Para una
mejor comprensión de este concepto se realiza un ejemplo; considere para tal fin, la
siguiente gramática.
S ? aA
A ? AS
A ? bbb
S ? aA
A ? bbb
A ? bbbN
N ? S
N ? SN
S ? SC1 ¦ a ¦ b
C1 ? N aA
A ? MbMb
Na ? a
Mb ? b
Esta gramática 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 producción
recursiva por la derecha. (Kelley, 1995, Pág.167) Se inicia por eliminar la recursividad por
la izquierda, ya que no existen producciones donde un símbolo no terminal produzca a otro
de menor prioridad. Se crea un nuevo no terminal (E) que sustituye las producciones
recursivas.
S ? a¦ b ¦ aE¦ bE
C1 ? N aA
A ? MbMb
Na ? a
Mb ? b
E ? C1 ¦ C1 E
S ? a¦ b¦ aE¦ bE
C1 ? aA
A ? bMb
Na ? a
Mb ? b
E ? aA¦ aAE
Como ya se menciono en el apartado 3.3, una gramática que produce dos árboles de
derivación distintos, en la construcción de una misma palabra es denominada como
gramática ambigua (Kelley, 1995, Pág. 119).
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 más, el alfabeto de la pila y el
símbolo 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.
Otra gran diferencia que salta a la vista son las funciones de transición, 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 través de un símbolo de entrada s y un símbolo 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, Pág. 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 símbolo de entrada
que esta siendo leído, a es el símbolo que será eliminado de la pila y ß es el símbolo que
será insertado en la pila.(Brena, 2003, Pág. 146) Antes de continuar con las definiciones
formales de este tipo de autómatas, se realiza un ejemplo del diagrama de transiciones que
permite la representación de dichos autómatas.
finalmente se extrae el símbolo “#” con lo que se asegura que la pila ha quedado vacía, y la
cadena es aceptada.
En las siguientes páginas se realiza un ejemplo que desarrolla este método. Considere
la gramática G, constituida por las siguientes producciones.
S ? zMNz
M ? aMa
N ? bNb
M ? z
N ? z
El primer pasó a realizar, es la inserción del símbolo inicial S dentro de la pila; la cual
ya debe contener el símbolo inicial del alfabeto de pila, como se muestra en la figura 3.7.
Como puede observarse al introducir los nuevos elementos en la pila, la cima de ésta
es ocupada por un símbolo terminal (z), si éste elemento coincide con el símbolo de la
cadena de entrada es eliminado de la pila, dando lugar a un nuevo símbolo no terminal (N)
en la cima de la pila, por lo que nuevamente es sustituido por los símbolos que produce
(bNb o z), éste procedimiento se lleva a cabo consecutivamente hasta que la pila se
encuentre vacía, como se muestra en la figura 3.9.
S ? a¦ b¦ aE¦ bE
C1 ? aA
A ? bMb
Na ? a
Mb ? b
E ? aA¦ aAE
RESUMEN
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 método de
derivación, el cuál puede ser representado por medio de diagramas denominados árboles de
derivación. Un árbol de derivación es un gráfico constituido por nodos que son unidos entre
si por medio de líneas denominadas aristas, estas uniones construyen ramificaciones que
representan cada una de las producciones de la gramática que son utilizadas en una
derivación. Estos árboles se construyen colocando en el nodo inicial o nodo raíz el símbolo
inicial de la gramática, el cual tendrá como nodos hijos cada uno de los símbolos que
produce, y estos a su vez producirán nuevos nodos.
Cuando una gramática produce dos árboles distintos para la misma derivación se dice
que la gramática de la cual se ha derivado es una gramática ambigua, lo común es que se
busque una gramática no ambigua que produzca el mismo lenguaje, evitando la creación de
cadenas con significado erróneo; sin embargo puede existir gramáticas cuya ambigüedad no
puede evitarse, en dicho caso se dice que el lenguaje producido es un lenguaje
independiente del contexto inherentemente ambiguo.
Para lograr que una gramática se encuentre en forma normal de Chomsky deben de
ser eliminadas las producciones no deseadas mencionadas en el párrafo anterior, para lo
cual se han planteado ya 4 algoritmos diferentes, los algoritmo 3.4.1a y 3.4.2a para le
eliminación de producciones inútiles, el algoritmo 3.4.2a para la eliminación de
producciones anulables, y el algoritmo 3.4.3a para la eliminación de producciones unitarias.
Una vez que se ha eliminado éste tipo de producciones se requiere transformar aquellas
producciones que contengan más de un símbolo terminal o más de dos no terminales de su
lado derecho; para tal fin se requiere de la generación de nuevos no terminales que
sustituyan los símbolos terminales y no terminales excedentes en las producciones. Como
se muestra a continuación; suponga que la gramática mostrada del lado izquierdo es a
gramática original mientras que la del lado derecho es la gramática ya transformada.
S ? aSb S ? NaX1 ¦ b
S? b X1 ? SMb
Na ? a
Mb ? b
Estas dos técnicas son aplicadas una y otra vez hasta transformar la gramática a la
forma deseada. Un aspecto que debe de tener en cuenta para que una gramática pueda ser
transformada a la FNG es el orden en que aparecen sus símbolos no terminales. Cada no
terminal en una gramática en FNG es etiquetado con un orden de prioridad (de 0 a n),
donde el símbolo inicial tiene la prioridad más baja; de tal manera que un símbolo no
terminal no puede producir a otro símbolo no terminal de menor prioridad que él.
Las funciones de transición de una AP son de la forma (q, s, a), (p, ß) donde se indica
que de un estado actual q, a través de un símbolo de entrada s y un símbolo del alfabeto de
la pila a que es sacado de la pila; se llega a un nuevo estado p, insertando ß (símbolo del
alfabeto de pila) dentro de la pila. Sin embargo las funciones de transiciones usadas en el
GLOSARIO
♦ Gramática. Conjunto de reglas que rigen el orden de las palabras en una oración.
♦ Derivación. Sustitución continúa de las reglas gramaticales.
♦ Árbol de derivación. Gráfico constituido por nodos y líneas que los unen entre si,
formando ramificaciones; que representan cada una de las producciones de la
gramática que son utilizadas en una derivación.
♦ Ambigüedad. Termino usado para indicar algo incierto o de doble sentido.
♦ Lenguaje independiente del contexto inherentemente ambiguo. Se le llama así a
aquel LIC cuya gramática contiene ambigüedad permanente.
♦ Prueba de corrección. La prueba de corrección garantiza que todas las palabras que
produce una gramática, efectivamente corresponden a la descripción del lenguaje
basándose en la longitud de la derivación.
♦ Prueba de completez. La completez se asegura que la gramática produzca todas las
palabras requeridas por el lenguaje.
♦ Producciones vacías 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 inútiles. Son aquellas producciones que no tienen ningún significado
dentro de una gramática, ya que no producirá ninguna cadena a partir del símbolo
de inicial.
♦ Autómata de pila (AP). Formalmente un autómata de pila (AP) se define como una
7-tupla, AP = (Q, ? , ?, s, z, F, ?) donde
o Q es una colección finita de estados.
o ? es el alfabeto de entrada.
o Z es el alfabeto de la pila
o s es el estado inicial.
o z es el símbolo inicial de la pila
o F es el conjunto de estados de aceptación
o ? es una función ? : Q x (? ∪ {e}) x ?? Q x Z* , denominada función de
transición.
EJERCICIOS.
2. Mencione los pasos necesarios para transformar una gramática a la forma normal de
Greibach.
3. Mencione los pasos necesarios para transformar una gramática a la forma normal de
Chomsky.
4. Describe el funcionamiento de un autómata de pila.
5. Defina formalmente un autómata de pila.
6. Haciendo uso de los algoritmos de transformación y elimina las producciones e,
producciones y producciones unitarias estandariza las siguientes gramáticas.
a) S? CD b) S ? aSb ¦ bSa ¦ e
C? aC ¦ e C ? aC ¦ e
D? ab ¦ bD ¦ e D ? ab ¦ bD ¦ e
E? fF ¦ c
F? c
c) S? a ¦ aA ¦ B ¦ C d) S? aAb ¦ cEB¦ CE
A? aB ¦ e A? dBE ¦ eeC
B? Aa B? ff ¦ D
C? bCD C? gFB ¦ ae
D? ccc D? h
PROBLEMAS
1. Observe los siguientes AF y construya la gramática que represente a cada uno de ellos.
a.
b.
c.
a) S ? AB b) S ? AcA
A ? aA ¦ e A? aA ¦ e
B ? a ¦ bB ¦ e A? aB
B? aB ¦ bB ¦ e
c) S ? ABA e) A? AcA
A ? aA ¦ e
A? AbA
B ? bB ¦ e
A? a
3. Obtenga una gramática 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 autómata de pila que reconozca cada uno de los siguientes lenguajes.
a) S ? AyB b) S? eF
A? xAy F? G¦ H
A? zB G? eG ¦ H
B? x H? fH ¦ f
B? z
LECTURA COMPLEMENTARIA
Noam Chomsky
BIBLIOGRAFÍA
RETROALIMENTACIÓN.
1. a. S ? aA¦ e
A ? bB
B ? a ¦ aS
c. S ? aE¦ aF ¦ b
E ? bE ¦ b
F ? aF¦ b
4. a.
c.
5. a.
I OBJETIVO
T
U
Conocer el origen, funcionamiento, variantes
y aplicaciones de las Máquina de Turing, así
L
como los lenguajes que reconocen.
IV
Instituto Tecnológico de Celaya Máquinas de Turing
Lenguajes
recursivamente
enumerables
Lenguajes recursivos
Puede transformarse
Reconocedoras
4. MÁQUINA DE TURING
4.1 INTRODUCCIÓN
Turing propuso con su máquina la existencia de una cinta infinita en ambos sentidos
(izquierda y derecha), la cual esta ligada a una cabeza de lectura/escritura que podía
moverse en ambos sentidos sobre la cinta. Además fue adicionado un alfabeto para esta
cinta cuyo elemento esencial es el símbolo 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
drásticos sobre la esencia de las máquinas propuestas por Turing, pero si permiten que su
construcción sea más sencilla.
Una máquina 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 símbolo 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, Pág. 172)
Por ejemplo, considere la máquina de Turing que reconoce el lenguaje definido por L
= {an bn cn ¦ n > 0}.
♦ 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)
Otra manera de construir una MT es haciendo uso de los bloques básicos para la
construcción de máquinas de Turing. Cada uno de éstos bloques representa ya por si solos
una máquina, la unión de estos bloques permiten la construcción de máquinas complejas
capaces de reconocer un lenguaje.
Antes de poder visualizar los bloques básicos de una MT, se debe recordar que la MT
permite realizar dos movimientos sobre una cinta, los cuales son descritos a continuación.
Las máquinas de la figura 4.4 presentan los movimientos básicos de una MT sobre
una cinta; el inciso a), genera un movimiento a la derecha, la lectura de una a y finalmente
a) Rx (Recorre la cinta hacia la derecha hasta b) Lx (Recorre la cinta hacia la izquierda hasta
encontrar una x )
encontrar una x )
[
5
Se dice que un lenguaje es aceptado por una MT sí todas las cadenas de éste son
reconocidas por dicha máquina. 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 máquina de éste tipo, dicho s
lenguajes son los lenguajes recursivos (Kelley, 1995, Pág. 180), o también denominados
lenguajes decidibles, que son aquellos para los que existe una MT que reconozca al
lenguaje.
*
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.
Mientras tanto, todos los problemas que no pueden ser reconocidos por una máquina
de Turing son denomina algoritmos irresolubles.
Lenguajes irresolubles
Lenguajes recursivamente
enumerables
Lenguajes recursivos
Una MT puede ser modificada de diferentes maneras, creando nuevas máquinas que
permiten, al igual que la MT básica, el reconocimiento de lenguajes; sin embargo, dichas
modificaciones suelen presentar métodos más 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 múltiples dimensiones, es decir, cintas
que se extienden hacia la izquierda, derecha, arriba y abajo de manera infinita.
4.5.1 Permanencia
d : Q x ? ? Q x ? x {L, R}
d : Q x ? ? Q x ? x {L, R, S}
permitiendo que la cabeza de lectura/escritura mantenga una posición fija al leer y rescribir
cualquier símbolo sobre la cinta.
4.5.2 Subceldas
? a a
…. b b b ….
c c ?
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).
? a A a b b b ?
* B b b a ….
* a a ? ? ….
4.5.4 Multicintas
d : Q x ? n ? Q x ? n x {L, R}n
4.5.5 MT no deterministas
d (q, s ) ⊆ Q x ? x {L, R}
En sus estudios Hilbert, propuso buscar un algoritmo que pudiera solucionar todos los
problemas matemáticos. La búsqueda de este algoritmo por los matemáticos de aquellos
tiempos resultó ser infructuosa; sin embargo no se llego a probar que fuera imposible su
creación.
Turing encontró que existían máquinas para las cuales no podía comprobarse la
culminación de su ejecución; es decir, no podía asegurarse que dichas máquinas llegarán a
un punto decisorio final.
Esto no quiere decir que en casos individuales no se pueda decidir, sobre alguna
cuestión matemática en particular; o decidir si alguna máquina Turing se detiene o no. Por
ingenio, o incluso simplemente por sentido común, se puede decidir la cuestión en un caso
dado. (Por ejemplo, si una lista de instrucciones en una máquina Turing no contiene la
orden de detenerse, entonces, el sentido común basta para decirnos si se detendrá o no).
Pero no hay ningún algoritmo que funcione para todas las cuestiones matemáticas, ni para
todas las máquinas Turing y todos los números sobre los que pueden actuar.
(http://www.claudiogutierrez.com/bid-fod- uned/Teoria_II.html, Abril 2006)
RESUMEN
Las denominadas Máquinas de Turing (MT) son máquinas abstractas que permiten el
reconocimiento de los lenguajes de tipo 0 (recursivamente enumerables).
Las máquinas 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 símbolo y puede ser leído por una cabeza de lectura/escritura
que recorre la cinta en cualquier sentido (izquierda a derecha ó derecha a izquierda).
Se dice que un lenguaje es aceptado por una MT sí todas las cadenas de éste son
reconocidas por dicha máquina. 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 máquina de esté tipo, dicho lenguajes
son los lenguajes recursivos, o también denominados lenguajes decidibles, que son
aquellos para los que existe una MT que reconozca un al lenguaje.
*
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 máquinas que
permiten, al igual que la MT básica, 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 múltiples dimensiones, es decir, dichas cintas se extienden hacia la
izquierda, derecha, arriba y abajo de manera infinita.
d : Q x ? ? Q x ? x {L, R, S}
d : Q x ? n ? Q x ? n x {L, R}n
GLOSARIO
EJERCICIOS
3. Explique cada una de las variantes que presentan las máquinas de Turing y busque un
ejemplo de cada una de ellas.
4. Mencione cuales son los bloques básicos para la construcción de una MT.
7. ¿Quién fue David Hilbert y cual es el problema que el planteo, dando origen al
planteamiento de la máquina de Turing?
PROBLEMAS
2. Haciendo uso de las variantes de las MT construya una MT que reconozca los lenguajes
mostrados en la pregunta anterior y además que reconozca los mostrados a
continuación.
a. L = {zn am zn am by zn by zn ¦ n = 1, m,y ≥ 0}
b. L = {w ¦ w es una cadena cuyo número de x´s es mayor al número de y´s por las
que esta formada}
a.
LECTURA COMPLEMENTARIA
El matemático inglés Alan Turing fue uno de los pioneros más importantes en el
delineamiento de lo que eventualmente se convertiría en la Teoría de la Computación. El
misterio fue un común denominador a lo largo de la vida de Turing, entre otras cosas, por
su participación en el servicio británico de inteligencia durante la Segunda Guerra Mundial.
El repudio de la sociedad británica debido a su homosexualidad, y su trágico suicidio,
siguen siendo motivo de las más 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 genealógico de una familia que,
aunque no era rica, pertenecía a la clase media alta inglesa. Su padre ingresó al servicio
civil de la India, y durante su estancia en ese país conoció a la que más tarde sería su
esposa: Ethel Sara Stoney. Ethel era la hija del ingeniero en jefe de los ferrocarriles de
Madras, y provenía de una familia Anglo-Irlandesa de un status socio-económico similar al
de Julius.
Asimismo, se dice que tenía una increíble capacidad para realizar cálculos mentales.
Fue en esta época también, en la que empezó a desarrollar una afición hacia el atletismo
que le acompañaría toda su vida. Pese a su mal desempeño en materias no relacionadas con
las ciencias, Turing logró sobrevivir Sherborne, y continuó estudiando matemáticas por su
cuenta. En 1928 se interesó en la teoría de la relatividad, y aunque se dice que sus notas
privadas sobre la materia bien podrían atribuirse a un estudiante de postgrado, casi se le
impidió tomar los exámenes para obtener el certificado de educación media. Fue en esos
días que Turing conoció al joven Christopher Morcom, un estudiante muy brillante que le
sirvió de compañero intelectual durante una época de intensa curiosidad científica, que se
vió abruptamente interrumpida por la prematura muerte de Morcom, el 13 de febrero de
1930. Según la narración del mismo Turing, cuando ambos se dirigían 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 había estado en suficiente contacto con el vanadio como para envenenarse y
causarle la muerte al joven Morcom, quien tan sólo un año antes había 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 científica que Morcom había 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 propósito de develar los secretos de la muerte con ayuda de la
ciencia, Turing comenzó a estudiar física cuántica. En su segundo intento por obtener una
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.
De Europa a América
"Bombas", que se utilizaban para descifrar el código enigma. Aunque el descifrar los
mensajes de la fuerza aérea alemana se volvió cosa rutinaria para la inteligencia británica,
los mensajes de la marina seguían 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 más cuando sus sofisticadas técnicas estadísticas
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 aún más los códigos 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 máquinas descifradoras, la gente de Bletchley Park
comenzó a construir la primera computadora electrónica, llamada Colossus, que estuvo
bajo la supervisión de Turing. Eventualmente, se construirían diez de estas máquinas, y la
primera empezó a operar en diciembre de 1943, dos años antes que el ENIAC (la
computadora digital electrónica construida en la Universidad de Pensilvania, en Estados
Unidos). Aunque el Colossus también usaba un gran número de tubos de vacío e
interruptores digitales, esta máquina (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 invadirían 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 operación le costó a Turing no sólo lesionarse la
espalda, sino también la pérdida de sus ahorros, porque cuando la guerra terminó, no pudo
acordarse de ninguno de los dos sitios donde había enterrado los lingotes de plata.
Otra anécdota 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 después de la oferta, diciéndole a su prometida acerca de su
homosexualidad. De los seis años que Turing pasó trabajando para el servicio de
inteligencia británico, lo que más se lamenta es que un hombre de su talla intelectual no
pudiera seguir publicando más trabajos científicos como los tres que logró publicar antes de
que estallara la guerra.
Por su trabajo en el Colossus, que para él no fue más que la representación física de la
máquina universal que diera a conocer en su artículo de 1937, recibió la Orden del Imperio
Británico en 1946.
Después de la Guerra
En 1944, Turing estaba cautivado con el potenc ial de la computadora que había
concebido teóricamente, y fue contratado por el Laboratorio Nacional de Física (NLP por
sus siglas en inglés) en Inglaterra para competir con el proyecto americano EDVAC, de
John Von Neumann, el cual irónicamente se había adelantado a Turing en la publicación de
la idea de una computadora electrónica. Turing fungió como Oficial Científico Principal en
el NLP, trabajando en el Automatic Computing Engine (ACE). Turing tuvo la visión de una
computadora con memoria que implementaría las funciones aritméticas mediante
programación en vez de con componentes electrónicos, y que podría desempeñar todo tipo
de tareas (por ejemplo, manejo de archivos, álgebra, jugar ajedrez, encriptamiento, etc.)
Hacia 1947, concibió la idea de las redes de cómputo y el concepto de subrutina y
biblioteca de software. Sin embargo, al percatarse que los ingenieros involucrados en su
proyecto no habían producido nada tangible de su máquina en un largo período, comenzó a
sentirse sumamente frustrado. En 1947 Turing pidió un año sabático en el que se fue al
King's College. En vez de publicar los principios fundamentales de cómputo que había
descubierto, se dedicó a estudiar fisiología y neurología, y en un reporte interno del NLP de
esa época, describe las ideas básicas 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 había realizado mayor
progreso en su proyecto, decidió renunciar.
Fue también en esos días 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 maratón de
aficionados de 1947. De hecho, se interesó en prepararse para el equipo británico de
atletismo con vistas a las Olimpíadas de 1948, pero sus planes se vinieron abajo debido a
una lesión en la cadera.
y en otras aplicaciones de matemáticas a la biología, se hizo para él cada vez más molesto
el cerco de aislamiento que le tendió el servicio de inteligencia británica, 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 año fue encontrado
muerto por su ama de llaves. El forense determinó que se había suicidado un día antes, con
una manzana que tenía cianuro, y que fue encontrada al lado de su cama. Su madre creyó
que la ingestión de cianuro pudo haber sido accidental, pues Turing solía realizar varios
experimentos de química en su casa, y se especuló que algo de este veneno pudo habérsele
impregnado en los dedos. Esa hipótesis, sin embargo, se cree poco probable, dado que
Turing tenía una vasta experiencia en la manipulación de sustancias químicas, pero la teoría
del suicidio parece también un tanto extraña. Hay quienes también especulan que se le
mandó a matar porque resultaba una incomodidad para el gobierno británico.
Independientemente de cuál sea la verdad sobre su muerte, lo único que podemos afirmar
es que el mundo perdió a un gran científico, que se encontraba en el punto máximo de su
producción intelectual. En su honor, la ACM (Association for Computing Machinery) llama
"Turing Award" a su premio más importante, el cual se otorga desde 1966 a los expertos
que han realizado las contribuciones más importantes al avance de la computación en el
mundo.
Referencias
[1] Hodges, Andrew. "Alan Turing: The Enigma", Simon and Schuster, New York, 1983.
BIBLIOGRAFÍA
RETROALIMENTACIÓN
1. Una máquina 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 símbolo 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.
d : Q x ? ? Q x ? x {L, R, S}
? 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, ? ).
d : Q x ? n ? Q x ? n x {L, R}n
5. Alan Mathison Turing (1912 - 1954). Nació en Londres (Gran Bretaña), estudio en la
universidad de Cambridge, en donde se graduó de la licenciatura de matemáticas con
honores en 1934. En abril de 1936, publicó el artículo "On computable numbers, with
an application to the Entscheidungsproblem" en el que introduce el concepto de
algoritmo y de máquina de Turing dando respuesta al problema de decisión
planteado por Hilbert en 1900. Estudia también en la universidad de Princeton
(EE.UU). Turign colaboró en la Segunda Guerra Mundial, descifrando los códigos
emitidos por la máquina Enigma utilizada por los alemanes. Y comienza la
construcción de la primera computadora electrónica, llamada Colossus. Otro de los
campos de investigación de Turing fue la inteligencia artificial, se puede decir que
esta disciplina nació a partir del artículo titulado "Computing Machinery and
Inteligence" publicado por Turing en 1950. En 1951, es nombrado miembro de la
Sociedad Real de Londres por sus contribuciones científicas.
1. a.
c.
e.
2. a.
c.
e.
T
U
Definir los lenguajes decidibles, los
problemas que presentan y la relación que
L
tiene la computación con la lógica
V
Instituto Tecnológico de Celaya Decibilidad
Lenguajes
recursivamente
enumerables
Define a Presenta
Decidibilidad
Se relaciona
Decidibilidad de Teorías
Lógicas
5. DECIBILIDAD
5.1 INTRODUCCIÓN
Hoy en día la toma de decisiones permite que un sistema de cómputo mejore nuestra
vida diaria. Estos sistemas creados por el hombre, han sido basados en las denominadas
tablas de verdad, cuyos orígenes se remontan a los años de 281 al 206 A.C. período 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
análisis del “verdadero” y “falso” se extiende a la clasificación 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 características. É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 solución, lo cual ha sido denominado como problema de
Halting. Finalmente, se analiza la relación de la lógica con la computación y se definen
conceptos de teorías lógicas decidibles.
El termino decidible proviene del concepto decisión o decidir; es decir dar solución 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, también conocida
como resolubilidad, es aplicado sobre aquellos problemas para los que existen algún
algoritmo cuyo resultado de computación sea verdadero o falso (si o no).
5
Un sistema formal o un sistema axiomático es un artificio matemático compuesto de símbolos que se unen
entre sí formando cadenas que a su vez pueden ser manipuladas según reglas para producir otras cadenas.
(http://es.wikipedia.org/wiki/Sistema_formal, Abril 2006)
Los lenguajes recursivamnete enumerables o aceptables son aquellos para los que
existe una MT cuya ejecución obtiene un estado de parada para cada cadena que entra en él.
Formalmente se define a un lenguaje aceptable como :
Los lenguajes recursivos pueden verse como aquellos para los cuales existe una
función 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 también
decidibles; de manera formal un lenguaje recursivo se define como:
Por ejemplo, si considere el problema de reconocer palabras cuyo número de b´s sea
el doble que de a´s (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
puede existir; lo que a su vez equivale a decir que el problema que estamos estudiando es
indecible.” Tal proceso es representado gráficamente 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
A Para a B(w) 1
Para a w 1
w B
No para a w 0
No para B(w) 0
C 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
La lógica es considerada como una disciplina y rama de la filosofía que estudia los
principios formales del conocimiento humano (Microsoft, 2003, Lógica). La lógica se basa
en la creación de premisas o proposiciones cuyo estudio lleva a la construcción de
conclusiones validas.
A través de varios siglos la lógica formal ha pasado por varios periodos, desde sus
inicios con los griegos, entre los que sobresalen Platón, Euclides, Arquímedes, Aristóteles,
Leibniz, Crisipo de Soli cuyo planteamiento de las tablas de verdad son fundamentales hoy
en día para la creación de una PC; pasando por los matemáticos británicos George Boole y
Augustus De Morgan, el alemán Gottlob Frege, los matemáticos británicos Bertrand
Russell y Alfred North Whitehead hasta nuestros días con la colaboración de cientos de
personas distinguidas en estos ámbitos de estudio . La evolución de la lógica con la
aportación de todos estos científicos y filósofos llevó cientos de años por lo cual la historia
de la lógica puede dividirse en varios periodos, la lógica tradicional de 500 A. C. a 1847
D.C.; la lógica en edad media de 1847 a 1880; la lógica en edad moderna de 1880 a 1960 y
la lógica en una edad contemporánea a partir de 1960 hasta nuestros días, de la cual surge
la Lógica Computacional que hoy en día fluye y se expande por todo el mundo,
permitiendo a la humanidad construir sistemas tan poderosos y serviciales que seguramente
Platón nunca imagino.
A través de todo este estudio puede concluirse que la lógica ha tenido como objetivo
el de mecanizar tareas en las que interviene la capacidad deductiva. Esto a través del
planteamiento de proposiciones que llevan a una deducción lógica, creando teorías estables.
De la definición anterior se puede deducir que si esta teoría 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 también serán decidibles. De tal
manera que podría utilizarse los términos de teorías lógicas y lenguajes decidibles de
manera indistinta.
El uso lógica provee de grandes beneficios para el hombre en todos los rubros, por
ejemplo, la lógica 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 satélites aeroespaciales. La Lógica Modal, cuyo lenguaje, es una extensión del
lenguaje de la Lógica de Primer Orden, hace posible el estudio formal, simbólico de
conceptos tales como conocimiento (Lógica Epistémica), creencia (Lógica Doxástica),
temporalidad (Lógica Temporal), normatividad (Lógica Deóntica), etc.; cuyos desarrollos
son producto de la así llamada Inteligencia Artificial ó Computacional, cuyo objetivo es la
implementación en una computadora de procesos que emulen o reproduzcan conductas
inteligentes, tales como el aprendizaje, el razonamiento, la adaptación, entre otros. (
http://www.filosoficas.unam.mx/~ morado/LogicaHoy /alvarado .htm, Mayo 2006)
6
Proposición tan clara y evidente que se admite sin necesidad de demostración. Cada uno de los principios
fundamentales e indemostrables sobre los que se construye una teoría.
RESUMEN
Los lenguajes decidibles son clasificados así, si existe una función 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.
La lógica es considerada como una disciplina y rama de la filosofía que estudia los
principios formales del conocimiento humano (Microsoft, 2003, Lógica). La lógica se basa
en la creación de premisas o proposiciones cuyo estudio lleva a la construcción de
conclusiones validas.
GLOSARIO.
EJERCICIOS.
Un L es Turing-aceptable si es Turing-decidible
LECTURA COMPLEMENTARIA
Computación
Los temas de computación son muy populares en esta época. La televisión exhibe
propaganda de los procesadores de computadora “último modelo”. El acceso a Internet se
ofrece hasta en los teléfonos móviles. Pero, a pesar de esta popularidad, casi nadie sabe que
detrás del origen y del desarrollo de la computación hay una precursora anónima: la lógica.
¿Qué es la lógica?
Después de los griegos, otra figura que resalta en la historia de la lógica es Gottlob
Frege (5) (1848 – 1925). A Frege se le considera el fundador de la Lógica Simbólica
Moderna, mejor conocida como Lógica Matemática. La participación de Frege en la
historia de la lógica ha quedado curiosamente marcada por un error que cometió al
proponer (y publicar) un sistema axiomático para la aritmética, que resultó ser
“inconsistente”, es decir, permitía deducir proposiciones falsas. Los errores no son
generalmente bien vistos, nadie quisiera mencionarlos (sobre todo los propios), pero suelen
ser muy importantes, a veces más que los éxitos. Este error de Frege fue señalado por otro
gran personaje, Bertrand Russell (6), y se convirtió en un factor importante en la generación
de un ambiente de duda alrededor de la idea de fundamentar las matemáticas mediante
sistemas axiomáticos. En esta época inicia la corriente del Logicismo, cuya tesis principal
consiste en afirmar que todas las matemáticas son reducibles a la lógica.
construido dicho sistema, Hilbert creía que se podría demostrar la consistencia del mismo;
sin embargo, Kurt Gödel demostró que esto era imposible. Ello significó el fin del
programa de Hilbert, pero también dio inicio a investigaciones más profundas sobre la
naturaleza de las matemáticas, aunque eso es parte de otra historia.
La relevancia de los métodos finitarios es que entre ellos se encuentra uno que
consiste en ejecutar una lista de instrucciones precisas que produzca, independientemente
de quién las ejecute, y después de un tiempo finito, un objeto determinado. El concepto que
se puede abstraer de este método es el de algoritmo. El hecho de que el resultado de la
ejecución de las instrucciones sea independiente del ejecutante significa que éstas pueden
ser ejecutadas por una máquina. Los conceptos de algoritmo y máquina maduraron durante
las primeras décadas del siglo XX y personas destacadas en su concepción fueron Alan M.
Turing (8) y Alonzo Church (9). A Turing se debe el modelo abstracto de máquina más
conocido: la máquina de Turing, y a ambos se debe el enunciado de la “tesis Church-
Turing” (10). Las máquinas de Turing son máquinas abstractas que realizan operaciones
extremadamente simples, como escribir o leer un símbolo sobre una cinta y moverse a la
izquierda o la derecha de la misma. Sorprendentemente, a pesar de su simplicidad, se cree
que las máquinas de Turing son capaces de realizar cualquier cómputo, es decir, la tesis (de
Church-Turing) es que cualquier tarea computable se puede realizar con una máquina 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 matemáticas es imposible
demostrar una afirmación que se refiere a conceptos intuitivos. Lo importante a resaltar es
que toda esta teoría, que formaliza los conceptos de máquina y tarea computable, surgió
antes de que se realizara la primera computadora.
Esta parte de la historia de la lógica culmina, a mediados del siglo XX, con la
consolidación de sus principales disciplinas, entre ellas la Teoría 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 lógica ha sido a un ritmo muy
acelerado.
• Que el problema P versus NP (12) será resuelto, en el marco de la lógica, antes del
2020.
Podemos concluir estas especulaciones sobre el futuro papel de la Lógica con una analogía
que apoyan muchos de sus partidarios: el papel de la Lógica en Ciencias de la Computación
durante el siglo XXI puede ser similar al papel que tuvo el Análisis en Física durante el
siglo XX. Y para finalizar, una frase atribuida a A. Turing: “podemos ver muy poco hacía
adelanté, pero ahí podemos ver mucho por hacer”. (13)
Referencias:
BIBLIOGRAFÍA
RETROALIMENTACIÓN.
c. Los lenguajes decidib les o computables son aquellos para los cuales,
existe una función recursiva que puede ser calculada por una MT
2. Falso
L problemas insolubles.
VI
Instituto Tecnológico de Celaya Reducibilidad
Un problema simple
Reducibilidad de Turing
insoluble
Hace uso
Contiene problemas base
Reducibilidad
Muestra Muestra
6. REDUCIBILIDAD.
6.1 INTRODUCCIÓN
Considere contar con dos problemas de decisión P1 y P2, los cuales se relacionan
con el supuesto de poder reducir P1 a P 2. Sí P2 es soluble se podría decir que P1
también lo es, o bien si P 2 es insoluble P 1 también lo será.
Pueden existir procedimiento que den solución a uno, dos, tres,…..., etc.; casos de
un problema P, pero no para todos los casos de dicho problema, en ésta situación se
puede definir al problema P como un problema insoluble.
existe la solubilidad del problema sobre de una alfabeto ? * se dice que el lenguaje es
recursivo y soluble.
Cada uno de estos problemas puede ser resuelto probándolos contra otro problema
insoluble ya estab lecido, como son el problema de parada o el problema de Auto
aceptación. 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
también soluble ”. Como bien se sabe el problema A es insoluble y por lo tanto B
también es insoluble. (Figura 6.2)
A
No para a A(w) 0
C’
Para a B(w) 1
B(w) B’(w) A’
No para a B(w) 0
Para a A(w) 1
“Problema de parada”
Una función matemáticamente se define como una cantidad numérica cuyo valor
depende o se encuentra en función de otra variable, dentro de la computabilidad, una
función puede definirse como todo programa que obtiene una cadena de salida a partir
de una cadena de entrada. Tal definición puede ser trasladada a una MT, donde para
cada entrada de ? , puede computar una función cuyo dominio es un subconjunto de ? * .
(Martin, 2004, Pág. 328) Las máquinas construidas en la última unidad solo indican la
llegada a un estado de aceptación para aquellas cadenas que son reconocidas por la
máquina , sin prove er de una opción para las cadenas que no son reconocidas por dichas
máquinas. Una máquina de Turing que compute una función debe de proveer de un
resultado válido para cualquier cadena que pase por ella, sea aceptada o no aceptada,
por el autómata ; de tal manera que pueda decirse que para cada cadena de entrada que
recibe, existe una cadena de salida.
Una función puede ser considerada como computable 7 sí sus datos fuente son
tuplas de enteros no negativos. Las funciones pueden ser clasificadas jerárquicamente
en 4 grupos, funciones iniciales, funciones recursivas primitivas, funciones µ-recursivas
(o de Ackermann) y las funciones primitivas parciales. (Figura 6.3)
Las funciones recursivas primitivas son todas aquellas funciones que pueden
construirse a partir de funciones iniciales aplicando tres técnicas diferentes, las
combinaciones, las composiciones y las recursividades primitivas. (Glenn, 1993, Pág.
7
Son llanadas así a todas aquellas funciones que pueden se calculadas por medio de algoritmo s (Glenn,
1993, Pág. 204)
Teoría de la Computación 199
Instituto Tecnológico de Celaya Reducibilidad
F. I. F. R. P. F. A F. R. PA. F.
Funciones iniciales
Funciones recursivas primitivas
Funciones µ-recursivas (Ackermann)
Funciones recursivas parciales
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, Pág. 217)
8
Una función total de X es una función parcial de X cuyo dominio es todo el conjunto X.( Glenn, 1993,
Pág. 205)
9
Para obtener mayor explicación acerca de éstas técnicas favor de consultar el libro: Teoría de la
computación, lenguajes formales, autómatas y complejidad. Autor: J. Glenn Brookshear. Editorial:
Addison-Wesley
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 también como lenguajes
recursivos. Se dice que un lenguaje L es recursivo, si existe una MT T que reconozca a
L. (Martin, 2004, Pág. 365) Y podría usted preguntarse ¿Cómo comprobar que dicho
lenguaje es recursivo? Bien la respuesta a esta cuestión hace énfasis a la enumeración 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 lógicas se logra probar el estado de algún
objeto, de tal manera que podría 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 comprobación se le conoce como reducibilidad de Turing. Tal concepto es
planteado de manera formal en la siguiente definición.
x ? L1 si y solo si f ( x) ∈ L2
Tal definición persiste en que para que un lenguaje pueda ser reducible a otro debe
existir un elementos x que pertenezca a L y cuya función pertenezca también a un
segundo lenguaje. De tal manera que si se tiene una MT M que tiene como entrada x y
calcula la función f(x) donde x pertenece a L1 se dice que L(M) = L1 y por lo tanto L1 es
Turing-reducible en L2.
RESUMEN
Considere contar con dos problemas de decisión P1 y P2, los cuales se relacionan
con el supuesto de poder reducir P1 a P2 . Sí P2 es soluble se podría decir que P1
también lo es, o bien si P2 es insoluble P1 también lo será.
Una función matemáticamente se define como una cantidad numérica cuyo valor
depende o se encuentra en función de otra variable, dentro de la computabilidad, una
función puede definirse como todo programa que obtiene una cadena de salida a partir
de una cadena de entrada. Una máquina de Turing que compute una función debe de
proveer de un resultado valido para cualquier cadena que pase por ella, sea aceptada o
no aceptada, por el autómata; de tal manera que pueda decirse que para cada cadena de
entrada que recibe, existe una cadena de salida. Así podría definirse una MT M y una
función parcial (subconjunto) F en ? * con valores en ? * (alfabeto de la cinta) f = ? * ?
? *. Una máquina se considera como reconocedora de una función 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.
x ? L1 si y solo si f ( x) ∈ L2
GLOSARIO
10
Una función total de X es una función parcial de X cuyo dominio es todo el conjunto X.( Glenn, 1993,
Pág. 205)
Teoría de la Computación 204
Instituto Tecnológico de Celaya Reducibilidad
EJERCICIOS
LECTURA COMPLEMENTARIA
Turing, gran matemático inglé s planteo la famosa Máquina de Turing, que ha sido
considerada como el sistema más potente en el reconocimiento de lenguajes. Tales
máquinas cuentan con diversas modificaciones una de ellas es la Máquina de Turing
Universal (MTU).
La MTU no es solo una máquina con uso específico, como las que se han mostrado a
lo largo de éste texto; la MTU es un algoritmo capaz de realizar cualquier cálculo. Dichas
máquina tiene como valores de entrada las cadenas obtenidas por otra máquina de uso
específico, la MTU procesa estas cadenas y obtiene un resultado. Es decir la MTU permite
ejecutar cualquier otra máquina de Turing cuyo uso sea específico. Tal característica
permite citar el siguiente concepto.
Cualquier cálculo que se pueda realizar de forma mecá nica puede ser procesado
por una Máquina de Turing.
Los actuales computadores son casi máquinas universales de Turing; sólo les falta
tener memoria ilimitada para serlo del todo. El primer computador (o "cerebro
electrónico", como entonces se decía) universal (no diseñado para una tarea específica)
fue el ENIAC, que hizo su primera demostración pública en Philadelphia en 1946.
BIBLIOGRAFÍA
RETROALIMENTACIÓN
L2 ), si existe una función computable con MT f : ∑*1 → ∑*2 tal que, para cada x
? ∑1* , se tiene:
x ? L1 si y solo si f ( x) ∈ L2
TEMARIO OFICIAL
5.- TEMARIO
Instituto Tecnológico de Celaya Anexo I
• Evaluación teórica
• Elaboración de ejercicios
• Prácticas de laboratorio para modelar a través de lenguajes
computacionales
• Prácticas en laboratorio de electrónica para la programación de PLC’s o
utilizar un simulador
• Visitas a laboratorios de Ingeniería Industrial para conocer el
funcionamiento de un CIM o a través de un simulador
• Trabajos de investigación (artículos, libros, Internet, etc.)
• Elaboración de ensayos y artículos sobre Teoría de la Computación
Instituto Tecnológico de Celaya Anexo I
Teoría de la Computación
Instituto Tecnológico de Celaya
CONCLUSIONES
Por otra parte, la elaboración 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. Además de poder desarrollar método de
redacción y estructuración de contenido de una manera más amplia y formal.
Finalmente, se concluye este trabajo con una gran satisfacción; 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 compañía de un monitor, no suele ser tal agradable como la de otro ser humano.
Teoría de la Computación