Complexity©D.Moshkovitz
2
Motivación
Nuestra meta, en este curso, es analizar problemas y clasificarlos de acuerdo a su complejidad .
Complexity©D.Moshkovitz
3
Motivación
Nos hacemos preguntas como: “¿Cuánto tiempo tarda en computarse algo?”
Complexity©D.Moshkovitz
4
Motivación
Para poder resolver estas cuestiones debemos definir formalmente un modelo de computación.
Complexity©D.Moshkovitz
5
Introducción• Objetivos:
– Introducir el modelo de computación denominado “Máquina de Turing”.
• Resumen:– Máquinas de Turing deterministas (MTD)– Máquinas de Turing con varias cintas (MTVC)– Máquinas de Turing no deterministas (MTND)– La tesis de Church-Turing
Complexity©D.Moshkovitz
6
Esquema de una MT
cabeza: lee/escribe
cinta infinita
movimientos: izda/dcha¡Aquí hay
una b!
a
Complexity©D.Moshkovitz
7
Definición formal de la MT
Una máquina de Turing determinista es una tupla formada por varios objetos.
SIP 128-129
Complexity©D.Moshkovitz
9
2. Σ - El alfabeto de entrada: un conjunto finito de símbolos que no contiene al símbolo blanco.
Definición formal de la MT
Complexity©D.Moshkovitz
10
3. Γ - el alfabeto de cinta, tal que: Σ⊆Γy en símbolo “_” está en Γ.
Definición formal de la MT
Complexity©D.Moshkovitz
11
4. δ:Q×Γ→Q×Γ×{I,D} – la función de transición.
q0
a
q0
Definición formal de la MT
Complexity©D.Moshkovitz
15
1. Q – el conjunto de estados.2. Σ - el alfabeto de entrada.3. Γ - el alfabeto de cinta.4. δ:Q×Γ→Q×Γ×{I,D} – la función de
transición.5. q0 ∈Q – el estado inicial.6. qsi∈Q – el estado aceptador.7. qno∈Q – el estado que rechaza.
Definición formal de la MTResumen
Complexity©D.Moshkovitz
16
Ejecución de un MTDLa configuración inicial
q0 cabeza: en la casilla más a la izda
La entrada: a partir de la casilla más a la izda
estado inicial
Complexity©D.Moshkovitz
17
q0
δ(q0,a)=(q0,b,D)
q0
b
Nota: ¡La cabeza no se puede movermás a la izda de esta casilla!
Ejecución de un MTDEjemplo
Complexity©D.Moshkovitz
18
qsi
Si la ejecución alcanza el estado aceptador, para.
Ejecución de un MTDLa configuración aceptadora
Complexity©D.Moshkovitz
19
qno
Si la ejecución alcanza el estado que rechaza, también para.
Nota: ¡La máquina podría ciclar y no alcanzar ninguno de los estados
aceptador y rechazador!
Ejecución de un MTDLa configuración rechazadora
Complexity©D.Moshkovitz
20
Lenguaje aceptado por una MT
• Una MT acepta su entrada si, partiendo de la configuración inicial, durante el cómputo alcanza la configuración aceptadora.
• El conjunto de entradas aceptadas por un MT se denomina su lenguaje.
Complexity©D.Moshkovitz
21
Configuraciones
¿Cuántas configuraciones distintas puede alcanzar una MT que use N casillas?
|Γ|N × |Q|×N
El contenido de la cinta
El estado La posición
de la cabeza
Complexity©D.Moshkovitz
22
Construcción de una MTD para un lenguaje
L = { anbncn | n≥0 }
aaabbbcccaaabbbccc
Ejemplos:
Miembros de L:
No miembros de L: aaabbccccaaabbcccc
Complexity©D.Moshkovitz
23
La máquina de Turingdeterminista
1. Q = {q0,q1,q2,q3,q4,qsit,qno}2. Σ = {a,b,c}3. Γ = {a,b,c,_,X,Y,Z}4. δ especificada mediante diagrama.5. q0 ∈Q – el estado inicial.6. qsi∈Q – el estado aceptador.7. qno∈Q – el estado que rechaza.
Complexity©D.Moshkovitz
24
La función de transición
q0
q3
q2
q1
q4
qac
a→a, D
c→Z,I
b→Y,D
b→b, D
Z→Z, I
X→X, D
Y→Y, DZ→Z, D
_→_, D
_→_, DY→Y, D
a→X,D
Y→Y, DZ→Z, D
b→b, Ia→a, IY→Y, I
q0
q3
q2
q1
q4
qac
Las transiciones a estado qno no se
especifican.
Complexity©D.Moshkovitz
25
Lenguaje aceptado{ anbncn | n≥0 }
q0
q3
q2
q1
q4
qsi
a→X,D
a→a, D Y→Y, D
c→Z,I
b→Y,D
b→b, D Z→Z, D
Z→Z, Ib→b, IY→Y, Ia→a, I
X→X, D
Y→Y, D Z→Z, D
_→_, D
_→_, DY→Y, D
a b c _. . .
q0
q3
q0
q1
X
q2
q1
Y Z
q2
q3
q0q0
q4
_
q4
qsi
Complexity©D.Moshkovitz
26
Modelos equivalentes
• Las máquinas de Turing deterministas tienen mucho poder de computación.
• Podemos simular con ellas otros modelos, aparentemente más poderosos, con un coste polinómico.
• A continuación vemos un ejemplo.
Complexity©D.Moshkovitz
27
Máquinas de Turing con varias cintas
_bbabaa . . .
__bbbbb . . .
__abaab . . .
SIP 136-138
La entrada se escribe en la primera cinta
Complexity©D.Moshkovitz
28
1. Q – el conjunto de estados.2. Σ - el alfabeto de entrada.3. Γ - el alfabeto de cinta.4. δ:Q×Γk→Q×(Γ×{I,D})k – la función de
transición, donde k (el número de cintas) es una constante.
5. q0 ∈Q – el estado inicial.6. qsi∈Q – el estado aceptador.7. qno∈Q – el estado que rechaza.
Máquinas de Turing con varias cintas
Complexity©D.Moshkovitz
29
Robustez del modelo
• Las máquinas de Turing con varias cintas son polinómicamenteequivalentes (en cuanto a tiempo) a las que tienen una sola cinta.
• Podemos afirmar algo mucho más importante sobre la robustez del modelo de máquina de Turing:
Complexity©D.Moshkovitz
30
La Tesis de Church-Turing
Noción (intuitiva) de algoritmos
Noción (intuitiva) de algoritmos
Máquinas de Turing
Máquinas de Turing≡
Complexity©D.Moshkovitz
31
¿Qué más?
• Definimos otro modelo de computación menos realista,
• que puede ser simulado por las MTDs.• Sin embargo, con un coste exponencial
de tiempo.
Complexity©D.Moshkovitz
32
Máquinas de Turing no deterministas MTND
1. Q – el conjunto de estados.2. Σ - el alfabeto de entrada.3. Γ - el alfabeto de cinta.4. δ:Q×Γ→P(Q×Γ×{I,D}) – la función de
transición.5. q0∈Q – el estado inicial.6. qsi∈Q – el estado aceptador.7. qno∈Q – el estado que rechaza.
Partes de P(A)={B | B⊆A}
Complexity©D.Moshkovitz
33
Ejecución de un MTND
...
cómputo determinista
Árbol de cómputo no determinista
Nota: el tamaño de un árbol es exponencial en su profundidad
tiempo
acepta si algunarama alcanza la configuración aceptadora
Complexity©D.Moshkovitz
34
Descripción alternativa
Una máquina de Turing no determinista adivina el camino correcto y luego comprueba que efectivamente es correcto.
Complexity©D.Moshkovitz
35
Ejemplo• Una MTND que decide si dos vértices de un
grafo están conectados puede simplemente adivinar un camino entre ellos.
• A continuación necesita verificar que efectivamente el camino es válido (existe).
Complexity©D.Moshkovitz
36
Simulación de una MTND por una MTD
• Describimos una MTD con 3-cintas que simula una MTND dada.
SIP 138-140
Complexity©D.Moshkovitz
37
. . .
. . .
. . .
cinta de entrada
cinta simuladora
cinta de direcciones
Simulación de una MTND por una MTD
Complexity©D.Moshkovitz
38
Direcciones
computación no determinista1
1
1 1
1
11
1
1
1
1
2
2
2
2
2
3
1312
111
Complexity©D.Moshkovitz
39
Simulación1. Escribe 111…1 en la cinta de direcciones.2. Copia la entrada en la cinta simuladora.3. Simula la MTND: usa la elección dictada
por la cinta de direcciones (si es válida).4. Si se acepta – acepta y termina.5. Cambia la dirección por la siguiente en
orden lexicográfico. Si no hay más –rechaza.
6. Ir al paso 2.
Complexity©D.Moshkovitz
40
Resumen
• Presentamos dos modelos de computación: la máquina de Turing determinista frente a la máquina de Turing no determinista.
• Simulamos las MTNDs por MTDs con un coste exponencial en tiempo.
Top Related