máquina de turing · • construir una máquina de turing que agregue un bit de paridad a una...
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](https://reader030.vdocuments.pub/reader030/viewer/2022041010/5eb8d6560bb5865a91465099/html5/thumbnails/1.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022041010/5eb8d6560bb5865a91465099/html5/thumbnails/2.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022041010/5eb8d6560bb5865a91465099/html5/thumbnails/3.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022041010/5eb8d6560bb5865a91465099/html5/thumbnails/4.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022041010/5eb8d6560bb5865a91465099/html5/thumbnails/5.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022041010/5eb8d6560bb5865a91465099/html5/thumbnails/6.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022041010/5eb8d6560bb5865a91465099/html5/thumbnails/7.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022041010/5eb8d6560bb5865a91465099/html5/thumbnails/8.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022041010/5eb8d6560bb5865a91465099/html5/thumbnails/9.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022041010/5eb8d6560bb5865a91465099/html5/thumbnails/10.jpg)
• 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](https://reader030.vdocuments.pub/reader030/viewer/2022041010/5eb8d6560bb5865a91465099/html5/thumbnails/11.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022041010/5eb8d6560bb5865a91465099/html5/thumbnails/12.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022041010/5eb8d6560bb5865a91465099/html5/thumbnails/13.jpg)
![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](https://reader030.vdocuments.pub/reader030/viewer/2022041010/5eb8d6560bb5865a91465099/html5/thumbnails/14.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022041010/5eb8d6560bb5865a91465099/html5/thumbnails/15.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022041010/5eb8d6560bb5865a91465099/html5/thumbnails/16.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022041010/5eb8d6560bb5865a91465099/html5/thumbnails/17.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022041010/5eb8d6560bb5865a91465099/html5/thumbnails/18.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022041010/5eb8d6560bb5865a91465099/html5/thumbnails/19.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022041010/5eb8d6560bb5865a91465099/html5/thumbnails/20.jpg)
¿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](https://reader030.vdocuments.pub/reader030/viewer/2022041010/5eb8d6560bb5865a91465099/html5/thumbnails/21.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022041010/5eb8d6560bb5865a91465099/html5/thumbnails/22.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022041010/5eb8d6560bb5865a91465099/html5/thumbnails/23.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022041010/5eb8d6560bb5865a91465099/html5/thumbnails/24.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022041010/5eb8d6560bb5865a91465099/html5/thumbnails/25.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022041010/5eb8d6560bb5865a91465099/html5/thumbnails/26.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022041010/5eb8d6560bb5865a91465099/html5/thumbnails/27.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022041010/5eb8d6560bb5865a91465099/html5/thumbnails/28.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022041010/5eb8d6560bb5865a91465099/html5/thumbnails/29.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022041010/5eb8d6560bb5865a91465099/html5/thumbnails/30.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022041010/5eb8d6560bb5865a91465099/html5/thumbnails/31.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022041010/5eb8d6560bb5865a91465099/html5/thumbnails/32.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022041010/5eb8d6560bb5865a91465099/html5/thumbnails/33.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022041010/5eb8d6560bb5865a91465099/html5/thumbnails/34.jpg)
Lenguaje aceptado por una máquina de Turing