máquina de turing · • construir una máquina de turing que agregue un bit de paridad a una...

34
Máquina de Turing

Upload: others

Post on 11-May-2020

27 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Máquina de Turing · • Construir una máquina de Turing que agregue un bit de paridad a una secuencia binaria para que la cantidad de “1” sea par. Γ={0,1,Β} • El conjunto

Máquina de Turing

Page 2: Máquina de Turing · • Construir una máquina de Turing que agregue un bit de paridad a una secuencia binaria para que la cantidad de “1” sea par. Γ={0,1,Β} • El conjunto

Definiciones previas

Definición . Alfabeto : Diremos que un conjunto finito Σ es un alfabeto si Σ ≠ ∅ y (∀x)(x ∈ Σ → x es un símbolo indivisible)

Ejemplos Σ ={a,b}, Σ ={0,1}, Σ ={a,b,…z} son alfabetosΣ ={0,1,00,01} Σ ={sa,ca,casa} no lo son

Page 3: Máquina de Turing · • Construir una máquina de Turing que agregue un bit de paridad a una secuencia binaria para que la cantidad de “1” sea par. Γ={0,1,Β} • El conjunto

Definiciones previas

Definicion . Palabra : Se dice que w es una palabra (cadena o string) sobre Σ si w es una secuencia finita de símbolos de Σ

Ejemplos: si Σ ={0,1}, entonces:

0011, 101, 1 son palabras sobre Σ

Page 4: Máquina de Turing · • Construir una máquina de Turing que agregue un bit de paridad a una secuencia binaria para que la cantidad de “1” sea par. Γ={0,1,Β} • El conjunto

Definiciones previas

Definicion . Longitud de una palabra : Se denota |w|, es el número de símbolos que contiene w. Por ejemplo: |perro|=5 |010|=3

Nota: notaremos con Σ* al conjunto de todas las palabras formadas por símbolos de Σ incluída la cadena nula (o vacía) que tiene longitud cero y denotaremos con λ. (| λ | = 0)

Ejemplo: Σ = {a,b} Σ* = {λ,a,b,aa,ab,ba,bb,aaa…}

Page 5: Máquina de Turing · • Construir una máquina de Turing que agregue un bit de paridad a una secuencia binaria para que la cantidad de “1” sea par. Γ={0,1,Β} • El conjunto

Definiciones previas

Concatenación : La notación utilizada para denotar la concatenación de dos palabras w y v es w.v(o simplemente wv).

La concatenación es asociativa pero no conmutativa:(v.w).x = v.(wx) v.w ≠ w.v

Se cumple que:|v.w|=|v|+|w|

La cadena vacía es el elemento neutro para la concatenacion λ.w = w.λ = w

Page 6: Máquina de Turing · • Construir una máquina de Turing que agregue un bit de paridad a una secuencia binaria para que la cantidad de “1” sea par. Γ={0,1,Β} • El conjunto

Definiciones previas

Definición. Sea una cadena w ∈ Σ y un número natural i, se define la potencia i-ésima de wcomo:

w0 = λw(i+1) = w.w i (∀i) (i ≥ 0 )

Ejemplo: si w = ab, w3 = ababab

Page 7: Máquina de Turing · • Construir una máquina de Turing que agregue un bit de paridad a una secuencia binaria para que la cantidad de “1” sea par. Γ={0,1,Β} • El conjunto

Definiciones previas

Definición . Se denomina lenguaje definido sobre Σ a cualquier subconjunto de Σ*Ejemplo: si Σ = {0,1}

∅Σ* {λ} {w ∈ Σ* / w comienza con 1}{1w0 / w ∈ Σ* }

Son lenguajes sobre Σ

Page 8: Máquina de Turing · • Construir una máquina de Turing que agregue un bit de paridad a una secuencia binaria para que la cantidad de “1” sea par. Γ={0,1,Β} • El conjunto

Características del proceso de cálculo de una persona

• Se concentra en una porción restringida del papel

• Trabaja con un número finito de símbolos• Puede cambiar la sección de papel en que se

concentra (de acuerdo al símbolo que observa y a sus estado mental)

• Pasa por un número finito de estados mentales distinguibles

• Se asume que siempre contará con el papel suficiente para sus cálculos (se asume infinito)

Page 9: Máquina de Turing · • Construir una máquina de Turing que agregue un bit de paridad a una secuencia binaria para que la cantidad de “1” sea par. Γ={0,1,Β} • El conjunto

Máquina de Turing

En cada instante, la máquina se encuentra en algún estado qi, perteneciente al conjunto finito Q de todos los estados posibles

Q={q0,q1,q2, … qn}

Page 10: Máquina de Turing · • Construir una máquina de Turing que agregue un bit de paridad a una secuencia binaria para que la cantidad de “1” sea par. Γ={0,1,Β} • El conjunto

• La cinta inicialmente se encuentra en blanco (símbolo especial “B” en cada celda), la máquina comienza en un estado inicial q0 apuntando al primer símbolo del string escrito sobre la cinta (si es que éste existe). Obsérvese que dicho string estará limitado por infinitos B a izquierda y derecha.

Configuración inicial

Page 11: Máquina de Turing · • Construir una máquina de Turing que agregue un bit de paridad a una secuencia binaria para que la cantidad de “1” sea par. Γ={0,1,Β} • El conjunto

Comportamiento de la máquina de Turgin

• El comportamiento de la máquina está definido por una fución de transición (programa)

• Dependiendo del símbolo en la celda actual y del estado corriente, la máquina efectúa las siguientes acciones

1. Cambia de estado (o vuelve a elegir el actual)2. Escribe un símbolo en la celda actual,

reemplazando lo que allí había (puede escribir el mismo símbolo que estaba)

3. Mueve el cabezal a la izaquierda o la derecha, exactamente una celda

Page 12: Máquina de Turing · • Construir una máquina de Turing que agregue un bit de paridad a una secuencia binaria para que la cantidad de “1” sea par. Γ={0,1,Β} • El conjunto

Ejemplos

Page 13: Máquina de Turing · • Construir una máquina de Turing que agregue un bit de paridad a una secuencia binaria para que la cantidad de “1” sea par. Γ={0,1,Β} • El conjunto
Page 14: Máquina de Turing · • Construir una máquina de Turing que agregue un bit de paridad a una secuencia binaria para que la cantidad de “1” sea par. Γ={0,1,Β} • El conjunto

Comportamiento de la máquina de Turgin

• El programa de la MT no es un programa secuencial sino que es una función matemática de transición.

• La máquina trabaja haciendo “pattern matching”, es decir, busca en la memoria del programa cuál es la línea (transición) que debe aplicar.

• Debe existir sólo una línea que haga “pattern matching” (si hubiese más no sería una función matemática).

• Si no existe ninguna transición definida para el estado actual y el símbolo leído en la cinta la máquina se detiene.

Page 15: Máquina de Turing · • Construir una máquina de Turing que agregue un bit de paridad a una secuencia binaria para que la cantidad de “1” sea par. Γ={0,1,Β} • El conjunto

Ejemplos

Page 16: Máquina de Turing · • Construir una máquina de Turing que agregue un bit de paridad a una secuencia binaria para que la cantidad de “1” sea par. Γ={0,1,Β} • El conjunto

Ejemplos

Page 17: Máquina de Turing · • Construir una máquina de Turing que agregue un bit de paridad a una secuencia binaria para que la cantidad de “1” sea par. Γ={0,1,Β} • El conjunto

Actividades

• Escribir símbolos “1” a la derecha indefinidamente

• Escribir símbolos “0” a la izquierda indefinidamente

• Escribir la palabra “casa”

• Escribir indefinidamente “casa casa casa casa” hacia la izquierda

• Escribir “1” hacia la derecha y “0” hacia la izquierda en zigzag indefinidamente, es decir me voy a izquierda para escribir un 1 al final, y cambio el sentido hacia la izquierda para escribir un 0, y cambio sentido hacia la derecha, así indefinidamente

Page 18: Máquina de Turing · • Construir una máquina de Turing que agregue un bit de paridad a una secuencia binaria para que la cantidad de “1” sea par. Γ={0,1,Β} • El conjunto

Ejercicio

• Construir una máquina de Turing que agregue un bit de paridad a una secuencia binaria para que la cantidad de “1” sea par. Γ={0,1,Β}

• El conjunto Γ es el conjunto de símbolos que pueden encontrarse en la cinta. Este dato es importante porque la máquina se detiene cuando se encuentra en una situación indefinida.

Page 19: Máquina de Turing · • Construir una máquina de Turing que agregue un bit de paridad a una secuencia binaria para que la cantidad de “1” sea par. Γ={0,1,Β} • El conjunto

Ejercicio

Page 20: Máquina de Turing · • Construir una máquina de Turing que agregue un bit de paridad a una secuencia binaria para que la cantidad de “1” sea par. Γ={0,1,Β} • El conjunto

¿Qué hacen las siguientes máquinas de Turing?

Page 21: Máquina de Turing · • Construir una máquina de Turing que agregue un bit de paridad a una secuencia binaria para que la cantidad de “1” sea par. Γ={0,1,Β} • El conjunto

Ejercicio

• Sumar 1 al número unario existente en la cinta Γ = {1,B}. En unario, el número n se representa como una cadena de n símbolos 1 (el cero es un string vacío).

• Construir una máquina de Turing que haga un corrimiento a derecha del string binario en la cinta, marcando con un símbolo especial “#” la cinta que correspondía al primer símbolo desplazado. Γ = {B,#,0,1}. (5 minutos para hacerlo en clase )

Page 22: Máquina de Turing · • Construir una máquina de Turing que agregue un bit de paridad a una secuencia binaria para que la cantidad de “1” sea par. Γ={0,1,Β} • El conjunto

Máquina de Turing como reconocedoras de cadenas de símbolos

• Alcanza con identificar los estados que se consideran finales (aceptadores). Se dice que una máquina de Turing M acepta un string w ⇔ M se detiene en un estado final .

Page 23: Máquina de Turing · • Construir una máquina de Turing que agregue un bit de paridad a una secuencia binaria para que la cantidad de “1” sea par. Γ={0,1,Β} • El conjunto

Máquina de Turing como reconocedoras de cadenas de símbolos

Page 24: Máquina de Turing · • Construir una máquina de Turing que agregue un bit de paridad a una secuencia binaria para que la cantidad de “1” sea par. Γ={0,1,Β} • El conjunto

Máquina de Turing como reconocedoras de cadenas de símbolos

Page 25: Máquina de Turing · • Construir una máquina de Turing que agregue un bit de paridad a una secuencia binaria para que la cantidad de “1” sea par. Γ={0,1,Β} • El conjunto

Modelo Estándar de máquina de TuringDefinición . Una máquina de Turing es una 6-tupla

M = <Q, Σ, Γ, δ, q0, F>tal que:Q es un conjunto finito de estados de MΣ es el alfabeto de la entradaΓ es el alfabeto de la cinta. Σ ⊂ Γ y B ∈ (Γ − Σ ) q0 es el estado inicial de M (q0 ∈ Q)F es el conjunto de estados finales de M. (F ⊆ Q)δ es la función de transición de M.

Se define δ: Q x Γ → Q x Γ x {D, I}, D e I representan el movimiento del cabezal a derecha e izquierda respectivamente.

Page 26: Máquina de Turing · • Construir una máquina de Turing que agregue un bit de paridad a una secuencia binaria para que la cantidad de “1” sea par. Γ={0,1,Β} • El conjunto

Modelo Estándar de máquina de Turing

Page 27: Máquina de Turing · • Construir una máquina de Turing que agregue un bit de paridad a una secuencia binaria para que la cantidad de “1” sea par. Γ={0,1,Β} • El conjunto

Ejemplo (revisitado)

Page 28: Máquina de Turing · • Construir una máquina de Turing que agregue un bit de paridad a una secuencia binaria para que la cantidad de “1” sea par. Γ={0,1,Β} • El conjunto

Ejemplo (revisitado)

Page 29: Máquina de Turing · • Construir una máquina de Turing que agregue un bit de paridad a una secuencia binaria para que la cantidad de “1” sea par. Γ={0,1,Β} • El conjunto

Descripción instantánea de una máquina de Turing

Page 30: Máquina de Turing · • Construir una máquina de Turing que agregue un bit de paridad a una secuencia binaria para que la cantidad de “1” sea par. Γ={0,1,Β} • El conjunto

Movimiento de una máquina de Turing

Page 31: Máquina de Turing · • Construir una máquina de Turing que agregue un bit de paridad a una secuencia binaria para que la cantidad de “1” sea par. Γ={0,1,Β} • El conjunto

Movimiento de una máquina de Turing

Page 32: Máquina de Turing · • Construir una máquina de Turing que agregue un bit de paridad a una secuencia binaria para que la cantidad de “1” sea par. Γ={0,1,Β} • El conjunto

Lenguaje aceptado por una máquina de Turing

Page 33: Máquina de Turing · • Construir una máquina de Turing que agregue un bit de paridad a una secuencia binaria para que la cantidad de “1” sea par. Γ={0,1,Β} • El conjunto

Lenguaje aceptado por una máquina de Turing

Page 34: Máquina de Turing · • Construir una máquina de Turing que agregue un bit de paridad a una secuencia binaria para que la cantidad de “1” sea par. Γ={0,1,Β} • El conjunto

Lenguaje aceptado por una máquina de Turing