Máquinas de Turing o máquinas con cola
We can only see a short distance ahead, but we can see plenty there that needs to be done.— Alan Turing
Ivan Meza
Jerarquía de Chomsky
Lenguaje |
Gramática |
Máquina |
Ejemplo |
Dependiente del contexto |
Tipo 1 (αVβ→αγβ) |
Autómata lineal con fronteras |
ww,anbncn |
Independiente del contexto |
Tipo 2 (V→α) |
Autómata de pila |
wwr,anbn |
Regular |
Tipo 3 (V→aA|ϵ) |
Autómata finito |
w,a∗ |
Máquinas de Turing
Es una tupla (Q,Σ,Γ,q0,B,A,δ)
- Q conjunto finito de estados
- Σ alfabeto de cadenas reconocidas
- Γ alfabeto de cinta, Σ⊂Γ
- q0 estado inicial
- B Símbolo de espacio en blanco B∈Γ pero B∉Σ
- A estados finales
- δ función de transición Q×Γ→Q×Γ×{der,izq}
La cinta
- Infinita
- Todo lo que no es entrada tiene un símbolo B
- […,B,B,a,a,b,b,B,B,…]
- El principio de la cinta es la posición 0
Autómata lineal con frontera
Es una tupla (Q,Σ,Γ,q0,B,A,δ)
- Q conjunto finito de estados
- Σ alfabeto de cadenas reconocidas
- Γ alfabeto de cinta, Σ⊂Γ
- q0 estado inicial
- B Símbolo de espacio en blanco B∈Γ pero B∉Σ
- A estados finales
- δ función de transición Q×Γ∪{<,>}→Q×Γ∪{<,>}×{der,izq}
MT con cinta finita
Algoritmos interesantes cuyo requerimiento de memoria crece linearlmente con la entrada
Ejemplo
|
a |
b |
X |
Y |
B |
q0 |
(q1,X,R) |
|
|
(q3,Y,R) |
|
q1 |
(q1,a,R) |
(q2,Y,L) |
|
(q1,Y,R) |
|
q2 |
(q2,a,l) |
|
(q0,X,R) |
(q2,Y,L) |
|
q3 |
|
|
|
(q3,Y,R) |
(q4,B,R) |
q4 |
|
|
|
|
|
¿Problema, cómo especificar la configuración?
- AF Estado y símbolo de cadena
- AP Estado, símbolo de cadena, símbolo pila
- APDo Estado, símbolo de cadena, símbolo pila uno y símbolo pila dos
¡Cinta!
Recordando
|
a |
b |
X |
Y |
B |
q0 |
(q1,X,R) |
|
|
(q3,Y,R) |
|
q1 |
(q1,a,R) |
(q2,Y,L) |
|
(q1,Y,R) |
|
q2 |
(q2,a,l) |
|
(q0,X,R) |
(q2,Y,L) |
|
q3 |
|
|
|
(q3,Y,R) |
(q4,B,R) |
q4 |
|
|
|
|
|
Descripción instantáneas
δ(q,Xi)=(p,Y,L)
- X1X2…Xi−1qXiXi+1…Xn⊢X1X2…Xi−2pXi−1YXi+1…Xn
excepción
- i=1,qX1X2…Xn⊢pBYX2…Xn
- i=n,Y=B,X1X2…Xn−1qXn⊢BX1X2…pXn−1
Descripción instantáneas
δ(q,Xi)=(p,Y,R)
- X1X2…Xi−1qXiXi+1…Xn⊢X1X2…Xi−1YpXi+1…Xn
excepción
- i=n,X1X2…qXn⊢X1X2…YpB
- i=1,Y=B,qX1X2…Xn⊢pX2…Xn−1
- q0aabb
- ⊢Xq1abb
- ⊢Xaq1bb
- ⊢Xq2aYb
- ⊢q2XaYb
- ⊢Xq0aYb
- ⊢XXq0Yb
- ⊢XXYq1b
- ⊢XXq2YY
- ⊢Xq2XYY
- ⊢XXq0YY
- ⊢XXYq3Y
- ⊢XXYYq3
- ⊢XXYYBq4B
El lenguaje aceptado por una máquina de Turing
L(T)={w∈Σ∗|q0w⊢∗αpβ,p∈A}
A los lenguajes aceptados por las MT se les conoce como Lenguajes Recursivos Enumerables
1110
1101110
Relación entre máquinas
- Sabemos qué es más poderosa que ALF, la cinta no tiene límite
- Sabemos qué es diferente a AP* y AF*
- Esta sesión y la siguiente definiremos el poder de la MT
APD para un MT
- Simular un MT con un APD
- Simular un APD con una MT
Una APD para una MT
- Usamos la pila para presentar lo que está a la izquierda o derecha de la descripción instantánea
- X1…XnqXn+1…Xk produce las cintas Xn…X1] [Xk…Xn+1
- Movimientos son equivalentes a un pop en una pila y un push en la otra, en el proceso se re-escribe
Una MT para un APD
- Se define un marcador para una pila a la izquiera de la cienta, y un segunda a la derecha
- Se definen funciones que permitan posicionar en los marcadores y hacer push y pops sobre la pila
Autómata de doble pila*
Es una tupla (Q,Σ,Γ,q0,Z0,A,δ)
- Q conjunto finito de estados
- Σ alfabeto de cadenas reconocidas
- Γ alfabeto de pila
- q0 estado inicial
- Z0 símbolo inicial de la pila
- A estados finales
- δ función de transición Q×(Σ∪{ϵ})×Γ×Γ→Q×Γ∗×Γ∗
Un AFND-ϵ + dos pilas
A partir de ahora, todo lo que definamos para MT se aplica a APD
MT varias cintas
Una MT con varias cintas MkT
Para toda L(MkT) existe una equivalente L(MT)
Construir una MT que simule a MkT
MT no determinístico
La función de transición δ regresa un conjunto
Para toda L(MNDT) existe una equivalente L(MT)
Construir una MT que simule a MNDT
MT semi-infinitas
La cinta sólo existe hacia al lado derecho
[a,a,b,b,B,B,…]
Construir una MT que simule a MT semi-finita
Autómata con cola
Es una tupla (Q,Σ,Γ,q0,Z0,A,δ)
- Q conjunto finito de estados
- Σ alfabeto de cadenas reconocidas
- Γ alfabeto de pila
- q0 estado inicial
- Z0 símbolo inicial de la cola
- A estados finales
- δ función de transición Q×(Σ∪{ϵ})×Γ→Q×Γ∗
Un AFND-ϵ + una cola
Simulando una MT
Procesador: automáta finito
Memoria y disco: cinta
Simulando una computadora
Multiples cintas: Memoria, contador de instrucción, dirección de memoria, dispositivo de entrada, auxiliar
Automáta: para ejecutar instruccion, por instruacción
Gramáticas de frase
Son una tupla G=(V,Σ,P,S), donde:
- V es otro alfabeto que denominamos símbolos no terminales (generalmente en mayúsculas)
- Σ es un alfabeto que denominamos símbolos terminales
- P es conjunto de reglas con la forma α→β donde α,β∈(Σ∪V)∗
- S∈V que denominamos símbolo inicial
A partir de ahora, todo lo que definamos para MT se aplica a APD, MT varias cintas, MT no deterministicos, AC, computadoras, GF
Revisando la MT
o cómo aprendí a amar el determinismo
Lenguajes aceptados
Dada w, ¿cúando un AF* acepta a w?
- En el último símbolo de la cadena,
- Estado final un estado aceptor
¿Cúando no?
- En el último símbolo de la cadena, ninguno de los estados es aceptor
- En cualquier símbolo de la cadena, no hay transición
Un pequeño problema
¿En qué situación no podríamos llegar a sí o no?
- Que se quede trabado, ciclo infinito
- Transiciones ϵ al mismo estado, AFND y AFND-ϵ
- No es problema, lo pasamos a AF o quitamos ciclos
Ufff, nos salvamos de romper nuestra maquinaria: sí o no
Dada w, ¿cuándo un AP* acepta a w?
- En el último símbolo de la cadena,
- Estado final un estado aceptor
¿Cuándo no?
- En el último símbolo de la cadena, ninguno de los estados es aceptor
- En cualquier símbolo de la cadena, no hay transición
Mismo problema
- Que se quede trabado, ciclo infinito
- Transiciones ϵ al mismo estado, AP
- No todos los L tienen un APD, pero podemos quitar ciclos infinitos
Ufff, nos volvimos a salvar de romper nuestra maquinaria: sí o no
Dada w, ¿cuándo un ALF acepta a w?
- En el algún símbolo de la cadena... pasamos por un estado aceptor
¿Cuándo no?
- En cualquier símbolo de la cadena, no hay transición
Un problema mucho más grande!!!!
- Que se quede trabado, ciclo infinito
- No solo con transiciones ϵ, sino en la cinta
Uchales, no sé ve por donde!!!!! ¿se rompe la maquinaria?
Que no cunda el pánico!
Dada w, ¿cuándo un ALF acepta a w?
- En el algún símbolo de la cadena... pasamos por un estado aceptor
¿Cuándo no?
- En cualquier símbolo de la cadena, no hay transición
- Y no se queda en un ciclo infinito ;-)
Eso es trampa....
Hacer un aditamento, que lleve la cuenta de los pasos
... hay un límite máximo de cuando ver a un estado aceptor
- Ya sucedieron todas las re-escrituras posibles (kn)
- Ya visité todos estados en todas las posiciones (n∗q)
Si la cuenta de pasos es mayor a knnq parar
Ufff, por poquito de romper nuestra maquinaria: sí o no
Dada w, ¿cuándo una MT acepta a w?
- En el algún símbolo de la cadena...
- aparece un estado final un estado aceptor
¿Cuándo no?
- En cualquier símbolo de la cadena, no hay transición
Un problemon
- Que se quede trabado, ciclo infinito
- No solo con transiciones ϵ, sino en la cinta
- La cinta no está limitada, no se puede definir un límite
Nuestra maquinaría está rota
¿Tenemos esperanza?
- ¿Habrá algo diferente a un límite?
- ¿Podremos poner una máquina que vea a la otra máquina y detecte un ciclo?
- ¿Podremos analizar nuestra máquina?
La respuesta desafortunada, la siguiente sesión
Lenguaje decidibles
Existe una máquina que lo acepte
Para cualquier w∈L que tienen la secuencia máxima de pasos es finita
El mapa
- AF*: decidibles
- AP*: decidibles
- ALF*: decidibles (exepción L=ϵ)
- MT: no siempre
El mapa
- MT: decidibles definen lenguajes recursivos (LRec)
- MT: aceptables definen lenguajes recursivamente enumerables (LRE)
Hasta ahora pareciera que es un problema de la máquina, en la siguiente sesión demostraremos que un problema de los lenguajes
Jerarquía de Chomsky
Lenguaje |
Gramática |
Máquina |
Ejemplo |
LRE/LRec/ |
Tipo 0 (α→β) |
Máquina de Turing, APDo, AC |
?? |
LDC |
Tipo 1 (αVβ→αγβ) |
Autómata lineal con fronteras |
ww,anbncn |
LLC |
Tipo 2 (V→α) |
Autómata de pila |
wwr,anbn |
Lreg |
Tipo 3 (V→aA|ϵ) |
Autómata finito |
w,a∗ |
Máquinas de Turing o máquinas con cola
We can only see a short distance ahead, but we can see plenty there that needs to be done.— Alan Turing
Ivan Meza