Organizaci´n de la materia                                                                                           o    ...
M´quinas de Turing a                                                                                      Tabla de instruc...
Ejemplo                                                                                                    Representaci´n ...
C´mputo de la funci´n f (x) = 0 o                 o                                                                       ...
C´mputo de una funci´n parcial o                  o                                                      Poder de c´mputo ...
Upcoming SlideShare
Loading in...5
×

g

158

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
158
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "g"

  1. 1. Organizaci´n de la materia o Docentes Te´rica o L´gica y Computabilidad o Santiago Figueira Pr´ctica a Marcelo Scasso Segundo cuatrimestre 2011 Hern´n Czemerinski a Florencia Savoretti Manuel Gim´nez e Departamento de Computaci´n - FCEyN - UBA o Herman Schinca Computabilidad - clase 1 Horario mi´rcoles de 17 a 19 en aula E24 (Pab. I) y viernes de 17 a 22 e Introducci´n, m´quinas de Turing, funciones parciales, funciones o a en aula 8 (Pab. I) en general, te´rica los mi´rcoles y pr´ctica los viernes o e a Turing computables, ejemplos Aprobaci´n: dos parciales (cada uno con su recuperatorio) o es promocionable (detalles en la pr´ctica) a www.dc.uba.ar/lyc lyc@dc.uba.ar y lyc-doc@dc.uba.ar 1 2Temas y bibliograf´ ıa Or´ ıgenes fines del siglo XIX y principios del siglo XX: inter´s por los e fundamentos de la matem´tica a dos grandes b´squedas (Hilbert) u Computabilidad 1. completitud de la aritm´tica e Computability, Complexity and Languages, fundamentals of se buscaba un sistema axiom´tico que capturara todas las a theoretical computer science. Martin Davis, Ron Sigal, Elaine verdades de la aritm´tica e Weyuker, Elsevier, 1994 G¨del (1931): cualquier sistema axiom´tico suficientemente o a poderoso es incompleto o inconsistente L´gica proposicional o 2. el problema de la decisi´n (Entscheidungsproblem) o Metal´gica, introducci´n a la metateor´ de la l´gica cl´sica de o o ıa o a se buscaba un procedimiento efectivo para decidir si cualquier f´rmula de primer orden era v´lida o no o a primer orden. Geoffrey Hunter, Editorial Paraninfo, 1981. Turing (1936): no existe tal procedimiento efectivo L´gica de primer orden o A mathematical introduction to logic. Herbert Enderton, Elsevier, 2006. 3 David Hilbert Kurt G¨del o Alan Turing 4
  2. 2. M´quinas de Turing a Tabla de instrucciones ... 0 1 1 0 0 0 0 1 0 ∗ ∗ ... Σ es el alfabeto. L, R ∈ Σ, ∗ ∈ Σ. / Q es el conjunto finito de estados q A = Σ ∪ {L, R} es el conjunto de acciones ımbolo s ∈ Σ se interpreta como “escribir s en la posici´n un s´ o Se compone de : actual” una cinta L se interpreta como “mover la cabeza una posici´n hacia la o dividida en celdas izquierda” infinita en ambas direcciones R se interpreta como “mover la cabeza una posici´n hacia la o cada celda contiene un s´ ımbolo de un alfabeto dado Σ. derecha” ∗∈Σ Una tabla de instrucciones T es un subconjunto (finito) de L, R ∈ Σ / ∗ representa el blanco en una celda Q ×Σ×A×Q L y R son s´ımbolos reservados (representar´n acciones que a puede realizar la cabeza) La tupla una cabeza (q, s, a, q ) ∈ T lee y escribe un s´ ımbolo a la vez se interpreta como se mueve una posici´n a la izquierda o una posici´n a la o o derecha Si la m´quina est´ en el estado q leyendo en la cinta el a a una tabla finita de instrucciones s´ ımbolo s, entonces realiza la acci´n a y pasa al estado q o dice qu´ hacer en cada paso e 5 6Ejemplo de ejecuci´n de una instrucci´n o o Definici´n de m´quina de Turing o a Supongamos un alfabeto Σ = {0, 1}. Una m´quina de Turing es una tupla a Una m´quina con esta tabla de instrucciones: a (Σ, Q, T , q0 , qf ) { (q1 , 0, 1, q2 ) , (q2 , 1, R, q1 ) } Si empieza en esta configuraci´n o donde ... 0 1 1 0 0 0 0 1 0 ∗ ∗ ... ımbolos (L, R ∈ Σ, ∗ ∈ Σ) Σ (finito) es el conjunto s´ / Q (finito) es el conjunto de estados tiene dos estados distinguidos: q1 q0 ∈ Q es el estado inicial pasa a qf ∈ Q es el estado final ... 0 T ⊆ Q × Σ × Σ ∪ {L, R} × Q es la tabla de instrucciones 1 1 1 0 0 0 1 0 ∗ ∗ ... va a ser finita porque Σ y Q lo son q2 cuando no hay restricciones sobre T decimos que M una y luego a m´quina de Turing no determin´ a ısitca ... 0 1 1 1 0 0 0 1 0 ∗ ∗ ... cuando no hay dos instrucciones en T que empiezan con las mismas primeras dos coordenadas, decimos que M es una q1 m´quina de Turing determin´ a ıstica 7 8
  3. 3. Ejemplo Representaci´n de n´meros y tuplas o u Sea M = (Σ, Q, T , q0 , qf ) con Visto como aut´mata o Fijamos Σ = {∗, 1}. Σ = {∗, a, b} representaremos a los n´meros naturales en unario (con u a/b palotes). Q = {q0 , q1 , qf } q0 q1 el n´mero x ∈ N se representa como u tabla de instrucciones inicio q0 a b q1 x = 1...1 b/R q b R q0 ∗/∗ x+1 T = 1 q0 ∗ ∗ qf ∗/∗ representamos a las tuplas (x1 , . . . , xn ) como lista de q1 ∗ ∗ qf qf (representaciones de) los xi separados por blanco la tupla (x1 , . . . , xn ) se representa como ∗ a a a a ∗ ∗ b b b b ∗ ∗x1 ∗ x2 ∗ · · · ∗ xn ∗ si empieza en termina en q0 qf Por ejemplo, ∗ a a b a ∗ ∗ b b b a ∗ el n´mero 0 se representa como 1 u si empieza en termina en q0 q0 el n´mero 3 se representa como 1111 u ∗ a a b a ∗ ∗ a a b a ∗ la tupla (1, 2) se representa como ∗11 ∗ 111∗ si empieza en termina en q0 qf la tupla (0, 0, 1) se representa como ∗1 ∗ 1 ∗ 11∗ 9 10Funciones parciales C´mputo de funciones parciales en m´quinas de Turing o a Siempre vamos a trabajar con funciones f : Nn → N. Una funci´n parcial f : Nn → N es Turing computable si existe una o m´quina de Turing determin´ a ıstica M = (Σ, Q, T , q0 , qf ) con Σ = {∗, 1} Pero van a ser funciones parciales. Una funci´n parcial f es una o tal que cuando empieza en la configuraci´n inicial o funci´n que puede estar indefinida para algunos (tal vez ninguno; o ... ∗ ∗ ∗ x1 ∗ x2 ∗ ... ∗ xn ∗ ∗ ∗ ... tal vez todos) sus argumentos. notamos f (x1 , . . . , xn ) ↓ cuando f est´ definida para a q0 x1 , . . . , xn . En este caso f (x1 , . . . , xn ) es un n´mero natural. u (con los enteros xi representados en unario y nada m´s en la entrada a notamos f (x1 , . . . , xn ) ↑ cuando f est´ indefinida para a salvo la representaci´n de la entrada): o x1 , . . . , xn si f (x1 , . . . , xn ) ↓ entonces siguiendo sus instrucciones en T llega a una configuraci´n final de la forma o El conjunto de argumentos para los que f est´ definida se llama a ... ∗ f (x1 , . . . , xn ) ∗ ... dominio de f , notado dom(f ). qf dom(f ) = {(x1 , . . . , xn ) : f (x1 , . . . , xn ) ↓} (quiz´ algo m´s en la cinta) a a f es total si dom(f ) = Nn . si f (x1 , . . . , xn ) ↑ entonces nunca termina en el estado qf . 11 12
  4. 4. C´mputo de la funci´n f (x) = 0 o o C´mputo de la funci´n f (x) = x + 1 o o ∗/R ∗/1 1/R ∗/1 1/R inicio q0 q1 q2 qf inicio q0 q1 qf 13 14C´mputo de la funci´n f (x) = 2x o o C´mputo de la funci´n f (x) = 2x o o Idea: por cada 1 que borro de la entrada, pongo 11 bien a la derecha. ∗/L 1/L ∗/R 1/R Repito esto hasta que quede solo un 1 en la entrada. Ah´ pongo un 1 m´s ı a inicio q0 q1 q2 q11 q12 a la derecha. Ejemplo: entrada = 2 1/1 ∗/R 1. ∗ ∗ ∗ ∗ ∗ 1 1 1 ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ q3 q13 ∗/∗ 1/L 1/R 2. ∗ ∗ ∗ ∗ ∗ ∗ 1 1 ∗ 1 1 ∗ ∗ ∗ ∗ ∗ ∗ 3. ∗ ∗ ∗ ∗ ∗ ∗ ∗ 1 ∗ 1 1 1 1 ∗ ∗ ∗ ∗ ∗/R ∗/1 4. ∗ ∗ ∗ ∗ ∗ ∗ ∗ 1 ∗ 1 1 1 1 1 ∗ ∗ ∗ 1/∗ Invariante: a lo largo de cada iteraci´n, la cinta est´ as´ o a ı: 1/L q10 q4 q5 q14 ∗ ∗ ∗ 1 . . . 1 ∗ 1 . . . . . . 1 ∗ ∗ ∗ para alg´n n > 0, m ≥ 0, n + m − 1 = entrada u n 2m ∗/1 ∗/R 1/R 1. si n = 1 entonces pongo un 1 m´s a la derecha y termina en qf con a ∗ ∗ ∗1 ∗ 1 . . . . . . 1 ∗ ∗ ∗ q9 q8 q7 q6 qf 1/R ∗/1 ∗/R 2m+1 2. si n > 1 transformo la cinta en ∗ ∗ ∗ 1 . . . 1 ∗ 1 . . . . . . 1 ∗ ∗ ∗ y vuelvo n−1 2(m+1) 1/R 1/R al paso 1 15 16
  5. 5. C´mputo de una funci´n parcial o o Poder de c´mputo o Teorema Sea f : Nm → N una funci´n parcial. Son equivalentes: o Supongamos 1. f es computable en Java x si x es par f (x) = 2. f es computable en C ↑ si no 3. f es computable en Haskell 1/R 4. f es Turing computable No es importante ∗/L 1/L ∗/R ∗/∗ qu´ base usamos para representar a los n´meros e u inicio q0 q1 q2 q3 qf usamos representaci´n unaria (Σ = {∗, 1}) o ıamos haber elegido la binaria (Σ = {∗, 0, 1}) pero podr´ 1/L 1/L o base 10 (Σ = {∗, 0, 1, 2, . . . , 9}) si permitimos que al terminar la cinta tenga otras cosas q4 escritas adem´s de la salida o solo contenga la salida a si usamos esta variante de arquitectura: una cinta de entrada (solo de lectura) una cinta de salida (solo de escritura) una o varias cintas de trabajo, de lectura/escritura 17 ¡Siempre computamos la misma clase de funciones! 18
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×