Professional Documents
Culture Documents
n=0
A
n
. ( Unin de cero o ms concatenaciones de las cadenas del
lenguaje)
La iteracin positiva se define como:
A
+
=
n=1
A
n
. ( Unin de una o ms concatenaciones de las cadenas del
lenguaje)
Ejemplo:
Sea = {a, b}
Sea A = {ab, bb}
Entonces: A* = {, ab, bb, abab, abbb, bbab, bbbb, ...}
Si A y B son lenguajes sobre , la diferencia se define como:
A - B = {x | x A x B}
El complemento de un lenguaje A sobre un alfabeto se define como:
_
A = * - A
3
Tambin se la denomina cerradura de Kleene por algunos autores.
10
2.5 LENGUAJES REGULARES Y EXPRESIONES REGULARES
Para un alfabeto dado, los lenguajes regulares sobre son los que constituyen el menor
conjunto de lenguajes cerrados
4
con respecto a las operaciones de concatenacin, la clausura de
Kleene y la unin. Adems de esto, contienen el lenguaje vaco y los lenguajes unitarios {a} para
a .
Una expresin regular es una especificacin abreviada de un lenguaje regular. Las expresiones
regulares sirven como generadores de lenguajes regulares, produciendo las cadenas que
pertenecen al lenguaje de izquierda a derecha.
La definicin de un expresin regular sobre un alfabeto es la siguiente:
1. es expresin regular.
2. a es una expresin regular para todo a .
3. Si r y s son expresiones regulares, entonces r + s, r s y r * tambin
lo son.
4. Ninguna otra secuencia de smbolos es una expresin regular.
El orden de precedencia de los operadores *, + y es el siguiente:
*
+
Las expresiones regulares complejas se pueden simplificar a expresiones ms sencillas:
Por ejemplo:
Consideremos la siguiente expresin regular: (a*+ b*)*
Simplificando, se tiene: (a+b)*
Las cadenas generadas por esta expresin regular seran: {,a,b,aa,aaa,bb,bbb,aab......}
Finalmente la clase de los lenguajes regulares se caracteriza por tener las siguientes propiedades:
1. {} es un lenguaje regular.
2. Si a , entonces {a} es un lenguaje regular.
3. Si A y B son lenguajes regulares, entonces A B, A B, A* y B* son
tambin lenguajes regulares.
4. Ningn otro lenguaje sobre es regular.
4
Lenguajes cerrados con respecto a las operaciones mencionadas anteriormente quiere decir que si se aplican dichas
operaciones a lenguajes regulares, el resultado es tambin un lenguaje regular.
primero el cierre reflexivo
luego la concatenacin
finalmente la unin.
11
EJEMPLO
Consideremos el alfabeto = {a,b}
Las siguientes afirmaciones son ciertas:
1. {a} y {b} son lenguajes regulares.
2. {a, b} es regular porque es la unin de {a} y {b} .
3. {ab} es regular porque es la concatenacin de {a} y {b} .
4. {a, ab, b} es regular porque es la unin de {a, b} y {ab} .
5. {a
i
| i0} es regular.
6. {a
i
b
j
| i0 y j 0} es regular.
7. {(ab)
i
| i0} es regular.
2.6 GRAMATICAS LIBRES DE CONTEXTO
Anteriormente se mencion que las expresiones regulares son generadoras de lenguajes. De igual
manera existen generadores de lenguajes ms complejos y basados en un mejor entendimiento de
la estructura de las cadenas pertenecientes al lenguaje y tales generadores se llaman Gramticas
libres de contexto.
Las gramticas libres de contexto, al igual que las expresiones regulares, son de gran importancia,
especialmente en la definicin de lenguajes de programacin, en la formalizacin del anlisis
gramatical, la simplificacin de la traduccin de los lenguajes de programacin y en otras
aplicaciones referentes al procesamiento de cadenas de caracteres. Como un ejemplo, las
gramticas libres de contexto son bastante tiles para describir las expresiones aritmticas con
anidamientos de parntesis perfectamente balanceados, lo cual no podra ser representado por las
expresiones regulares.
Este tipo de gramticas genera lenguajes libres de contexto. Los lenguajes libres de contexto son
cerrados bajo las operaciones de unin, concatenacin e iteracin.
Su funcionamiento est limitado por un conjunto de reglas. Cuando el proceso de construccin
termina, se tiene una cadena final y el lenguaje definido por la gramtica, es el conjunto de todas
las posibles cadenas que sta puede generar.
La motivacin original para las gramticas libres de contexto ha sido la descripcin del lenguaje
natural. Una gramtica libre de contexto es un conjunto finito de variables (llamadas tambin
smbolos no-terminales) las cuales representan un lenguaje especfico. Los lenguajes
representados por tales variables no-terminales, son descritos recursivamente en trminos de s
mismas y otros smbolos llamados terminales. Las reglas que relacionan las variables
noterminales son llamadas reglas de produccin. Una tpica regla de produccin sostiene que el
lenguaje asociado con un smbolo no-terminal contiene cadenas formadas por la concatenacin de
las cadenas de lenguajes pertenecientes a otros smbolos no-terminales y tal vez con algunos
smbolos terminales. Los smbolos terminales pertenecen al alfabeto sobre el cual est definida la
gramtica.
Por ejemplo:
Consideremos la siguiente gramtica sobre el alfabeto = {a, b}:
Los smbolos no-terminales son: S,A,B,C
Los smbolos terminales son: a, b
Las reglas de produccin estn numeradas del 1 al 5.
1. SABC
2. Aa
3. BBb
4. B
5. Cc
12
Se denominan gramticas libres de contexto debido a que el reemplazo de un smbolo no-terminal
por su correspondiente lado derecho no depende de los smbolos adyacentes al mismo. De esta
manera la caracterstica principal de una gramtica libre de contexto es que todas las derivaciones
tengan en su lado izquierdo solamente un smbolo no-terminal.
Nota: Generalmente los smbolos terminales se representan mediante letras minsculas y los
smbolos no-terminales mediante letras maysculas. El smbolo inicial es comnmente S ,
pudiendo ser otra letra que sea explcitamente especificada.
Formalmente, una gramtica libre de contexto G es una cudrupla (,N,P,S), donde
Ejemplo:
G=({a, b}, {A,B,C,S},{ SABC, Aa, BbB, B, Cc},S)
Aparte de las gramticas libres de contexto, existe otro tipo de gramticas denominadas
gramticas sensibles al contexto, las cuales se diferencian de las anteriores en el hecho de que
para reemplazar un smbolo no-terminal se debe tomar en cuenta los smbolos adyacentes al
mismo. Las gramticas sensibles al contexto poseen mucha utilidad en los problemas que
requieran analizar el contexto de una cadena de caracteres, sin embargo, las gramticas libres de
contexto han demostrado su gran utilidad en varios tipos de situaciones, especialmente en los
lenguajes de programacin.
Las gramticas sensibles al contexto generan los lenguajes sensibles al contexto y la forma de sus
reglas de produccin es:
uAv uWv donde
2.7 JERARQUIA DE CHOMSKY
La jerarqua de Chomsky es una jerarqua estricta de las diferentes clases de lenguajes, la cual
sostiene que:
Los lenguajes regulares constituyen un subconjunto de
los lenguajes libres de contexto.
Los lenguajes libres de contexto constituyen un
subconjunto de los lenguajes sensibles al contexto.
Los lenguajes sensibles al contexto constituyen un
subconjunto de los lenguajes sin restricciones.
Formalmente:
Leng. Reg. Libres de Contexto Sensibles al Contexto Sin Restricc.
La demostracin de este teorema se encuentra en la bibliografa mencionada al final de este
trabajo.
es el alfabeto
N es el conjunto de smbolos no terminales
P es el conjunto de las reglas de produccin
S es el smbolo inicial.
Smbolo inicial
No-terminales
Reglas de produccin
Alfabeto
13
CAPITULO 3
AUTOMATAS FINITOS
Este captulo desarrolla la teora de los autmatas, su clasificacin, sus ejemplos de aplicacin y
algunas caractersticas ms importantes que poseen. Se presentan los conceptos bsicos para los
lectores principiantes en el tema y algunos conceptos para lectores avanzados.
3.1 AUTOMATAS FINITOS
En los captulos anteriores, se describi a los autmatas finitos como un modelo restringido de una
computadora. Comparten con las computadoras el hecho de tener un procesador central de
capacidad limitada. Sin embargo, adems de esta limitacin, un autmata finito carece de memoria
auxiliar. Recibe cadenas de caracteres como entrada y no produce ningn resultado, excepto la
indicacin de que la entrada recibida es considerada aceptable o no. La cadena de caracteres que
recibe como entrada, se encuentra estampada en una cinta, la cual est dividida en porciones
rectangulares y cada porcin de cinta contiene un carcter de la cadena.
Figura 3-1. Autmata
Este modelo computacional tan sencillo podra ser considerado trivial y hasta inadecuado para
merecer un estudio serio, pero cuando lo entendamos completamente, estaremos en condiciones
de apreciar exactamente el aumento del poder computacional que adquieren con la expansin de
su memoria auxiliar. Los autmatas finitos son de potencia limitada, pero constituyen una subclase
completamente conocida de modelos computacionales ms poderosos.
3.2 APLICACIONES DE LOS AUTOMATAS FINITOS
Otra de las razones para el estudio de los autmatas finitos es su aplicabilidad en el diseo de
varios tipos de algoritmos y programas computacionales. Por ejemplo, el anlisis lexicogrfico de
un compilador y la bsqueda y reemplazo de caracteres en los editores de texto. Estos problemas
de diseo de software se facilitan mediante la conversin de la notacin de un autmata a una
implementacin de computadora.
En el caso de los analizadores lexicogrficos, el autmata finito es construido basndose en
expresiones regulares para cada tipo de token
5
del lenguaje de programacin.
5
Piezas constituyentes del lenguaje de programacin. Ejemplo: identificadores, nmeros, operadores aritmticos, etc.
14
3.3 AUTOMATAS FINITOS DETERMINISTICOS
Los autmatas finitos determinsticos constituyen una subclase de los autmatas finitos. Su
funcionamiento est completamente determinado por su entrada, lo cual quiere decir que al leer un
smbolo de la cinta, se mueve a un estado y nicamente a uno. No puede moverse a estados
distintos con un mismo smbolo ledo.
En general los autmatas finitos estn constituidos por un conjunto finito de estados y un conjunto
de transiciones de un estado a otro que
ocurren en base a caracteres de entrada
(estos caracteres pertenecen al alfabeto).
Para cada smbolo de entrada existe una
sola transicin que sale de cada estado. Un
estado, generalmente denotado por q
0
, es el
estado inicial y algunos estados son
designados como estados finales.
Figura 3-2. A.F. Determinstico
Un grafo dirigido, llamado diagrama de transicin
6
, se asocia con un autmata finito de la
siguiente manera:
Los nodos del grafo corresponden a los estados del
autmata finito.
Si existe una transicin del estado q al estado p en base al
smbolo a, entonces existe un arco etiquetado a que va
desde estado q al estado p.
El autmata finito acepta una cadena w si la secuencia de
transiciones correspondientes a los smbolos de w , llegan
a un estado final aceptado.
Ejemplo:
q
0
q
1
q
2
a
a
b
Inicio
Figura 4-3
Alfabeto: {a,b}
Estado inicial: q
0
Estado final: q
2
Expresin Regular equivalente: aa*b a
+
b
6
Tambin llamado diagrama de estados por otros autores.
15
Definicin
Un Autmata Finito Determinstico es una quntupla (Q,,, q
0
,F)
Donde: Q = Conjunto de estados
= Alfabeto finito de entrada
q
0
=
Estado inicial que pertenece a Q
F = Conjunto de estados finales F Q
= funcin de transicin Q x Q
(de un estado perteneciente a Q, con un smbolo ledo llego a otro
estado que tambin pertenece a Q)
(q,x) = q (estado al cual se mueve el autmata despus de haber ledo
el smbolo x estando parado en el estado q)
3.4 CARACTERISTICAS FUNCIONALES
La funcin de transicin determina, en todos los casos, nicamente un estado al cual se mueve
el control finito despus de leer un smbolo de la cinta de entrada.
Una vez ledo un smbolo de la cinta de entrada, el cabezal de lectura se mueve sobre la cinta una
posicin a la derecha. Si el cabezal se movi a la derecha, ya no puede retroceder.
Este proceso es repetido una y otra vez; se lee un smbolo, el cabezal de lectura se mueve a la
derecha y el estado del control finito cambia.
En algn momento el cabezal de lectura llega al final de la cadena de entrada, entonces el
autmata acepta o rechaza la cadena leda mediante la verificacin del estado en el que se
encuentra. Si el estado pertenece a F entonces se acepta la cadena, de lo contrario se la rechaza.
El lenguaje aceptado por el autmata es el conjunto de cadenas que ste acepta.
El clculo que realizan los autmatas en base a una cadena de entrada se muestra mediante una
secuencia de configuraciones que representan el estado del control finito, cabezal de lectura y la
cinta de entrada en un momento determinado. En palabras simples, una configuracin es una
fotografa del autmata en un momento dado.
De esta manera una configuracin est formada por el estado actual en el que se encuentra y la
porcin de la cinta que an no ha sido leda.
Formalmente:
Una configuracin de un autmata finito determinstico M = (Q,,,q
0
,F) es cualquier
elemento de Q x *. Por ejemplo la configuracin ilustrada en la figura 4-2 es (q
1
,chabamba)
Es una relacin binaria entre las configuraciones. Esta relacin se establece entre dos
configuraciones de M si y solamente si el autmata pasa de la primera configuracin a la
segunda en un solo movimiento. De esta manera, si (q,w) y (q,w) son dos configuraciones
del autmata M, entonces (q,w) (q,w) si y solamente si w = w para , y (q,) = q .
Ejemplo:
(q
0
,aabba) (q
1
,abba)
En este caso w = aabba
w = abba
adems ... (q
0
,a) = q
1
w = aw
16
Ntese que la relacin es realmente una funcin de Q x
+
a Q x * puesto que para
cada configuracin existe una nica configuracin siguiente.
* es el cierre reflexivo, transitivo de .
As (q,w) * (q,w) quiere decir que estando en el estado q con la cadena w,
se llega al estado q y se obtiene w en cero o ms pasos.
Una cadena w * es aceptada por M si y solamente si existe un estado q F tal que:
(q
0
,w) * (q,).
Finalmente el lenguaje aceptado por el autmata M, denotado por L(M), es el conjunto de
todas las cadenas que ste acepta.
Ejemplo:
Considrese el siguiente autmata finito determinstico M = (Q,,,q
0
,F), donde
Q = {q
o
,q
1
}
= {a, b}
q
o
= estado inicial
F = { q
o
}
y es la funcin tabulada a continuacin:
Q (q,)
q
o
a q
o
q
o
b q
1
q
1
a q
1
q
1
b q
o
Entonces su diagrama de transicin (diagrama de estados) correspondiente es:
q
0
q
1
b
a
b
Inicio
a
Claramente se puede llegar a la conclusin de L(M) es el conjunto de todas las cadenas que tienen
un nmero par de bs
Si el autmata M recibe como entrada la cadena aabba, su configuracin inicial sera (q
0
,aabba)
Entonces: (q
0
,aabba) (q
0
,abba)
(q
0
,bba)
(q
1
,ba)
(q
0
,a)
(q
0
, ).
3.5 AUTOMATAS FINITOS NO DETERMINISTICOS
Por lo tanto aabba es
aceptada por el
autmata M
17
Son autmatas finitos con una caracterstica adicional que es el no-determinismo. En esencia, es
la habilidad de cambiar de estado de una manera parcialmente determinada por el estado actual y
el smbolo de la cinta de entrada. Esto significa que de un estado al leer un smbolo, el autmata
puede ir a varios posibles estados siguientes.
A medida que el autmata va leyendo la cadena de entrada, ste puede escoger en cada momento
ir a cualquiera de los estados siguientes posibles; esta eleccin no est totalmente determinada y
es por eso que este modelo es denominado no determinstico. Sin embargo esta eleccin del
siguiente estado no es totalmente arbitraria; solamente aquellos estados siguientes que estn
definidos pueden ser seleccionados.
Aunque el no-determinismo es una caracterstica poderosa, normalmente no tiene ninguna relacin
con computadoras reales. Simplemente surge como una extensin del comportamiento de los
autmatas finitos determinsticos.
Definicin
Un Autmata Finito No-Determinstico es una quntupla (Q,,, q
0
,F)
Donde: Q = Conjunto de estados
= Alfabeto finito de entrada
q
0
=
Estado inicial que pertenece a Q
F = Conjunto de estados finales F Q
= relacin de transicin, subconjunto finito de Q x * x Q.
El significado de las triplas (q,u,p) de la relacin de transicin es que el autmata estando en el
estado q, consume la cadena u y pasa al estado p. En otras palabras, si en el diagrama de
transicin existe un arco del nodo q al nodo p cuya etiqueta es u. De esta manera, cada tripla
(q,u,p) que pertenece a es una transicin. Tomando en cuenta que los autmatas son finitos, la
relacin de transicin es tambin finita aunque Q x * x Q sea infinito.
3.6 CARACTERISTICAS FUNCIONALES
La relacin de transicin ya no determina nicamente un estado al cual se mueve el control finito
despus de leer un smbolo de la cinta de entrada. Esta es la razn para denominarse relacin y
no as funcin.
Ahora el cabezal de lectura puede leer uno ms smbolos de la cinta de entrada, pero al igual que
antes, ya no puede retroceder sobre la cinta.
Una cadena es aceptada si existe por lo menos un camino desde el estado inicial al estado final
siguiendo los arcos etiquetados que corresponden a los smbolos ledos de la cinta de entrada, de
lo contrario se la rechaza. El lenguaje aceptado por el autmata es el conjunto de cadenas que
ste acepta.
El clculo que realizan los autmatas no-determinsticos en base a una cadena de entrada se
muestra mediante una secuencia de configuraciones que representan el estado del control finito,
cabezal de lectura y la cinta de entrada en un momento determinado.
De esta manera una configuracin est formada por el estado actual en el que se encuentra y la
porcin de la cinta que an no ha sido leda.
Formalmente:
Una configuracin de un autmata finito no-determinstico M = (Q,,,q
0
,F) es cualquier
elemento de Q x *.
18
Es una relacin binaria entre las configuraciones. Esta relacin se establece entre dos
configuraciones de M si y solamente si el autmata pasa de la primera configuracin a la
segunda en un solo movimiento. De esta manera, si (q,w) y (q,w) son dos configuraciones
del autmata M, entonces (q,w) (q,w) si y solamente si w = uw para u *, y (q,u,q) .
Ejemplo:
(q
0
,aabba) (q
1
,bba)
En este caso w = aabba
w = bba
adems ... (q
0
,aa,q
1
)
*
es el cierre reflexivo, transitivo de .
As (q,w) * (q,w) quiere decir que estando en el estado q con la cadena w,
se llega al estado q y se obtiene w en cero o ms pasos.
Una cadena w * es aceptada por M si y solamente si existe un estado q F tal que:
(q
0
,w) * (q,).
Finalmente el lenguaje aceptado por el autmata M, denotado por L(M), es el conjunto de
todas las cadenas que ste acepta.
Ejemplo:
Considrese el siguiente autmata finito no-determinstico M = (Q,, ,q
0
,F), donde
Q = {q
o
,q
1
,q
2
}
= {a, b}
q
o
= estado inicial
F = { q
o
}
= {( q
o
,a,q
1
), (q
1
,b,q
0
), (q
1
,b,q
2
), (q
2
,a,q
0
)}
Entonces su diagrama de transicin (diagrama de estados) correspondiente es:
q
0
q
1
a
b
Inicio
q
2
a b
w = aaw
19
Claramente se puede llegar a la conclusin de L(M) es el conjunto de todas las cadenas de la
forma : (ab aba)*
Si el autmata M recibe como entrada la cadena aba, su configuracin inicial sera (q
0
,aba)
Entonces: (q
0
,aba) (q
1
,ba)
(q
2
,a)
(q
0
, )
Pero tambin puede tomar el siguiente camino:
(q
0
,aba) (q
1
,ba)
(q
0
,a)
(q
1
, )
Una cadena w * es aceptada por M si y solamente si existe por lo menos un camino desde el
estado inicial a uno de los estados finales.
No interesa que existan caminos que conducen a estados no aceptores, mientras exista por lo
menos uno que llegue a un estado final leyendo los smbolos de la cinta de entrada. Por otro lado,
la cadena abb no es aceptada, puesto que no existe una manera de llegar desde q
0
hasta q
0
nuevamente.
3.7 EQUIVALENCIA ENTRE AUTOMATAS FINITOS DETERMINISTICOS Y NO
DETERMINISTICOS.
Aunque los autmatas finitos no-determinsticos parecen ser ms generales que los autmatas
determinsticos, no son ms poderosos en cuanto a los lenguajes que stos reconocen o generan.
Un autmata no-determinstico siempre puede ser convertido en uno determinstico.
Recordemos que dos autmatas M
1
y M
2
son equivalentes si y solamente si aceptan el mismo
lenguaje, aunque utilicen mtodos diferentes.
Formalmente:
M
1
y M
2
son equivalentes si y solamente si L(M
1
) = L(M
2
)
Existe un teorema que sostiene que:
Para cada autmata finito no-determinstico,
existe un autmata finito determinstico
equivalente
7
.
Basndonos en el teorema anterior, podemos afirmar que ambos tipos de autmatas son
equivalentes.
7
Elements of the Theory of Computation, Lewis-Papadimitriou
aba es aceptada por
el autmata M
aba NO es aceptada
por el autmata M
20
3.8 LENGUAJES MANEJADOS POR LOS AUTOMATAS FINITOS
El lenguaje aceptado por el autmata M = (Q,,,q
0
,F), denotado por L(M), es el conjunto de todas
las cadenas que son aceptadas por M.
Un lenguaje es regular si y solamente si es
aceptado por un autmata finito
8
Esto quiere decir que el lenguaje aceptado por un autmata finito, denotado por L(M) es regular.
Otra caracterstica de los lenguajes aceptados por los autmatas finitos es que son lenguajes
alineados a la derecha. En el libro An Introduction to Formal Languaje Theory se deduce en base
a las propiedades de los lenguajes regulares que cada lenguaje regular puede ser transformado
en un lenguaje alineado a la derecha.
Para mayor informacin, se sugiere revisar la bibliografa citada.
En resumen la clase de lenguajes aceptados por los autmatas finitos es cerrada bajo:
(a) Unin
(b) Concatenacin
(c) Iteracin o clausura de Kleene
(d) Complemento
(e) Interseccin
3.9 AUTOMATAS DE PILA
Algunos lenguajes libres de contexto pueden ser reconocidos por los autmatas finitos. Sin
embargo, existen lenguajes libres de contexto que no pueden ser reconocidos por estos
autmatas. Entonces surge la pregunta: Qu tipo de autmata puede reconocer cualquier
lenguaje libre de contexto?
Tomando un ejemplo especfico, el conjunto de cadenas con parntesis perfectamente
balanceados no es regular y no puede ser reconocido por un autmata finito. Sin embargo existe
un algoritmo sencillo que nos permite reconocer este lenguaje:
1. Inicializamos un contador en cero.
2. Incrementamos el contador en uno por cada parntesis
de apertura.
3. Decrementamos el contador en uno por cada parntesis
de cierre.
4. Iterar 2 y 3 hasta que no existan ms caracteres.
5. Si el contador es distinto de cero, la cadena no tiene
parntesis balanceados. De lo contrario, la cadena tiene
parntesis balanceados.
El ejemplo anterior sugiere una extensin a los autmatas finitos, la cual consiste de una memoria
auxiliar que ayude a reconocer cualquier lenguaje libre de contexto.
8
Teorema demostrado en el libro de Lewis-Papadimitriou
21
Luego de algunas consideraciones, se lleg a la conclusin de que esta memoria auxiliar sea un
almacenamiento vertical en forma de tubo destapado en el extremo superior, conocido tambin
como pila.
Figura 4-4. Autmata de pila
Definicin
Un autmata de pila es una sxtupla M = (Q,,, ,q
0
,F) donde...
Q es el conjunto finito de estados
es el alfabeto (smbolos de entrada)
es el alfabeto de la pila
q
0
Q, estado inicial
F Q, conjunto de estados finales
es la relacin de transicin, subconjunto finito de: (Q x * x *)(Q x *)
La transicin ((p,u,), (q,)) se interpreta de la siguiente manera: del estado p con el smbolo en
el tope de la pila, se lee u de la cadena de entrada y se pasa al estado q reemplazando por
Esta definicin se aplica a mquinas de pila no-determinsticas que, como sabemos, pueden ser
transformadas en determinsticas.
Apilar un smbolo (aadir al tope de la pila) se representa por:
((p,u,),(q,a)) si la pila est vaca, se apila el smbolo a.
((p,u,a),(q,xa)) si en el tope se tiene el smbolo a, se apila x.
Desapilar un smbolo (remover del tope de la pila) se representa por:
((p,u,a),(q, )) desapila el smbolo a.
Modificar el tope de la pila es una operacin que consta de 2 movimientos: desapilar y apilar.
Una configuracin es un miembro de Q*x*x* que se interpreta: Estado actual, cadena que an
no ha sido leda y el contenido de la pila (leda de arriba hacia abajo).
De igual manera
M
es una relacin binaria entre dos configuraciones.
*
M
es el cierre reflexivo, transitivo de
M
.
22
El autmata M acepta la cadena w si y solamente si (q
0
,w,) *
M
(p, ,) tal que p F
Es decir, cualquier cadena representada por w es aceptada si del estado inicial con la pila vaca
en cero o ms transiciones llego a un estado final tambin con la pila vaca.
El lenguaje aceptado por el autmata M, denotado por L(M), es el conjunto de todas las cadenas
aceptadas por M.
L(M) = { w * | (q
0
,w,) *
M
(p, ,) donde p F }
23
CAPITULO 4
MAQUINAS DE TURING
Los autmatas finitos y los autmatas de pila son dispositivos tiles para el reconocimiento de
lenguajes; sin embargo, no pueden ser considerados como modelos matemticos generales
debido a que no son capaces de reconocer algunos lenguajes como {a
n
b
n
c
n
: n0}. Este captulo
introduce a los dispositivos que pueden reconocer ste y otros lenguajes ms complejos llamados
Mquinas de Turing.
4.1 DEFINICION DE UNA MAQUINA DE TURING
Este dispositivo lleva el nombre de Mquina de Turing gracias a su inventor Alan Turing (1912-
1954). Aunque son ms generales que los autmatas previamente estudiados, su apariencia
bsica es similar. Una mquina de Turing consta de un control finito, una cinta de entrada y un
cabezal que puede leer y escribir sobre la cinta.
Figura 4-1
Las mquinas de Turing no son simplemente una clase ms de autmatas que puede ser
reemplazada por otra ms poderosa. Aunque su apariencia primitiva revela simplicidad, intentos de
extenderlas en poder computacional no han tenido efecto alguno. Por ejemplo, la caracterstica de
poseer cintas adicionales con o sin cabezales independientes, no aumenta el poder computacional
que tiene una mquina de Turing bsica.
Las mquinas de Turing forman una clase mxima y estable de los autmatas en trminos de los
cmputos que pueden realizar. Estn diseadas para satisfacer tres criterios:
(a) Deberan ser autmatas; es decir, su construccin y funcin
debera tener la misma esencia general.
(b) Deberan poder ser descritas, definidas formalmente y
analizadas de la manera ms sencilla posible.
(c) Deberan ser tan generales como sea posible en trminos de
los cmputos que pueden realizar.
24
4.2 CARACTERSTICAS FUNCIONALES
Como dijo anteriormente, una mquina de Turing bsica consta de un control finito, una cinta de
entrada y un cabezal que puede leer y escribir sobre la cinta. La unidad de control ejecuta dos
funciones en cada paso que realiza:
1. Se posiciona en un nuevo estado
2. Realiza una de las siguientes acciones:
(a) Escribir un smbolo en la porcin de cinta que se est
leyendo, reemplazando el que ya exista.
(b) Mover el cabezal de lectura/escritura una porcin de
cinta a la izquierda o a la derecha.
La cinta de entrada est limitada en el extremo izquierdo pero se extiende indefinidamente hacia la
derecha. Puesto que la maquina mueve su cabezal una porcin de cinta a la vez, solamente se
habrn visitado un nmero finito de porciones de cinta luego de haber realizado un cmputo finito.
Si la mquina intenta mover el cabezal fuera del extremo izquierdo, sta queda paralizada.
La mquina de Turing es provista de una cadena de entrada mediante la cinta. Cada smbolo se
encuentra en una porcin de cinta y generalmente empieza en el extremo izquierdo quedando el
resto de la cinta de entrada con smbolos nulos. La mquina puede alterar la entrada que recibe de
la manera que vea conveniente, como tambin escribir smbolos sobre la regin derecha de la cinta
que contiene nulos.
Puesto que una mquina de Turing puede escribir sobre la cinta, puede dejar una respuesta al final
del cmputo realizado. Por lo tanto no necesitamos proveer estados finales como ocurre con los
autmatas. Sin embargo existe un estado especial de parada que es usado para indicar el final del
cmputo.
A continuacin se mencionan algunas convenciones utilizadas por algunos autores acerca de estas
mquinas:
El estado de parada se denota por h.
El smbolo nulo es representado por #.
El smbolo L denota el movimiento del cabezal a la izquierda.
El smbolo R denota el movimiento del cabezal a la derecha.
Se asume que todos estos smbolos no son miembros de alfabeto alguno que se pueda considerar.