Clase 20 "Variantes de la Máquina de Turing"

Anuncio
Clase 20: Variantes de la Máquina de Turing
M. en C. Edgardo Adrián Franco Martínez
http://computacion.cs.cinvestav.mx/~efranco
@efranco_escom
edfranco@ipn.mx
1
• Introducción
• Almacenamiento en el Estado
• Ejemplo 01
• Separar la cinta en tramos o pistas
• Ejemplo 02
• Combinando variantes
Teoría computacional
Clase 20: Variantes de la Máquina de Turing
la cinta en tramos Prof. Edgardo Adrián Franco Martínez
Contenido
• Ejemplo 03
2
Compiladores (Lenguajes y gramáticas - Edgardo A. Franco)
• Hay otros modelos de máquinas de Turing
• Todos ellos son equivalentes al modelo simple
(máquinas estándar).
1. Cualquier máquina estándar puede ser simulada por
una máquina de estos modelos
2. Cualquier máquina de estos modelos puede ser
simulada por una máquina estándar.
Teoría computacional
Clase 20: Variantes de la Máquina de Turing
la cinta en tramos Prof. Edgardo Adrián Franco Martínez
Introducción
3. Ningún modelo es más potente que el modelo
estándar
3
Compiladores (Lenguajes y gramáticas - Edgardo A. Franco)
• Una máquina M puede almacenar datos en su
unidad de control (y realizar los movimientos en
función de estos datos y del estado actual):
(no cambia la definición de la máquina de Turing)
Compiladores (Lenguajes y gramáticas - Edgardo A. Franco)
Teoría computacional
Clase 20: Variantes de la Máquina de Turing
la cinta en tramos Prof. Edgardo Adrián Franco Martínez
Almacenamiento en el Estado
4
• M= ({0,1,•},{1,0},•,Q,[q0,•],f,{[q2, •]})
Donde: Q={[q0,•], [q1,1], [q1,0], [q2,•]} ⊆{q0,q1,q2}×{0,1, •}
(los estados son tuplas [estado, dato])
Transiciones:
f([q0,•],0)= ([q1,0], •,R)
f([q0,•],1)= ([q1,1], •,R)
f([q1,0],1)= ([q1,0], •,R)
f([q1,1],0)= ([q1,1], •,R)
f([q1,0],0)= ([q2,•],0,L)
f([q1,1],1)= ([q2,•],1,L)
Teoría computacional
Clase 20: Variantes de la Máquina de Turing
la cinta en tramos Prof. Edgardo Adrián Franco Martínez
Ejemplo 01
5
[q0, •]=
0
1
1
1
…
[q1,0]=
…
1
0
1
1
[q1,0]=
…
0
1
1
…
[q2,•]=
…
•
0
1
1
…
…
Teoría computacional
Clase 20: Variantes de la Máquina de Turing
la cinta en tramos Prof. Edgardo Adrián Franco Martínez
[q0,•]01011├ [q1,0]1011├ [q1,0]011├ [q2,•]•011
6
• Se puede considerar que la cinta de una máquina M
tiene varias pistas o tramos (para almacenar
distintos datos).
Teoría computacional
Clase 20: Variantes de la Máquina de Turing
la cinta en tramos Prof. Edgardo Adrián Franco Martínez
Separar la cinta en tramos o pistas
• Idea: se considera los símbolos de la cinta como
tuplas [X,Y]
7
• Usar el primer tramo para marcar celdas en el
segundo tramo.
• Marcar la primera b (alfabeto de entrada es {a,b})
Teoría computacional
Clase 20: Variantes de la Máquina de Turing
la cinta en tramos Prof. Edgardo Adrián Franco Martínez
Ejemplo 02
8
••••• •••• ••* q0a...ab...├* a...aq0b...├ a...abq1...
Teoría computacional
Clase 20: Variantes de la Máquina de Turing
la cinta en tramos Prof. Edgardo Adrián Franco Martínez
Transiciones:
f(q0,[•,a])= (q0,[•,a],R)
f(q0,[•,b])= (q1,[*,b],R)
9
• Si consideramos el almacenamiento de símbolos en
el estado y el aumento de la cantidad de cintas,
podríamos facilitar la tarea de implementar
problemas más complejos de manera más simple.
Teoría computacional
Clase 20: Variantes de la Máquina de Turing
la cinta en tramos Prof. Edgardo Adrián Franco Martínez
Combinando variantes
10
• Buscar la celda marcada, cópiala al dato
almacenado en el estado y quita la marca (alfabeto
de entrada es {a,b})
f([q0,•],[•,a])= ([q0,•],[•,a],R)
f([q0,•],[•,b])= ([q0,•],[•,b],R)
f([q0,•],[*,b])= ([q1,b],[•,b],R)
f([q0,•],[*,a])= ([q1,a],[•,a],R)
••*•
••
*•
•••
•
[q0,•] aabb...├* aa[q0,•] bb...├ aab[q1,b]b...
Teoría computacional
Clase 20: Variantes de la Máquina de Turing
la cinta en tramos Prof. Edgardo Adrián Franco Martínez
Ejemplo 03
11
Teoría computacional
Clase 20: Variantes de la Máquina de Turing
la cinta en tramos Prof. Edgardo Adrián Franco Martínez
Quedando de la siguiente manera:
q1
b
12
Descargar