Вы находитесь на странице: 1из 10

Teora de Autmatas I

Mquinas de Turing y lenguajes estructurados por frases -1-






MQUINAS DE TURING Y LENGUAJES
ESTRUCTURADOS POR FRASES



MQUINAS DE TURING

- Son mquinas tericas capaces de aceptar lenguajes generados por gramticas
estructuradas por frases.

- Una mquina de Turing tiene una cabeza de lectura/escritura que avanza
bidireccionalmente por una cinta infinita por la derecha.
- Entrada: contenido inicial de la cinta.
- Salida: contenido final de la cinta.

- Smbolos de cinta:
- Smbolos de entrada:
- Smbolos de cinta: _

- Transiciones: o(p,x) = (q,y) donde:
- p,q: estados
- x e : smbolo de entrada
- y e {L,R} : smbolo de cinta o desplazamiento

- En una transicin, la mquina de Turing lee un smbolo de la cinta, cambia de estado y
escribe un smbolo o efecta un desplazamiento a izquierda o derecha.

- Ejemplo de diagrama de transiciones




- Proceso de reconocimiento de una cadena:
- Se parte del estado inicial, y la cinta contiene smbolos de entrada.
- Se efectan las transiciones pertinentes segn la funcin de transicin.
- Si la cabeza lectora rebasa el extremo izquierdo de la cinta, la cadena es
rechazada y el proceso termina (terminacin anormal).
- Si la mquina alcanza el estado de parada, la cadena es aceptada.
Teora de Autmatas I
Mquinas de Turing y lenguajes estructurados por frases -2-





- MT: M(S,E,I,o,i,h)
- S: conjunto finito de estados.
- E: alfabeto de entrada.
- I: alfabeto de smbolos de cinta.
- o: funcin de transicin (determinista): S x I S x (I{L,R}).
- i: estado inicial.
- h: estado de aceptacin o de parada.

- En general, las mquinas de Turing son deterministas.



TESIS DE TURING

El poder computacional de una mquina de Turing es tan grande como el de cualquier
sistema computacional posible.



COMBINACIN DE MQUINAS DE TURING

- Pasos:

1. Eliminar la caracterstica de inicio de los estados iniciales de todas las mquinas,
excepto de la primera.
2. Eliminar la caracterstica de parada de todas las mquinas, e incluir un nuevo estado
de parada.
3. Para cada estado de parada p y para cada x e :
a) Si la nueva mquina se debe detener al llegar a p con x, aadir un arco x/x de p al
nuevo estado de parada.
b) Si al llegar al estado p con el smbolo actual x la mquina compuesta debe
transferir el control a la mquina M(S,E,I,o,i,h), dibujar un arco con etiqueta x/z
de p al estado q de M tal que o(i,x) = (q,z).



CONSTRUCCIN MODULAR DE MQUINAS DE TURING

- Construccin de mquinas de Turing complejas a partir de bloques elementales.

- Transferencia de control entre mquinas: M1
x
M2

- Transferencia de control con varios smbolos:
x, y, z w w

M1 } M2 M3
Teora de Autmatas I
Mquinas de Turing y lenguajes estructurados por frases -3-




Bloques de construccin bsicos


- Bloques ms complejos



Teora de Autmatas I
Mquinas de Turing y lenguajes estructurados por frases -4-






Teora de Autmatas I
Mquinas de Turing y lenguajes estructurados por frases -5-




EVALUACIN DE CADENAS

- Aceptacin de una cadena
- Situacin inicial:
- Cabeza en el extremo izquierdo de la cinta.
- La cadena de entrada empieza en la segunda posicin de la cinta.
- Situacin final:
- Mquina de Turing en estado de parada.

- Lenguaje aceptado por una mquina de Turing: conjunto de cadenas que acepta.

- Una mquina de Turing puede escribir un mensaje de aceptacin si acepta una cadena.
- Mensaje de aceptacin: AYAAA

- Smbolos especiales
- #: extremo izquierdo de la cinta
- *: extremo derecho de la porcin alterada de la cinta

- Si la mquina es M, la mquina final es:



- M
0
es igual que M, salvo que:
- Si M
0
alcanza #, se desplazar una casilla a la izquierda (terminacin
anormal)
- Si M
0
alcanza *, debe desplazarlo un lugar a la derecha ejecutando
R* LA
Teora de Autmatas I
Mquinas de Turing y lenguajes estructurados por frases -6-




Mquinas de Turing de varias cintas

- Cada cinta tiene su propia cabeza de lectura/escritura.
- Una transicin:
- Depende de los smbolos acutales de todas las cintas.
- Slo afecta a una cinta (escribir o desplazar).
- Estado inicial:
- Contenido de la primera cinta: AwAAA...
- Las restantes cintas estn en blanco, con la cabeza en su extremo izquierdo.
Teorema 3.1
Para cada mquina de Turing M de k cintas, existe una mquina de Turing M' con una
cinta tal que L(M)=L(M').

DEMOSTRACIN: Construccin de M'

- Previo:
- Cada casilla en el conjunto de las k cintas se representa como una 2k-tupla:
* En la posicin 2n-1 de la tupla se tiene el smbolo de la cinta n.
* En la posicin 2n de la tupla hay 1 si la cabeza est en la casilla, A si no.
- Es posible asignar un smbolo de cinta nuevo a cada posible 2k-tupla.
* As se puede almacenar en una sola cinta toda la informacin del conjunto
completo de cintas.
- Cada estado de M' se representa como un estado compuesto formado por una k+1-
tupla cuyo primer elemento es el estado de la cinta, siendo los dems elementos los
smbolos actuales de todas las cintas.

- Primer paso: traducir el contenido de la cinta de M' a un formato que represente todas
las cintas de M.
- Desplazar el contenido de la cinta a la derecha un lugar: R
A
S
R
L
A
(la cabeza queda
en la segunda posicin de la cinta).
- Mover la cabeza un lugar a la izauierda, escribir # y mover un lugar a la derecha.
- Repetir los dos pasos siguientes hasta que el smbolo sustituido en b) sea un blanco:
a) Mover la cabeza un lugar a la derecha.
b) Sustituir el smbolo actual x por la tupla (x,A,A,...,A).
- Ejecutar L
A
, lo que pondra la cabeza en la segunda casilla de la cinta, y escribir en
ella la tupla (A,1,A,1,...,A,1).

- Simulacin de M:
- Cada transicin de M supone una secuencia de pasos en M'.
- Estado inicial: (i,A,A,...,A).
- Una transicin (t) slo afecta a una cinta (j
t
).
- Secuencia corresponciente a la transicin t:
* Mover la cabeza a la derecha hasta que el componente 2j de la 2k-tupla sea 1.
* Si la transicin es uan esceitura, modificar el componente 2j
t
-1 de la tupla.
Teora de Autmatas I
Mquinas de Turing y lenguajes estructurados por frases -7-




* Si la transicin produce un movimiento a la derecha:
Reemplazar el componente 2j
t
-1 por un A.
Mover la cabeza a la derecha.
Si encuentra un A, sustituirlo por la 2k-tupla (A,A,...,A).
Reemplazar el componente 2j
t
-1 por un 1.
* Si la transicin produce un movimiento a la izquierda:
Reemplazar el componente 2j
t
-1 por un A.
Mover la cabeza a la izquierda.
Si encuentra un #, mover a la izquierda (terminacin anormal).
Reemplazar el componente 2j
t
-1 por un 1.
* Colocar la cabeza en la segunda posicin de la cinta (despus de buscar a la
izquierda el smbolo #), y pasar al nuevo estado compuesto de M'.

- La mquina M' as construida simula M, y acepta el mismo lenguaje que ella.



Mquinas de Turing no deterministas

- El no determinismo puede consistir en que:
- La mquina no se encuentre totalmente definida.
- Se ofrezcan alternativas en algunos pares estado-smbolo.

- M(S,E,I,t,i,h) donde t es un subconjunto de ((S-{h})xI)x(Sx(I{L,R})).

- Una mquina de Turing no determinista acepta una cadena w cuando es posible que
llegue al estado de parada despus de iniciar sus clculos con la entrada w.

Teorema 3.2

Para toda mquina de Turing M no determinista existe una mquina determinista D que
acepta el mismo lenguaje que M.

DEMOSTRACIN

- Para toda mquina de Turing M no determinista existe una mquina determinista M'
con tres cintas que acepta el mismo lenguaje.
- 1 cinta: contiene la cadena de entrada.
- 2 cinta: cinta de trabajo. En ella se copia la cinta 1 (desplazada un lugar a la
derecha), marcando el principio de la cinta con # y marcando el final de la
entrada con *. En este cinta se simulan secuencias de transiciones.
- 3 cinta: control de las transiciones efectuadas.

- Simulacin de M:
1. Copiar la cadena de entrada de 1 a 2 (con los marcadores de inicio y fin).
2. Generar la siguiente secuencia de transiciones en la cinta 3.
3. Simular la secuencia con la cinta 2.
4. Si se llega al estado de parada de M, detenerse. Si no, borrar la cinta 2 y volver
al paso 1.
Teora de Autmatas I
Mquinas de Turing y lenguajes estructurados por frases -8-




LENGUAJES ACEPTADOS POR MQUINAS DE TURING

- Gramticas estructuradas por frases:
- Parte izquierda de las reglas: combinacin de smbolos terminales y no
terminales, con al menos un no terminal.
- Parte derecha de las reglas: combinacin de smbolos terminales y no terminales
de cualquier longitud (incluso 0).

- Las mquinas de Turing aceptan lenguajes estructurados por frases.

- Configuracin de una mquina de Turing:
- Contenido de la cinta: entre corchetes.
- A la izquierda del smbolo actual se incluye el estado.

- Aceptacin: secuencia de configuraciones de la mquina que empieza con [iAwA] y
termina con [hAYA].

Teorema 3.3

Todo lenguaje aceptado por una mquina de Turing es un lenguaje estructurado por
frases.

DEMOSTRACIN

La gramtica ser (V,E,S,R) donde

- V = {S,[,],A,Y} I
- E = alfabeto de M.
- S: axioma.
- R:
S [hAYA]
A] AA]
o(p.x) = (q,y) produce la regla qy px
o(p,x) = (q,R) produce la regla xq px
o(p,x) = (q,L) produce las reglas qyx ypx yeI
[iA
AA] A]
A]
Teora de Autmatas I
Mquinas de Turing y lenguajes estructurados por frases -9-




Teorema 3.4

Todo lenguaje estructurado por frases es aceptado por una mquina de Turing.
DEMOSTRACIN
Para cada gramtica G existe una mquina de Turing no determinista M de 2 cintas que
aceptas el lenguaje generado por G.

Construccin de la mquina:
1. Se copia la cadena de entrada en la primera cinta.
2. Se escribe S (smbolo inicial) en la cinta 2.
3. Se aplican las reglas de reescritura de forma no determinista a la cadena de la
cinta 2.
4. Si la cinta 2 contiene slo smbolos terminales, se compara con la cadena de la
cinta 1. Si son iguales, el proceso ha terminado. Si no, provocar una terminacin
anormal.

Teorema 3.5

Dado un alfabeto E existe al menos un lenguaje L definido sobre E que no es un
lenguaje estructurado por frases.



Sistemas de codificacin de mquinas de Turing

- Cada estado se representa como una cadena de ceros.
- i = 0
- h = 00
- Los dems: a partir de 000 en adelante.

- Cada smbolo de E, as como L y R, se representan como cadenas de ceros.
- L = 0
- R = 00
- Smbolos de E: a partir de 000 en adelante.
- Espacio en blanco: cadena vaca.

- Cada transicin se puede representar como un conjunto de cadenas de ceros separadas
cada una por un nico 1.

- El conjunto de transiciones de la mquina se representa como la secuencia de cadenas
de ceros y unos de todas sus transiciones, poniendo un 1 al principio del todo y un 1 al
final, y un solo 1 para separar dos transiciones consecutivas.
Teora de Autmatas I
Mquinas de Turing y lenguajes estructurados por frases -10-




Mquinas de Turing universales

- Son mquinas de Turing programables que pueden simular a cualquier otra mquina
de Turing.
- Programa: mquina de Turing simulada codificada + cinta de entrada (con un 1
al principio y un 1 al final).

- Constan de 3 cintas:
- 1 cinta: programa + cadena de entrada.
* Contendr la salida de la mquina.
- 2 cinta: rea de trabajo (manipulacin de datos).
- 3 cinta: estado actual de la mquina simulada.

- La mquina universal:
- Copia la cadena de entrada de la cinta 1 a la cinta 2.
- Graba el cdigo del estado inicial en la cinta 3.
- Busca una transicin aplicable en la mquina codificada de la cinta 1. Cuando la
encuentra:
* Realiza la transicin en la cinta 2.
* Escribe el nuevo estado en la cinta 3.
- La mquina universal contina con este proceso hasta que llega al estado de
parada de la mquina simulada. Entonces copia la cinta 2 en la cinta 1, coloca la
cabeza de la cinta 1 donde se encontraba la de la cinta 2 y se detiene.



Lenguajes aceptables y decidibles

- Lenguaje decidible: es aquel lenguaje L para el cual existe una mquina de Turing que
puede aceptar cualquier cadena weL y rechazar cualquier cadena weL.

- Lenguaje aceptable: es aquel lenguaje L para el cual no existe ninguna mquina de
Turing que puede aceptar cualquier cadena weL y rechazar cualquier cadena weL.

- Lenguajes recursivamente enumerables: lenguajes estructurados por frases.

- Lenguajes recursivos: lenguajes decidibles por una mquina de Turing.



El problema de la parada

- Mquina autoterminante: mquina con un alfabeto {0,1,A} que se detiene cuando se le
mete como entrada una cadena que es ella misma codificada.

- Existen mquinas de Turing para las que no es posible decidir si son autoterminantes o
no: es decir, no puede saberse con certeza si se detienen no puede saberse con certeza
si una mquina de Turing se va a detener ante una cadena de entrada EL
PROBLEMA DE PARADA NO ES DECIDIBLE.