Académique Documents
Professionnel Documents
Culture Documents
de Celaya.
TEORA DE LA COMPUTACIN
LIBRO DE TEXTO
PRESENTA:
ADRIANA ACEVEDO JUREZ
DEDICATORIAS
A DIOS
Nuestro creador, por permitirme ver la luz de cada nuevo da, por ser la base de
mi fe, por ser mi amigo incondicional en toda ocasin de alegra o tristeza y el pilar de
mi existencia.
A MI MADRE
Quien me sustento, cuido, alent y motivo en todo momento. Gracias mam, por
el gran cario con el que me formaste, todos los principios que me inculcaste y sobre
todo el AMOR con el que me cubriste en todo instante de mi vida.
A MI PADRE
Por haberme hecho fuerte, por alentarme y empujarme a enfrentar la vida
apoyndome moral y espiritualmente.
A MIS HERMANAS Y MI CUADO
A mis hermanas, por ser mis compaeras de juegos y mis cmplices de
travesuras, por que su compaa es uno de los mejores regalos que me ha brindado la
vida.
A mi cuado, por la amistad y el apoyo que me ha brindado en el transcurso y
culminacin de mis estudios.
A JAIME
Por el cario brindado, por esas largas horas de compaa, por su apoyo en todo
el transcurso de mi carrera. Gracias por todo tu AMOR.
A MIS AMIGOS
Por su apoyo y compaerismo, por esos momentos de alegras y esos momentos
de trabajo. Por los logros obtenidos en el grupo, por mostrarme que la vida tambin
requiere de tiempo para uno mismo, y no solo de trabajo.
A MIS MAESTROS
Por ser parte de mi formacin profesional y humana. En especial a mi asesora
M. C. Maria de Jess Hernndez Morales por el apoyo brindado en la realizacin de
este trabajo.
as que presta atencin a las cosas que son cruciales para tu felicidad. Juega con tus
hijos, tomate tiempo para asistir al doctor, ve con tu pareja a cenar, practica tu deporte
favorito o aficin favorita. Siempre habr tiempo para limpiar la casa y reparar la
llave del agua... ocpate de las pelotas de golf primero, es decir de las cosas que real
mente
importan...
establece
tus
prioridades,
el
resto
es
sola
arena".
DEDICATORIAS
A DIOS
Nuestro creador, por permitirme ver la luz de cada nuevo da, por ser la base de
mi fe, por ser mi amigo incondicional en toda ocasin de alegra o tristeza y el pilar de
mi existencia.
A MI MADRE
Quien me sustento, cuido, alent y motivo en todo momento. Gracias mam, por
el gran cario con el que me formaste, todos los principios que me inculcaste y sobre
todo el AMOR con el que me cubriste en todo instante de mi vida.
A MI PADRE
Por haberme hecho fuerte, por alentarme y empujarme a enfrentar la vida
apoyndome moral y espiritualmente.
A MIS HERMANAS Y MI CUADO
A mis hermanas, por ser mis compaeras de juegos y mis cmplices de
travesuras, por que su compaa es uno de los mejores regalos que me ha brindado la
vida.
A mi cuado, por la amistad y el apoyo que me ha brindado en el transcurso y
culminacin de mis estudios.
A JAIME
Por el cario brindado, por esas largas horas de compaa, por su apoyo en todo
el transcurso de mi carrera. Gracias por todo tu AMOR.
A MIS AMIGOS
Por su apoyo y compaerismo, por esos momentos de alegras y esos momentos
de trabajo. Por los logros obtenidos en el grupo, por mostrarme que la vida tambin
requiere de tiempo para uno mismo, y no solo de trabajo.
A MIS MAESTROS
Por ser parte de mi formacin profesional y humana. En especial a mi asesora
M. C. Maria de Jess Hernndez Morales por el apoyo brindado en la realizacin de
este trabajo.
hijos, tomate tiempo para asistir al doctor, ve con tu pareja a cenar, practica tu deporte
favorito o aficin favorita. Siempre habr tiempo para limpiar la casa y reparar la
llave del agua... ocpate de las pelotas de golf primero, es decir de las cosas que real
mente
importan...
establece
tus
prioridades,
el
resto
es
sola
arena".
ANTECEDENTES
Cada ser humano pasa por varios periodos o etapas en su vida, cada una de ellas con
un grado de prioridad y de importancia; una de stas es la etapa estudiantil y en algunos
casos, sta se termina al culminar sus estudios universitarios y obtener un ttulo de acuerdo
a la carrera que se haya elegido.
En el transcurso estudiantil el alumno se enfrenta a varias adversidades; como la
falta de material didctico que le ayude a investigar y reafirmar los conocimientos
obtenidos en cada materia. Uno de estos casos es el de la materia Teora de la
Computacin; cuya falta de textos didcticos completos, que guen al alumno en su
transcurso por sta, pueden afectar su rendimiento. Tal situacin, es una de las causas por
las cuales se desea desarrollar un texto didctico que oriente al estudiante en el desarrollo
de esta materia.
Por otra parte, otro propsito por lo cual se desea llevar a cabo este proyecto es el de
concluir con los estudios acadmicos para obtener el grado de Ingeniero en Sistemas
Computacionales.
Teora de la Computacin
OBJETIVO GENERAL
Desarrollar un texto didctico de tipo terico-prctico que ayude al estudiante a
comprender la base para la construccin de sistemas formales que se imparten en la materia
Teora de la Computacin.
OBJETIVOS ESPECFICOS
Fortalecer el aprendizaje del alumno al contar con un texto didctico de apoyo,
enfocado totalmente a la materia que se cursa.
Integrar el mejor material de texto que exista actualmente en las diferentes fuentes
bibliogrficas de la materia, en un material accesible para el estudiante.
Desarrollar un texto didctico de fcil comprensin para el estudiante.
Desarrollar un texto didctico cuya ndole llame la atencin del estudiante
aumentando su inters por la materia.
Desarrollar ejercicios prcticos que ayuden al estudiante a fortalecer la teora
plateada en esta materia.
Teora de la Computacin
II
JUSTIFICACIN
Teora de la Computacin
III
NDICE
Antecedentes
Objetivo General
Objetivos Especficos
Justificacin
Introduccin general
I
II
II
III
VIII
UNIDAD 1. INTRODUCCIN
Objetivo
Diagrama temtico de la unidad
1. Introduccin
1
2
3
1.1 Introduccin
4
4
1.2.1
Conjuntos
1.2.2
Funciones y relaciones
11
1.2.3
Cadenas y lenguajes
18
25
27
28
32
36
37
39
41
42
44
45
46
46
2.1 Introduccin
Teora de la Computacin
IV
47
Jerarqua de Chomsky
48
2.2.2
53
2.2.3
56
62
64
Resumen
Glosario
Ejercicios
Problemas
Lectura complementara
Bibliografa
Retroalimentacin
66
71
74
75
77
80
81
84
85
86
3.1 Introduccin.
86
87
3.2.1
87
Construccin de gramticas
90
93
3.4.1
94
3.4.2
97
3.4.3
100
104
106
108
111
111
3.9.1
114
Teora de la Computacin
Resumen
Glosario
Ejercicios
Problemas
Lectura complementara
Bibliografa
Retroalimentacin
118
124
125
126
128
130
131
134
135
136
4.1 Introduccin.
136
137
4.2.1
138
140
141
Bloques bsicos
144
145
4.5.1
Permanencia
145
4.5.2
Subceldas
146
4.5.3
Cinta finita
146
4.5.4
Multicitas
147
4.5.5
MT no determinstica
148
149
Teora de la Computacin
151
155
156
157
158
166
167
VI
UNIDAD 5. DECIDIBILIDAD
Objetivo
Diagrama temtico de la unidad
5. DECIBILIDAD
172
173
174
5.1 Introduccin.
174
175
177
179
Resumen
Glosario
Ejercicios
Lectura complementara
Bibliografa
Retroalimentacin
181
183
184
185
191
192
UNIDAD 6. REDUCIBILIDAD
Objetivo
Diagrama temtico de la unidad
6. REDUCIBILIDAD.
193
194
195
6.1 Introduccin
195
196
197
199
201
Resumen
Glosario
Ejercicios
Lectura complementara
Bibliografa
Retroalimentacin
202
204
205
206
207
208
Anexos
Conclusiones
Teora de la Computacin
VII
INTRODUCCIN GENERAL
El presente libro de texto pretende ser un instrumento de apoyo para todo alumno o
docente que desea adentrarse en el mundo de la computacin as como en los principios
cientficos que han llevado al hombre a uno de sus ms grandes triunfos, la invencin de la
computadora.
El lector encontrar en la primera unidad de este libro, algunos de los principios
matemticos bsicos para el estudio terico de la computacin, iniciando con las teoras de
conjuntos, relaciones, funciones, complementos, etc. Adems de presentar una introduccin
a la computabilidad, que es definida como la factibilidad de resolver un problema por
medio de algoritmos, y al anlisis de la complejidad que a su vez se define como el estudio
de la cantidad de recursos que se consumen en la ejecucin de un sistema.
En la segunda unidad, el lector se introduce al anlisis de los lenguajes formales,
llamados as, debido a que las reglas por los cuales son regidos han sido creadas antes de
construir dichos lenguajes; el lenguaje natural que usa el hombre para comunicarse carece
de esta condicin, lo que lo hace muy extenso y complicado. Los lenguajes formales suelen
dividirse en cuatro grupos: los lenguajes regulares, los independientes del contexto, los
dependientes del contexto y los de frase estructurada o tambin llamados recursivamente
enumerables. Cada uno cumple con diferentes caractersticas sobre las reglas gramaticales
que los construyen, dichas reglas han sido establecidas por varios estudiosos de la materia
de los cuales resalta el lingista Noam Chomsky.
Noam, menciona que cada uno de estos lenguajes es un subconjunto de otro, de los
cuales el ms pequeo es el conjunto de los lenguajes regulares. sta clase de lenguajes son
reconocidos nicamente por un tipo nico de mquina abstracta, o dicho de otra manera,
por un algoritmo computacional. Los autmatas finitos son mquinas abstractas
constituidas por un nmero finito de estados, un conjunto de transiciones, un alfabeto, entre
Teora de la Computacin
VIII
otros; que permiten reconocer cada una de las cadenas por las que esta formado un lenguaje
regular; y las cuales se habla en la segunda unidad.
La tercera unidad es dedicada a los lenguajes independientes del contexto, as como a
las reglas gramaticales de las que proceden. Para finalmente hablar de las mquinas
abstractas que los reconocen y que son conocidas como autmatas de pila, cuyo poder de
reconocimiento rebasa el de los autmatas finitos; permitindole reconocer un conjunto
ms amplio de lenguajes. Sin embargo, an existe una mquina ms poderosa denominada
mquina de Turing; la cual es estudiada a fondo en la cuarta unidad.
Las mquinas de Turing, fueron construidas con base en la generacin de un
problema planteado por el matemtico David Hilbert, el cual propuso la siguiente pregunta:
Podr ser creado algn algoritmo que pueda resolver todos los problemas matemticos?
tal cuestin dejo un hueco de duda entre los matemticos colegas de Hilbert, los cuales no
pudieron darle una contestacin a sta interrogante; sin embargo aos ms tarde Alan
Turing tomo este problema llevndole a desarrollar lo que hoy se conoce como uno de los
sistemas de reconocimiento ms poderosos, las ya mencionadas mquinas de Turing.
Finalmente las unidades cinco y seis, involucran al lector en el anlisis de los
problemas decidibles, es decir en aquellos problemas para los cuales siempre habr una
solucin, ya sea a favor o en contra; y en el estudio de las inferencias lgicas con la
reducibilidad, que es dedicada a comprobar el estado de un problema en base al estado
actual de otro.
Teora de la Computacin
IX
C
A
P
I
T
U
L
O
INTRODUCCIN
OBJETIVO
entre
otros;
que
son
Introduccin
Induccin
matemtica.
Teora de la
computabilidad
Incluyen
Estudia
Introduccin a la
Teora de la
Computacin
Requiere
Estudia
Conceptos
matemticos bsicos
Incluyen
Teora de la
complejidad
Teora de
conjuntos
Teora de la Computacin
Introduccin
1. INTRODUCCIN
1.1 INTRODUCCIN
Teora de la Computacin
Introduccin
1.2.1 Conjuntos
El trmino conjunto puede ser definido como una coleccin de objetos (Kelley, 1995,
Pg. 2], por ejemplo: el conjunto mujeres, el conjunto monedas, el conjunto canicas o bien
el conjunto personas. A cada objeto que forma estos conjuntos es llamado elemento o
miembro del conjunto (Kelley, 1995, Pg. 2). Si un grupo de mujeres es un conjunto y
Laura es un elemento de este conjunto, se dice, que Laura pertenece al conjunto Mujeres, y
la notacin a usar para la representacin de esta sentencia es Laura Mujeres, de la
misma manera se dice que una centavo pertenece al conjunto monedas, tal aseveracin
podra ser representada, de manera resumida como c M donde el smbolo , mostrado
tambin en la sentencia anterior, se lee como pertenece a En caso de que Laura no fuera
un elemento del conjunto Mujeres se escribira Laura Mujeres, donde el smbolo
niega la existencia del elemento Laura en el conjunto Mujeres y se lee como no pertenece.
(Kelley, 1995, Pg. 6).
Ahora si un conjunto N contiene varios elementos (a, e, i, o, u), se puede representar
haciendo uso de corchetes, de la siguiente manera N = { a, e, i, o, u }(Kelley, 1995, Pg.6);
Teora de la Computacin
Introduccin
donde los corchetes forman parte esencial de esta notacin encerrando en ellos los
elementos que pertenecen a el conjunto N; ste conjunto tambin puede ser representando
de la siguiente manera N = {v:v es una vocal}, donde N equivale al conjunto de toda v tal
que v es una vocal, es decir, si v es una vocal, el conjunto de todas las vocales es igual a N;
o bien, N = {vv es una vocal} donde la notacin v se leera como el conjunto de todas
las v tales que v es una vocal (Kelley, 1995, Pg. 2). Otro ejemplo de esta notacin podra
ser el conjunto de enteros entre 0 y 9.
B = {1, 2, 3, 4, 5, 6, 7, 8}
B = {xx C y x > 0, x < 9} B = {x C x > 0 y x < 9}
Dentro de los conjuntos existe el denominado conjunto vaco o conjunto nulo siendo
ste el conjunto ausente de elemento el cual es representado por los corchetes vacos {}, o
bien por el smbolo (Kelley, 1995, Pg. 2).
Los conjuntos se clasifican en funcin de su cardinalidad en dos tipos; los conjuntos
finitos y los infinitos; los primeros estn caracterizados por el cumplimiento de dos reglas;
la primera menciona que s A es un conjunto, debe de ser igual al conjunto vaco , en
cuyo caso su cardinalidad es 0, llamamos cardinalidad a el nmero de elementos que
conforman un conjunto y es denotado por dos lneas verticales paralelas que encierran al
conjunto A. La segunda regla dice que A debe de tener una cardinalidad conocida X;
por lo tanto, para que un conjunto se pueda decir finito debe de estar constituido por un
nmero determinado de elemento de 0 a X. Un conjunto infinito es aquel cuya cardinalidad
no es conocida. (Kelley, 1995, Pg. 23)
Hasta ahora se ha hablado de conjuntos pequeos en los cuales su representacin ha
sido sencilla, pero existen conjuntos en los que no se pueden listar todos sus elementos,
para estos ltimos se acostumbra listar los primeros elementos del conjunto seguidos de
puntos suspensivos, por ejemplo, N = {0, 1, 2, 3...} donde se representara el conjunto de
todos los valores enteros positivos. En un conjunto, el orden en que aparecen sus elementos
Teora de la Computacin
Introduccin
no es de gran inters, es decir el orden de los factores no altera el producto, como lo indica
la ley conmutativa de la multiplicacin; por lo tanto un conjunto solo se caracteriza por sus
elementos y no por el orden en que se encuentren enlistados. As pues el conjunto A ={a, b,
c, d, e} es igual al conjunto B ={c, e, b, a, d} (Figura 1.2), o el conjunto C ={0,1,2,3} es
igual al conjunto D ={3,1,0,2}.
b
c
c
d
e
b
a
d
Conjunto A
Conjunto B
Teora de la Computacin
Introduccin
Entre los elementos del conjunto A se encuentra el conjunto vaco, ya que ste forma
parte de todos los conjuntos (Kelley, 1995, Pg. 7); por lo tanto, el conjunto vaco es un
subconjunto del conjunto A, A; y por ende tambin es un subconjunto de B, B.
0
Conjunto A
5
4
1 2
3
Conjunto B
6
Teora de la Computacin
Introduccin
a
c
e
b
f
g
Conjunto A
Conjunto B
a
e
c
b
f
g
Conjunto A B
a b c
e f g
h i
i j k
d e f
a b
Conjunto A
c d
e
f
e
g
h i
j k
Conjunto B
Conjunto A B
Figura 1.5. Interseccin
Teora de la Computacin
Introduccin
a b c
e f g
h i
i j k
d e f
g
Conjunto A
h
i
Conjunto B
Conjunto B - A
de el conjunto universal con respecto de A, estara dado por todas las consonantes del
alfabeto espaol; podramos decir que negamos el conjunto, todo lo que no forme parte de
Teora de la Computacin
Introduccin
A. Sin embargo se debe hacer notar que el conjunto nulo o vaco no forma parte de este
conjunto universal, por lo cual 0 = U. (Kelley, 1995, Pg. 9)
Ya se ha hablado de las operaciones bsicas de la teora de conjuntos, sin embargo
existen algunas otras que vale la pena mencionar, como el producto cartesiano de conjuntos
y el conjunto potencia, los cuales sern citados a continuacin.
Producto Cartesiano *. El producto cartesiano de dos conjuntos esta dado por el
conjunto de todos los pares ordenados de los elementos de cada conjunto. Si el
conjunto A esta formado por los elementos {a, b, c} y el conjunto B por los elementos
{e, f}, el producto cartesiano de A * B es {(a, e),(b, e),(c, e),(a, f),(b, f),(c, f)}, note el
orden en que aparecen los pares de elementos, primero son listados todos los
elementos del conjunto A, seguidos de los elementos del conjunto B; como puede
observarse el orden de los elementos es de gran importancia ya que el producto
cartesiano de A * B no es igual al producto cartesiano de B* A. (Brena, 2003, Pg. 6)
El total de elementos en un producto cartesiano sta determinado por el total de
elementos de A por el total de elementos de B.
Conjunto potencia 2v. Este conjunto esta constituido por todas las posibles
combinaciones de los elemento de l conjunto en cuestin, para ser ms claros,
supngase que A es un conjunto formado por los elementos {a, b, c}, donde el
conjunto potencia de A estara dado por {, {a}, {b}, {c}, {a, b},{a, c},{b, c},{a, b,
c}}, note que el elemento vaco o nulo tambin forma parte de este conjunto potencia.
Podr decirse que el conjunto potencia es igual a todos los subconjuntos del conjunto
en cuestin. El total de elementos del conjunto potencia es igual 2n donde n es la
cantidad de elementos que componen el conjunto original. (Brena; 2003, Pg. 6)
Teora de la Computacin
10
Introduccin
Teora de la Computacin
11
Introduccin
Estas relaciones tambin pueden ser obtenidas del producto cartesiano de un solo y
nico conjunto, por ejemplo el conjunto A = {a, b, c}, cuyo producto cartesiano estara
determinado por A*A, y cuyos subconjuntos formara una relacin; a ste tipo de relacin
se le llama relacin sobre A. (Kelley, 1995, Pg. 12)
Las relaciones cuentan con cuatro propiedades que las caracterizan como un tipo
particular de relacin, estas propiedades son mencionadas a continuacin.
La primera de ellas es la propiedad reflexiva la que seala, que una relacin R es
reflexiva si para todo (x, x) R, x X, (Brena, 2003, Pg. 8) por ejemplo, si X es el
conjunto formado por:
x = {1, 2, 3, 4}
Teora de la Computacin
12
Introduccin
donde para cada (x, y) existe un par (y, x), por lo que esta relacin se dice simtrica ya que
existe una adecuada proporcin de las partes que forman los pares de elementos.
Ahora que si la relacin presenta la siguiente estructura
R = {(1,1), (1,2), (1,3), (3,1), (3,3), (4 ,4), (1,4)}
No seria una relacin simtrica, ya que los pares (2,1) y (4,1) R
Obsrvese el grafo de la figura 1.8, donde existen las aristas que van de x a y y de y a
x lo que indica la simetra de la relacin.
Teora de la Computacin
13
Introduccin
El cuarto tipo de relaciones que se resaltarn son las relaciones transitivas donde se
menciona que para cada (x, y), (y, z) R debe existir un par (x, z) R (Kelley, 1995, Pg.
14), por ejemplo:
Teora de la Computacin
14
Introduccin
R = {(1,1), (1,2), (1,4), (2,2), (2,1), (2,4), (3,1), (3, 4), (3, 2)}
Donde la relacin es una relacin transitiva, esta propiedad podra distinguirse como la
transferencia de un elemento de un grupo de elementos a otro. Observe el grafo de la figura
1.10, que muestra la transitividad de la relacin anterior.
Cuando una relacin es transitiva, reflexiva y simtrica se dice que la relacin es una
relacin de equivalencia o de orden parcial. (Brena, 1995, Pg. 14)
Finalmente y antes de hablar de las funciones se menciona la inversa de una relacin
representada por R-1, la cual no es otra cosa que el cambio de orden en el que aparecen los
elementos de una relacin, por ejemplo:
Teora de la Computacin
15
Introduccin
(Kelley, 1995, Pg. 15) donde la dependencia se muestra entre los elementos de los
conjuntos relacionados (A y B), ya que un elemento del conjunto A solo puede relacionarse
con un elemento del conjunto B. Es decir, cada x A puede relacionarse con un elemento y
B, (x, y) donde ambos pertenecen a la relacin que se denomina como funcin. Las
funciones se representan con la notacin f: A B estableciendo una relacin f que va de A
a B; mientras que los elementos relacionados se representan por f(x) = y. (Kelley, 1995,
Pg. 15) (Figura 1.11).
f: A B
d
f
g
b
c
Conjunto A
e
h
Conjunto B
Ntese que todo el dominio de la funcin es igual al conjunto A, es decir todos los
elementos que forman el conjunto estn presentes en la relacin, mientras que solo unos
cuantos elementos del conjunto B se encuentran presentes en la funcin, a estos ltimos se
les denomina contradominio, rango o bien intervalo de la funcin. Las funciones pueden ser
de tres tipos: sobreyectivas, inyectivas y biyectivas.
Las funciones sobreyectivas son aquellas cuyo contradominio es igual al conjunto del
que procede (Johnsonbaugh, 2005, Pg.94), es decir, si el conjunto A esta formado por {a,
b, c} y el conjunto B por {e, f}, y la funcin de A a B esta determinada por f = {(a, e), (b, f),
(c, f)}, tenemos que el contradominio de esta funcin contiene todos los elementos que
pertenecen al conjunto B; como se muestra en la figura 1.12.
Teora de la Computacin
16
Introduccin
f: A B
e
b
Dominio
Conjunto A
Contradominio
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, Pg. 10), por ejemplo la funcin f = {(a, e), (c, f)} es una
funcin inyectiva ya que a cada elemento del dominio le corresponde un nico elemento del
contradominio. (Figura 1.13).
f: A B
e
c
Conjunto A
Conjunto B
S una funcin cumple con las dos caractersticas mencionadas anteriormente, a esta
funcin se le denomina como una funcin biyectiva (Brena, 1995, Pg. 16), por ejemplo,
considere que tenemos los conjuntos C = {0, 1, 2,3} y D = {I, II, III, IV} de los cuales se
deriva la funcin f = {(0, I), (1, II), (2, IV), (3, III)}que cumple con las dos caractersticas
antes mencionadas, por lo tanto la funcin se dice biyectiva. (Figura 1.14).
Teora de la Computacin
17
Introduccin
f: C D
I II
III IV
Conjunto C
Conjunto D
= {a, b, c, d, e, f, g, h, i, j}
Teora de la Computacin
18
Introduccin
19
Introduccin
1.2.3.1 Concatenacin
La concatenacin de dos cadenas no es ms que la unin fsica de ambas, de tal
manera que si c y b son cadenas del alfabeto espaol donde c = casa y b = roja, la
concatenacin de stas esta dada por la palabra casaroja = cb.
Una extensin de la concatenacin es el concepto potencia de una palabra donde se
dice que una palabra elevada a un valor n es igual a la concatenacin de esta palabra tantas
veces como indique el valor de n, es decir, si c = ab entonces
Si n = 0
c n = n1
Si n > 0
cc
(Kelley, 1995, Pg. 32)
Ya para terminar de hablar sobre cadenas se ubicara el concepto inversa o transpuesta de
una palabra, que no es ms que el reflejo de la imagen de la palabra en cuestin y esta
denotada por el uso de un subndice I (cI). Por ejemplo, si c = alfa la inversa de c es
afla, la conversin completa de la palabra a su inversa estara dada por la siguiente
secuencia. (Kelley, 1995, Pg. 33)
cI = (alfa)I = (lfa)Ia
= (fa)Ila
Teora de la Computacin
20
Introduccin
= (a)Ifla
= ( )Iafla
= afla
La concatenacin de dos lenguajes E y I esta definido por la notacin E I, y se
forma por la unin fsica de cada cadena de E con cada cadena de I. Por ejemplo, si E = {1,
2} I = {hombre, mujer, nio, nia} entonces E I = {1hombre, 1mujer, 1nio, 1nia,
2hombre, 2mujer, 2nio, 2nia} note que la concatenacin puede llevarse a cabo con
lenguajes cuyo alfabeto es diferente. La concatenacin tambin puede ser representada por
EI en lugar de E I.
El concepto potencia aplicado a las cadenas es tambin empleado para los lenguajes,
aplicndose de la misma manera, de tal manera se tiene
Si n = 0
En =
n 1
Si n 0
E E
Teora de la Computacin
21
Introduccin
la cadena vaca E+ = {1, 11, 12, 12,13, 111, 112, 112, 113,, 1112, 122, 123,....}.
(Kelley, 1995, Pg. 37)
Una vez que han sido introducidos estos conceptos puede definirse formalmente un
lenguaje.
Cuenta con una identidad, es decir, un elemento "" tal que cumple a*=*a=a.
La operacin * es asociativa.
(http://es.wikipedia.org/wiki/Monoide, junio del 2006)
Al igual que en las cadenas, el concepto de inversa o transpuesta es tambin aplicado
a los lenguajes con el mismo procedimiento; as como todas las operaciones aplicadas a los
conjuntos (unin, interseccin, complemento).
Hasta este momento se han representado lenguajes comunes cuyas cadenas se
encuentran formadas por smbolos bien definidos pero que pasa, si se desean representar
lenguajes cuyas cadenas se encuentran formadas por uno o dos smbolos y cuyas
concatenaciones son muy amplias como los conjuntos obtenidos en la cerradura de Kleene,
la representacin de estos sera muy laboriosa o confusa, por tal motivo se debe de aprender
a representar estos lenguajes mediante formulas pequeas como por ejemplo; s L es un
Teora de la Computacin
22
Introduccin
lenguaje cuyos elementos son {xxyy, xxxyy, xxxyyy, xxxxyy, xxxxyyy, xxxxyyyy,
xxxxxyy, xxxxxyyy,..} podra ser tambin representado por L = {xi yj i j > 1}, ya
que si observamos las caractersticas del lenguaje, podra deducirse que en la mayora de
las cadenas se muestra un mayor nmero de x que de y, sin embargo existen algunos casos
donde son iguales, adems el nmero mnimo de veces que se muestran tanto las x como
las y es de 2.
As pues algunos ejemplos de lenguajes son:
a) L1 = { ai bj i , j > 1 }
b) L2 = { ai bj ax by i j >1, 1< x y }
c) L3 = { ai bj cq q=2i+j y i, j 0 }
d) L4 = { ai c2i i 0 }
23
Introduccin
aa aaaa
aaaaaa
aaaaaaaa
bb bbbb
bbbbbb
bbbbbbbb
Conjunto A
Conjunto B
aa aaaa
aaaaaa aaaaaaaa
bb bbbb bbbbbb
bbbbbbbb
Conjunto B A
Teora de la Computacin
24
Introduccin
Teora de la Computacin
25
Introduccin
Teora de la Computacin
26
Introduccin
ser
expresados
como
algoritmos
(http://es.wikipedia.org/wiki/Complejidad_
computacional , diciembre del 2005), sin tomar en cuenta los recursos necesarios para ello.
Mientras que la teora de la complejidad estudia los recursos requeridos para resolver un
problema. La primera teora hace referencia a que tan calculable (computable2) puede ser
una funcin por un algoritmo; la segunda estudia los recursos de procesamiento como el
tiempo, el cual se describe como el nmero de pasos de ejecucin de un algoritmo que se
usan para resolver un problema, para el clculo exacto del nmero de pasos y el coste que
generan se utiliza la notacin O; y el espacio que es la cantidad de memoria utilizada para
resolver un problema. (Glenn, 1993, Pg. 248) Aunque tambin pueden estudiarse otros
parmetros, tales como el nmero de procesadores necesarios para resolver el problema en
paralelo.
La teora de la complejidad clasifica los problemas de acuerdo al tipo de modelo
computacional necesario para resolverlo. El modelo ms popular es la mquina de Turing,
la cual ser abordada en los captulos posteriores a ste. Dentro de estos modelos se
encuentran los autmatas, que pueden definirse como maquinas abstractas cuyo
funcionamiento permite el reconocimiento de los distintos miembros de un lenguaje, estos
autmatas pueden parecer grafos dirigidos, donde los nodos son denominados como
estados, las aristas son denominadas transiciones y son rotulados con los elementos del
alfabeto de el lenguaje, dentro de estos autmatas existe un estado inicial y un conjunto de
estados de aceptacin el cual indicar si los elementos del lenguaje examinado son los
correctos para el lenguaje o no lo son. En el captulo siguiente se tratar ms a fondo ste
concepto.
2
Se llama cmputable a la obtencin de una solucin o resultado a partir de ciertos datos, utilizando para ello
un proceso o algoritmo. ( Encarta, 2006 )
Teora de la Computacin
27
Introduccin
RESUMEN
El trmino conjunto es definido como una coleccin de objetos. Cada objeto es
llamado elemento o miembro del conjunto. Si M es un conjunto y L es un elemento de
este conjunto, se dice, que L M. En caso de que L no fuera un elemento del conjunto M
se escribira L M. Un conjunto formado de varios elementos es representado mediante la
notacin N = { a, e, i, o, u }; este conjunto tambin podra ser representando de la siguiente
manera N = {v:v es una vocal}, donde N equivale al conjunto de toda v tal que v es una
vocal, es decir, si v es una vocal, el conjunto de todas las vocales es igual a N; o bien, N =
{vv es una vocal} donde la notacin {v se lee como el conjunto de todas las v tales
que v es una vocal.
Dentro de los conjuntos existe el denominado conjunto vaco o conjunto nulo siendo
ste el conjunto ausente de elementos, representado por los corchetes vacos {}, o bien por
el smbolo .
Los conjuntos pueden ser clasificados en dos tipos los conjuntos finitos o infinitos.
Los primeros cuentan una cardinalidad conocida de 0 a X; llamamos cardinalidad al
nmero de elementos que forman un conjunto y es denotado por dos lneas verticales
paralelas que encierran al conjunto A. Un conjunto infinito es aquel cuya
cardinalidad no es conocida.
Ya que se ha definido el concepto conjunto, consider los conjuntos A = {1,2,3} y B
= {0,1,2,3,4,5,6}, puede darse cuenta que los elementos del conjunto A tambin son
elementos que se encuentran en el conjunto B, por lo que se dice que A es un subconjunto
de B, cuya notacin es A B. Entre los elementos de todo conjunto se encuentra el
conjunto vaco; por lo tanto, el conjunto vaco es un subconjunto de todos los conjuntos.
Dentro de la teora de conjuntos es posible realizar una serie de operaciones las cuales
se concentran en tres: la unin, la interseccin y el complemento.
Teora de la Computacin
28
Introduccin
denotados por una tilde x . Sin embargo se debe hacer notar que el conjunto nulo no forma
parte de este conjunto universal, por lo cual 0 = U.
Algunas otras operaciones realizadas con conjuntos que vale la pena mencionar son:
el producto cartesiano de conjuntos y el conjunto potencia.
Conjunto potencia 2n. Este conjunto est constituido por todas las posibles
combinaciones de los elemento de un conjunto. S A = {a, b, c} el conjunto potencia
de A = {, {a}, {b}, {c}, {a, b}, {a, c}, {b, c}, {a, b, c}}, note que el elemento vaco
o nulo tambin forma parte de este conjunto potencia. El total de elementos del
Teora de la Computacin
29
Introduccin
30
Introduccin
a la relacin que se denomina como funcin. Las funciones se representan con la notacin f:
A B; y pueden ser de tres tipos: sobreyectivas, inyectivas y finalmente biyectivas.
El trmino conjunto puede ser transportado al concepto alfabeto. Un alfabeto suele
estar constituido de un conjunto no vaco y finito de smbolos (a, b, 1, 3, , %,+`, [, ). Un
alfabeto es considerado la fuente de una palabra o cadena, ya que sta se describe como una
secuencia finita y contable de smbolos de un alfabeto. La longitud de una cadena se define
como el nmero total de smbolos por los cuales esta formada la cadena y se representa
mediante la notacin c . A un conjunto de cadenas obtenidas de un alfabeto dado se le
denomina como lenguaje. Los lenguajes formales se rigen por reglas gramaticales precisas,
a diferencia de los lenguajes naturales cuyas reglas son establecidas antes de crear el
lenguaje.
Las ciencias matemticas contienen varios conjuntos de nmeros, por ejemplo, el
conjunto de nmeros reales, el conjunto de nmeros reales negativos, el conjunto de
nmeros naturales el cual contiene los valores enteros del {0,1,2,3,..}, este conjunto
representa el denominado principio de induccin matemtica el cual constituye una
referencia para generar pruebas sobre supuestos o proposiciones matemticas.
Dentro de la teora de la computacin se manejan varios supuestos, todos ellos
encaminadas al entendimiento y estudio de la ciencia computacional. Dos de estas teoras
son, la teora de la computabilidad y la teora de la complejidad.
La teora de la computabilidad se ocupa de verificar la factibilidad de los problemas
para ser expresados como algoritmos, sin tomar en cuenta los recursos necesarios para ello.
Mientras que la teora de la complejidad estudia los recursos requeridos para resolver un
problema.
Teora de la Computacin
31
Introduccin
GLOSARIO
Conjuntos. Un conjunto se define como una coleccin de objetos. A cada uno de
los objetos que componen un conjunto se le llaman elementos o miembros del
conjunto. La notacin usada para indicar que un elemento pertenece a un conjunto
es l M, donde l es un elemento del conjunto M. Para la representacin de un
conjunto y de todos los elementos que lo forman se hace uso de las llaves {}, que
encierran en ellas, a todos los elementos que forman parte del conjunto, como se
muestra a continuacin, M = {l, m, n, o, p}. Otra manera de representar un
conjunto es mediante el uso del smbolo | , por ejemplo M = {x | x es una letra
del alfabeto}, donde el smbolo | se lee como tal que; por lo tanto la
representacin anterior se leera como el conjunto M esta constituido de x
elementos tal que x es una letra del alfabeto
Cardinalidad. La cardinalidad define el nmero de elementos que forman un
conjunto, y esta denotada por el smbolo || ; de tal manera que la cardinalidad
de un conjunto estara representada por || M || = 5.
Conjuntos finitos. Es aquel cuya cardinalidad es igual a 0 o bien es una
cardinalidad conocida.
Conjunto infinito. Es aquel cuya cardinalidad no es conocida.
Subconjunto. Conjunto de elementos que forma
Teora de la Computacin
32
Introduccin
33
Introduccin
Teora de la Computacin
34
Introduccin
Teora de la Computacin
35
Introduccin
EJERCICIOS
1. Represente los siguientes conjuntos usando la notacin para conjuntos mostrada en
el apartado 1.2.1.
a. El conjunto de enteros positivos.
b. El conjunto de todos los enteros positivos menores a 20.
c. El conjunto de todos los enteros negativos mayores a 5 y menores a 15.
2. Cual es la cardinalidad de los siguientes conjuntos?
a. {0}
b. {0,1,2,3}
c. {a,b,c,d,e,f}
3. Considere los conjuntos A = {1, 2, 3, 4, 5, 6} y B = {5, 6, 7, 8}. Calcule
correctamente las siguientes operaciones.
a. (A B)
b. (A B) A
c. B A
d. A B
e. 2B
f. 2A
g. 2A B
h. A x B
i. A x A
4. Indique la longitud de cada una de las siguientes cadenas
a. Hoja
b. Silla
c. Piedra
d. fffffeeeefff
5. De cinco ejemplo de lenguajes basados en los conjuntos {4, 5, 7, 4, 9, 10,11}, {a, b},
{g, h, v}.
6. Exprese extensamente el conjunto {x|x N, x < 10}.
Teora de la Computacin
36
Introduccin
PROBLEMAS
1. Calcular los conjuntos potencia de los siguientes conjuntos.
a. {a, b}
b.
c. {}
d. {1 {2}}
2. Analice los siguientes lenguajes y realice correctamente las operaciones indicadas.
L1 = {xi yj i 0, j > 0}
Operaciones.
L1 L2 =
L1 L2 =
L1 * =
(L1 L2) L2 =
37
Introduccin
Teora de la Computacin
38
Introduccin
LECTURA COMPLEMENTARIA.
Teora de la Computacin
39
Introduccin
del cambio lingstico y los factores sociales que determinan los comportamientos
lingsticos de los miembros de una comunidad idiomtica. (Encarta, 2006)
La estructura del lenguaje concierne a la lingstica, cuya parte de su estudio se
enfoca a la sintaxis de la lengua; es decir, estudia la estructura del texto, asegurando que la
forma en que son ordenadas las palabras y las oraciones constituyan un todo coherente.
(Encarta, 2006) ste es el enfoque que se estudia en la Teora de la Computacin, orientado
a los lenguajes de programacin que han sido desarrollados para la comunicacin entre
computadoras.
Un lenguaje de programacin es definido como cualquier lenguaje artificial que puede
utilizarse para definir una secuencia de instrucciones que sern procesadas por una
computadora. La creacin de dichos lenguajes involucra fundamentos matemticos, y
estudios lingsticos que son mencionados a lo largo de este libro.
Teora de la Computacin
40
Introduccin
BIBLIOGRAFA
1. Brena,
verano
2003
Ramn
Brena.
Autmatas
Lenguajes.
En:
En:
Teora de la Computacin
41
Introduccin
RETROALIMENTACIN
Retroalimentacin a los ejercicios.
1.
a. A = {xx }
c. A = {xx y 5 < x <15}
2.
a. 1
c. 6
3. a. {5,6}
c. {7,8}
e. {, {5}, {6}, {7}, {8}, {5,6}, {5,7}, {5,8}, {6,7}, {6,8}, {7,8}, {5,6,7}, {5,7,8},
{5,6,8}, {6,7,8}, {5,6,7,8}}
h. {(1,5), (1,6), (1,7), (1,8), (2,5), (2,6), (2,7), (2,8), (3,5), (3,6), (3,7), (3,8), (4,5),
(4,6), (4,7), (4,8), (5,5), (5,6), (5,7), (5,8), (6,5), (6,6), (6,7), (6,8)}
4. a. 4
c. 6
5. a. Solo es una relacin.
c. Es una relacin reflexiva y simtrica.
6. a. Longitud igual a 4
c. Longitud igual a 6
Retroalimentacin a los problemas.
1. a. {,{a},{b},{a,b}}
c. { }
2.
L1 L2 = {xx L1 o x L2}
L1 * = {, j, xy, xjj, xxjj, xxxjj, xxxjjj, . }
Teora de la Computacin
42
3.
Introduccin
a. El dominio esta constituido por todos los hijos (x), mientras que el condominio
esta constituido por todas las madres de x.
Teora de la Computacin
43
C
A
P
I
T
U
L
O
II
LENGUAJES
REGULARES
OBJETIVO
mquinas
finitos)
que
abstractas
permiten
representacin y reconocimiento.
su
Lenguajes Regulares
Expresiones
regulares.
Jerarqua de
Chomsky
Son descritos
Son representados
Lenguajes Regulares
Son reconocidos por
Se dividen
Lenguajes no regulares
Autmatas finitos
(AF)
Se clasifican
AF Determinista
AF No determinista
Teora de la Computacin
45
Lenguajes Regulares
2. LENGUAJES REGULARES
2.1 INTRODUCCIN.
La presente unidad permitir al estudiante analizar los lenguajes regulares (LR), que
son considerados como el conjunto ms pequeo de lenguajes y cuyas caractersticas los
hacen nicos. Dichos lenguajes pueden ser representados mediante expresiones regulares
(ER), que muestran de forma directa las cadenas de texto bsicas, por las que est
constituido el lenguaje regular. Adems slo son reconocidos por un tipo de mquinas
abstractas denominadas autmatas finitos (AF), de las que existen dos tipos: los autmatas
finitos determinsticos y los autmatas finitos no determinsticos.
Un LR puede ser representado por varios AF bien por varias ER, en cuyo caso se
dice que existe una equivalencia de AF o bien de ER, dichas igualdades pueden ser
demostradas mediante la aplicacin de las reglas de equivalencia ya establecidas, las cuales
son listadas en este apartado.
Como ya se dijo, los LR es el conjunto ms pequeo de lenguajes que existe, pero
como saber si un lenguaje es regular o no lo es?, esta pregunta puede ser respondida al
aplicar el conocido Lema de Bombeo; que demuestra si un lenguajes dado cumplen con
la propiedad de regularidad o simplemente es parte del conjunto de lenguajes no regulares.
Teora de la Computacin
46
Lenguajes Regulares
47
Lenguajes Regulares
Teora de la Computacin
48
Lenguajes Regulares
49
Lenguajes Regulares
Derivacin 1
Derivacin 2
Derivacin 3
S aS
S aS
S aS
S aaS
S aaS
S aaS
S aab
S aaaS
S aaaS
S aaaS
S aaaaS
S aaabS
S aaaaaS
S aaabbS
S aaaaabS
S aaabbb
S aaaaabbS
S aaaaabbb
Como puede verse las derivaciones realizadas, obteniendo tres palabras diferentes que
formarn parte de un lenguaje regular, ya que la gramtica de la que proceden es clasificada
como de ste tipo.
Los lenguajes regulares (LR) son denominados como la clase ms pequea de
leguajes, seguidos de los lenguajes libres del contexto, los lenguajes dependientes del
contexto y finalmente de los lenguajes recursivamente enumerables. Como se muestra en la
figura 2.2. (Brena; 2003, Pg. 19)
Los LR tambin pueden ser definidos de la siguiente manera. Dado un alfabeto ,
pueden obtenerse un conjunto de lenguajes regulares a partir del lenguaje vaco , la
cadena nula (cuya longitud es igual a 0) { }, a partir de los lenguajes unitarios (cuya
cardinalidad sea igual a 1) { a }, y por todos los lenguajes obtenidos a partir de la
Teora de la Computacin
50
Lenguajes
Regulares
Lenguajes Regulares
Lenguajes
libres de
contexto
Lenguajes
dependientes
al contexto
Lenguajes
lenguaje regular.
(Brena, 2003, Pg. 80)
De tal manera que si el alfabeto de un lenguaje esta determinado por = {c, e, f}, algunos
de los leguajes regulares obtenidos de este alfabeto seran:
LR =
LR = { }
LR = {e}
LR = {f}
LR = {c}
LR = {ce} ya que es la concatenacin de {c} y {e}
LR = {e, f} ya que es la unin de {e} y {f}
Teora de la Computacin
51
Lenguajes Regulares
LR = {c, ef, e, f}
LR = { ci i0}
LR = {ei fii 0}
LR = { (ce)ii 0}
52
Lenguajes Regulares
Dicho autmata finito es denominado as debido a que cuenta con un nmero determinado
de estados y solo reconocen a los denominados lenguajes regulares. Existen dos tipos de
autmatas finitos los deterministas y no deterministas.
Teora de la Computacin
53
Lenguajes Regulares
q0 q1 error
* q 1 q1
q1
q0
Q0
q1
q1 error q2
* q2
Q2
q2
Teora de la Computacin
54
Lenguajes Regulares
Tal diagrama acepta todas las cadenas derivadas del lenguaje L(N) = {ai bj ak i,k 0
y j es un nmero par mayor de 1}, observe que se ha introducido la notacin L(N) que
indica que todas las cadenas producidas por ste lenguaje es aceptado por el autmata N.
Teora de la Computacin
55
Lenguajes Regulares
Como puede observase en ambos estados existen ms de una transicin rotulada con
el mismo smbolo de entrada, lo cual produce una ambigedad.
Los autmatas finitos no determinsticos pueden definirse formalmente como una
coleccin de cinco elementos AFD = {Q, , s, F, } donde
Q es una coleccin finita de estados.
es el alfabeto de estrada.
Teora de la Computacin
56
Lenguajes Regulares
s es el estado inicial.
F es el conjunto de estados de aceptacin
es una funcin :(Q x ) x Q, llamada relacin de transicin.
Error
1
q1
{q1, q0}
Ntese que en las celdas de esta tabla se encuentran conjunto de estados lo que indica
la existencia de ms de una transicin a travs del mismo smbolo que lleva a otro estado;
esta situacin lleva a un estado de ambigedad dentro del modelo, ya que al trasladarse de
un estado a otro y existen dos transiciones iguales no es posible determinar cual de las dos
llevar al destino deseado, por lo general en este tipo de autmatas se intuye que se tomar
la transicin apropiada para el reconocimiento de las cadenas de un lenguaje. (Kelley, 1995,
Pg.63)
Teora de la Computacin
57
Lenguajes Regulares
Al igual que en los AFD, los lenguajes que son reconocidos por un AFN se definen
como L(M) = {w w es una cadena aceptada por M}. (Kelley, 1995, Pg. 64)
58
Lenguajes Regulares
determinstico. De tal manera se puede decir que dentro de los lenguajes aceptados un AFN
se incluye todos los lenguajes aceptados por AFN.
2.2.3.1 -Transiciones
Dentro de la construccin de AFN, puede encontrarse con el concepto de las transiciones, cuya funcin es de permitir el paso de un estado a otro sin consumir ningn
smbolo de entrada (Kelley, 1995, Pg. 70). Un ejemplo de este tipo de transiciones es
mostrado en la figura 2.11.
Figura 2.11.
-Transiciones
El AFN mostrado en la figura anterior presenta una -transicin que lleva del estado q1 al
estado de aceptacin q2, lo que permita que dichos autmatas reconozcan cadenas
constituidas de solo as.
Las -transiciones involucran un cambio en la funcin de transicin , la cual se
asocia pares Q x ( x { }) x Q. (Kelley, 1995, Pg.71)
La tabla de transiciones que representa el AFN de la figura 2.11 muestra una columna
ms para la cadena vaca. Figura 2.12
59
Lenguajes Regulares
q1 {q1}
{q2}
{q2}
-transiciones
Teora de la Computacin
60
Lenguajes Regulares
Teora de la Computacin
61
Lenguajes Regulares
1. aa*b
2. (ab)*
3. (ab)+
4. c*(c*d)*
5. (a + b)*
Teora de la Computacin
62
Lenguajes Regulares
Para que una expresin regular sea aceptada como tal debe de cumplir con dos
caractersticas, la primera es la correccin en donde las palabras que representa la ER
deben satisfacer la descripcin del problema, es decir se debe validar que las cadenas
obtenidas de la expresin regular sea las requeridas por el lenguaje; la segunda
caracterstica es la de la completes, la ER propuesta debe representar todas las palabras que
satisfagan la condicin, ambas caractersticas se enfocan a que las cadenas que produzca la
ER debe satisfacer todas las condiciones del lenguaje que esta representado. (Brena, 2003
Pg. 83)
1. R+S = S+R
2. R+ = +R = R
3. R+R = R
4. (R+S) + T = R+(S+T)
5. R = R=R
6. R = R =
7. (RS)T = R(ST)
8. R (S+T) = RS+RT
9. (S+T)R = SR+TR
10. R*= R*R*= (R*)*= ( + R)*= R*(R + ) = (R+ )R*= +RR*
11. (R+S)* = (R*+ S*)*=(R*S*)*=(R* S)*R*=R*(SR*)* R*+ S*
12. RR*= R*R
13. R(SR)*=(RS)*R
Teora de la Computacin
63
Lenguajes Regulares
Teora de la Computacin
64
Lenguajes Regulares
Teora de la Computacin
65
Lenguajes Regulares
RESUMEN
Un autmata puede definirse como una mquina abstracta que permite el
reconocimiento de los elementos que constituyen un lenguaje. Los lenguajes pueden ser
clasificados en cuatro tipos deferentes: los lenguajes recursivamente enumerables, los
lenguajes libres del contexto, independientes de contexto y los lenguajes regulares; la
clasificacin de estos lenguajes se debe al tipo de reglas que rigen su construccin; dichas
reglas son denominadas gramticas.
Cada regla que constituye a una gramtica es una expresin del tipo , donde y
representan cadenas, cuya cardinalidad y orden de elementos definirn el tipo de
gramtica.
De manera formal se define a una gramtica G, como una 4-tupla G = (N, , S, P);
donde el primero de ellos es el conjunto de todos los smbolos no terminales, su principal
caracterstica es que son escritos siempre con letras maysculas; el segundo es el conjunto
de los smbolos terminales o alfabeto del lenguaje, estos smbolos siempre son escritos con
letras minsculas; el tercero es el conjunto del smbolo inicial de la gramtica y el cuarto es
el conjunto de reglas o producciones de dicha gramtica. Cada uno de los smbolos que
forman una produccin puede ser un elemento terminal y/o no terminales.
La clasificacin de gramticas ms conocida es la del lingista Noam Chomsky, el
cual muestra las reglas de cada lenguaje a travs de la jerarqua de Chomsky presentada a
continuacin.
Gramticas regulares. Las reglas de esta gramticas tienen la forma donde
pertenece al conjunto de smbolos no terminal y cuya longitud debe de ser igual a uno,
y es una cadena de terminales y no terminales, cuya longitud debe ser mayor o igual
a .
Teora de la Computacin
66
Lenguajes Regulares
lenguaje regular.
El reconocimiento de las cadenas pertenecientes a estos lenguajes puede ser auxiliado
por la construccin de diagramas. Estos diagramas son denominados autmata finito, y se
Teora de la Computacin
67
Lenguajes Regulares
define como puede darse cuenta es una mquina abstracta cuya funcin es el
reconocimiento del lenguaje.
Existen dos tipos de autmatas finitos los deterministas y no deterministas.
Formalmente un autmata finito determinista (AFD) es una coleccin de cinco
elementos, un AFD = (Q,,s, F, ) donde
Q es una coleccin finita de estados.
es el alfabeto de entrada.
s es el estado inicial.
F es el conjunto de estados de aceptacin
es una funcin :Q x Q, la cual determina el nico estado siguiente para el
68
Lenguajes Regulares
cumplen con esta propiedad, ya que en un AFN se pueden encontrar estados con cero, una o
ms transiciones cuyo smbolo de entrada sea el mismo, lo cual produce ambigedad.
Los autmatas finitos no determinsticos pueden definirse formalmente como una
coleccin de cinco elementos AFD = {Q, , s, F, }, los cuatro primeros son idnticos a
los de un AFD, sin embargo las transiciones cambian si se convierten a la forma :(Q x )
x Q, indicando que existe una coleccin de cero o ms transiciones con el mismo smbolo
de entrada para saltar al estado siguiente.
Otra manera de expresar los lenguajes regulares de los que se han estado hablando es
mediante la construccin de expresiones regulares. Estas expresiones regulares es
construida con las cadenas de un alfabeto , unidas con la cadena vaca ( ), la unin
(+), a la concatenacin ( ), a las cerraduras (*, +), a los parntesis ( (,)), y al
lenguaje vaco (); y que cumplen con las siguientes caractersticas:
1. y ER
2. Si entonces ER
3. Si E1, E2 ER, entonces (E1 + E2) ER, (E1 E2 ) ER, (E1
* E2 ) ER.
69
Lenguajes Regulares
7. (RS)T = R(ST)
8. R (S+T) = RS+RT
9. (S+T)R = SR+TR
10. R*= R*R*= (R*)*= ( + R)*= R*(R + ) = (R+ )R*= +RR*
11. (R+S)* = (R*+ S*)*=(R*S*)*=(R* S)*R*=R*(SR*)* R*+ S*
12. RR*= R*R
13. R(SR)*=(RS)*R
14. (R* S)*= +(R+S)*S
15. (R S*)*= +R(R+S)*
16. S(R+ )* (R+ )+S=SR*
Se ha hablado ya de los lenguajes regulares como los nicos que pueden ser
representados mediante autmatas finitos y expresiones regulares. Pero, cmo saber si un
lenguaje L es regular o no lo es? Una manera de comprobar la regularidad de un lenguaje es
mediante el lema de bombeo, cuya definicin es la siguiente:
Si L es un lenguaje infinito; para el cual existe un entero n para cualquier w L, y
cuya longitud es mayor o igual a n (w n), existen cadenas x, y, z tal que:
w =xyz
xy n
y> 0
para cada xyi z L, donde i 0
Teora de la Computacin
70
Lenguajes Regulares
GLOSARIO
Autmata finito. Mquina abstracta que representa una cantidad finita de estados.
Lenguajes regulares. Son denominados como la clase ms pequeo de lenguajes,
es el alfabeto de estrada.
s es el estado inicial.
Teora de la Computacin
71
Lenguajes Regulares
Tabla de transicin. Matrices cuyas columnas estn formadas por los elementos de
entrada o alfabeto del autmata (), y cuyos reglones estn constituidos por los
estados que forman el autmata. El estado inicial del autmata en una tabla de este
tipo, es sealado con la flecha, mientras que el estado de aceptacin es sealado
con un asterisco.
Equivalencia de AFD. Se dice que dos AFD con equivalentes si los lenguajes que
es el alfabeto de estrada.
s es el estado inicial.
cuando un lenguaje a sido reconocido tanto por un AFD N como por un AFN N
de tal manera que L (N1) = L (N2).
-Transiciones. Las -transiciones tiene la funcin de permitir el paso de un
alfabeto . Las expresiones regulares (ER) sobre son cadenas del alfabeto
unidas a la cadena vaca ( ), a la unin (+), a la concatenacin ( ), a las
cerraduras (*, +), a los parntesis ((,)), y al lenguaje vaco (); y que
cumplen con las siguientes caractersticas:
Teora de la Computacin
72
Lenguajes Regulares
y ER
Si entonces ER
Teora de la Computacin
73
Lenguajes Regulares
EJERCICIOS.
A aA
A bA
A bB
B cB
B ccB
Cd
b)
S ScS
S SbS
Sa
c)
Z yZ
Z xY
Y zY
Yz
d)
S aSb
S Eb
E aS
E
e)
S AA
AA aAA
AA
AA aB
Ba
B bB
B
f)
S eB
Se
B eB
B fB
Be
Bf
Teora de la Computacin
74
Lenguajes Regulares
PROBLEMAS
1. Disee los autmatas finitos determinstico, que reconozcan los siguientes lenguajes.
a. L = {xn ym zo n,m,o 0}
b. L = { e fn e n > 0}
c. L = {(aibbaj)k i, j, k 0}
d. L = {x x no contiene subacadenas aa o bb }
e. L = {w w
nuevamente de cero o ms as }
2. Defina formalmente los AFD que construyo en la pregunta anterior.
3. Disee los autmatas finitos no determinsticos equivalentes que reconozcan los
lenguajes de la pregunta 1.
4. Construya un AF usando las transiciones , que reconozcan los siguientes lenguajes.
a. (aa aba)*
b. c*(a ac*)*
c. b* ab*a
5. Compruebe la regularidad de los siguientes lenguajes.
a. L = {xn yn zo n,o 0}
b. L = {cn bbb n > 0}
c. L = {bn a m cs n,m,s >0}
d. L = {(kabba)k i, j, k 0}
e. L1 = {ai bj i 0, j > 0}
6. Simplifique las siguientes expresiones regulares.
a. ( aa)*
b. ( aa) ( aa)*
c.
(a ) a*b
d. a ( aa)*a
e. (aa)* a (aa)*
Teora de la Computacin
75
Lenguajes Regulares
Error
b
q1
{q0, q1}
Teora de la Computacin
76
Lenguajes Regulares
LECTURA COMPLEMENTARIA
Lingstica Computacional
La lingstica computacional, es una disciplina que estudia los sistemas
computacionales para la comprensin y generacin de lenguaje natural. Histricamente, el
trmino se acua en la dcada de 1960 en un contexto que vincula a esta disciplina a la
informtica y, ms concretamente, a la inteligencia artificial. Sin embargo, son muchas
otras las disciplinas que han contribuido a aquilatar su mbito de estudio, las tecnologas
que utiliza, los presupuestos tericos en que se apoya y los mtodos de investigacin que
aplica: desde la ingeniera elctrica y electrnica o la lingstica hasta la psicologa,
pasando por la lgica y la ciencia cognitiva.
Las aproximaciones al procesamiento automtico de las lenguas naturales desde cada
una de estas ramas del saber humano son muy diferentes, tanto en su extensin como en el
enfoque adoptado. As, la ingeniera elctrica se ha interesado slo en el procesamiento de
la seal acstica para el reconocimiento del habla y en el empleo de mtodos numricos, y
la lingstica en un enfoque terico basado en mtodos simblicos que resulte un simple
remedo de los niveles de descripcin de la gramtica, en tanto que la informtica ha
impuesto una visin aplicada, de ingeniera, que permita crear sistemas informticos con
capacidades lingsticas que los asemejen a los humanos. Esta disparidad de intereses y
objetivos ha enriquecido la disciplina, pero tambin ha introducido una variedad
terminolgica importante, pues el trmino lingstica computacional coexiste con otros
como los de procesamiento del lenguaje natural, ingeniera lingstica o tecnologas
del lenguaje humano, por mencionar tan solo unos pocos.
Aunque esta disciplina recibe su nombre hace tan solo 40 aos, en los 20 aos
anteriores se ha ido configurando a partir de una serie de paradigmas fundacionales como la
teora de autmatas, la teora de la informacin y la teora de lenguajes formales, as como
de la decepcionante experiencia adquirida en el desarrollo de los primeros sistemas de
traduccin automtica, primera aplicacin no numrica llevada a cabo con los ordenadores
Teora de la Computacin
77
Lenguajes Regulares
y, probablemente, una de las tareas humanas relacionadas con las lenguas ms costosas y
difciles de formalizar.
Adems de las tcnicas, propias o tomadas de otras disciplinas, los avances en
lingstica computacional han sido posibles gracias a la creacin de recursos lingsticos
como lexicones, gramticas formales y corpus textuales, que han permitido aumentar el
grado de formalizacin de nuestro conocimiento de las lenguas naturales.
La lingstica computacional, en su enfoque prctico, persigue el desarrollo de
aplicaciones con capacidad lingstica, que pueden estructurarse en torno a cuatro ejes: la
mejora de la relacin persona/ordenador, la comunicacin entre las personas, la gestin de
la informacin y las herramientas de creacin de documentacin. En todos ellos, y no slo
en el segundo, es posible aadir tanto una dimensin multilinge como un componente de
procesamiento de habla (un conversor voz-texto o texto-voz).
En el primero de estos ejes se sitan aplicaciones como el reconocimiento del habla
natural, es decir, continua, e independiente del hablante (que se utiliza en los sistemas de
dictado automtico), la sntesis de voz (que escuchamos en algunos servicios de telefona) y
la interaccin con los ordenadores por medio de comandos de voz, pero tambin la
interrogacin a bases de datos en lengua natural y el desarrollo de interfaces
multimodalidades que permitan utilizar todos los canales sensoriales y que favorezcan, por
tanto, la integracin de los discapacitados.
La comunicacin entre las personas se materializa en la traduccin de lenguas
humanas. Junto a la traduccin automtica, uno de los sueos de la humanidad desde Blaise
Pascal y Gottfried Wilhelm von Leibniz, slo alcanzado, de momento, en dominios
restringidos, han surgido otras ayudas a la traduccin como los sistemas de memorias de
traduccin (colecciones de pares de segmentos de traduccin, que evitan la retraduccin de
fragmentos ya traducidos).
La recuperacin y la extraccin de informacin relevante de fondos documentales es
otro de los ejes de aplicacin de la lingstica computacional. La nuestra es todava una
Teora de la Computacin
78
Lenguajes Regulares
Teora de la Computacin
79
Lenguajes Regulares
BIBLIOGRAFA
1. Brena,
verano
2003
Ramn
Brena.
Autmatas
Lenguajes.
En:
Teora de la Computacin
80
Lenguajes Regulares
RETROALIMENTACIN.
Retroalimentacin a los ejercicios.
1.
Todo lenguaje formal esta definido por una gramtica. El lenguaje es un conjunto
infinito y por lo tanto la finites o la infinites del lenguaje dependen de la gramtica
que lo gobierne.
a.
c.
Teora de la Computacin
81
Lenguajes Regulares
e.
3. a.
c.
e.
Teora de la Computacin
82
4.
Lenguajes Regulares
a.
c.
5.
a.
No es regular
c.
Si es regular
e.
Si es regular
7.
Teora de la Computacin
83
C
A
P
I
T
U
L
O
III
LENGUAJES
INDEPENDIENTES
DEL CONTEXTO
OBJETIVO
Definir los lenguajes libres de contexto, sus
propiedades y las mquinas que permiten su
reconocimiento.
Lenguajes Independientes
del Contexto.
rbol de derivacin.
Representan la derivacin
de la gramtica
Eliminacin de factores
comunes izquierdos.
Son representadas
Gramtica
Libres del
contexto
Provienen
Lenguajes
Independientes del
contexto.
Forma Normal de
Greibach
Tcnica
Transformndola la a
Estandarizacin
Una gramtica GIC
puede ser estandarizada
Tcnica
Eliminacin de recursividad
izquierda.
Transformndola a la
Forma Normal
Chomsky
Teora de la Computacin
85
Lenguajes Independientes
del Contexto.
3.1 INTRODUCCIN
En la presente unidad se estudian los llamados lenguajes independientes del contexto,
su fuente y todas las propiedades con que cuentan.
86
Lenguajes Independientes
del Contexto.
As, como una empresa requiere de reglas firmes para que su desarrollo sea exitoso; la
creacin de los lenguajes formales requiere tambin de la existencia de reglas gramaticales
que indiquen cual ser su constitucin. Dichas reglas son llamadas gramticas.
Teora de la Computacin
87
Lenguajes Independientes
del Contexto.
Sin embargo el lenguaje anterior no tiene establecida un conjunto de reglas que rijan su
construccin, por lo cual es conveniente que le construya n unas, para este fin se usar el
siguiente procedimiento.
S?
eB
S? e
B ? eB
B ? fB
Teora de la Computacin
88
Lenguajes Independientes
del Contexto.
B? e
B? f
Como se ha visto el proceso de construccin de una gramtica no es muy complicado, sin
embargo cabe la duda de saber, s en realidad la gramtica obtenida construye las mismas
cadenas que el AF del cual ha sido obtenida; de manera intuitiva se podra decir que s!,
ahora que si se desea obtener una repuesta basada en hechos, se pueden aplicar dos tipos de
pruebas; la prueba de correccin y la prueba de completez, las cuales se realizan en base a
la prueba de induccin matemtica que ya se ha mencionado en unidades anteriores.
La prueba de correccin garantiza que todas las palabras que se producen al utilizar la
gramtica, efectivamente corresponden a la descripcin del lenguaje dado; basndose en la
longitud de la derivacin. Mientras que la prueba de la completez se asegura que la
gramtica produzca todas las palabras requeridas por el lenguaje. (Brena, 2003, Pg. 125)
Del mismo modo que dice que una GR produce un lenguaje regular (LR), se puede
decir que las gramticas independientes del contexto (GIL), construyen lenguajes
independientes de contexto (LIC), de los cuales se hablar a continuacin.
Como ya se menciono las GIL se caracterizan por que el lado derecho de sus
producciones a? no cuentan con alguna restriccin en cuanto a los tipos de elementos
que deben frmala, por lo que una gramtica de este tipo puede ser:
S ? aCa
C ? aCa
C? b
Teora de la Computacin
89
Lenguajes Independientes
del Contexto.
del LIC y poder representarlo mediante una formula, se hace uso del concepto de
derivacin que ya se ha mencionado en pginas anteriores, obteniendo la siguiente cadena.
S ? aCa
aaCaa
aaaCaaa
aaabaaa
Teora de la Computacin
90
Lenguajes Independientes
del Contexto.
produce, y estos a su vez producirn nuevos nodos hijos, siempre y cua ndo no se llegue a
tener como nodo hijo a un smbolo terminal, ya que en cuyo caso se tendra un nodo hoja.
(Kelley, 1993, Pg. 117) Por ejemplo, considrese la gramtica siguiente:
S ? aCa
C ? aCa
C? b
Y la derivacin
S ? aCa
aaCaa
aaaCaaa
aaabaaa
Teora de la Computacin
91
Lenguajes Independientes
del Contexto.
Esta gramtica a generado un nico rbol de derivacin y todas las derivaciones que
se generen de esta gramtica en busca de la misma cadena producir el mismo rbol de
derivacin; sin embargo existen casos en los que una derivacin puede ser realizada de
diferentes maneras, y por lo tanto producen rboles de derivacin distintos. Un ejemplo de
este tipo de gramticas es la siguiente:
S ? ScS
S ? SbS
S? a
(Kelley, 1995, Pg. 118)
Derivacin 1
Derivacin 2
S ? ScS
S ? SbS
S SbScS
S SbScS
S SbSbScS
S SbSca
S abSbScS
S SbSbSca
S ababScS
S SbSbaca
S ababacS
S Sbabaca
S ababaca
S ababaca
Teora de la Computacin
92
Lenguajes Independientes
del Contexto.
a) rbol de derivacin 1
b) rbol de derivacin 2
Como puede observarse, est gramtica produce dos rboles de derivacin distintos en la
bsqueda de la misma cadena, cuando existen este tipo de casos se dice que la gramtica de
la cual se ha derivado es una gramtica ambigua (Kelley; 1995, Pg. 119), lo comn es,
que se busque una gramtica no ambigua que produzca el mismo lenguaje, evitando la
creacin de cadenas con significado errneo; sin embargo puede existir gramticas cuya
ambigedad no puede evitarse, en dicho caso se dice que el lenguaje producido es un
lenguaje independiente del contexto inherentemente ambiguo. (Kelley, 1995, Pg. 120)
B donde B = 1,
denominadas producciones unitarias las cuales solo agregan un paso extra a la derivacin y
cuya existencia no tiene ningn sentido, y finalmente las producciones intiles; adems, el
resto de sus producciones son del tipo A ? a donde a ? ? , A ? AB donde ambos son
elementos no terminales. (Martin, 2004, Pg. 237)
Teora de la Computacin
93
Lenguajes Independientes
del Contexto.
Para lograr que una gramtica se encuentre en forma normal de Chomsky deben de
ser eliminadas las producciones no deseadas mencionadas en el prrafo anterior, para lo
cual se han planteado ya 4 tipos de algoritmos diferentes; que sern mencionados a
continuacin.
S?
S?
A?
A?
B?
C?
C?
D?
E?
F?
aA
e
B
G
bC
aD
a
aA
aA
ab
Como puede observarse la gramtica anterior presenta tres producciones cuya existencia no
tiene gran significado, ya que su derivacin no produce cadenas de variables terminales
validas, como es el caso del no terminal E; y si las producen no hay manera de llegar a
dichos no terminales desde el smbolo inicial, como es el caso de D y F. Dichas
producciones deben ser eliminadas, con tal fin se presentan los siguientes dos algoritmos,
los cuales transformarn a una gramtica G = (N, ? , S, P) en una gramtica final G= (N,
? , S, P). (Kelley, 1995, Pg. 123)
Teora de la Computacin
94
Lenguajes Independientes
del Contexto.
3.4.1.1 Algoritmo A
3.4.1.2 Algoritmo B
95
Lenguajes Independientes
del Contexto.
Un aspecto importante que hay que hacer resaltar con respecto de los algoritmos aqu
mostrados, es el de el orden de aplicacin, los algoritmos 3.4.1.1 y 3.4.1.2 deben de ser
aplicados en el orden que han sido mostrados, en caso contrario las gramticas producidas
no desarrollarn los lenguajes para los cuales originalmente se construyeron. (Kelley, 1995,
Pg. 126)
S?
S?
A?
B?
C?
C?
D?
E?
F?
aA
e
B
bC
aD
a
aA
aA
ab
S?
S?
A?
B?
C?
C?
D?
Teora de la Computacin
aA
e
B
bC
aD
a
aA
96
Lenguajes Independientes
del Contexto.
Para que una gramtica pueda transformarse a la forma normal de Chomsky debe de
estar libre de producciones del tipo A ?
eliminadas. Tal situacin no debe impedir que la gramtica en cuestin pueda ser
representada en la forma normal, por ello se permite la eliminacin momentnea de dichas
producciones y la transformacin de la gramtica a una forma normal; una vez
transformada la gramtica ser agregada la produccin S ?
e correspondiente. De tal
manera se obtendr el lenguaje original representado por L(G) {e}. (Kelley, 1995,
Pg.128)
e primero es necesario
identificar cada una de stas producciones, para tal fin se muestra el algoritmo 3.4.1.2, que
identifica en un conjunto A, todos los smbolos no terminales anulables dentro de la
gramtica G.
Teora de la Computacin
97
Lenguajes Independientes
del Contexto.
3.4.2.1 Algoritmo A
1. Inicializar A con todos los no terminales B para los que existe una
produccin e, es decir B ? e.
2. Repetir
Si B ? w para algn w ? (N ? )* y todos los smbolos de w estn en
A, aadir B a A.
(Kelley; 1995, Pg. 127)
Hasta que no se pueda aadir ms no terminales a A.
(Kelley, 1995, Pg.127)
S?
S?
E?
D?
aSb
E
bD
e
Como puede observar, dicha gramtica esta libre de producciones intiles, sin
embargo contiene la produccin D ? e, la cual es una produccin anulable y al aplicar el
algoritmo 3.4.2.1 se observar que es la nica produccin de ste tipo.
98
La nueva produccin es E ?
Lenguajes Independientes
del Contexto.
S?
S?
E?
E?
aSb
E
bD
b
cuya derivacin produce cadenas, idnticas a las producidas por la gramtica original, por
lo que la transformacin ha sido exitosa.
Teora de la Computacin
99
Lenguajes Independientes
del Contexto.
S?
S?
A?
B?
C?
C?
D?
aA
e
B
bC
aD
a
aA
S?
A?
B?
C?
C?
D?
aA
B
bC
aD
a
aA
Teora de la Computacin
100
Lenguajes Independientes
del Contexto.
S?
A?
B?
C?
C?
D?
aA
B
bC
aD
a
aA
La eliminacin de una produccin unitaria suele ser muy sencillo, basta con agregar
producciones del tipo A ? w, donde w es producida por B (B ? w), y B a su vez es
producida por A (A ? B), mientras que las producciones unitarias (A ? B) son eliminadas.
Un evento seguido a ste suele ser la aparicin de nuevas producciones intiles por lo cual
ser necesario aplicar nuevamente los algoritmos de eliminacin mostrados anteriormente.
(Kelley, 1995, Pg. 128)
3.4.3.1 Algoritmo A
1. Si A? B es una produccin, B es derivable de A.
2. Si C es derivable de A, C ? B es una produccin y B ? A, entonces B es
derivable de A.
3. Si A ? A es una produccin, A es derivable de A.
4. Ninguna otra variable es derivable.
101
Lenguajes Independientes
del Contexto.
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 gramtica anterior
se obtiene la gramtica G
S?
A?
B?
C?
C?
D?
aA
bC
bC
aD
a
aA
En este caso la produccin B ? bC se ha convertido en una produccin intil que puede ser
eliminada mediante el uso de los algoritmos 3.4.1.1 y 3.4.1.2, con lo cual se obtiene la
gramtica.
S?
A?
C?
C?
D?
Teora de la Computacin
aA
bC
aD
a
aA
102
Lenguajes Independientes
del Contexto.
La primera sustitucin por lo general se realiza con las variables terminales, ya que
pueden tenerse ms de una de estas variables en el lado derecho de la produccin; as pues
pueden transformarse producciones del tipo A ? s donde ambos son variables terminales,
por A ? BC, B ? s y C ? . (Martin, 2004, Pg. 238)
La segunda sustitucin suele realizarse con las variables no terminales, donde pueden
sustituirse producciones del tipo A ? ABC por producciones del tipo A? AX1 y X1 ? BC.
(Martin, 2004, Pg.238) Para una mejor explicacin se usar un ejemplo. Observe la
gramtica siguiente
S ? aSb
S? b
Dicha gramtica a sido limpiada de producciones anulables, intiles y unitarias, por los
algoritmos antes mencionados; como puede notarse una de sus producciones ya se
encuentra en forma normal de Chomsky, mientras que la otra debe de ser transformada. La
produccin S ? aSb puede ser remplaza por tres producciones nuevas, para tal fin se
crearn las variables no terminales Na y Mb que sustituirn las variables terminales a y b,
los cuales sern nuevamente producidos individualmente como sigue:
S
Na
Mb
S
Teora de la Computacin
?
?
?
?
NaSMb
a
b
b
103
Lenguajes Independientes
del Contexto.
Ahora, se tiene una produccin con ms de dos no terminales del lado derecho; nuevamente
esta produccin ser sustituida por una nueva, como se muestra a continuacin.
S
X1
Na
Mb
?
?
?
?
NaX1 b
SMb
a
b
Una nota interesante sobre la forma normal de Chomsky es que las gramticas
transformadas a esta forma normal producen rboles de derivacin binarios que son ms
sencillos de seguir. (Kelley, 1995, Pg.136)
Para poder transformar una gramtica a la FNG es conveniente obtener primero dicha
gramtica en la FNC, recuerde que dicha forma prohbe la existencia de producciones
vacas por lo tanto, un lenguaje independiente de contexto puede ser transformado a la
forma normal de Greibach siempre y cuando no sea un lenguaje vaco. (Kelley, 1995,
Pg.165)
Teora de la Computacin
104
Lenguajes Independientes
del Contexto.
Otro aspecto que debe de tenerse en cuenta para que una gramtica pueda ser
transformada a la FNG es el orden en que aparecen sus smbolos no terminales. Cada no
terminal en una gramtica en FNG es etiquetado con un orden de prioridad (de 0 a n),
donde el smbolo inicial tiene la prioridad ms baja; de tal manera que un smbolo no
terminal no puede producir a otro de menor prioridad que l; (Kelley, 1995, Pg.165) tal
como se muestra en el caso siguiente; considrese la gramtica
S
S
A
N
M
?
?
?
?
?
NA
b
SM
a
b
s se etiquetan los smbolos no terminales de est gramtica comenzando del smbolo inicial
(S0 , N1 , A2 , M3 ), se observar que en la tercera produccin, el smbolo no terminal A
produce el smbolo inicial S cuya prioridad es menor que A; est produccin es invalida
para la FNG, por lo que es necesario transformarla. El mtodo ms apropiado para dicha
transformacin es la eliminacin de factores izquierdos.
Teora de la Computacin
105
Lenguajes Independientes
del Contexto.
Paso de induccin. Las palabras generadas por G en n pasos, han de contener los
elementos producidos por las reglas B ? Yn , tal situacin indica que al realizar n + 1
pasos las cadenas contendrn todos los smbolos no terminales necesarios para
finalizar la derivacin.
4
El uso del smbolo en una gramtica se lee como lo indica que el smbolo no terminal puede producir
uno u otro conjunto de variables. Es lo mismo escribir B ? Y1 Y2 que B ? Y1 , B ? Y2 . (Martin, 2004, Pg.
204)
Teora de la Computacin
106
Lenguajes Independientes
del Contexto.
Finalmente, se observa que al aplicar las reglas de G que solo contienen variables
terminales, w pertenece a L.
Como puede analizar la prueba presentada muestra las razones por las cuales G genera las
misma cadenas que G; tal situacin quedar completamente comprendida con la aplicacin
de un ejemplo. Considere las siguientes gramticas.
S
S
A
A
A
A
?
?
?
?
?
?
aAb
bAa
aSb
bSa
a
b
S
S
S
S
S
S
S
S
a)
?
?
?
?
?
?
?
?
aaSbb
abSab
aab
abb
baSba
bbSaa
baa
bba
b)
Derivacin 1.a
Derivacin 1.b
Derivacin 2.a
Derivacin 2.b
S ? aAb
S aab
S?
S?
S
S
S
S ? bbSaa
S bbaabaa
Teora de la Computacin
aab
bAa
bbSaa
bbaAbaa
bbaabaa
107
Lenguajes Independientes
del Contexto.
Como puede observar ambas gramticas generan las mismas cadenas; por lo que su
equivalencia es ms que comprobable, G = G.
S ? ?1 ?2 ....... ?n
S ? ?1 N ?2 N ?mN
Teora de la Computacin
108
Lenguajes Independientes
del Contexto.
N ? a 1 a 2 . a n
N ? a 1 N a 2N a nN
aA
AS
bbb
S
A
A
N
N
?
?
?
?
?
aA
bbb
bbbN
S
SN
109
Lenguajes Independientes
del Contexto.
?
?
?
?
?
SC1 a b
N aA
MbMb
a
b
Esta gramtica se encuentra en FNC por lo que el lenguaje que produce es un lenguaje no
vaci y puede ser trans formada a la FNG, recuerde que sta forma solo admite
producciones del tipo A ? aw y A ? a, donde A ? aw debe de ser una produccin
recursiva por la derecha. (Kelley, 1995, Pg.167) Se inicia por eliminar la recursividad por
la izquierda, ya que no existen producciones donde un smbolo no terminal produzca a otro
de menor prioridad. Se crea un nuevo no terminal (E) que sustituye las producciones
recursivas.
S
C1
A
Na
Mb
E
?
?
?
?
?
?
a b aE bE
N aA
MbMb
a
b
C1 C1 E
Teora de la Computacin
?
?
?
?
?
?
a b aE bE
aA
bMb
a
b
aA aAE
110
Lenguajes Independientes
del Contexto.
Tambin se ha
111
Lenguajes Independientes
del Contexto.
Q x Z* , denominada funcin de
transicin.
(Martin, 2004, Pg. 255)
Como se observa los elementos que componen a un AP son los mismo que los que
componen a un AF, solo que son agregados dos elementos ms, el alfabeto de la pila y el
smbolo inicial de la pila. El alfabeto de pila suele ser diferente al alfabeto de entrada ya
suelen contener identificadores de parada para indicar el tope de la pila.
Teora de la Computacin
112
Lenguajes Independientes
del Contexto.
Otra gran diferencia que salta a la vista son las funciones de transicin, las cuales han
cambiado su estructura y ahora forman ternas del tipo (q, s, a ), (p, ) donde se indica que
de un estado actual q, a travs de un smbolo de entrada s y un smbolo del alfabeto de la
pila a que es sacado de la pila; se llega a un nuevo estado p, insertando ( ? Z ) dentro de
la pila.(Kelley, 1995, Pg. 145) Sin embargo las funciones de transiciones usadas en el
diagrama de un AP, son reducidas a la forma s / a / donde s es el smbolo de entrada
que esta siendo ledo, a es el smbolo que ser eliminado de la pila y es el smbolo que
ser insertado en la pila.(Brena, 2003, Pg. 146) Antes de continuar con las definiciones
formales de este tipo de autmatas, se realiza un ejemplo del diagrama de transiciones que
permite la representacin de dichos autmatas.
Considere el siguiente lenguaje, L = {xi y
2i
formadas por xs y ys, donde por cada x que exista deben de haber dos ys presentes en la
cadena. El AP que reconoce a est lenguaje tiene como alfabeto de entrada ? = {x, y},
como alfabeto de pila Z = {? #} y por smbolo inicial de la pila z = {#}. El smbolo #
ser el identificador que permitir verificar si la pila esta vaca. La figura 3.6 muestra el
autmata de pila que reconoce ste lenguaje.
Teora de la Computacin
113
Lenguajes Independientes
del Contexto.
finalmente se extrae el smbolo # con lo que se asegura que la pila ha quedado vaca, y la
cadena es aceptada.
? (q3,y,e) = (q4, e)
? (q1,x,e) = (q2,x)
? (q4,y,x) = (q3,e)
? (q2,x,e) = (q2,x)
? (q4,e,#) = (q5,e)
? (q2,y,x) = (q3,e)
Teora de la Computacin
114
Lenguajes Independientes
del Contexto.
En las siguientes pginas se realiza un ejemplo que desarrolla este mtodo. Considere
la gramtica G, constituida por las siguientes producciones.
S
M
N
M
N
?
?
?
?
?
zMNz
aMa
bNb
z
z
El primer pas a realizar, es la insercin del smbolo inicial S dentro de la pila; la cual
ya debe contener el smbolo inicial del alfabeto de pila, como se muestra en la figura 3.7.
Teora de la Computacin
115
Lenguajes Independientes
del Contexto.
Como puede observarse al introducir los nuevos elementos en la pila, la cima de sta
es ocupada por un smbolo terminal (z), si ste elemento coincide con el smbolo de la
cadena de entrada es eliminado de la pila, dando lugar a un nuevo smbolo no terminal (N)
en la cima de la pila, por lo que nuevamente es sustituido por los smbolos que produce
(bNb o z), ste procedimiento se lleva a cabo consecutivamente hasta que la pila se
encuentre vaca, como se muestra en la figura 3.9.
Teora de la Computacin
116
Lenguajes Independientes
del Contexto.
S
C1
A
Na
Mb
E
?
?
?
?
?
?
a b aE bE
aA
bMb
a
b
aA aAE
Teora de la Computacin
117
Lenguajes Independientes
del Contexto.
RESUMEN
La construccin de lenguajes formales requiere de la existencia de reglas gramaticales
que indiquen cual ser su constitucin. Dichas reglas son llamadas gramticas.
fB, la
Teora de la Computacin
118
Lenguajes Independientes
del Contexto.
Una vez definidas las reglas gramaticales de un lenguaje pueden obtenerse todas las
posibles cadenas o palabras de las cuales sta constituido a partir de un mtodo de
derivacin, el cul puede ser representado por medio de diagramas denominados rboles de
derivacin. Un rbol de derivacin es un grfico constituido por nodos que son unidos entre
si por medio de lneas denominadas aristas, estas uniones construyen ramificaciones que
representan cada una de las producciones de la gramtica que son utilizadas en una
derivacin. Estos rboles se construyen colocando en el nodo inicial o nodo raz el smbolo
inicial de la gramtica, el cual tendr como nodos hijos cada uno de los smbolos que
produce, y estos a su vez producirn nuevos nodos.
Cuando una gramtica produce dos rboles distintos para la misma derivacin se dice
que la gramtica de la cual se ha derivado es una gramtica ambigua, lo comn es que se
busque una gramtica no ambigua que produzca el mismo lenguaje, evitando la creacin de
cadenas con significado errneo; sin embargo puede existir gramticas cuya ambigedad no
puede evitarse, en dicho caso se dice que el lenguaje producido es un lenguaje
independiente del contexto inherentemente ambiguo.
Para lograr que una gramtica se encuentre en forma normal de Chomsky deben de
ser eliminadas las producciones no deseadas mencionadas en el prrafo anterior, para lo
Teora de la Computacin
119
Lenguajes Independientes
del Contexto.
cual se han planteado ya 4 algoritmos diferentes, los algoritmo 3.4.1a y 3.4.2a para le
eliminacin de producciones intiles, el algoritmo 3.4.2a para la eliminacin de
producciones anulables, y el algoritmo 3.4.3a para la eliminacin de producciones unitarias.
Una vez que se ha eliminado ste tipo de producciones se requiere transformar aquellas
producciones que contengan ms de un smbolo terminal o ms de dos no terminales de su
lado derecho; para tal fin se requiere de la generacin de nuevos no terminales que
sustituyan los smbolos terminales y no terminales excedentes en las producciones. Como
se muestra a continuacin; suponga que la gramtica mostrada del lado izquierdo es a
gramtica original mientras que la del lado derecho es la gramtica ya transformada.
S ? aSb
S? b
S
X1
Na
Mb
?
?
?
?
NaX1 b
SMb
a
b
Teora de la Computacin
120
Lenguajes Independientes
del Contexto.
a 1 a 2 . a n a 1N
Estas dos tcnicas son aplicadas una y otra vez hasta transformar la gramtica a la
forma deseada. Un aspecto que debe de tener en cuenta para que una gramtica pueda ser
transformada a la FNG es el orden en que aparecen sus smbolos no terminales. Cada no
terminal en una gramtica en FNG es etiquetado con un orden de prioridad (de 0 a n),
donde el smbolo inicial tiene la prioridad ms baja; de tal manera que un smbolo no
terminal no puede producir a otro smbolo no terminal de menor prioridad que l.
Teora de la Computacin
121
Lenguajes Independientes
del Contexto.
Q x Z* , denominada funcin de
transicin.
Las funciones de transicin de una AP son de la forma (q, s, a), (p, ) donde se indica
que de un estado actual q, a travs de un smbolo de entrada s y un smbolo del alfabeto de
la pila a que es sacado de la pila; se llega a un nuevo estado p, insertando (smbolo del
alfabeto de pila) dentro de la pila. Sin embargo las funciones de transiciones usadas en el
Teora de la Computacin
122
Lenguajes Independientes
del Contexto.
Teora de la Computacin
123
Lenguajes Independientes
del Contexto.
GLOSARIO
Gramtica. Conjunto de reglas que rigen el orden de las palabras en una oracin.
Derivacin. Sustitucin contina de las reglas gramaticales.
rbol de derivacin. Grfico constituido por nodos y lneas que los unen entre si,
formando ramificaciones; que representan cada una de las producciones de la
gramtica que son utilizadas en una derivacin.
Ambigedad. Termino usado para indicar algo incierto o de doble sentido.
Lenguaje independiente del contexto inherentemente ambiguo. Se le llama as a
aquel LIC cuya gramtica contiene ambigedad permanente.
Prueba de correccin. La prueba de correccin garantiza que todas las palabras que
produce una gramtica, efectivamente corresponden a la descripcin del lenguaje
basndose en la longitud de la derivacin.
Prueba de completez. La completez se asegura que la gramtica produzca todas las
palabras requeridas por el lenguaje.
Producciones vacas o anulables. Son aquellas producciones de la forma S ? e.
Producciones unitarias. Son aquellas producciones de la forma S ? B, donde la
longitud de B es igual a uno.
Producciones intiles. Son aquellas producciones que no tienen ningn significado
dentro de una gramtica, ya que no producir ninguna cadena a partir del smbolo
de inicial.
Autmata de pila (AP). Formalmente un autmata de pila (AP) se define como una
7-tupla, AP = (Q, ? , ?, s, z, F, ?) donde
o
o
o
o
o
o
o
Teora de la Computacin
124
Lenguajes Independientes
del Contexto.
EJERCICIOS.
2. Mencione los pasos necesarios para transformar una gramtica a la forma normal de
Greibach.
3. Mencione los pasos necesarios para transformar una gramtica a la forma normal de
Chomsky.
4. Describe el funcionamiento de un autmata de pila.
5. Defina formalmente un autmata de pila.
6. Haciendo uso de los algoritmos de transformacin y elimina las producciones e,
producciones y producciones unitarias estandariza las siguientes gramticas.
a)
S?
C?
D?
E?
F?
CD
aC e
ab bD e
fF c
c
b)
S ? aSb bSa e
C ? aC e
D ? ab bD e
c)
S?
A?
B?
C?
D?
a aA B C
aB e
Aa
bCD
ccc
d)
S?
A?
B?
C?
D?
Teora de la Computacin
aAb cEB CE
dBE eeC
ff D
gFB ae
h
125
Lenguajes Independientes
del Contexto.
PROBLEMAS
1. Observe los siguientes AF y construya la gramtica que represente a cada uno de ellos.
a.
b.
c.
a) S ? AB
A ? aA e
B ? a bB e
b) S ?
A?
A?
B?
c) S ? ABA
A ? aA e
B ? bB e
e)
AcA
aA e
aB
aB bB e
A? AcA
A? AbA
A? a
Teora de la Computacin
126
Lenguajes Independientes
del Contexto.
3. Obtenga una gramtica independiente del contexto para cada uno de los siguientes
lenguajes.
a. L = {am bn m = n}
b. L = {am bn n m 2n}
4. Obtenga un autmata de pila que reconozca cada uno de los siguientes lenguajes.
a. L = {[m an bn ] m m > 0, n > 0}
b. L = {( m(n xa yb )n )m m,n = , a > 1, b = 2}
c. L = {an bn+m cm n, m > 0}
d. L = {w ? {a,b}* w contiene una a ms que bs}
5. Obtenga el autmata de pila que reconozca la siguiente gramtica.
a) S ?
A?
A?
B?
B?
AyB
xAy
zB
x
z
Teora de la Computacin
b)
S?
F?
G?
H?
eF
G H
eG H
fH f
127
Lenguajes Independientes
del Contexto.
LECTURA COMPLEMENTARIA
Noam Chomsky
Como ya se menciono, la gramtica se define como una rama de la lingstica, que
estudia la forma y la composicin de las palabras. En particular la gramtica generativa es
aquella que permite establecer las reglas de generacin para todas las posibles oraciones de
un lenguaje.
Teora de la Computacin
128
Lenguajes Independientes
del Contexto.
Teora de la Computacin
129
Lenguajes Independientes
del Contexto.
BIBLIOGRAFA
1. Brena,
verano
2003
Ramn
Brena.
Autmatas
Lenguajes.
En:
Teora de la Computacin
130
Lenguajes Independientes
del Contexto.
RETROALIMENTACIN.
Retroalimentacin a los ejercicios.
1.
3.
5.
Teora de la Computacin
131
Lenguajes Independientes
del Contexto.
a. S ? aA e
A ? bB
B ? a aS
c. S ? aE aF b
E ? bE b
F ? aF b
2.
3.
4.
a.
Teora de la Computacin
132
Lenguajes Independientes
del Contexto.
c.
5.
a.
Teora de la Computacin
133
C
A
P
I
T
U
L
O
IV
MQUINAS DE
TURING
OBJETIVO
Mquinas de Turing
Lenguajes
recursivamente
enumerables
Variantes de una Mquina
de Turing
Puede transformarse
Reconocedoras
Mquinas de
Turing
El Problema de Hilbert
Se representacin grfica
Construccin modular de
una MT
Teora de la Computacin
135
Mquina de Turing
4. MQUINA DE TURING
4.1 INTRODUCCIN
Turing propuso con su mquina la existencia de una cinta infinita en ambos sentidos
(izquierda y derecha), la cual esta ligada a una cabeza de lectura/escritura que poda
moverse en ambos sentidos sobre la cinta. Adems fue adicionado un alfabeto para esta
cinta cuyo elemento esencial es el smbolo en blanco que permite marca el inicio y final de
toda cadena sobre la cinta. Dichas cintas pueden sufrir algunas modificaciones dando lugar
a la existencia de variaciones en la MT; sin embargo, estas variaciones no implican cambio
drsticos sobre la esencia de las mquinas propuestas por Turing, pero si permiten que su
construccin sea ms sencilla.
Teora de la Computacin
136
Mquina de Turing
Una mquina de Turing es representada como una cinta infinita dividida en celdas de
almacenamiento, a las que se puede acceder en cualquier parte de la cinta; cada una de las
celdas puede almacenar un smbolo que es reconocido por una cabeza de lectura/escritura
que recorre la cinta en cualquier sentido (izquierda a derecha derecha a izquierda), (figura
4.2). (Kelley, 1995, Pg. 172)
Teora de la Computacin
137
Mquina de Turing
Por ejemplo, considere la mquina de Turing que reconoce el lenguaje definido por L
= {an bn cn n > 0}.
Teora de la Computacin
138
Mquina de Turing
d (q0, ? ) = (q1, ? , R)
d (q1, a) = (q2, x, R)
d (q2, a) = (q2, a, R)
d (q2, y) = (q2, y, R)
d (q2, b) = (q3, y, R)
d (q3, b) = (q3, b, R)
d (q3, z) = (q3, z, R)
d (q3, c) = (q4, z, L)
d (q4, z) = (q4, z, L)
d (q4, y) = (q4, y, L)
d (q4, b) = (q4, b, L)
d (q4, a) = (q4, a, L)
d (q4, x) = (q1, x, R)
d (q1, y) = (q5, y, R)
d (q5, y) = (q5, y, R)
d (q5, z) = (q6, z, R)
d (q6, z) = (q6, z, R)
d (q6, ? ) = (q7, ?, L)
Teora de la Computacin
139
Mquina de Turing
Otra manera de construir una MT es haciendo uso de los bloques bsicos para la
construccin de mquinas de Turing. Cada uno de stos bloques representa ya por si solos
una mquina, la unin de estos bloques permiten la construccin de mquinas complejas
capaces de reconocer un lenguaje.
Teora de la Computacin
140
Mquina de Turing
Antes de poder visualizar los bloques bsicos de una MT, se debe recordar que la MT
permite realizar dos movimientos sobre una cinta, los cuales son descritos a continuacin.
a ) Movimiento de lectura
Teora de la Computacin
141
Mquina de Turing
encontrar una x )
Figura 4.5 Bloques de bsqueda
Teora de la Computacin
142
Mquina de Turing
[
5
a) Movimiento continuo hacia la derecha
buscando x.
buscando y.
Figura 4.6 Movimientos cclicos de MT
143
Mquina de Turing
Mientras tanto, todos los problemas que no pueden ser reconocidos por una mquina
de Turing son denomina algoritmos irresolubles.
Lenguajes irresolubles
Lenguajes recursivamente
enumerables
Lenguajes recursivos
Teora de la Computacin
144
4.5.1 Permanencia
d : Q x ? ? Q x ? x {L, R}
(Kelley, 1995, Pg. 194)
d : Q x ? ? Q x ? x {L, R, S}
(Kelley, 1995, Pg. 194)
permitiendo que la cabeza de lectura/escritura mantenga una posicin fija al leer y rescribir
cualquier smbolo sobre la cinta.
Teora de la Computacin
145
4.5.2 Subceldas
a a
. b
b b
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).
Teora de la Computacin
146
Mquina de Turing
a A a b b b ?
* B b b
* a
a ?
4.5.4 Multicintas
Teora de la Computacin
147
4.5.5 MT no deterministas
d (q, s ) Q x ? x {L, R}
(Kelley, 1995, Pg. 199)
Y al igual que los AF, es posible representar una MT determinista mediante una no
determinista y viceversa.
Teora de la Computacin
148
149
Mquina de Turing
150
Mquina de Turing
RESUMEN
Las denominadas Mquinas de Turing (MT) son mquinas abstractas que permiten el
reconocimiento de los lenguajes de tipo 0 (recursivamente enumerables).
Las mquinas de Turing son vistas como una cinta infinita dividida en celdas de
almacenamiento a la cual puede acceder en cualquier parte de la cinta; cada una de las
celdas puede almacenar un smbolo y puede ser ledo por una cabeza de lectura/escritura
que recorre la cinta en cualquier sentido (izquierda a derecha derecha a izquierda).
Teora de la Computacin
151
Mquina de Turing
Se dice que un lenguaje es aceptado por una MT s todas las cadenas de ste son
reconocidas por dicha mquina. Los lenguajes que son aceptados por una MT son los
denominados lenguajes recursivamente enumerables (R.E.), en particular solo una parte de
estos lenguajes son completamente aceptados por una mquina de est tipo, dicho lenguajes
son los lenguajes recursivos, o tambin denominados lenguajes decidibles, que son
aquellos para los que existe una MT que reconozca un al lenguaje.
Una MT puede ser modificada de diferentes maneras, creando nuevas mquinas que
permiten, al igual que la MT bsica, el reconocimiento de lenguajes. Tales modificaciones
se extienden desde evitar el movimiento de la cabeza de lectura/escritura sobre la cinta,
hasta crear cinta de mltiples dimensiones, es decir, dichas cintas se extienden hacia la
izquierda, derecha, arriba y abajo de manera infinita.
d : Q x ? ? Q x ? x {L, R, S}
Teora de la Computacin
152
Mquina de Turing
d : Q x ? n ? Q x ? n x {L, R}n
Posteriormente
Teora de la Computacin
Turing,
parti
de
ste
problema
denominado
153
Mquina de Turing
Teora de la Computacin
154
Mquina de Turing
GLOSARIO
Mquina de Turing. Formalmente una mquina de Turing se define como una 7tupla M = (Q, ? , ?, s, ?, F , d) donde
- Q conjunto finito de estados
- ? es el alfabeto de entrada
- ? es el alfabeto de la cinta
- s es el estado inicial de la pila
- ? es un smbolo en blanco ? ?
- d es una funcin parcial de transicin definida por d : Q x ? ? Q x ? x {L,
R}
Lenguajes recursivamente enumerable. La palabra enumerable proviene de que las
cadenas de dichos lenguajes pueden ser listadas (enumeradas) por una mquina de
Turing. (Kelley, 1995, Pg. 180)
Decidibles. Termino que es utilizado para indicar si un problema cuenta con una
solucin, es decir se puede decidir o explicar.
Lenguajes recursivos. Un lenguaje L es recursivo sobre de un alfabeto ?, si para
cada cadena que perteneces ? * existe un procedimiento decidible.
Algoritmos irresolubles. Se definen as a aquellos problemas que no pueden ser
resueltos por una secuencia determinada de operaciones. (Brena, 2003, Pg.191)
Computar. Contar o calcular por medio de nmeros alguna operacin, evento,
problema.
Computable. Que se puede computar.
Complejidad. La complejidad computacional hace referencia a la cantidad de
recursos computacionales requeridos para resolver un problema.
Teora de la Computacin
155
Mquina de Turing
EJERCICIOS
3. Explique cada una de las variantes que presentan las mquinas de Turing y busque un
ejemplo de cada una de ellas.
4. Mencione cuales son los bloques bsicos para la construccin de una MT.
7. Quin fue David Hilbert y cual es el problema que el planteo, dando origen al
planteamiento de la mquina de Turing?
Teora de la Computacin
156
Mquina de Turing
PROBLEMAS
1. Construya una maquina de Turing que permita reconocer el siguiente lenguaje.
a. L = {xn ym zn n,m = 0}
b. L = {zn am zn am by zn by zn n = 1, m,y 0}
c. L = {an b2n n >0}
d. L = { xn yn+2 zn+3 n = 0}
e. L = { an bm cn+m n >0 ,m = 0}
2. Haciendo uso de las variantes de las MT construya una MT que reconozca los lenguajes
mostrados en la pregunta anterior y adems que reconozca los mostrados a
continuacin.
a. L = {zn am zn am by zn by zn n = 1, m,y 0}
b. L = {w w es una cadena cuyo nmero de xs es mayor al nmero de ys por las
que esta formada}
a.
Teora de la Computacin
157
Mquina de Turing
LECTURA COMPLEMENTARIA
Teora de la Computacin
158
Mquina de Turing
Teora de la Computacin
159
Mquina de Turing
beca a Cambridge, Turing finalmente logr ser aceptado en el King's College tras haber
fracasado dos veces consecutivas en su intento por obtener una beca del Trinity College.
En 1932, comenz a estudiar el entonces reciente trabajo de Von Neumann en
mecnica cuntica, lo cual le permiti canalizar sus dudas espirituales por la va de la
rigurosidad cientfica. Al mismo tiempo, la homosexualidad se volvi un rasgo distintivo de
su personalidad [3]. En esa poca hizo amistad con un joven estudiante de matemticas
llamado James Atkins, quien ms tarde sera su amante. Pese a que los crculos ms
frecuentados por los homosexuales en King's College eran los literarios, Turing prefera los
deportes, y era frecuente que practicara remo, carreras a campo traviesa, y veleo en un
pequeo bote. Tambin aprendi a tocar el violn, pero nunca se hizo diestro con el
instrumento.
Las cosas empezaron a ir bien para Turing, pues se gradu de la licenciatura en
matemticas con honores en 1934. En 1935, obtuvo otra beca del King's College por su
trabajo en el teorema del lmite central en probabilidad (el cual redescubri sin saber nada
sobre el trabajo previo en la materia). En 1936 obtuvo el Premio Smith por su trabajo en
teora de la probabilidad, y comenz a profundizar su estudio del Entscheidungsproblem,
propuesto originalmente por Hilbert, y que nadie haba podido resolver. Bsicamente, la
pregunta es si existe, al menos en principio, cualquier mtodo o proceso definido mediante
el cual todas las cuestiones matemticas pueden decidirse (es decir, determinar si existe
alguna manera de escribir un algoritmo para cualquier tipo de problema).
De Europa a Amrica
El resultado del trabajo de Turing en el problema de Hilbert concluy en abril de
1936, pero debido a que al mismo tiempo el lgico norteamericano Alonzo Church haba
publicado un trabajo similar, Turing tuvo que posponer su artculo (ahora considerado
clsico) hasta agosto de 1936, que fue titulado "Sobre los nmeros computables, con una
aplicacin al Entscheidungsproblem". Tras la publicacin del artculo de Turing, la
comunidad cientfica se dio cuenta de que la forma en la que ste abord el problema era
muy distinta al enfoque de Church, y aunque Turing no lo saba, el concepto de mquina de
Teora de la Computacin
160
Mquina de Turing
Teora de la Computacin
161
Mquina de Turing
"Bombas", que se utilizaban para descifrar el cdigo enigma. Aunque el descifrar los
mensajes de la fuerza area alemana se volvi cosa rutinaria para la inteligencia britnica,
los mensajes de la marina seguan siendo considerados como imposibles de descifrar.
Turing se sinti feliz de poder trabajar en la ambiciosa tarea de descifrar tales mensajes, y
dio muestra de su genio una vez ms cuando sus sofisticadas tcnicas estadsticas
empezaron a producir frutos hacia fines de 1939, aunque no fue sino hasta mediados de
1941 que pudieron descifrar cotidianamente los mensajes de la marina teutona. Los
alemanes complicaron an ms los cdigos de sus submarinos en febrero de 1942, y
repentinamente los ingleses fueron nuevamente incapaces de descifrarlos. En su deseo por
obtener mayores velocidades con sus mquinas descifradoras, la gente de Bletchley Park
comenz a construir la primera computadora electrnica, llamada Colossus, que estuvo
bajo la supervisin de Turing. Eventualmente, se construiran diez de estas mquinas, y la
primera empez a operar en diciembre de 1943, dos aos antes que el ENIAC (la
computadora digital electrnica construida en la Universidad de Pensilvania, en Estados
Unidos). Aunque el Colossus tambin usaba un gran nmero de tubos de vaco e
interruptores digitales, esta mquina (a diferencia de su contraparte americana) se dise y
utiliz exclusivamente para descifrar mensajes.
Se dice que, en un cierto punto de la Segunda Guerra Mundial, Turing se lleg a convencer
tanto de que los alemanes invadiran Inglaterra, que convirti todo su dinero a lingotes de
plata, y los transport en una carriola al bosque que rodea a Bletchley Park, donde enterr
su tesoro en dos sitios distintos. Esta operacin le cost a Turing no slo lesionarse la
espalda, sino tambin la prdida de sus ahorros, porque cuando la guerra termin, no pudo
acordarse de ninguno de los dos sitios donde haba enterrado los lingotes de plata.
Otra ancdota que se recuerda del llamado 'Prof' Turing es que le ofreci matrimonio
a una de sus colegas en Bletchley Park, llamada Joan Clark, la cual acept gustosamente.
Turing hubo de retractarse despus de la oferta, dicindole a su prometida acerca de su
homosexualidad. De los seis aos que Turing pas trabajando para el servicio de
inteligencia britnico, lo que ms se lamenta es que un hombre de su talla intelectual no
Teora de la Computacin
162
Mquina de Turing
pudiera seguir publicando ms trabajos cientficos como los tres que logr publicar antes de
que estallara la guerra.
Por su trabajo en el Colossus, que para l no fue ms que la representacin fsica de la
mquina universal que diera a conocer en su artculo de 1937, recibi la Orden del Imperio
Britnico en 1946.
Despus de la Guerra
En 1944, Turing estaba cautivado con el potenc ial de la computadora que haba
concebido tericamente, y fue contratado por el Laboratorio Nacional de Fsica (NLP por
sus siglas en ingls) en Inglaterra para competir con el proyecto americano EDVAC, de
John Von Neumann, el cual irnicamente se haba adelantado a Turing en la publicacin de
la idea de una computadora electrnica. Turing fungi como Oficial Cientfico Principal en
el NLP, trabajando en el Automatic Computing Engine (ACE). Turing tuvo la visin de una
computadora con memoria que implementara las funciones aritmticas mediante
programacin en vez de con componentes electrnicos, y que podra desempear todo tipo
de tareas (por ejemplo, manejo de archivos, lgebra, jugar ajedrez, encriptamiento, etc.)
Hacia 1947, concibi la idea de las redes de cmputo y el concepto de subrutina y
biblioteca de software. Sin embargo, al percatarse que los ingenieros involucrados en su
proyecto no haban producido nada tangible de su mquina en un largo perodo, comenz a
sentirse sumamente frustrado. En 1947 Turing pidi un ao sabtico en el que se fue al
King's College. En vez de publicar los principios fundamentales de cmputo que haba
descubierto, se dedic a estudiar fisiologa y neurologa, y en un reporte interno del NLP de
esa poca, describe las ideas bsicas de lo que hoy se conoce como una red neuronal.
Cuando Turing regres al NLP en 1948 y se dio cuenta de que no se haba realizado mayor
progreso en su proyecto, decidi renunciar.
Fue tambin en esos das en que Turing comenz a correr largas distancias con
frecuencia, sintiendo que necesitaba el ejercicio. Se sabe que gan los campeonatos de las 3
y 10 millas de su club (el Walton Athletic Club), y que qued en 5o. lugar en un maratn de
aficionados de 1947. De hecho, se interes en prepararse para el equipo britnico de
Teora de la Computacin
163
Mquina de Turing
atletismo con vistas a las Olimpadas de 1948, pero sus planes se vinieron abajo debido a
una lesin en la cadera.
El regreso de Turing a Cambridge le ayud a formar un crculo de amigos ms
extenso, y le motiv a hablar ms abiertamente acerca de su sexualidad. Un estudiante de
matemticas del King's College, llamado Neville Johnson, fue su amante en aquellos das.
Tras su renuncia al NLP, Turing se fue a trabajar al laboratorio de cmputo de la
universidad de Manchester, donde su viejo mentor, Newman, haba logrado construir la
mquina de sus sueos. Su trabajo fue el desarrollo de software, y nada realmente
memorable se produjo durante este perodo. Un poco ms tarde, sin embargo, Turing
plasm sus ideas sobre la filosofa de las mquinas y la mente en un artculo llamado
"Computing Machinery and Intelligence", que se public en 1950, y todava se considera
un clsico en Inteligencia Artificial.
En 1950, comenz a interesarse en los usos prcticos de las matemticas, y desarroll
un trabajo pionero en la teora de la morfognesis: la teora del crecimiento y la forma en
biologa. Turing se fue a vivir a Manchester, comprando su primera casa propia en
Wilmslow. En julio de 1951 fue electo "fellow" (miembro) de la Sociedad Real por sus
contribuciones cientficas de 15 aos atrs.
La humillacin y su misteriosa muerte
En la navidad de 1951, Turing entabl amistad con un joven desempleado de
Manchester, que despus sera su amante. A principios de 1952, su casa en Wilmslow fue
robada por un amigo de su amante, y Turing acudi a la polica, sin revelar su relacin
homosexual. Cuando la polica averigu la historia completa, decidi arrestar a Turing por
"indecencia mayor", y fue llevado a juicio el 31 de marzo de 1952. En la corte, Turing, no
neg su homosexualidad, y dijo que no vea nada malo en ella. Eso le vali ser condenado a
un ao de prisin, y conmut su condena por un ao de tratamiento con hormonas
femeninas que le causaron impotencia, y le hicieron brotar senos, adems de provocarle
depresiones agudas. Aunque eso no le impidi continuar con su trabajo en la morfognesis
Teora de la Computacin
164
Mquina de Turing
Teora de la Computacin
165
Mquina de Turing
BIBLIOGRAFA
1. Brena,
verano
2003
Ramn
Brena.
Autmatas
Lenguajes.
En:
En: http://fermat.eup.udl.es/~cic/2003/2003_cacic_construc.pdf
El
Enigmtico
Alan
Turing.
En:
http://www.lania.mx/biblioteca/newsletters/1999-otono- invierno/aturing.html.
Consultado por ltima vez Abril 2006.
4. Dean Kelley, mayo 1995 Dean Kelley. Teora de autmatas y lenguajes formales.
Editorial: Prentice-Hall.
5. ENCARTA, 2006. Biblioteca de Consulta Microsoft Encarta. De 1993 a 2005.
Editado por Microsoft Corporation.
6. Gutirrez, 1997; Claudio Gutirrez. La informtica como ciencia terica. En:
http://www.claudiogutierrez.com/bid- fod-uned/bibliografia.html#Penrose%2089.
Consultado por ltima vez Abril 2006.
7. Salas, Sanz; octubre 2001 Pedro Salas y Angel Sanz. Tendencias Cientficas. En:
http://www.webzinemaker.com/admi/m6/page.php3?page=2&total=63&num_web=
1604&rubr=4&id=10460. Consultado por ltima vez en Abril del 2006.
Teora de la Computacin
166
Mquina de Turing
RETROALIMENTACIN
Retroalimentacin a los ejercicios.
1.
Una mquina de Turing es representada como una cinta infinita dividida en celdas de
almacenamiento, a las que se puede acceder en cualquier parte de la cinta; cada una
de las celdas puede almacenar un smbolo que es reconocido por una cabeza de
lectura/escritura que recorre la cinta en cualquier sentido (izquierda a derecha
derecha a izquierda). Tal cinta es representada en la siguiente figura.
3.
d : Q x ? ? Q x ? x {L, R, S}
Teora de la Computacin
167
Mquina de Turing
a A
. B b B .
C c ?
Subceldas
El contenido de las celdas puede ser representado por n-tuplas ordenas, por ejemplo
(? , a, a), (b, b, b), (c, c, ? ).
1.
2. Escribe un nuevo smbolo en cada una de las celdas barridas por las
cabezas de lectura/escritura.
3. Mueve cada una de sus cabezas en el sentido requerido
Lo cual cambia las funciones de transicin a la forma
d : Q x ? n ? Q x ? n x {L, R}n
Teora de la Computacin
168
Mquina de Turing
Alan Mathison Turing (1912 - 1954). Naci en Londres (Gran Bretaa), estudio en la
universidad de Cambridge, en donde se gradu de la licenciatura de matemticas con
honores en 1934. En abril de 1936, public el artculo "On computable numbers, with
an application to the Entscheidungsproblem" en el que introduce el concepto de
algoritmo y de mquina de Turing dando respuesta al problema de decisin
planteado por Hilbert en 1900. Estudia tambin en la universidad de Princeton
(EE.UU). Turign colabor en la Segunda Guerra Mundial, descifrando los cdigos
emitidos por la mquina Enigma utilizada por los alemanes. Y comienza la
construccin de la primera computadora electrnica, llamada Colossus. Otro de los
campos de investigacin de Turing fue la inteligencia artificial, se puede decir que
esta disciplina naci a partir del artculo titulado "Computing Machinery and
Inteligence" publicado por Turing en 1950. En 1951, es nombrado miembro de la
Sociedad Real de Londres por sus contribuciones cientficas.
7.
Teora de la Computacin
169
Mquina de Turing
1. a.
c.
e.
Teora de la Computacin
170
Mquina de Turing
2. a.
c.
e.
Teora de la Computacin
171
C
A
P
I
T
U
L
O
V
DECIBILIDAD
OBJETIVO
Definir
los
lenguajes
decidibles,
los
Decibilidad
Lenguajes
recursivamente
enumerables
Que forman parte de
Lenguajes decibibles
El Problema de Halting
Presenta
Define a
Decidibilidad
Se relaciona
Decidibilidad de Teoras
Lgicas
Teora de la Computacin
173
5. DECIBILIDAD
5.1 INTRODUCCIN
Teora de la Computacin
174
Decidibilidad
Un sistema formal o un sistema axiomtico es un artificio matemtico compuesto de smbolos que se unen
entre s formando cadenas que a su vez pueden ser manipuladas segn reglas para producir otras cadenas.
(http://es.wikipedia.org/wiki/Sistema_formal, Abril 2006)
Teora de la Computacin
175
Decidibilidad
Los lenguajes recursivamnete enumerables o aceptables son aquellos para los que
existe una MT cuya ejecucin obtiene un estado de parada para cada cadena que entra en l.
Formalmente se define a un lenguaje aceptable como :
Los lenguajes recursivos pueden verse como aquellos para los cuales existe una
funcin recursiva que puede ser calculada por una MT (f(x) = y). En otras palabras se dice
que un lenguaje es decidible si la secuencia de cadenas que lo forman son tambin
decidibles; de manera formal un lenguaje recursivo se define como:
176
Decidibilidad
Teora de la Computacin
177
puede existir; lo que a su vez equivale a decir que el problema que estamos estudiando es
indecible.
Tal
proceso
es
representado
grficamente
en
la
figura
5.2.
Para a w 1
w
B
No para a w 0
Para a B(w) 1
Para a w 1
w
B
No para a w 0
No para B(w) 0
No para a A(w) 0
Para a B(w) 1
B(w)
A
No para a B(w) 0
Para a A(w) 1
178
La lgica es considerada como una disciplina y rama de la filosofa que estudia los
principios formales del conocimiento humano (Microsoft, 2003, Lgica). La lgica se basa
en la creacin de premisas o proposiciones cuyo estudio lleva a la construccin de
conclusiones validas.
A travs de varios siglos la lgica formal ha pasado por varios periodos, desde sus
inicios con los griegos, entre los que sobresalen Platn, Euclides, Arqumedes, Aristteles,
Leibniz, Crisipo de Soli cuyo planteamiento de las tablas de verdad son fundamentales hoy
en da para la creacin de una PC; pasando por los matemticos britnicos George Boole y
Augustus De Morgan, el alemn Gottlob Frege, los matemticos britnicos Bertrand
Russell y Alfred North Whitehead hasta nuestros das con la colaboracin de cientos de
personas distinguidas en estos mbitos de estudio . La evolucin de la lgica con la
aportacin de todos estos cientficos y filsofos llev cientos de aos por lo cual la historia
de la lgica puede dividirse en varios periodos, la lgica tradicional de 500 A. C. a 1847
D.C.; la lgica en edad media de 1847 a 1880; la lgica en edad moderna de 1880 a 1960 y
la lgica en una edad contempornea a partir de 1960 hasta nuestros das, de la cual surge
la Lgica Computacional que hoy en da fluye y se expande por todo el mundo,
permitiendo a la humanidad construir sistemas tan poderosos y serviciales que seguramente
Platn nunca imagino.
A travs de todo este estudio puede concluirse que la lgica ha tenido como objetivo
el de mecanizar tareas en las que interviene la capacidad deductiva. Esto a travs del
planteamiento de proposiciones que llevan a una deduccin lgica, creando teoras estables.
En nuestros das la lgica ha tomado otro enfoque. La computacin, cuyo poder
deductivo se encuentra ligado a los alcances lgicos que se han encontrado; concluye que
todo aquello que involucra una deduccin lgica valida, es computable.
Una de estas
nociones computables son, como ya se sabes, las tan mencionadas Mquinas de Turing,
cuyo poder permite el reconocimiento de lenguajes y teoras lgicas.
Teora de la Computacin
179
Proposicin tan clara y evidente que se admite sin necesidad de demostracin. Cada uno de los principios
fundamentales e indemostrables sobre los que se construye una teora.
Teora de la Computacin
180
Decidibilidad
RESUMEN
Las Mquinas de Turing (MT) estudiadas en la unidad pasada, han definido
nicamente un estado de aceptacin; cuando una cadena entra a la mquina y llega a este
estado, se dice, que la cadena ha sido aceptada, mientras que el resto de las cadenas suelen
quedarse sobre algn estado intermedio, deducindose que la cadena no es valida. Ahora
considere una MT que define dos estados, el de aceptacin y el de rechazo cuando una
cadena no es valida para el lenguaje, la MT suele llegar a este estado de rechazo o de
parada, indicando de manera formal que la cadena no es aceptada. Dichas mquinas suelen
obtener un resultado de aceptacin o de rechazo sobre las cadenas que recibe como entrada,
cuando esto ocurre se dice que las entradas recibidas por dicha mquina son decidibles.
Los lenguajes decidibles son clasificados as, si existe una funcin recursiva que
puede ser calculada por una MT; de tal manera que se considera que los lenguajes
denominados como recursivos son decidibles.
Los leguajes aceptables son aquellos cuyas cadenas han sido aceptadas por una MT,
un lenguaje no puede ser decible si no es aceptable; sin embargo un lenguaje aceptable si
puede ser no decidible.
Los lenguajes o problema que no es reconocido por una MT se denomina como
irresoluble, un ejemplo clsico y podra clasificarse como el principal, es el denominado
Problema de Parada o Halting Problem.
El problema de parada o Halting problem, se presenta en aquellas MT cuya
secuencia de anlisis no encuentra un estado de parada. Es decir, las MT decidible suelen
llevar a un estado de aceptacin o bien a un estado de no aceptacin; pero que ocurre s
una MT nunca puede llegar a ninguno de estos dos estados?, se encontrara en un ciclo
constante para el que no se sabe si existe un momento de parada. Tal situacin involucra
que dicho lenguaje sea no computable ya que al no haber una MT que pueda resolver dicho
problema, no habr un algoritmo que pueda hacerlo.
Teora de la Computacin
181
Decidibilidad
Teora de la Computacin
182
Decidibilidad
GLOSARIO.
Decibilidad. El termino decidibilidad, tambin conocido como resolubilidad, es
aplicado a problemas para los cuales exista un algoritmo computable.
Lenguaje decid ibles. Un lenguaje es decidible, s existe una MT que entregue un
resultado falso o verdadero (0,1) para una entrada dada.
Lenguajes aceptables. Un lenguaje aceptado por una MT es el conjunto de palabras
aceptadas por ella.
Lenguajes no decidible. Todos aquellos para los que no existe un algoritmo que
puede resolverlos.
Problema de parada. Es el primer problema irresoluble detectado, y se caracteriza
por ser un problema cuya ejecucin nunca finaliza.
Teorema. Proposicin demostrable lgicame nte partiendo de axiomas o de otros
teoremas ya demostrados, mediante reglas de inferencia aceptadas.
Proposicin. Enunciacin de una verdad demostrada o que se trata de demostrar
Teora. Serie de las leyes que sirven para relacionar determinado orden de
fenmenos. Hiptesis cuyas consecuencias se aplican a toda una ciencia o a parte
muy importante de ella.
Inferencia. Sacar una consecuencia o deducir algo de otra cosa.
Teora de la Computacin
183
Decidibilidad
EJERCICIOS.
1. Conteste correctamente las siguientes preguntas.
a. Explique con sus propias palabras, el termino decibilidad.
b. Cual es la diferencia entre un lenguaje decidible y un lenguaje aceptable?
c. Cmo suele identificarse a un lenguaje decidible o computable?
d. De que manera se modifican las MT para poder reconocer un lenguaje
decidible?
e. Explique con sus propias palabras el problema de parada o de Halting
f.
Teora de la Computacin
184
Decidibilidad
LECTURA COMPLEMENTARIA
Teora de la Computacin
185
Decidibilidad
Teora de la Computacin
186
Decidibilidad
construido dicho sistema, Hilbert crea que se podra demostrar la consistencia del mismo;
sin embargo, Kurt Gdel demostr que esto era imposible. Ello signific el fin del
programa de Hilbert, pero tambin dio inicio a investigaciones ms profundas sobre la
naturaleza de las matemticas, aunque eso es parte de otra historia.
La relevancia de los mtodos finitarios es que entre ellos se encuentra uno que
consiste en ejecutar una lista de instrucciones precisas que produzca, independientemente
de quin las ejecute, y despus de un tiempo finito, un objeto determinado. El concepto que
se puede abstraer de este mtodo es el de algoritmo. El hecho de que el resultado de la
ejecucin de las instrucciones sea independiente del ejecutante significa que stas pueden
ser ejecutadas por una mquina. Los conceptos de algoritmo y mquina maduraron durante
las primeras dcadas del siglo XX y personas destacadas en su concepcin fueron Alan M.
Turing (8) y Alonzo Church (9). A Turing se debe el modelo abstracto de mquina ms
conocido: la mquina de Turing, y a ambos se debe el enunciado de la tesis ChurchTuring (10). Las mquinas de Turing son mquinas abstractas que realizan operaciones
extremadamente simples, como escribir o leer un smbolo sobre una cinta y moverse a la
izquierda o la derecha de la misma. Sorprendentemente, a pesar de su simplicidad, se cree
que las mquinas de Turing son capaces de realizar cualquier cmputo, es decir, la tesis (de
Church-Turing) es que cualquier tarea computable se puede realizar con una mquina de
Turing. Se trata de una tesis, porque con tarea computable se hace referencia a lo que se
entiende intuitivamente por computable, por ejemplo: computable en forma clara por un ser
humano abstracto (sin limites de tiempo o espacio), pero en matemticas es imposible
demostrar una afirmacin que se refiere a conceptos intuitivos. Lo importante a resaltar es
que toda esta teora, que formaliza los conceptos de mquina y tarea computable, surgi
antes de que se realizara la primera computadora.
Esta parte de la historia de la lgica culmina, a mediados del siglo XX, con la
consolidacin de sus principales disciplinas, entre ellas la Teora de las Funciones
Recursivas, que estudia precisamente los temas relacionados con lo computable. A partir de
entonces, como en toda la ciencia, el desarrollo de la lgica ha sido a un ritmo muy
acelerado.
Teora de la Computacin
187
Decidibilidad
Que el problema P versus NP (12) ser resuelto, en el marco de la lgica, antes del
2020.
Teora de la Computacin
188
Decidibilidad
Podemos concluir estas especulaciones sobre el futuro papel de la Lgica con una analoga
que apoyan muchos de sus partidarios: el papel de la Lgica en Ciencias de la Computacin
durante el siglo XXI puede ser similar al papel que tuvo el Anlisis en Fsica durante el
siglo XX. Y para finalizar, una frase atribuida a A. Turing: podemos ver muy poco haca
adelant, pero ah podemos ver mucho por hacer. (13)
Referencias:
1. El texto es un juego de palabras algo difcil de traducir.
I know what youre thinking about, said Tweedledum; but it isnt so, nohow.
Contrariwise, continued Tweedledee, if it was so, it might be; and if it were so, it
would be; but as it isnt, it aint. Thats logic.
2. A Short History of Rigour in Mathematics,
http://www.rbjones.com/rbjpub/maths/math003.htm.
3. Aristotle,http://wwwgroups.dcs.stand.ac.uk/~history/Mathematicians/Aristotle.ht
ml.
4. Euclid of Alexandria,
http://wwwgroups.dcs.stand.ac.uk/~history/Mathematicians/Euclid.html.
5. F. L. Gottlob Frege,
http://wwwgroups.dcs.stand.ac.uk/~history/Mathematicians/Frege.html.
6. Bertrand A. W. Russell, http://www-groups.dcs.stand.ac.uk/~history/Mathematicians/Hilbert.html.
7. Alan Mathison Turing, http://www- groups.dcs.stand.ac.uk/~history/Mathematicians/Turing.html.
Teora de la Computacin
189
Decidibilidad
Teora de la Computacin
190
Decidibilidad
BIBLIOGRAFA
1. Alvarado,
Matas
Alvarado.
Lgica
Computacin.
http://www.filosoficas.unam.mx/~morado/LogicaHoy/alvarado.htm.
En:
Fecha
de
Lenguajes.
En:
verano
2003
Ramn
Brena.
Autmatas
en
las
Ciencias
de
la
Computacin.
En:
de
autmatas
gramticas.
En:
Teora de la Computacin
191
Decidibilidad
RETROALIMENTACIN.
c.
Los lenguajes decidib les o computables son aquellos para los cuales,
existe una funcin recursiva que puede ser calculada por una MT
e.
g.
i.
2. Falso
Teora de la Computacin
192
C
A
P
I
T
U
L
O
VI
REDUCIBILIDAD
OBJETIVO
Reducibilidad
Un problema simple
insoluble
Reducibilidad de Turing
Hace uso
Reducibilidad
Muestra
Muestra
Funciones computables
Teora de la Computacin
194
Reducibilidad
6. REDUCIBILIDAD.
6.1 INTRODUCCIN
En el estudio de la computacin existen factores que colocan en duda la eficiencia
de un proceso, algunos de estos factores son: el tiempo, que tarda un computador en
realizar algn clculo o bien el espacio de memoria que ocupa para ello, entre otros; el
exceso de estos eventos afecta la eficiencia de sistema etiquetndolo como
inapropiados.
Teora de la Computacin
195
Reducibilidad
Considere contar con dos problemas de decisin P1 y P2, los cuales se relacionan
con el supuesto de poder reducir P1 a P 2. S P2 es soluble se podra decir que P1
tambin lo es, o bien si P 2 es insoluble P 1 tambin lo ser.
(Martin, 2004, Pg. 411)
Teora de la Computacin
196
Reducibilidad
Pueden existir procedimiento que den solucin a uno, dos, tres,..., etc.; casos de
un problema P, pero no para todos los casos de dicho problema, en sta situacin se
puede definir al problema P como un problema insoluble.
197
Reducibilidad
existe la solubilidad del problema sobre de una alfabeto ? * se dice que el lenguaje es
recursivo y soluble.
Existen varios problemas insolubles entre los que se pueden mencionar el
problema de Auto aceptacin, el de Aceptacin, el de Detencin entre otros, los cuales
plantean las siguientes situaciones.
Cada uno de estos problemas puede ser resuelto probndolos contra otro problema
insoluble ya estab lecido, como son el problema de parada o el problema de Auto
aceptacin. Un ejemplo de este tipo de inferencia es: si B es el denominado problema
AceptaTodos y es considerado como soluble, entonces A (problema de parada) es
tambin soluble . Como bien se sabe el problema A es insoluble y por lo tanto B
tambin es insoluble. (Figura 6.2)
A
Para a B(w) 1
B(w)
B(w)
No para a A(w) 0
A
No para a B(w) 0
Para a A(w) 1
Problema de parada
Teora de la Computacin
198
Reducibilidad
Las funciones recursivas primitivas son todas aquellas funciones que pueden
construirse a partir de funciones iniciales aplicando tres tcnicas diferentes, las
combinaciones, las composiciones y las recursividades primitivas. (Glenn, 1993, Pg.
7
Son llanadas as a todas aquellas funciones que pueden se calculadas por medio de algoritmo s (Glenn,
1993, Pg. 204)
Teora de la Computacin
199
Reducibilidad
F. I.
F. R. P.
F. A
F. R. PA.
F.
Funciones iniciales
Funciones recursivas primitivas
Funciones -recursivas (Ackermann)
Funciones recursivas parciales
Funciones
Figura. 6.3. Jerarqua de funciones
Las funciones recursivas Ackermann son del tipo A :N2? N, las cuales son
funciones computables totales 8, pero no son funciones recursivas primitivas. (Glenn,
1993, Pg. 217)
Una funcin total de X es una funcin parcial de X cuyo dominio es todo el conjunto X.( Glenn, 1993,
Pg. 205)
9
Para obtener mayor explicacin acerca de stas tcnicas favor de consultar el libro: Teora de la
computacin, lenguajes formales, autmatas y complejidad. Autor: J. Glenn Brookshear. Editorial:
Addison-Wesley
Teora de la Computacin
200
Reducibilidad
Chomsky englobo los cuatro tipos de lenguajes en uno solo, los lenguajes
recursivamente enumerable, de los cuales solo una parte se convierten en lenguajes
computables o decidibles, a tales lenguajes se les clasifica tambin como lenguajes
recursivos. Se dice que un lenguaje L es recursivo, si existe una MT T que reconozca a
L. (Martin, 2004, Pg. 365) Y podra usted preguntarse Cmo comprobar que dicho
lenguaje es recursivo? Bien la respuesta a esta cuestin hace nfasis a la enumeracin de
un lenguaje. La palabra enumerar, enunciar o listar sucesiva y ordenadamente las partes
de un conjunto. De tal manera que se existe una MT que enumere los elementos de un
lenguaje , dicho lenguaje se considera como un lenguaje recursivo. Ahora bien, se sabe
que por medio de deducciones e inferencias lgicas se logra probar el estado de algn
objeto, de tal manera que podra comprobarse el estado de recursividad de un lenguaje
L2 en base a la existencia de un lenguaje L1 cuya recursividad ya ha sido comprobada. A
tal comprobacin se le conoce como reducibilidad de Turing.
Tal concepto es
Tal definicin persiste en que para que un lenguaje pueda ser reducible a otro debe
existir un elementos x que pertenezca a L y cuya funcin pertenezca tambin a un
segundo lenguaje. De tal manera que si se tiene una MT M que tiene como entrada x y
calcula la funcin f(x) donde x pertenece a L1 se dice que L(M) = L1 y por lo tanto L1 es
Turing-reducible en L2.
Teora de la Computacin
201
Reducibilidad
RESUMEN
El estudio de los procesos computacionales (complejidad), clasifica a los
problemas en dos clases: los problemas con solucin (solubles) y los problemas sin
solucin (insolubles). La clasificacin de los lenguajes en alguna de estas dos categoras
puede hacer uso de la reducibilidad, la cual establece un lazo entre la complejidad de un
sistema y las inferencias lgicas.
Considere contar con dos problemas de decisin P1 y P2, los cuales se relacionan
con el supuesto de poder reducir P1 a P2 . S P2 es soluble se podra decir que P1
tambin lo es, o bien si P2 es insoluble P1 tambin lo ser.
202
Reducibilidad
Una funcin matemticamente se define como una cantidad numrica cuyo valor
depende o se encuentra en funcin de otra variable, dentro de la computabilidad, una
funcin puede definirse como todo programa que obtiene una cadena de salida a partir
de una cadena de entrada. Una mquina de Turing que compute una funcin debe de
proveer de un resultado valido para cualquier cadena que pase por ella, sea aceptada o
no aceptada, por el autmata; de tal manera que pueda decirse que para cada cadena de
entrada que recibe, existe una cadena de salida. As podra definirse una MT M y una
funcin parcial (subconjunto) F en ? * con valores en ? * (alfabeto de la cinta) f = ? * ?
? *. Una mquina se considera como reconocedora de una funcin F s, para cada cadena
(x) que pertenece a ? * existe un valor definido por f(x). Las funciones computables son
clasificadas en cuatro grupos, las funciones iniciales, las funciones recursivas
primitivas, las funciones Ackermann y las funciones recursivas parciales.
Se sabe que por medio de deducciones e inferencias lgicas se logra probar el
estado de algn objeto, de tal manera que podra comprobarse es estado de recursividad
de un lenguaje L2 en base a la existencia de un lenguaje L1 cuya recursividad ya ha sido
comprobada. A tal comprobacin se le conoce como reducibilidad de Turing. Tal
concepto es planteado de manera formal en la siguiente definicin.
Si L1 y L2 son lenguajes de un alfabeto 1 y 2 , se afirma que L1 es reducible a
L2 (L1 L2 ), si existe una funcin computable con MT f : 1* *2 tal que,
para cada x ? 1* , se tiene:
x ? L1 si y solo si f ( x) L2
Teora de la Computacin
203
Reducibilidad
GLOSARIO
Reducibilidad. Accin de reducir un problema a otro. La reducibilidad permite
el comprobar el estado de un problema en base al estado de un segundo
problema.
Complejidad Computacional. La teora de la complejidad estudia los recursos
requeridos para resolver un problema mediante la ejecucin de un algoritmo.
Funcin. Aquella en que el valor de la variable dependiente es directamente
calculable a partir de los valores que toman la variable o variables
independientes.
Funcin Parcial. Una funcin parcial del conjunto X es aquella cuyo dominio
constituye un subconjunto de X.
Funcin total. Es una funcin parcial del conj unto X cuyo dominio constituye
un todo el conjunto X.
Las funciones iniciales. Forman la base de la jerarqua que se muestra en la
teora de funciones recursivas.
Las funciones recursivas primitivas. Son todas aquellas funciones que pueden
construirse a partir de funciones iniciales aplicando tres tcnicas diferentes, las
combinaciones, las composiciones y las recursividades primitivas. La
combinacin de dos funciones f 1 y f 2 es la funcin f1 * f2:Nk? Nm+n , la cual
toma entradas en forma de k-tuplas y produce salidas m+n-tuplas cuyos
primeros m elementos forman la salida de f 1 y los n son la salida de f 2.
Las funciones recursivas Ackermann. Son del tipo A :N 2? N, las cuales son
funciones computables totales 10, pero no son funciones recursivas primitivas.
Finalmente las funciones recursivas parciales es la clase de funciones parciales
que son creados aplicando un conjunto de tcnicas sobre funciones como es la
combinacin, composicin, recursividades y minimilizacin
10
Una funcin total de X es una funcin parcial de X cuyo dominio es todo el conjunto X.( Glenn, 1993,
Pg. 205)
Teora de la Computacin
204
Reducibilidad
EJERCICIOS
Teora de la Computacin
205
Reducibilidad
LECTURA COMPLEMENTARIA
La mquina universal de Turing
Turing, gran matemtico ingl s planteo la famosa Mquina de Turing, que ha sido
considerada como el sistema ms potente en el reconocimiento de lenguajes. Tales
mquinas cuentan con diversas modificaciones una de ellas es la Mquina de Turing
Universal (MTU).
La MTU no es solo una mquina con uso especfico, como las que se han mostrado a
lo largo de ste texto; la MTU es un algoritmo capaz de realizar cualquier clculo. Dichas
mquina tiene como valores de entrada las cadenas obtenidas por otra mquina de uso
especfico, la MTU procesa estas cadenas y obtiene un resultado. Es decir la MTU permite
ejecutar cualquier otra mquina de Turing cuyo uso sea especfico. Tal caracterstica
permite citar el siguiente concepto.
Cualquier clculo que se pueda realizar de forma mec nica puede ser procesado
por una Mquina de Turing.
Teora de la Computacin
206
Reducibilidad
BIBLIOGRAFA
Teora de la Computacin
207
Reducibilidad
RETROALIMENTACIN
a.
c.
d.
Teora de la Computacin
208
A
N
E
X
O
S
TEMARIO OFICIAL
Anexo I
Anexo I
5.- TEMARIO
Anexo I
Anexo I
Anexo I
Anexo I
Anexo I
Anexo I
Teora de la Computacin
RETCULA OFICIAL
Anexo II
CONCLUSIONES
Por otra parte, la elaboracin de ste libro ha sido muy enriquecedora ya que ha permitido
ampliar y reafirmar los conocimiento personales que he adquirido con respeto a esta materia y
que para un ingeniero en sistemas son fundamentales. Adems de poder desarrollar mtodo de
redaccin y estructuracin de contenido de una manera ms amplia y formal.
Finalmente, se concluye este trabajo con una gran satisfaccin; considerando que los
objetivos planteados han sido logrados en un alto porcentaje. Agradeciendo el apoyo brindado, y
considerando nuevas metas; seguir construyendo y enriqueciendo el conocimiento de las ciencias
computacionales, sin dejar, a un lado el aspecto humano y alegre que ha sido dado al hombre, ya
que la compaa de un monitor, no suele ser tal agradable como la de otro ser humano.
Teora de la Computacin