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

Post on 11-May-2020

27 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Máquina de Turing

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

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 Σ

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

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

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

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 Σ

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)

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}

• 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

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

Ejemplos

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.

Ejemplos

Ejemplos

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

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.

Ejercicio

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

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 )

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 .

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

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

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.

Modelo Estándar de máquina de Turing

Ejemplo (revisitado)

Ejemplo (revisitado)

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

Movimiento de una máquina de Turing

Movimiento de una máquina de Turing

Lenguaje aceptado por una máquina de Turing

Lenguaje aceptado por una máquina de Turing

Lenguaje aceptado por una máquina de Turing

top related