SlideShare una empresa de Scribd logo
1 de 5
Descargar para leer sin conexión
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                                                                                     2




Temas 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
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                                                                                  6




Ejemplo 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
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                                                                                                    10




Funciones 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
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                                                                              14




C´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
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

Más contenido relacionado

Similar a g

Clipping Terra 10/11/11 @ IED Barcelona
Clipping Terra 10/11/11 @ IED BarcelonaClipping Terra 10/11/11 @ IED Barcelona
Clipping Terra 10/11/11 @ IED BarcelonaIED Barcelona
 
Clipping Adn.es 10/11/11 @ IED Barcelona
Clipping Adn.es 10/11/11 @ IED BarcelonaClipping Adn.es 10/11/11 @ IED Barcelona
Clipping Adn.es 10/11/11 @ IED BarcelonaIED Barcelona
 
Clipping Noticias.com 10/11/11 @ IED Barcelona
Clipping Noticias.com 10/11/11 @ IED BarcelonaClipping Noticias.com 10/11/11 @ IED Barcelona
Clipping Noticias.com 10/11/11 @ IED BarcelonaIED Barcelona
 
Clipping Mujer.es 10/11/11 @ IED Barcelona
Clipping Mujer.es 10/11/11 @ IED BarcelonaClipping Mujer.es 10/11/11 @ IED Barcelona
Clipping Mujer.es 10/11/11 @ IED BarcelonaIED Barcelona
 
Clipping EL Economista 10/11/11 @ IED Barcelona
Clipping EL Economista 10/11/11 @ IED BarcelonaClipping EL Economista 10/11/11 @ IED Barcelona
Clipping EL Economista 10/11/11 @ IED BarcelonaIED Barcelona
 
Principios de Composición
Principios de ComposiciónPrincipios de Composición
Principios de Composiciónanacida
 
Clipping Europapress 10/11/11 @ IED Barcelona
Clipping Europapress 10/11/11 @ IED BarcelonaClipping Europapress 10/11/11 @ IED Barcelona
Clipping Europapress 10/11/11 @ IED BarcelonaIED Barcelona
 
El argentino n# 2617 01 12-111
El argentino n# 2617 01 12-111El argentino n# 2617 01 12-111
El argentino n# 2617 01 12-111fede_bour
 
Clipping Hola.com 14/11/11 @ IED Barcelona
Clipping Hola.com 14/11/11 @ IED BarcelonaClipping Hola.com 14/11/11 @ IED Barcelona
Clipping Hola.com 14/11/11 @ IED BarcelonaIED Barcelona
 
Junta de Fundadores Diciembre 2011
Junta de Fundadores Diciembre 2011Junta de Fundadores Diciembre 2011
Junta de Fundadores Diciembre 2011Andrés Núñez
 
Prst periodo2008 web
Prst periodo2008 webPrst periodo2008 web
Prst periodo2008 webDiego Junca
 
190 Catalogo Sept Amway
190 Catalogo Sept Amway190 Catalogo Sept Amway
190 Catalogo Sept Amwayaquinta30
 

Similar a g (18)

Clipping Terra 10/11/11 @ IED Barcelona
Clipping Terra 10/11/11 @ IED BarcelonaClipping Terra 10/11/11 @ IED Barcelona
Clipping Terra 10/11/11 @ IED Barcelona
 
Clipping Adn.es 10/11/11 @ IED Barcelona
Clipping Adn.es 10/11/11 @ IED BarcelonaClipping Adn.es 10/11/11 @ IED Barcelona
Clipping Adn.es 10/11/11 @ IED Barcelona
 
Clipping Noticias.com 10/11/11 @ IED Barcelona
Clipping Noticias.com 10/11/11 @ IED BarcelonaClipping Noticias.com 10/11/11 @ IED Barcelona
Clipping Noticias.com 10/11/11 @ IED Barcelona
 
Clipping Mujer.es 10/11/11 @ IED Barcelona
Clipping Mujer.es 10/11/11 @ IED BarcelonaClipping Mujer.es 10/11/11 @ IED Barcelona
Clipping Mujer.es 10/11/11 @ IED Barcelona
 
Política de educación
Política de educaciónPolítica de educación
Política de educación
 
Clipping EL Economista 10/11/11 @ IED Barcelona
Clipping EL Economista 10/11/11 @ IED BarcelonaClipping EL Economista 10/11/11 @ IED Barcelona
Clipping EL Economista 10/11/11 @ IED Barcelona
 
Principios de Composición
Principios de ComposiciónPrincipios de Composición
Principios de Composición
 
Noviembre clipping online
Noviembre clipping onlineNoviembre clipping online
Noviembre clipping online
 
Clipping Europapress 10/11/11 @ IED Barcelona
Clipping Europapress 10/11/11 @ IED BarcelonaClipping Europapress 10/11/11 @ IED Barcelona
Clipping Europapress 10/11/11 @ IED Barcelona
 
Proyecto productivo
Proyecto productivoProyecto productivo
Proyecto productivo
 
El argentino n# 2617 01 12-111
El argentino n# 2617 01 12-111El argentino n# 2617 01 12-111
El argentino n# 2617 01 12-111
 
Entrefa
EntrefaEntrefa
Entrefa
 
Clipping Hola.com 14/11/11 @ IED Barcelona
Clipping Hola.com 14/11/11 @ IED BarcelonaClipping Hola.com 14/11/11 @ IED Barcelona
Clipping Hola.com 14/11/11 @ IED Barcelona
 
Junta de Fundadores Diciembre 2011
Junta de Fundadores Diciembre 2011Junta de Fundadores Diciembre 2011
Junta de Fundadores Diciembre 2011
 
Prst periodo2008 web
Prst periodo2008 webPrst periodo2008 web
Prst periodo2008 web
 
Asignaciones en java
Asignaciones en javaAsignaciones en java
Asignaciones en java
 
Asignaciones en java
Asignaciones en javaAsignaciones en java
Asignaciones en java
 
190 Catalogo Sept Amway
190 Catalogo Sept Amway190 Catalogo Sept Amway
190 Catalogo Sept Amway
 

g

  • 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 2 Temas 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 6 Ejemplo 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 10 Funciones 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 14 C´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