Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
133
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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. 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. 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. 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. 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