Está en la página 1de 12

Captulo I: Teora de la

Computacin
1. Mquinas de Turing
Profesor: Rodrigo Pizarro G.
Profesor: Rodrigo Pizarro G. 2
Introduccin
! Para ustedes, temas conocidos son:
" Lenguajes regulares
! i.e. L={w01 | w pertenece a {0, 1}*}
" Expresin regular (tambin hay una gramtica!)
! i.e. (0+1)*01
" Autmata finito
! AF=({p,q,r}, {0,1}, !, p, {r})
!
0 1
p q p
q q r
r q p
Profesor: Rodrigo Pizarro G. 3
Introduccin
! Otro tema conocido por ustedes:
" Lenguajes libres de contexto
! i.e. L={wcw
R
| w pertenece a {a, b}*}
" Gramtica libre del contexto
! i.e. G = ({S}, {a, b, c}, {S#aSa | bSb | c}, S)
" Autmata apilador
! i.e. AA = ({p, q}, {a, b, c}, {S, a, b, c}, !, p, {q})
! = { ((p, e, e), (q, S)), ((q, e, S), (q, aSa)), ((q, e, S), (q, bSb)),
((q, e, S), (q, c)), ((q, a, a), (q, e)), ((q, b, b), (q, e)),
((q, c, c), (q, e))}
Imposible
reconocerlo
con un AF!!
Profesor: Rodrigo Pizarro G. 4
Introduccin
Lenguajes Regulares
Lenguajes Libres del Contexto
???
???
Qu nos espera ms all de lo que se conoce al aprobar
ALFA??
Profesor: Rodrigo Pizarro G. 5
Introduccin
! Surgen varias interrogantes:
" Qu hacemos al enfrentarnos a lenguajes un poco ms complicados?
! L = {a
n
b
n
c
n
| n " 0}
! L = {w | w = |a||b| y w={1}*, a = {1}*, b = {1}*}

" Y los lenguajes sensibles al contexto?
" Podemos representar el lenguaje que se nos ocurra con autmatas?
" Podemos reconocer cualquier tipo de lenguaje?
" Y si creamos un autmata que reconozca el espaol? # ganamos un
premio Nbel! $
" Y si creamos un autmata que reconozca el lenguaje natural? #
ganamos el premio
Profesor: Rodrigo Pizarro G. 6
Introduccin
Lenguajes Regulares
Lenguajes Libres del Contexto
Lenguajes sensibles al contexto
Lenguaje Natural
Diagrama de
Venn de los
lenguajes
Problema: Qu utilizamos para reconocer lenguajes sensibles
al contexto?
Profesor: Rodrigo Pizarro G. 7
Mquinas de Turing
! Introducida por el matemtico-lgico ingls
Alan Turing (1912 1954) alrededor de la
segunda guerra mundial antes de que
existieran los lenguajes de programacin.
! Son ms generales que las mquinas
anteriores
! Y son ms poderosas!
! Representan una clase maximal y estable de
autmatas.
! Pronto veremos que estn relacionados con
los clculos de complejidad algortmica.
Profesor: Rodrigo Pizarro G. 8
Mquinas de Turing
! Fueron diseadas satisfaciendo tres criterios fundamentales
de forma simultnea:
1. MT deben ser autmatas. Siguen el espritu de los autmatas
anteriores.
2. Deben ser lo ms simples de describir (definiciones formales y razn
de ser).
3. Deben ser lo ms general en trminos de computaciones que ellos
puedan realizar.
! Fueron planteadas para satisfacer el problema planteado por
Hilbert (Entscheidungsproblem):
" Hay un mtodo definido que pueda aplicarse a cualquier sentencia
matemtica y que nos diga si esa sentencia es cierta o no?
Profesor: Rodrigo Pizarro G. 9
Funcionamiento de MTs
! Definicin: Una Mquina de Turing es una cudrupla
(Q, #, !, s)
" Q es un conjunto finito de estados
" ! es un alfabeto
" " es una funcin parcial (asumimos que su dominio no es
vaco)
! !: Q $ # ! Q $ # U {I, D}
" s representa el smbolo inicial (s pertenece a Q)
" se distingue el estado final h
Movimiento!
Profesor: Rodrigo Pizarro G. 10
Funcionamiento de MTs
# b a b b a a a
q
2
q
1
q
0
h
q
3
Cinta infinita a la
derecha de
Lectura/Escritura
Cabezal mvil de
Lectura/Escritura
Control finito
Profesor: Rodrigo Pizarro G. 11
Para los ms sofisticados
Profesor: Rodrigo Pizarro G. 12
Funcionamiento de MTs
! Cabezal: lee y escribe smbolos del alfabeto en la cinta
! Control finito: opera en pasos discretos. En cada paso puede
realizar:
1. Pasar a un nuevo estado
2. Tanto:
1. escribir/leer un smbolo en la posicin que se encuentra el cabezal en la
cinta, o
2. mover el cabezal un espacio a la izquierda o a la derecha.
" Cinta: tiene inicio a la izquierda, pero es infinita a la
derecha. Puede contener smbolos blancos, simbolizados
como #
" Por convencin, el cabezal comienza en el # que contina
al ltimo smbolo de la palabra en la cinta. i.e. #abc#
PODER!
Profesor: Rodrigo Pizarro G. 13
Ejemplo de MT
! Considere la mquina M = (Q, #, !, s)
" Q={q
0
, q
1
}
" #={a}
" s=q
0
" !=
q ! "(q, !)
q
0
a *
q
0
# (q
1
, I)
q
1
a (q
0
, #)
q
1
# (h, D)
# a a a # #
#aaa#
Profesor: Rodrigo Pizarro G. 14
Configuracin de MT
! Definicin: Una configuracin de una MT M= (Q, #,
!, s) es un miembro de:
(Q U {h}) $ !* $ ! $ (!*(! - {#}) U {#})
! Ejemplos de configuraciones vlidas:
" (q, e, a, aba) # (q, aaba)
" (h, ##, #, #a) # (h, ####a)
" (q, #a#, #, #) # (q, #a##)
! Ejemplo de configuracin no vlida
" (q, baa, a, bc#) # (q, baaabc#)
configuracin
de parada
Profesor: Rodrigo Pizarro G. 15
Pasos de la MT
! Definicin: en un paso, la MT M realiza:
" M reescribe un smbolo sin mover su cabezal
"(q
1
, a) = (q
2
, b)
Por ejemplo: (q
1
, wau) $
M
(q
2
, wbu)

" M mueve su cabezal a la izquierda
"(q
1
, a) = (q
2
, I)
Por ejemplo: (q
1
, wbau) $
M
(q
2
, wbau)
Por ejemplo: (q
1
, wb#) $
M
(q
2
, wb)
" M mueve su cabezal a la derecha
"(q
1
, a) = (q
2
, D)
Por ejemplo: (q
1
, wbau) $
M
(q
2
, wbau)
Por ejemplo: (q
1
, wb) $
M
(q
2
, wb#)
Con w y u en !*, a y b en !
Profesor: Rodrigo Pizarro G. 16
Computacin y Configuracin de colgado
! Definicin: Una computacin de una MT M es una
secuencia de configuraciones C
0
, C
1
, , C
n
para
algn n >1
C
0
$
M
C
1
$
M
$
M
C
n
! Una configuracin de colgado (hanging
configuration) se presenta cuando la mquina no para
su ejecucin o se encuentra una posicin a la
izquierda del principio de la cinta.
# a a a # #
Profesor: Rodrigo Pizarro G. 17
Las MT computan!
! Las MT computan funciones de strings a strings
! Recibe como entrada un string w delimitado por
blancos
! Devuelve en la cinta el valor de f(w)
! Si existe una MT M que compute f, se dice que la
funcin f es Turing-Computable
! Podemos extender estos conceptos a funciones que
reciban cero o ms argumentos incluso a
funciones de IN a IN!! % Ms poder! !
" Se debe definir la manera en que se codificar la
informacin
Profesor: Rodrigo Pizarro G. 18
! Sea f la funcin del sucesor: f(n) = n + 1, para cada n en IN
! La MT M que realiza esta funcin es la que sigue:
" M = (Q, #, !, s)
" Q = {q
0
}
" # = {i, #}
" s = q
0
" ! =
(Ejemplo simple)
q
!
"(q, !)
q
0
i (h, D)
q
0
# (q
0
, i)
# i i i i # # i i i # # $*
M
Profesor: Rodrigo Pizarro G. 19
Problemas de decisin
! Problema de decisin asociado a un lenguaje L: Dado
w perteneciente a #*, decidir si w pertenece a L
! Por ejemplo:
" ! = {0,1,2,3,4,5,6,7,8,9}
" Un nmero n cualquiera (formado a partir de !), es
primo?
! Slo dos alternativas: S o NO
! Si existe una respuesta (S o NO) para cada w de !*,
diremos que el problema es decidible
" En caso contrario diremos que el problema es indecidible!
Profesor: Rodrigo Pizarro G. 20
y tambin deciden!
! Un problema de decisin es aqul en donde las respuestas
posibles son S o NO.
" Las MT deciden lenguajes
! Un lenguaje L cuyas palabras no contienen smbolos # es
Turing-Decidible si y slo si la funcin
tal que ! y " no son smbolos del lenguaje.
! Si existe una MT M que computa #
L
(w), para todas las
palabras w de L, diremos que M decide el lenguaje L.
#
L
(w)=
! si w est en L
" si w no est en L
Profesor: Rodrigo Pizarro G. 21
Ejemplo
! Dado L = {w pertenece a #
0
* | |w| es par}
! MT:

q0 q1
q2 q3
q4
q5
h
q6
#/I
#/D
#/I
#/D
#/!
#/"
a/#
a/#
! , " /D
#aaaa# $*
M
#!#
#aaaaa# $*
M
#"#
Profesor: Rodrigo Pizarro G. 22
MT aceptan!
! Otro uso de las MT: son aceptadores de lenguajes
! Un lenguaje L es Turing-Aceptable si y slo si existe una MT
que lo acepte
! Y qu es aceptar?
" entenderemos que una MT M acepta un lenguaje L si sta se detiene
para todas las palabras que pertenecen al lenguaje L
! Y qu es no aceptar?
" entenderemos que una MT M no acepta un lenguaje L si sta NO se
detiene para alguna de las palabras que pertenecen al lenguaje L (queda
computando por siempre)
! Es fcil ver que
" lenguaje Turing-Decidible lenguaje Turing-Aceptable
POR QU?
Profesor: Rodrigo Pizarro G. 23
Ejemplo
! L={w pertenece a !
0
* | w contiene al menos una a}
! La MT que lo acepta es:
" M = (Q, #, !, s) donde
" Q = {q
0
}
" # = {a, b, #}
" s = q
0
" ! =
q ! "(q, !)
q
0
a (h, a)
q
0
b (q
0
, I)
q
0
# (q
0
, I)
Se cuelga
si no
encuentra
una a
Profesor: Rodrigo Pizarro G. 24
Podemos jugar con ellas!! $
! Los ejemplos mostrados son sumamente simples
! No las debemos subestimar
! Juguemos con ellas:
" Poseemos mquinas simples
" Tenemos imaginacin
" principal argumento: Dividir para conquistar!.
Conquistemos
! Las MT se pueden combinar para construir MT
grandes y complejas
Profesor: Rodrigo Pizarro G. 25
Combinando para conquistar
! Cada MT simple puede ser considerada como una
subrutina o un mdulo.
! Podemos encadenar MT bsicas para lograr nuestros
objetivos.
" M1 M2 M3 Mk
" M1 prepara la cinta para M2; M2 prepara la cinta para M3 y
as sucesivamente.
" Cada Mi es independiente de las dems
Profesor: Rodrigo Pizarro G. 26
Ingredientes
! Las mquinas bsicas son de dos tipos
1. las que escriben smbolos y no se desplazan
2. las que slo se mueven por la cinta
! Hay |!| Mquinas de Turing que escriben smbolos de !.
" Formalmente se denota como W
#
a la mquina que slo escribe el
smbolo # en la cinta y despus para.
" Nosotros slo la denotaremos como #.
! Las MTs de movimiento solo mueven la cinta un espacio a
la izquierda o a la derecha y luego se detienen.
" Formalmente se denotan como V
I
y V
D
a la mquina que se desplaza
una posicin a la izquierda o a la derecha, respectivamente.
" Nosotros solo la denotaremos como I o D.
Profesor: Rodrigo Pizarro G. 27
As se preparan
! Las reglas para la combinacin de MT bsicas:
" Considerar a cada mquina bsica como un estado
individual de un autmata.
" Definir transiciones entre las mquinas bsicas igual como
se hace en un autmata.
" La transicin de M1 a M2 no es gatillada hasta que M1
detenga su ejecucin. La ejecucin de M2 estar en funcin
del estado de la cinta dejado por M1.
>M1 M2
Profesor: Rodrigo Pizarro G. 28
As se preparan
! Adems las transiciones pueden llevar smbolos en
caso de que necesitemos una condicin para
ejecutar otra mquina.
>M1 M2
M3
a
b
Profesor: Rodrigo Pizarro G. 29
Cmo se llama el plato?
! Definicin: un esquema de mquina es una tripleta
(M, %, M
0
) donde:
" M: conjunto finito de MTs con un alfabeto ! en comn y
un conjunto disjunto de estados.
" M
0
: es la mquina inicial y pertenece a M.
" %: es una funcin desde un subconjunto de M $ ! a M.
! La mquina compleja compuesta por M ser llamada
M.
Profesor: Rodrigo Pizarro G. 30
Cundo paramos?
! Especficamente, M parar cuando:
" Si %(M, a) no est definido
! Sin embargo:
" Si %(M, a) = M en M, entonces M contina operando
desde su estado inicial.
! En otras palabras, sigue el mismo modelo que las
MTs bsicas.
Profesor: Rodrigo Pizarro G. 31
Veamos un ejemplo
! Sea M={M
0
}, donde M
0
= D = ({q}, !, !
D
, q).
Considere el esquema de mquinas (M, %, M
0
), donde:
! Luego (M, %, M
0
) representa la mquina que
denotaremos por D
#
, donde
" D
#
= ({q, q0}, %, ", q)
!(q, a) = (q0, D) para cada a en !
%(M
0
, a) =
M
0
; si a & #
indefinido ; si a = #
!
D
(q, a) = (q, D) ; si a & #
(h, a) ; si a = #
!(q0, a) =
Profesor: Rodrigo Pizarro G. 32
Ejemplo del ejemplo
! Si ! = {#, a, b, c}, entonces D
#
sera:
>D
a
b
c
=
>D
=
>D
Profesor: Rodrigo Pizarro G. 33
Detalles de notacin
! Si ! = {#, a, b, c},
>D D >D D >D D = =
a
b
c
#
a, b, c, #
>D I!
#
= >D
#
Ia
Ib
Ic
a
b
c
Profesor: Rodrigo Pizarro G. 34
Mquinas bsicas que utilizaremos
! D
#
: se mueve a la derecha y para cuando encuentra un
#
! I
#
: se mueve a la izquierda y para cuando encuentra
un #
! : se mueve a la derecha y para cuando encuentra
un smbolo distinto a un #
! : se mueve a la izquierda y para cuando encuentra
un smbolo distinto a un #
Profesor: Rodrigo Pizarro G. 35
Veamos un ejemplo de todo esto
! Mquina que copia. C: #w# $
M
* #w#w#
>I
#
D #D
#
D
#
!I
#
I
#
!
D
#
#
! & #
Profesor: Rodrigo Pizarro G. 36
Podemos tener ms poder?
! Ya encontramos la forma de reconocer los lenguajes
que son sensibles al contexto.
! Podemos llegar a reconocer el LN con MTs?
agregumosles extensiones!!
" Ocupemos la cinta infinita para los dos lados
" Ocupemos varias cintas en vez de una sola
" Utilicemos varios cabezales en vez de uno
" Ocupemos una cinta bidimensional
y sus
combinaciones
Profesor: Rodrigo Pizarro G. 37
y llegamos a
! NADA! "
! Las extensiones de MTs reconocen los mismos
lenguajes que las MTs ya estudiadas.
! Cualquiera de las extensiones descritas puede ser
simulada por una MT convencional.
" En otras palabras, existe una MT convencional por cada
MT con extensiones (incluso combinadas).
" Una MT con extensiones aporta en una mejora del tiempo
de ejecucin, pero no aporta en reconocer un lenguaje ms
complejo.
Profesor: Rodrigo Pizarro G. 38
Pero tenemos una carta bajo la manga
! Hasta ahora, el determinismo ha sido nuestro aliado
! En ALFA se vio que el no-determinismo no aumenta
el poder del autmata (reconoce el mismo lenguaje)
! pero
! Qu pasa si agregamos el ingrediente del
no-determinismo a las Mquinas de Turing?
! Obtenemos MT no-deterministas!
Profesor: Rodrigo Pizarro G. 39
MTs no-deterministas
! Definicin: Una MTND es una cudrupla
(Q, #, ', s), donde Q, # y s son definidos como en las MTD, y
' es un subconjunto de:
(Q $ #) $ ((Q U {h}) $ (# U {I, D}))
! Ahora $
M
puede tener varios valores. Podemos ir de una
configuracin a varias otras en un mismo paso.
! Debemos tener cuidado con la computacin de las MTND.
! Consideraremos a las MTND slo como aceptadores
" Las computaciones de las MTND son errticas, produciendo diferentes
resultados para distintas instancias de ejecucin.
Profesor: Rodrigo Pizarro G. 40
Un ejemplo de MTND
! Sea L = {w en {a, b}* | w contiene una ocurrencia del
substring abaab}
>I

I
a, b
I I I a
b
.
a b a
#
a
# b, # b, # a, # b, #
No-determinismo
Profesor: Rodrigo Pizarro G. 41
y ahora ganamos algo?
! NO! "
! Los lenguajes aceptados por MTND no difieren de los
aceptados por MTD.
! Para cada MTND M1, se puede construir una MTD M2 tal que
para cualquier palabra w que no contiene blancos:
" Si M1 para con entrada w, entonces M2 para con entrada w
" Si M1 no para con entrada w, entonces M2 no para con entrada w.
! Teorema: cualquier lenguaje aceptado por una MTND es
aceptado por una MTD
Profesor: Rodrigo Pizarro G. 42
qu sigue ahora?
! Hemos visto que las MT se parecen mucho a los
computadores que ocupamos hoy en da:
Mquina de Turing Computador
Maneja una cantidad finita de
smbolos
Maneja cantidades finitas de bits o
bytes
Escribe/lee smbolos de una cinta Escribe/lee bits o bytes de Memoria
principal o secundaria
Posee un cabezal mvil En la CPU hay un registro para
mantener la instruccin en
ejecucin: Program Counter
Posee un conjunto de estados que
describen su operacin
Ejecutan programas (secuencias de
instrucciones)
Profesor: Rodrigo Pizarro G. 43
Ms cosas que deberamos pensar
! Si nos damos cuenta, una MT es una de las primeras bases
para realizar computacin.
" Esta base ha sido implementada y se conoce como computador
! Somos informticos, hacemos algoritmos
" qu es un algoritmo?
" qu puede representar un algoritmo?
" Existe una definicin matemtica de lo que es un algoritmo?
! Necesitamos clarificar esta visin el matemtico lgico
Alonzo Church se atrevi a dar una definicin!
! Seor Church, aydenos!
Profesor: Rodrigo Pizarro G. 44
Lo que dice el Sr. Church
! Church lleg a postular lo que conoceremos como Tesis de
Church-Turing o simplemente Tesis de Church (TCh).
! Entenderemos la Tesis de Church como:
" Todo algoritmo puede representarse como una Mquina de Turing, en
caso contrario, no es algoritmo
! Las mquinas de Turing realmente capturan la nocin de lo
que es un algoritmo o un procedimiento efectivo llevado a
cabo por un humano o por una mquina.
! Surgen interesantes preguntas:
" qu es todo aquello que puede crear un cdigo informtico?
" La actividad del cerebro puede ser simulada por una MT?
Profesor: Rodrigo Pizarro G. 45
En las nubes
! La TCh se cree que es verdadera.
! Se puede aplicar a la fsica (?) y tiene unas interesantes
interpretaciones:
" el universo es una mquina de Turing y por lo tanto no es posible
construir fsicamente una mquina con mayor poder computacional (la
capacidad de cmputo que puede contener el universo est acoplado al
tipo de universo en el que vivimos) % TCh fuerte
" el universo no es una mquina de Turing, es decir, las leyes del
universo no son computables pero esto no afecta la posibilidad de crear
una mquina ms poderosa que una mquina de Turing
" el universo sea una hipercomputadora y entonces sea posible la
construccin de mquinas ms poderosas que las mquinas de Turing
usando como entrada los resultados de dicha sper computadora: el
universo o la naturaleza.
Profesor: Rodrigo Pizarro G. 46
An queremos ms!
! Hemos visto distintos tipos de MTs
! Tristemente & son todos equivalentes
! En particular, las MTs que vimos son diseadas de acuerdo al
problema que solucionan.
" Existe una MT para cada problema del universo?
! Queremos ms flexibilidad!
! y si le pasamos a una MT como argumento otra MT?
" Sera como tener hardware y software?
" Cmo realizamos este traspaso?
" Cmo una MT recibe a otra como entrada?
" Se puede recibir a s misma?
" Para qu nos sirve?

También podría gustarte