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

Post on 12-Oct-2018

222 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

0 0 09:23

1 1 09:23

Temas

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.

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)

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)

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 . . . . . . . .

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}

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.

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:

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

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.

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.

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 })

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

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.

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)

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.

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

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)

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

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.

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)

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.

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.

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.

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

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.

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.

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.

top related