Máquinas de Turing - UPV/EHU2]turing.pdf · • Las máquinas de Turing con varias cintas son...

41
Complexity ©D.Moshkovitz 1 Máquinas de Turing

Transcript of Máquinas de Turing - UPV/EHU2]turing.pdf · • Las máquinas de Turing con varias cintas son...

Complexity©D.Moshkovitz

1

Máquinas de Turing

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

8

1. Q – un conjunto finito de estados.

Definición formal de la MT

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

12

5. q0∈Q – el estado inicial

Definición formal de la MT

Complexity©D.Moshkovitz

13

6. qsi∈Q – el estado aceptador.

Definición formal de la MT

Complexity©D.Moshkovitz

14

7. qno∈Q – el estado no aceptador. qno≠qsi.

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.

Complexity©D.Moshkovitz

41

Resumen

• La Tesis de Church-Turing: Las máquinas de Turing deterministas son equivalentes a nuestra idea intuitiva de algoritmo.

• Hay que tener en cuenta que normalmente describiremos los algoritmos en pseudo-código y no con MTDs