diapositiva 1 - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/programacion2/235738524.u3-maquina...

29
0 0 09:23

Upload: trinhquynh

Post on 12-Oct-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Diapositiva 1 - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/programacion2/235738524.U3-Maquina de... · 09:23 3 3 Para dar respuesta al problema decisorio de Hilbert, se produjeron

0 0 09:23

Page 2: Diapositiva 1 - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/programacion2/235738524.U3-Maquina de... · 09:23 3 3 Para dar respuesta al problema decisorio de Hilbert, se produjeron

1 1 09:23

Temas

Page 3: Diapositiva 1 - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/programacion2/235738524.U3-Maquina de... · 09:23 3 3 Para dar respuesta al problema decisorio de Hilbert, se produjeron

2 2 09:23

Objetivos

1) Comprender la importancia que tiene la Máquina de Turing para la Ciencia de la Computación.

2) Definir máquinas de Turing unicinta y multicinta,

para reconocer lenguajes y para realizar procedimientos.

Page 4: Diapositiva 1 - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/programacion2/235738524.U3-Maquina de... · 09:23 3 3 Para dar respuesta al problema decisorio de Hilbert, se produjeron

3 3 09:23

Para dar respuesta al problema decisorio de Hilbert, se produjeron casi

simultáneamente (alrededor de 1935) cuatro trabajos:

1. La teoría de funciones recursivas (S. Kleene, 1939)

2. Teorema de incompletitud (Kurt Gödel ,1931)

3. El -cálculo (A. Church, 1935)

4. Las máquinas de Turing (A. Turing, 1936)

Hilbert formuló su famosa lista de 23 problemas

esenciales para el progreso en las matemáticas.

Uno de esos problemas es el Entscheidungsproblem o

problema de la decisión que trata de descubrir un método

general para decidir si una fórmula lógica es verdadera o

falsa.

La meta de Hilbert era crear un sistema matemático formal "completo" y "consistente", en el que todas las aseveraciones pudieran plantearse con precisión. Su idea era encontrar un algoritmo que determinara la verdad o falsedad de cualquier proposición en el sistema formal.

David Hilbert (1862, 1943)

Page 5: Diapositiva 1 - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/programacion2/235738524.U3-Maquina de... · 09:23 3 3 Para dar respuesta al problema decisorio de Hilbert, se produjeron

4 4 09:23

Alan Turing, 1937, publicó un trabajo sobre números

calculables que puede considerarse en parte como el origen de

la Informática Teórica.

Turing estaba convencido de que no existía un algoritmo para

el problema de decisión planteado por Hilbert y su intención

era demostrar dicha no existencia.

Introdujo la máquina de Turing (MT) como un modelo

matemático abstracto que permitió formalizar el concepto de

algoritmo.

El modelo en el que se inspiró fue el de una persona real

llevando a cabo un cálculo mecánico, por ejemplo una

multiplicación de dos grandes números en el sistema decimal.

La noción Turing-computabilidad puede considerarse como la

base de la programación imperativa.

Alan Turing (1912-1954)

Page 6: Diapositiva 1 - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/programacion2/235738524.U3-Maquina de... · 09:23 3 3 Para dar respuesta al problema decisorio de Hilbert, se produjeron

5 5 09:23

Una Máquina de Turing es un autómata que consiste de:

• Una unidad de control

• Una memoria auxiliar que es una cinta infinita con acceso

relativamente no-restringido. La cabeza lectora/grabadora de la

cinta puede moverse a lo largo de la cinta en ambas direcciones

leyendo y/o escribiendo el contenido de un cuadrado uno a uno.

La cinta almacena

inicialmente la entrada y

subsecuentemente la

máquina de Turing usa

su cinta como

almacenamiento

operacional.

Unidad de Control

Cabeza de lectura / escritura

Cinta

Infinita . . . . . . . .

Page 7: Diapositiva 1 - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/programacion2/235738524.U3-Maquina de... · 09:23 3 3 Para dar respuesta al problema decisorio de Hilbert, se produjeron

6 6 09:23

Una Máquina de Turing es:

T = (Q, ,, ,q0 ,F) donde:

Q es un conjunto finito y no vacío de estados.

es el alfabeto de entrada, no vacío.

es el alfabeto de la cinta, no vacío, .

q0 Q es el estado inicial.

F Q es el conjunto de estados finales.

es la función de transición directa. Es una proyección:

Q x en subconjuntos finitos de Q x x {D,I,N}

Page 8: Diapositiva 1 - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/programacion2/235738524.U3-Maquina de... · 09:23 3 3 Para dar respuesta al problema decisorio de Hilbert, se produjeron

7 7 09:23

El funcionamiento de la Máquina de Turing está dado por la

función de transición directa:

(q,A1 ) = (p,A2 ,d) significa que:

1) La unidad de control de la Máquina de Turing está

actualmente en el estado qQ y el símbolo A1 se lee mediante

la cabeza de la cinta.

2) Al realizar un movimiento atómico, la unidad de control

de la Máquina de Turing cambia al estado pQ, el símbolo A1 se

reemplaza por A2, y la cabeza lectora/escritora se mueve un

cuadrado en dirección d {D, I, ,N}.

d = D la cabeza se mueve un cuadrado a la derecha.

d = I la cabeza se mueve un cuadrado a la izquierda.

d = N la cabeza no se mueve.

Page 9: Diapositiva 1 - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/programacion2/235738524.U3-Maquina de... · 09:23 3 3 Para dar respuesta al problema decisorio de Hilbert, se produjeron

8 8 09:23

Función de transición (q, X) = (r, Y, D)

q r

X,Y, D

Diagrama de Transición 1. Conjunto de nodos correspondientes a los estados de MT.

• Un estado

• Estado de inicio

• Estado final

2. Una transición se representa mediante arcos que unen los

nodos, etiquetados de la siguiente manera:

Page 10: Diapositiva 1 - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/programacion2/235738524.U3-Maquina de... · 09:23 3 3 Para dar respuesta al problema decisorio de Hilbert, se produjeron

9 9 09:23

X Y …..

q0 q1 , Y, D

q1

qk

Tabla de Transición

Estados

Símbolos pertenecientes a (q0, X) = (q1, Y, D)

q0 q1

Estados Finales

Page 11: Diapositiva 1 - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/programacion2/235738524.U3-Maquina de... · 09:23 3 3 Para dar respuesta al problema decisorio de Hilbert, se produjeron

10 10 09:23

INT

ER

PR

ET

AC

ION

ES

COMO RECONOCEDORA DE UN LENGUAJE: Dada

una cadena x* *, como entrada a T, puede suceder que

la máquina de Turing se detenga o no.

Si T se detiene, con su unidad de control en estado q, se

dice que T acepta x si qF y que T rechaza x si q F.

Si T no se detiene, entonces se dice que ni acepta ni

rechaza a x.

Los lenguajes reconocidos por máquinas de Turing reciben

el nombre de lenguajes recursivamente numerables.

Page 12: Diapositiva 1 - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/programacion2/235738524.U3-Maquina de... · 09:23 3 3 Para dar respuesta al problema decisorio de Hilbert, se produjeron

11 11 09:23

INT

ER

PR

ET

AC

ION

ES

COMO UN PROCEDIMIENTO: considérese una

máquina T y una cadena x *. T realizará una serie de

computaciones y eventualmente se detendrá con una cadena

y * en su cinta. Esto será así para cada posible cadena de

entrada. De tal modo, T establece una relación entre sus

entradas y sus salidas. Para cada posible x * produce a lo

sumo un y *, es decir, define una función parcial

F: * *.

Las funciones definidas mediante este mecanismo reciben el

nombre de funciones Turing-computables.

Page 13: Diapositiva 1 - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/programacion2/235738524.U3-Maquina de... · 09:23 3 3 Para dar respuesta al problema decisorio de Hilbert, se produjeron

12 12 09:23

L={0n 1n / n ≥1}

q0 0,X,D q1

0,0,D

Y,Y,D

1,Y,I q5

B,B,N X,X,D

Y,Y,D

q3

0,0,I

Y,Y,I

q2

q4

δ (q0,0) = (q1,X, D) δ (q1,0) = (q1,0, D) δ (q1,Y) = (q1,Y, D) δ (q1,1) = (q2,Y, I) δ (q2,Y) = (q2,Y, I)

δ (q2,X) = (q3,X, D) δ (q2,0) = (q4,0, I) δ (q3,Y) = (q3,Y, D) δ (q3,B) = (q5,B, N) δ (q4,0) = (q4,0, I) δ (q4,X) = (q0,X, D)

T = ({q0 ,q1 ,q2 ,q3 ,q4 ,q5 } , {0,1} , {0,1,B,X,Y} , , q0 , {q5 })

Page 14: Diapositiva 1 - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/programacion2/235738524.U3-Maquina de... · 09:23 3 3 Para dar respuesta al problema decisorio de Hilbert, se produjeron

13 13 09:23

+,1,D q0

1,1,D

q3

+,B,N

B,B,I

q1

q2

... 1 1 1 1 1 B +

+

1 + 1 B

La máquina de Turing que suma dos números naturales expresados en notación

unaria.

T = ({q0 ,q1 ,q2 ,q3 } , {1,+} , {1,B,+} , , q0 , {q3 })

1 + B

q0 q0 , 1, D q2 , +, D

q1 q0 , 1, D

q2 q1 , +, I q3 ,B,I

q3 q3 ,B,N

Estado Final: q3

Page 15: Diapositiva 1 - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/programacion2/235738524.U3-Maquina de... · 09:23 3 3 Para dar respuesta al problema decisorio de Hilbert, se produjeron

14 14 09:23

Es una descripción instantánea de la máquina de Turing.

Se llama configuración de una MT a una terna (q,,i) siendo q un

estado, una cadena de símbolos de ( es la cadena que está en ese

momento en la cinta) i es un número natural que representa la distancia desde

el primer símbolo de hasta el símbolo que está examinando la MT.

Un movimiento de una MT T, se define como sigue:

Sea (q, A1 A2 ...An , i) una configuaración de MT con 1 i n+1

Si 1 i n y (q,Ai ) = (p,A,D) entonces:

(q,A1 A2 ..An ,i) ├─ (p,A1 A2 ...Ai-1 AAi+1 ...An ,i+1), MT

imprime el símbolo A y se mueve a la derecha.

Si (q,Ai ) = (p,A,I) con 2 i n entonces:

(q,A1 A2 ...An ,i) ├─ (p,A1 A2 ..Ai-1 AAi+1 ..An ,i-1), T imprime el

símbolo A y se mueve a la izquierda.

Page 16: Diapositiva 1 - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/programacion2/235738524.U3-Maquina de... · 09:23 3 3 Para dar respuesta al problema decisorio de Hilbert, se produjeron

15 15 09:23

Si i = n+1 la máquina está leyendo un blanco (esta en la celda

siguiente a la cadena impresa en la cinta), puede especificarse un

movimiento a la derecha o a la izquierda.

Si hay una instrucción (q,B) = (p,A,D) entonces:

(q,A1 ...An ,n+1) ├─(p,A1 A2 ...An A,n+2)

Si la instrucción (q,B) = (p,A,I) entonces:

(q,A1 ...An ,n+1) ├─(p,A1 A2 ...An A,n)

Page 17: Diapositiva 1 - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/programacion2/235738524.U3-Maquina de... · 09:23 3 3 Para dar respuesta al problema decisorio de Hilbert, se produjeron

16 16 09:23

L={0n 1n / n ≥1}

q0 0,X,D q1

0,0,D

Y,Y,D

1,Y,I q5

B,B,N X,X,D

Y,Y,D

q3

0,0,I

Y,Y,I

q2

q4

Las configuraciones de MT correspondiente al procesamiento de 0011

es:

(q0,0011,1),(q1,X011,2),(q1,X011,3),(q2,X0Y1,2),(q4,X0Y1,1),(q0,X0Y1,2), (q1,XXY1,3),(q1,XYY1,4),(q2,XXYY,3),(q2,XXYY,2), (q3 ,XXYY,3),(q3 ,XXYY,4), (q3 ,XXYYB,5) para en estado final.

Page 18: Diapositiva 1 - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/programacion2/235738524.U3-Maquina de... · 09:23 3 3 Para dar respuesta al problema decisorio de Hilbert, se produjeron

17 17 09:23

Consta de un número arbitrario

(aunque finito) de cintas y de

cabezas de lectura/escritura por

cinta.

Cada cabeza de lectura/escritura se

desplaza de manera independiente.

es el alfabeto de entrada y es el

alfabeto de las cintas.

Una palabra w* de entrada de

largo n se colocan en las posiciones

1, . . ., n de la primera cinta.

Las siguientes posiciones (n + 1, n +

2, . . .) de la primera cinta contienen

el símbolo B.

Las restantes cintas contienen el

símbolo z0 en posición 1 y B en las

posiciones 2, 3, . ..

U.C

.

T1

T2

TK-1

Tk

Page 19: Diapositiva 1 - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/programacion2/235738524.U3-Maquina de... · 09:23 3 3 Para dar respuesta al problema decisorio de Hilbert, se produjeron

18 18 09:23

Al comenzar, la máquina se encuentra en el estado q0, y cada cabeza lectora

está en la posición 1 de su cinta.

Significa que:

si la máquina está en el estado qi y,

las cabezas desde la 1 a la k están leyendo los a1 a ak,

la máquina pasa al estado qj,

escribe b1 a bk en las cintas desde la 1 a la k respectivamente y,

mueve cada cabeza hacia la izquierda , derecha o no mueve.

(qi, a1, …, ak)=(qj,b1,…,bk,D,…,I)

Page 20: Diapositiva 1 - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/programacion2/235738524.U3-Maquina de... · 09:23 3 3 Para dar respuesta al problema decisorio de Hilbert, se produjeron

19 19 09:23

Una Máquina de Turing multicinta es:

TM = (Q, ,, ,q0 ,F) donde:

Q es un conjunto finito y no vacío de estados.

es el alfabeto de entrada, no vacío.

es el alfabeto de la cinta, no vacío, {zo,B} .

q0 Q es el estado inicial.

F Q es el conjunto de estados finales.

es la función parcial.

: Q x k Q x k x {D,I,N}k

donde k es el número de cintas

Page 21: Diapositiva 1 - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/programacion2/235738524.U3-Maquina de... · 09:23 3 3 Para dar respuesta al problema decisorio de Hilbert, se produjeron

20 20 09:23

Las funciones de transición de una máquina de Turing multicinta se

representan por una terna separada por barras, donde cada elemento de la

terna es un conjunto de símbolos que expresan la lectura, escritura y

movimientos respectivos.

q r

y1 , ... , yk / z1 , ... , zk / d1 , ... ,dk

donde:

yr : representa el símbolo leído en Tr con r =1,…, k.

zr: representa el símbolo que se escribe en Tr con r =1,…, k.

dr { D, I, N } con r =1,…, k.

Page 22: Diapositiva 1 - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/programacion2/235738524.U3-Maquina de... · 09:23 3 3 Para dar respuesta al problema decisorio de Hilbert, se produjeron

21 21 09:23

q0 q1 a,z0/a,z0/N,D

a,B/a,*/D,D

q4 b,B/b,B/N,I

b,*/b,*/D,I c,*/c,*/D,D

B,B/B,B/N,N q2 q3 c, z0/c,z0/N,D

La máquina de Turing multicinta (k = 2) que reconoce el lenguaje:

L(G) = { an bn cn / n 1} es la siguiente:

TM = ({q0,q1,q2,q3,q4}, {a,b,c},{a,b,c,*,z0,B}, ,q0 ,{q4})

δ (q0,a,zo) = (q1,a,zo,N, D) δ (q1,a,B) = (q1,a,*,D, D) δ (q1,b,B) = (q2,b,B, N,I) δ (q2,b,*) = (q2,b,*,D, I) δ (q2,c,zo) = (q3,c,zo, N,D)

δ (q3,c,*) = (q3,c,*,D, D) δ (q3,B,B) = (q4,B,B, N,N)

Page 23: Diapositiva 1 - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/programacion2/235738524.U3-Maquina de... · 09:23 3 3 Para dar respuesta al problema decisorio de Hilbert, se produjeron

22 22 09:23

Turing demostró que la actuación de una máquina de Turing arbitraria MT0 sobre

una sucesión cualquiera w de símbolos de su cinta puede ser simulada por otra

máquina, la Máquina Universal de Turing (MTu).

La idea básica de una máquina universal se trata sencillamente de un intérprete,

ya que en la cinta de la máquina universal se puede codificar el programa (es

decir, la función de transición) de toda otra máquina y los datos con que se desea

ejecutar el programa. La máquina universal puede simular entonces, paso a paso, la

ejecución de dicho programa con esos datos.

Page 24: Diapositiva 1 - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/programacion2/235738524.U3-Maquina de... · 09:23 3 3 Para dar respuesta al problema decisorio de Hilbert, se produjeron

23 23 09:23

Mediante un complejo sistema de marcadores, la máquina universal

lleva la cuenta del estado codificado de T que se está consultando. Turing

demostró que el efecto de la máquina universal sobre la sucesión de símbolos

x es exactamente el que produciría T sobre la misma sucesión.

δ (1,1) = (1,1, D) δ (1,+) = (2,+, D) δ (2,1) = (3,+, I) δ (2,B) = (4,B, I) δ (3,+) = (1,1, D) δ (4,+) = (4,B, N)

La cinta se divide en dos secciones principales:

A la izquierda está la descripción codificada de la máquina T

A la derecha está la sucesión de símbolos x que T encontrará al ir

inspeccionando.

La máquina universal se construye entonces de modo que su cabeza vaya

y venga entre las dos secciones, izquierda y derecha de la cinta.

Page 25: Diapositiva 1 - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/programacion2/235738524.U3-Maquina de... · 09:23 3 3 Para dar respuesta al problema decisorio de Hilbert, se produjeron

24 24 09:23

Estados: pueden representarse por números naturales (1, 2, ... , n)

expresados en notación binaria.

Función de transición: se reproduce la tabla correspondiente, usando:

Se comienza la cadena con ccc

Luego se reproduce cada campo de una fila de la tabla de transición,

separándolos por una c.

Se separa cada fila de la tabla de transición por cc.

La función de transición no especificadas se representan en la codificación

con 0.

La codificación de la tabla finaliza con ccc.

Page 26: Diapositiva 1 - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/programacion2/235738524.U3-Maquina de... · 09:23 3 3 Para dar respuesta al problema decisorio de Hilbert, se produjeron

25 25 09:23

Símbolo 1 + B

Estado 1 0 01

001 1 1, 1, D 2, 0, D

010 2 3, 0, I 4, 01, I

011 3 1, 1, D

100 4 4, 01, N

Suma de dos números en notación unaria.

1 3 +,1,D

1,1,D

4

+,B,N

B,B,I 2

110111

ccc 001 1 D c 010 0 D c 0 cc 0110 I c 0 c 10001 I cc 0 c 0011 D c 0 cc 0 c 100 01 D c 0 ccc

Comienzo Fin

Separa los campos

Separa las filas de la tabla de

transición

Page 27: Diapositiva 1 - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/programacion2/235738524.U3-Maquina de... · 09:23 3 3 Para dar respuesta al problema decisorio de Hilbert, se produjeron

26 26 09:23

Dado un programa (o algoritmo o Máquina de Turing) A y un valor de la

entrada X, ¿podemos saber siempre si A se parará o no?

No hay manera de saber, en general y en un tiempo finito, si la ejecución

de un programa dado con una entrada dada terminará o no.

Page 28: Diapositiva 1 - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/programacion2/235738524.U3-Maquina de... · 09:23 3 3 Para dar respuesta al problema decisorio de Hilbert, se produjeron

27 27 09:23

Máquina de Turing

Lenguajes recursivamente

numerables

Funciones Turing-computables.

MT Unicinta

MT universal

MT Multicinta

Todos los lenguajes aceptados por una MT con una cinta también serán aceptados por una MT con varias cintas y viceversa.

Emula el comportamiento de cualquier otra MT. Se trata, pues, de la primera noción de computador con programa almacenado de la historia.

Page 29: Diapositiva 1 - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/programacion2/235738524.U3-Maquina de... · 09:23 3 3 Para dar respuesta al problema decisorio de Hilbert, se produjeron

28 28 09:23

TESIS DE CHURCH-TURING “La clase de problemas que se pueden resolver utilizando el sistema de programación de Turing es exactamente el mismo que los que se pueden resolver utilizando cualquier sistema de programación razonable”.

El famoso problema de decisión planteado por Hilbert fue inmediatamente demostrado insoluble por Turing usando sus máquinas: si la veracidad de las fórmulas de la lógica de primer orden fuera soluble por una MT, ello implicaría que también sería decidible el problema de la parada.

Por lo tanto, es un hecho universalmente aceptado que la Máquina de Turing es una contrapartida formal, totalmente satisfactoria, de noción de algoritmo.

Si una función no es Turing-computable, no existe una solución (o algoritmo) para la misma en ningún sistema de computación.