Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Talf04 v2
Talf04 v2
Aumentando el poder
Hasta aquí:
n n n ?
a b c ww ?
Cinta
...... ......
“Unidad de control”
Al igual que antes, la
máquina tiene una
cantidad finita de
estados, que
representamos con un
grafo de transiciones.
Memoria y unidad de control
… …
lo que el movimiento
lo que leo escribo del cabezal
(L:left, R:right)
q1 a b, L q2
el cambio de estado
de la máquina
Nota: también se usa la
notación (a,b,L), en lugar
de ab,L.
Representando transiciones
...... a b a c ......
q1
Representando transiciones
q1 a b, R q2
q1
q2
Representando transiciones
q1 g, L q2
...... a b a c ......
q1
...... a b b c g ......
q2
Determinismo
a b, R q2 a b, R q2
q1 q1
b d, L q3 a d, L q3
Función parcial
Acepta w:
•si se detiene en algún momento en un estado de
aceptación
Rechaza w:
Cuando no acepta. Esto puede ocurrir:
•si se detiene en algún momento en un estado
que no es de aceptación
•...o si nunca se detiene
Un ejemplo
T=0 a a a a a, R
q0
, L
a a a q0 q1
T=1
q0 Consideremos la máquina de
la arriba, y hagámosla
T=2 a a a correr sobre el input aaa.
q0
a a a T=4 a a a
T=3
Stop y
q0 q1 acepta
Un ejemplo de rechazo
T=0 a b a
a a, R
q0
, L
q0 q1 T=1 a b a
q0
La misma máquina pero
con input aba, rechaza. Stop y
rechaza
Otro tipo de rechazo
T=0 a b a
b b, L
a a, R q0
T=1 a b a
, L
q0 q1
q0
q0 ...etc
Formalmente
M = ( Q, , , , q0, F, )
donde
M = ( Q, , , , q0, F, )
donde
u v •Entonces anotamos la
descripción instantánea o
configuración como uqv.
c a b a
•Si hay que evitar alguna
q confusión, escribimos [u,q,v].
Descripción instantanea
•Claramente, el lenguaje a a, R
aceptado por el ejemplo que
vimos es a*
, L
q0 q1
•Ese es un lenguaje regular.
Idea:
•La MT simplemente lee la palabra como lo haría el AFD,
avanzando siempre hacia la derecha.
•Sus estados corresponden a los del AFD.
•Se agrega un estado extra para la aceptación (pues los del
AFD no eran de detención; pierden su condición de estado
de aceptación al pasar a la MT), y para llegar a él se
chequea el fin del input..
Detalles: ejercicio.
De hecho es un ssi:
•Si a la MT le prohibimos escribir, sólo puede aceptar
lenguajes regulares.
Otro ejemplo
q4 y y, R y y, L
y y, R a a, R a a, L
, L
y y, R a x, R b y, L
q3 q0 q1 q2
x x, R
T= 0 a a b b
q0
q4 y y, R y y, L
y y, R a a, R a a, L
, L
y y, R a x, R b y, L
q3 q0 q1 q2
x x, R
T= 1 x a b b
q1
q4 y y, R y y, L
y y, R a a, R a a, L
, L
y y, R a x, R b y, L
q3 q0 q1 q2
x x, R
T= 2 x a b b
q1
q4 y y, R y y, L
y y, R a a, R a a, L
, L
y y, R a x, R b y, L
q3 q0 q1 q2
x x, R
T= 3 x a y b
q2
q4 y y, R y y, L
y y, R a a, R a a, L
, L
y y, R a x, R b y, L
q3 q0 q1 q2
x x, R
T= 4 x a y b
q2
q4 y y, R y y, L
y y, R a a, R a a, L
, L
y y, R a x, R b y, L
q3 q0 q1 q2
x x, R
T= 5 x a y b
q0
q4 y y, R y y, L
y y, R a a, R a a, L
, L
y y, R a x, R b y, L
q3 q0 q1 q2
x x, R
T= 6 x x y b
q1
q4 y y, R y y, L
y y, R a a, R a a, L
, L
y y, R a x, R b y, L
q3 q0 q1 q2
x x, R
T= 7 x x y b
q1
q4 y y, R y y, L
y y, R a a, R a a, L
, L
y y, R a x, R b y, L
q3 q0 q1 q2
x x, R
T= 8 x x y y
q2
q4 y y, R y y, L
y y, R a a, R a a, L
, L
y y, R a x, R b y, L
q3 q0 q1 q2
x x, R
T= 9 x x y y
q2
q4 y y, R y y, L
y y, R a a, R a a, L
, L
y y, R a x, R b y, L
q3 q0 q1 q2
x x, R
T= 10 x x y y
q0
q4 y y, R y y, L
y y, R a a, R a a, L
, L
y y, R a x, R b y, L
q3 q0 q1 q2
x x, R
T= 11 x x y y
q3
q4 y y, R y y, L
y y, R a a, R a a, L
, L
y y, R a x, R b y, L
q3 q0 q1 q2
x x, R
T= 12 x x y y
q3
q4 y y, R y y, L
y y, R a a, R a a, L
, L
y y, R a x, R b y, L
q3 q0 q1 q2
x x, R
T= 13 x x y y
q4
q4 y y, R y y, L
y y, R a a, R a a, L
, L
y y, R a x, R b y, L
q3 q0 q1 q2
x x, R
El segundo ejemplo
While veo a
•ax
•Avanzar (R) saltando {a,y}, hasta ver b
•by
•Avanzar (L) saltando {a,y}, hasta ver x
•Avanzar (R)
Avanzar (R) saltando {y} hasta ver
Aceptar
While veo a
•ax
•Avanzar (R) saltando {a,y}, hasta ver b
•by
•Avanzar (R) saltando {b,z}, hasta ver c
•cz
•Avanzar (L) saltando {a,y,b,z}, hasta ver x
•Avanzar (R)
Avanzar (R) saltando {y,z} hasta ver
Aceptar
Ejercicio:
•Hacer la MT
•Proponer alternativa que use sólo {a,b,c,x,}
como alfabeto en la cinta.
LR:decidido; LRE:aceptado
w f M (w)
q0 q
Loop ()
fM:**{}
Observaciones:
5 101 11111
decimal binario unario
f ( x, y ) x y
Input: x0y
Aprovecharemos que x concatenado
Output: xy0 con y da x+y, en unario
Ejemplo: x+y
1 1, R 1 1, R 1 1, L
q0 0 1, R q1 , L q 1 0, L q3
2
, R
q4
T= 0 1 1 0 1 1
q0
1 1, R 1 1, R 1 1, L
q0 0 1, R q1 , L q 1 0, L q3
2
, R
q4
T= 1 1 1 0 1 1
q0
1 1, R 1 1, R 1 1, L
q0 0 1, R q1 , L q 1 0, L q3
2
, R
q4
T= 2 1 1 0 1 1
q0
1 1, R 1 1, R 1 1, L
q0 0 1, R q1 , L q 1 0, L q3
2
, R
q4
T= 3 1 1 1 1 1
q1
1 1, R 1 1, R 1 1, L
q0 0 1, R q1 , L q 1 0, L q3
2
, R
q4
T= 4 1 1 1 1 1
q1
1 1, R 1 1, R 1 1, L
q0 0 1, R q1 , L q 1 0, L q3
2
, R
q4
T= 5 1 1 1 1 1
q1
1 1, R 1 1, R 1 1, L
q0 0 1, R q1 , L q 1 0, L q3
2
, R
q4
T= 6 1 1 1 1 1
q2
1 1, R 1 1, R 1 1, L
q0 0 1, R q1 , L q 1 0, L q3
2
, R
q4
T= 7 1 1 1 1 0
q3
1 1, R 1 1, R 1 1, L
q0 0 1, R q1 , L q 1 0, L q3
2
, R
q4
T= 8 1 1 1 1 0
q3
1 1, R 1 1, R 1 1, L
q0 0 1, R q1 , L q 1 0, L q3
2
, R
q4
T= 9 1 1 1 1 0
q3
1 1, R 1 1, R 1 1, L
q0 0 1, R q1 , L q 1 0, L q3
2
, R
q4
T= 10 1 1 1 1 0
q3
1 1, R 1 1, R 1 1, L
q0 0 1, R q1 , L q 1 0, L q3
2
, R
q4
T= 11 1 1 1 1 0
q3
1 1, R 1 1, R 1 1, L
q0 0 1, R q1 , L q 1 0, L q3
2
, R
q4
T= 12 1 1 1 1 0
q4
1 1, R 1 1, R 1 1, L
q0 0 1, R q1 , L q 1 0, L q3
2
Parar y
, R
aceptar q4
Otro ejemplo: 2x
1 $, R 1 1, L 1 1, R
q0 , L q1 $ 1, R q2
, R
1, L
q3
Otro ejemplo: 2x
Describamos su
funcionamiento en 1 $, R 1 1, L 1 1, R
pseudocódigo informal:
q0 , L q1 $ 1, R q2
, R 1, L
•Reemplazar cada 1 por un $.
q3
•REPETIR
•Encontrar el $ de más a la derecha,
cambiarlo a 1.
•Ir al extremo derecho, insertar un 1.
HASTA que no queden $
Si quisiéramos calcular 1 x y
f ( x, y )
0 x y
el “pseudocódigo” sería:
input MT output
x, y
MT sumadora x y
x, y x y
MT comparadora
x y MT borradora 0
Variaciones c/r a las MT estándar
aababbcac a
cabezal que (movimiento es a
escribe y lee izquierda o derecha)
Algunas variantes:
•Cinta semi-infinita.
•Varias cintas.
•“Cinta” bidimensional.
•Opción de no mover el cabezal.
•Opción de insertar símbolos.
•Transiciones no deterministas.
•MT “offline” (el input queda sin tocar, en su
propia cinta).
•Largo Etc.
Variaciones c/r a las MT estándar
que L(M)=L(M’)
que M se detiene con input w ssi M’ se
detiene con input w.
q1 a b, S q2
y al aplicarla ocurrirán cosas del tipo
a a b a b b c ... b a b a b b c ...
q1 q2
MT con opción “Stay”
a b, S
q1 q2
a b, L x x, R
q1 qaux q2
q1 a b, S q2 q1
a b, L
qaux
x x, R
q2
T=1 T=2
aaba baba en M, la
MT+stay
q1 q2
a b a b pista 1
b a c d pista 2
b, a c, d ; L
q1 q2
MT con varias “pistas”
a b a b pista 1
b a c d pista 2
b, a c, d ; L (b, a) (c, d ), L
q1 q2 q1 q2
m = (m1,m2,m3) D = D1D2D3
Q' = Q D
estado estado "de variables
interno control" internas
se tiene
# a b a c .........
# a b a c .........
......... .........
a b c d e
q1 a dup , L q2
......... a b a c .......
q1
......... a b a a c .......
q1
(Duplica la celda, y se sitúa a la izquierda).
MT con Insert/Delete
q1 a del, L q2
......... a b a c .......
q1
......... a b c .......
q1
(Borra la celda, y se sitúa a la izquierda).
MT con Insert/Delete
Para duplicar:
•Marcamos la celda
•Avanzamos hasta el final del área de trabajo
•Retrocedemos copiando cada celda en la siguiente
•...hasta llegar a la celda marcada.
Para borrar:
•Marco la celda y copia en ella el valor de la celda vecina.
•Sigo copiando hasta llegar al final del área de trabajo
•Me devuelvo hasta la celda marcada.
MT con varias cintas
Unidad de
control
Cinta 1 Cinta 2
a b c e f g
T=1 a b c e f g
q1 q1
T=2 a g c e d g
q2 q2
(b, f ) ( g , d ), L, R
q1 q2
MT con varias cintas
Idea:
Cinta 1 Cinta 2
a b c e f g h
a b c Cinta 1
0 1 0 "Cabezal" de la cinta 1
e f g h Cinta 2
0 0 1 0 "Cabezal" de la cinta 2
Cabezal de la
MT multipista
MT con varias cintas
a b c
Para simular un paso de la MT 0 1 0
multicinta, la MT multipista e f g h
hace lo siguiente:
0 0 1 0
•Sitúa su cabezal a la izquierda de todos los "cabezales".
Observaciones:
En una MT no determinista, a b, L q2
existe más de una transición
posible a partir de una
configuración dada. q1
a b c a c, R q3
T=1
q1
Opción 1 Opción 2
T=2 b b c c b c
q2 q3
MT no-deterministas
Cinta de entrada a b c c $
sólo lectura
Unidad de control
lectura/escritura
Cinta de trabajo g d e
Claramente, el poder de cómputo tampoco cambia.
LLC LRE
•Pronto veremos
Lenguajes
ejemplos concretos
que muestran que
Lenguajes recursivos
cada una de estas
enumerables (r.e.)
inclusiones es
Lenguajes recursivos propia.
Lenguajes de libre
contexto
Lenguajes
regulares
Dos teoremas sobre complementos
Demostración:
•Usamos la misma MT, pero cambiamos sus estados
de aceptación: F' = Q \ F.
Demostración:
•Dado un input w, ejecutamos simultáneamente las
MT de L y de LC (un paso a la vez para cada una).
•Tarde o temprano una de las dos se tiene que
detener, y sabremos si wL.
Enumeración
w1 # w2 # w3 # ......
OJO:
# a # b # aa # ab # ba # bb # aaa #...
Demostración:
() Existe una MT ME que enumera L, y queremos
crear una MT MA que acepte L.
MA:
•Recibe un input w, y lo deja intacto en una cinta.
•Usa dos cintas más para echar a correr ME.
•Cada vez que ME imprime una palabra, MA la
compara con w. Si es igual, acepta w y se detiene.
De lo contrario, continúa.
Enumeración
Demostración:
() Existe una MT MA que acepta L, y queremos
crear una MT ME que enumere L.
•Para k=0,1,2,...
•Listar las primeras k palabras (del orden
canónico): w1,...,wk
•Para cada wi,
•Ejecutar MA con input wi durante k pasos.
•Si MA aceptó wi, imprimir wi.
QED
Enumeración
Demostración: ejercicio.
111#1#11#11#11#1#111#111#11 C
Cantidad de
nodos (en
unario) (A,B) (B,B) (A,C) (C,B)
Ejercicios:
•codificar AFD
•codificar GLC
Codificación
símbolos a b c d
estados q1
q2 q3 q4
Codificación
1 # 1 # 11 # 11 # 1
1 # 1 # 11 # 11 # 1 # # 11 # 11 # 111 # 111 # 11
Codificación
[cantidad de estados] #
[cantidad de símbolos en ] #
[lista de transiciones] #
[lista de estados que son de aceptación]
•Fijemos el alfabeto, .
•Como vimos, * es un infinito contable.
P(*) es un infinito no contable: es decir, existe
una infinidad no contable de lenguajes distintos.
•Las MT sobre el alfabeto son un conjunto
enumerable, ergo contable.
No puede haber una MT (distinta) para cada
lenguaje. ¡No alcanzan!
Un lenguaje fuera de LRE
a1 a2 a3 a4
L( M1) 0 1 0 1
L( M 2 ) 1 0 0 1
L( M 3 ) 0 1 1 1 Definamos el
lenguaje L como
L( M 4 ) 0 0 0 1 { ak: ak L(Mk) }
Un lenguaje fuera de LRE
a1 a2 a3 a4
L( M1) 0 1 0 1
L( M 2 ) 1 0 0 1
L( M 3 ) 0 1 1 1
L( M 4 ) 0 0 0 1
L
Un lenguaje fuera de LRE
•L es recursivo enumerable.
•LC no es recursivo enumerable.
contradicción
Un lenguaje fuera de LRE
•LC no es recursivo
Lenguajes LC enumerable.
Lenguajes de libre
contexto
Lenguajes
regulares
MT y PDAs “aumentados”
Sin embargo:
abbacXaYb bbabXX
Xa baa | Y
S XYZS |
XY YX
YZ ZY
XZ ZX
Xa
Yb
Zc