Professional Documents
Culture Documents
Objetivos Generales
Presentar las m aquinas abstractas que forman la base de la teor a de la computaci on, y estudiar sus caracter sticas y limitantes.
Estudiar los lenguajes formales y sus propiedades. Mostrar que cualquier problema de c omputo equivale al reconocimiento de alg un lenguaje.
Contenido
1. Conceptos b asicos de teor a de conjuntos 2. Aut omatas nitos y lenguajes racionales aticas y lenguajes 3. Gram 4. Aut omatas de pila 5. M aquinas de Turing 6. Computabilidad y complejidad computacional
3
Bibliograf a sugerida
Teor a de la Computaci on: Lenguajes formales, aut omatas y complejidad J. Glenn Brookshear Pearson, Addison Wesley Longman
Conjuntos
Denici on ingenua: Un conjunto es una agrupaci on o colecci on de objetos de alg un tipo, los cuales pueden o no estar denidos por una o m as caracter sticas. Notaci on: cita: se enlistan todos los elementos entre llaves. Expl Impl cita: se describen las caracter sticas que denen los elementos del conjunto. Ejemplo: {2, 4, 6, . . .} = {x tal que x es entero par positivo}.
6
Notaci on
Los conjuntos t picamente se denotan mediante letras may usculas. Ejemplo: A = {a, e, i, o, u}, = {x tal que x2 = 1}.
Los s mbolos : y | signican tal que. Ejemplo: A = {x : x es vocal min uscula}, = {x | x2 = 1}.
Notar que es posible que un conjunto pertenezca a otro: A = {1, 2}, B = {3, 4, 5} = {A, B } = {{1, 2}, {3, 4, 5}} .
Paradoja de Russell
Esta paradoja surge a partir de la denici on ingenua de conjunto. Sea X un conjunto. Llam emosle a X normal si X / X y anormal si X X . Sea N el conjunto de todos los conjuntos normales; es decir, N = {X | X / X }. Es N normal o anormal?.
8
Subconjuntos
Decimos que A es subconjunto de B si y s olo si x A = x B (es decir, todo elemento de A es tambi en elemento de B ). A es subconjunto propio de B si existe al menos un x B tal que x / A; es decir A = B . on: A B o A B (algunos autores utilizan el Notaci s mbolo para indicar un subconjunto propio) Notar que: A = B A B y B A.
9
Intersecci on:
A B = {x | x A y x B }
Complemento:
A = {x | x / A}
Resta:
A B = {x | x A y x / B}
10
A (B C ) = ( A B ) (A C ) A (B C ) = (A B ) (A C )
(A B ) = A B y (A B ) = A B
11
Producto Cartesiano
El producto cartesiano A B de dos conjuntos A y B se dene como el conjunto de todos los pares ordenados en los cuales el primer elemento pertenece a A y el segundo a B : A B = {(a, b) | a A y b B } . Ejemplo:
A B AB BA = = = = {2, 3} {x, y, z } {(2, x), (2, y ), (2, z ), (3, x), (3, y ), (3, z )} {(x, 2), (x, 3), (y, 2), (y, 3), (z, 2), (z, 3)}
Notar que A B = B A.
12
Conjunto vac o
El conjunto vac o es el conjunto unico que no contiene elementos. El conjunto vac o se denota por = {}. Algunas propiedades: / . 1. Para todo x, x 2. A = A, A = , A = A, A = . 3. Para todo x , x cumple cualquier propiedad.
13
Conjunto potencia
El conjunto potencia P (A) de un conjunto A es el conjunto cuyos elementos son todos los subconjuntos de A; es decir: P (A) = {X | X A} .
Ejemplo: si A = {1, 2, 3}, entonces P (A) = {{}, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}} . Si A es nito, entonces |P (A)| = 2|A|.
15
Relaciones
on entre dos conjuntos A y B es un subconjunto Una relaci P de A B .
un a A y b B , entonces decimos que Si (a, b) P , para alg a est a relacionado con b mediante P .
16
Funciones
Una funci on de un conjunto A a un conjunto B es una relaci on de A a B en la que se cumple lo siguiente: Si (a, b1 ) y (a, b2 ) , entonces b1 = b2 . En otras palabras, una funci on asocia a un elemento de A con un unico elemento de B . Notaci on: on de A a B se denota como : A B . Una funci Si (a, b) entonces decimos que b es la imagen de a bajo la funci on , y esto se escribe como b = (a).
17
18
Tipos de funciones
on : A B es uno-a-uno o inyectiva si para todo Una funci a1, a2 A se cumple que (a1) = (a2) = a1 = a2, o equivalentemente a1 = a2 = (a1) = (a2). on : A B es sobre o subyectiva si im = B ; es Una funci decir, para todo b B existe alg un a A tal que (a) = b. Una funci on es biyectiva si es uno-a-uno y sobre.
19
Composici on de funciones
Dadas funciones : A B y : B C , entonces podemos denir la composici on : A B como ( )(a) = ((a)), para todo a A tal que (a) dom . Notar que, en general, no est a bien denido y es distinto de . Si : A B es una funci on, entonces idA = idB = .
20
Funci on inversa
on Dada : A B , decimos que : B A es una funci inversa de si = idA y = idB . on es unica y se escribe Teorema: La inversa de una funci como 1.
Cardinalidad
Para un conjunto nito A, su cardinalidad |A| es el n umero de elementos que contiene. Para conjuntos innitos, el concepto de cardinalidad no es tan claro. Sabemos, por ejemplo, que tanto el conjunto de los n umeros naturales positivos N+ como el de los n umeros reales R son innitos, pero intuitivamente uno espera que R tenga un mayor n umero de elementos que N+ ya que N+ R. Una forma de mostrar que dos conjuntos tienen la misma cardinalidad es encontrando una funci on biyectiva entre ellos.
22
Corolario: |X | < |P (X )| < |P (P (X ))| < . . .. Es decir, no existe una cardinalidad m axima. Teorema: Para cualquier conjunto innito X , |N+| |X |. Es decir, no existe ning un conjunto innito con cardinalidad menor a la de N+.
23
Si los elementos de un conjunto X se pueden listar de una manera ordenada, entonces el conjunto es contable (ya que existe una funci on biyectiva entre X y N+).
24
N+ N+ = {(1, 1), (1, 2), (2, 1), (1, 3), (2, 2), (3, 1), . . .}.
El conjunto F de funciones de N+ a N+ es incontable ya que |F| |P (N+)|.
Prueba: sea X un subconjunto de N+ , entonces podemos denir la funci on fX : N+ N+ como fX (x) = 1 0 si x X si x / X.
N+ .
25
Otro ejemplo
Supongamos que tenemos un lenguaje formado por un conjunto nito de palabras = {w1 , w2 , . . . wn }, donde n = ||. Un programa equivale entonces a una secuencia de palabras wa1 wa2 . . . waq , donde a1 , a2, . . . , aq {1, 2, . . . , n}. La secuencia a1 a2 . . . aq equivale a un n umero entero positivo escrito en base n. Esto sugiere un mapeo biyectivo entre el conjunto de todas los posibles programas escritos con palabras de , y el conjunto N+. Por lo tanto, es contable. Es decir, solamente una cantidad contable de programas se pueden escribir con el lenguaje . Sin embargo, hay un n umero incontable de funciones de N+ a N+ , lo cual signica que para algunas de estas funciones no es posible escribir un programa que las resuelva.
26
27
M aquinas abstractas
Para estudiar el alcance y la potencia de c omputo de las m aquinas actuales, es necesario desarrollar modelos simples de m aquinas que tengan las mismas capacidades, pero que sean mas f aciles de entender y analizar. Uno de los modelos m as simples (aunque no muy potente) consiste en un sistema en el que nuestra m aquina abstracta pueda ubicarse en uno de varios estados en un momento determinado. Adem as, la m aquina puede recibir datos de entrada, a partir de los cuales decide, seg un un conjunto de reglas preestablecidas, si se mantiene en el mismo estado o cambia a un estado distinto. Estas m aquinas abstractas tambi en reciben el nombre de aut omatas.
28
Diagramas de transiciones
Un diagrama de transiciones es un grafo en el cual los nodos representan los distintos estados de un aut omata, y las aristas representan las posibles transiciones entre estados. mbolo. Una transici on de un estado a Cada arista tiene asociado un s otro solo se realiza si el dato de entrada coincide con el s mbolo de la arista correspondiente. T picamente existe un estado inicial (indicado con una echa), y un estado terminal o de aceptaci on indicado con un c rculo.
29
Tablas de transiciones
Tambi en es posible describir un aut omata mediante una tabla de transiciones, como se muestra a continuaci on.
a b
1 2 -
2 4 3
3 4 1
4 1
30
31
Palabras
Dado un alfabeto A una palabra en w en w = a1a2 . . . an donde (es decir, un conjunto de s mbolos), A es una secuencia nita de s mbolos a1, a2, . . . , an A.
La longitud |w| de una palabra w = a1a2 . . . an es precisamente n. a es aquella que tiene longitud cero, y se La palabra vac denota com unmente como 1 o (dado que 1 /A o / A). Las potencias de una palabra w representan la concatenaci on de w con ella misma. Por ejemplo:
a3 = aaa, (ab)2 = abab, b(a2 b)3 a = baabaabaaba.
32
Lenguajes
Un lenguaje L sobre un alfabeto A es cualquier conjunto de palabras en A. El lenguaje que contiene a todas las palabras (nitas) formadas con s mbolos de un alfabeto A se denota como A. A = a1a2 . . . an : aj A para j = 1, . . . , n, y n N . El lenguaje que contiene a todas las palabras en un alfabeto A de longitud positiva se denota por A+. Este lenguaje no contiene a la palabra vac a. A = A+ {1}.
33
Ejercicios:
1. Dise nar un diagrama de transiciones para reconocer expresiones aritm eticas simples de n umeros enteros positivos separados por los s mbolos +, , , . Por ejemplo: 54 + 23, 12 8, 12345 54321, 8 3. 2. Dise nar un AFD para una m aquina vendedora de refrescos que llegue a un estado de aceptaci on cuando el usuario ha introducido la cantidad suciente para comprar un refresco. Los refrescos cuestan $6 y la m aquina acepta monedas de $1, $2, y $5. C omo manejar a el caso en el que el usuario introduce m as de $6? 3. Dibuje el diagrama de transiciones y describa el lenguaje reconocido por el AFD A = (Q = {q1, q2, q1 }, A = {a, b}, , i = q1 , T = {q3 }), donde est a dada por la siguiente tabla: q1 q2 q3 a q2 q2 q3 b q1 q3 q3
35
unmente para mostrar (por El lema del bombeo se utiliza com contradicci on) que un lenguaje L no es reconocido por ning un AFD: uno supone que L es reconocible y elige una palabra z L y una factorizaci on z = uvw adecuadas, de manera que para alg un m, uv mw / L.
37
38
Observaci on
o), existe una Teorema: Para cualquier alfabeto A (no vac innidad de lenguajes en A que no son reconocibles. Prueba: A es innito contable, por lo tanto, el conjunto de todos los lenguajes en A, es decir, P (A) es incontable. Por otro lado, el conjunto de todos los AFD cuyo alfabeto es A es contable (se pueden enlistar primero todos los AFD con un estado, luego los que tienen dos estados, etc). Por lo tanto, no existen sucientes AFD para reconocer todos los lenguajes en A.
39
Ejercicios
1. Mostrar, usando el Lema del Bombeo, que el lenguaje L = {ap : p es primo} no es reconocible por ning un AFD. 2. Sea A = (Q, A, i, T, ) un AFD. Dise ne otro AFD que reconozca el com plemento de L(A) en A ; es decir, A L(A). 3. Dise ne un AFD que reconozca n umeros, con o sin decimales, positivos o negativos. Por ejemplo, las cadenas 3.1416, son reconocidas, mientras que 3.44.4, 5 44. 4, .. . . .. 6, 5.8
40
pa2
-transiciones
Es posible extender la denici on de un AFN para que admita transiciones de un estado a otro sin consumir ning un s mbolo de entrada. Este tipo de transiciones se conocen como -transiciones (donde representa la palabra vac a), de manera que la funci on de transici on se dene como : Q (A { }) P (A). Es posible mostrar que para todo aut omata A que utilice -transiciones puede encontrarse un aut omata A sin transiciones tal que L(A ) = L(A).
43
44
Accesibilidad
En un aut omata determinista A = (Q, A, , i, T ), un estado q Q es accesible si existe w A tal que iw = q ; es decir, si es posible llegar a q a partir del estado inicial mediante alguna secuencia de s mbolos.
Dado un aut omata no accesible A, se puede obtener un aut omata accesible A tal que L(A ) = L(A) simplemente eliminando los estados no accesibles.
46
Coaccesibilidad
Un estado q de un aut omata A = (Q, A, , i, T ) es coaccesible si existe w A tal que qw T ; es decir, si existe alguna ruta que lleve al aut omata de q a alg un estado terminal. Un aut omata es coaccesible si todos sus estados son coaccesibles. Un aut omata podado (trim) es aqu el que es tanto accesible como coaccesible. El lenguaje reconocido por un aut omata no se modica si uno elimina todos los estados que no son coaccesibles.
47
Lenguajes racionales
Dados dos lenguajes L1 , L2 A, denimos la concatenaci on o producto L1 L2 como L1 L2 = {uv : : u L1 , v L2 }. Dado un subconjunto L A denimos L = {u1 u2 . . . un : n 0, u1 , u2, . . . , un L}. Esta operaci on se conoce como operaci on estrella de Kleene. Un subconjunto de A se llama racional si puede obtenerse a partir de subconjuntos nitos de A mediante un n umero nito de operaciones de uni on, concatenaci on, y estrella de Kleene. El conjunto de todos los subconjuntos racionales de A se denota por Rat A .
48
Teorema de Kleene
Sea A un alfabeto nito y L un subconjunto de A. Entonces, L es reconocible si y solo si L es racional.
La prueba del teorema consiste en mostrar que los lenguajes reconocibles son cerrados bajo las operaciones de uni on, concatenaci on y estrella de Kleene.
50
51
Gram aticas
Una gram atica formal o gram atica de estructura de frases es una cu adrupla = (V, A, , ) donde 1. V es un conjunto nito de s mbolos llamado vocabulario de . 2. A V es el alfabeto terminal. 3. (V A)+ V es el conjunto (nito) de producciones. 4. V A es el s mbolo inicial. Los elementos de se llaman producciones y se denotan por u v , con u (V A)+ y v V . Si u v y u w, podemos escribir simplemente u v |w. La acci on de una gram atica consiste en generar palabras mediante la sustitici on de s mbolos no terminales por cadenas de V . Esta acci on termina una vez que la palabra generada contiene solamente s mbolos terminales.
52
54
Una gram atica libre de contexto es aquella cuyas producciones son todas de la forma z, V A, z V .
Un lenguaje es regular (resp. libre de contexto ) si puede ser generado por una gram atica regular (resp. libre de contexto). Notar que toda gram atica/lenguaje regular es libre de contexto.
55
Teorema: Dado un alfabeto nito A y un subconjunto L A, entonces los siguientes enunciados son equivalentes (es decir, o bien todos son ciertos, o son todos falsos): L es racional. Existe un aut omata nito A tal que L = L(A). atica regular tal que L = L(). Existe una gram
56
Ejercicios
1. Considere la gram atica = (V, A, , ) cuyas producciones son: |x|y y | x| a) b) Describa el lenguaje generado por . Dibuje el diagrama de transiciones de un aut omata nito que reconozca el mismo lenguaje.
2. Escriba una gram atica regular que reconozca el lenguaje L = b2 (ab) a2 . 3. Sean L1 y L2 lenguajes regulares, generados respectivamente por las gram aticas 1 = (V1 , A1 , 1 , 1 ) y 2 = (V2 , A2 , 2 , 2 ). Construya una gram atica regular que genere la concatenaci on L1 L2 . 4. Escriba una gram atica que genere todos los nombres de variables permitidos en el lenguaje C.
57
Las gram aticas LDC son m as generales que las regulares, por lo que todo lenguaje racional es libre de contexto.
59
60
Todo lenguaje libre de contexto en A+ puede Teorema: generarse mediante una gram atica en la Forma Normal de Chomsky.
61
2. Eliminar producciones triviales del tipo , V A. 3. Por cada a A, agregar un no-terminal a y reemplazar las ocurrencias de a en todas las producciones por a. Luego, agregar producciones a a para cada a A. 4. Cambiar cada produccion de la forma 12 . . . n por una cadena de producciones 11, 1 22, . . ., n2 n1n.
62
Ejercicios
1. Para cada uno de los lenguajes siguientes, escribir una gram atica libre de contexto que lo genere: (a) L = {ar bsct : s = r + t}. (b) L = {ambnam : m, n 1}. (c) L = {anbm : 0 n < m}. 2. Para cada una de las siguientes gram aticas, describir el lenguaje que genera y convertirla a la Forma Normal de Chomsky: (a) ab | cd, | . (b) c, a | , b | .
63
64
67
Transiciones
La funci on de transici on se dene como : Q (A { }) (S { }) P (Q S ), por lo tanto, podemos denir una transici on como una qu ntupla de la forma (q, a, ) (q , z ), q, q Q, a A { }, S { }, z S ,
si (q , z ) (q, a, ). Esto signica que, estando en el estado q , con el s mbolo de entrada a, y la cadena p, p S en la pila, el aut omata puede ir al estado q , quedando la cadena pz en la pila (se extrae y se inserta z ).
68
Ejemplo
Considerar el ADP M = ({q0, q1, q2}, {a, b}, {, }, , q0, , {q2}) , donde contiene las siguientes transiciones: (q0, a, ) (q0, a, ) (q0, b, ) (q1, b, ) (q1, , ) = = = = = {(q0, )} , (q0, 2) , {(q1, )} , {(q1, )} , {(q2, )} .
Notar que solamente se llega al estado terminal si la cadena de entrada tiene la forma anbn, n 1.
69
C omputos
Una descripci on instant anea (DI) es una tercia (q, , w) donde q Q es el estado en el que se encuentra el aut omata S es el contenido de la pila w A es la cadena de s mbolos de entrada que a un no ha sido le da. Un c omputo en un ADP es una secuencia de DIs que se obtiene a partir de la aplicaci on de una o m as transiciones, y puede representarse de la siguiente manera: (q1, 1, a1a2 . . . an) (q2, 2, a2 . . . an) . . . (q , , w ).
70
Otra posibilidad consiste en considerar una palabra w como reconocida si y solo si la pila queda vac a una vez que se ha consumido la palabra de entrada; es decir, si y solo si existe un c omputo (i, , w) . . . (q, , ), q Q. Notar que en este caso, ya no es necesario denir un conjunto T Q de estados terminales.
72
Se puede demostrar f acilmente que los ADP-ET y los ADPPV pueden reconocer la misma clase de lenguajes; es decir, para cada ADP-ET existe un ADP-PV que reconoce el mismo lenguaje, y viceversa.
73
{an
: n 1}
Ejercicios
1. Para cada uno de los siguientes lenguajes, encontrar un ADP que lo reconozca: (a) {an b2n : n 1} (b) {ap bp+q aq : p, q 1} (c) {am bn : m > n 1} (d) wa|w| : w {a, b}+
2. Describir el lenguaje reconocido por el siguiente ADP: (i, a, ) (i, b, ) (q, a, ) (q , 1, ) = = = = {(i, 2 )}, {(q, 2 )}, {(q , 1)}, {(t, )}. (i, a, ) = {(i, 3 )}, (q, b, ) = {(q, 2)}, (q , a, ) = {(q , 1)},
78
79
Introducci on
Podemos pensar en un aut omata (de estado nito o de pila) como una m aquina que escanea una palabra w = a1 a2 . . . an impresa en una cinta:
i a1 a2 . . . an
donde la m aquina est a en el estado inicial i, escaneando el s mbolo m as a la izquierda. Tanto los aut omatas de estado nito como los aut omatas de pila, escanean un s mbolo en la cinta, y se mueven a la derecha, posiblemente cambiando de estado (y en el caso de los ADPs, haciendo posibles ajustes a la pila).
80
M aquinas de Turing
Denici on formal: Una m aquina de Turing (MT) es una s eptupla T = (Q, A, M, , , i, T ), donde Q es un conjunto nito de estados. A es un alfabeto nito. mbolos de la cinta de T . M A es el conjunto nito de s M A es el s mbolo blanco. i Q es el estado inicial. T Q es un conjunto no-vac o de estados terminales. es una funci on parcial de Q M a Q M {L, R}, donde L y R indican izquierda y derecha, respectivamente.
82
83
C omputos
Consideremos la DI w1qw2 , donde w1 = w1 y w2 = w2 (con , M ). Entonces, el comportamiento de la m aquina de Turing puede ser uno de los siguientes: 1. Si (q, ) = (q , , R), entonces w1 qw2 w1 q w2 . 2. Si (q, ) = (q , , L), entonces w1 qw2 w1 q w2 . 3. Si q se encuentra cerca del nal de la DI y la m aquina se mueve hacia la derecha de la cinta, entonces se insertan s mbolos blancos conforme sea necesario. Por ejemplo, si (q, ) = (q , , R), entonces w1 q w1 q . Si dos DIs pueden conectarse mediante una secuencia de transiciones como las mostradas arriba, entonces a esa secuencia se le llama un c omputo en T .
84
85
Ejemplo
Considerar la MT T = (Q, A, M, , , i, T ) con Q = {i, q1, q2, q3, q4, t}, M = {a, b, , , }, A = {a, b}, T = {t}, y dada por (i, a) (q 1 , a ) (q1, ) (q 2 , b ) (q2, ) (q 1 , b ) = = = = = = (q1, , R), (q1, a, R), (q2, , R), (q3, , L), (q3, , L), (q3, , L), (q 3 , ) (q3, a) (q3, ) (i, ) (q 4 , ) (q4, ) = = = = = = (q3, , L), (q3, a, L), (i, , R), (q4, , R), (q4, , R), (t, , R).
86
Ejercicios
1. Constru r m aquinas de Turing que reconozcan los siguientes lenguajes: (a) L = wwR : w {a, b} . (b) L = w {a, b}+ : |w|a = |w|b . (c) L = {an bn an : n 1}. (d) L = w {a, b, c}+ : |w|a = |w|b = |w|c . Notar que los lenguajes (c) y (d) no son libres de contexto. 2. Constru r una m aquina de Turing que reconozca el lenguaje L = {am bn : m es divisor de n}. Sugerencia: por cada a encontrada, cambiarla por y luego buscar una b y cambiarla por . Una vez que no haya mas as, vericar si ya no quedan bs. En ese caso, aceptar la palabra. De otra manera, cambiar todas las s por as y comenzar nuevamente.
87
88
aquinas de Turing tambi en se llaman Los lenguajes reconocidos por las m recursivamente ennumerables.
89
Ejercicios
ne una m aquina de Turing que invierta una cadena de Dise texto.
Describa, en t erminos de subrutinas de procesamiento de textos, c omo constru r m aquinas de Turing que reconozcan los siguientes lenguajes: 1. L = {an
2
: n 1}
2. L = {ap : p es primo}.
91
Jerarqu a de Chomsky
Sea A un alfabeto nito no vac o, y F (A) el conjunto de todos los lenguajes nitos en A, Rat A el conjunto de todos los lenguajes regulares en A, LDC A el conjunto de todos los lenguajes libres de contexto en A, RE A el conjunto de todos los lenguajes recursivamente ennumerables en A, Entonces, se cumple la siguiente relaci on: F (A) Rat A LDC A RE A P (A).
92
93
Codicaci on de una MT
Supongamos que se desea describir completamente una m aquina de Turing T = (Q, A, M, , , i, T ) mediante una cadena en {a, b}; es decir, mediante una codicaci on binaria. Para hacer esto, podemos ordenar los elementos de Q, T , A, y M A de una manera conveniente: 1. Q = {q1, q2, . . . , qk , t1, . . . , tl }, con i = q1 y T = {t1, . . . , tl }, 2. A = {a1, . . . , am}, con a1 = a y a2 = b, 3. M A = {1, . . . , n}, con 1 = .
94
Codicaci on de una MT
A continuaci on, podemos denir las siguientes funciones: c1(qi ) = ba2i+1 b, para i = 1, . . . , k, c1(tj ) = ba2j b, para j = 1, . . . , l, c2(ar ) = ba2r+1 b, para r = 1, . . . , m, c2(s ) = ba2s b, para s = 1, . . . , n, c3(L) = bab, c3(R) = ba2b. Denimos tambi en la funci on c : Q M Q M {L, R} {a, b} como: c(q, , q , , X ) = c1(q )bc2 ()bc1 (q )bc2 ( )bc3 (X ). Notar que la funci on c codica una instrucci on de la MT en una cadena de as y bs: (q, ) = (q , , X ) c(q, , q , , X ).
95
Codicaci on de una MT
Una MT puede denirse completamente mediante una secuencia nita de instrucciones, por lo que podemos pensar en cualquier MT como un elemento del conjunto (Q M Q M {L, R})p , p 1. Sea K : (Q M Q M {L, R})+ {a, b} una funci on que mapea una MT a una palabra en {a, b} denida como: K (z1 , z2, . . . , zp ) = c(z1)b2 c(z2 )b2 . . . b2 c(zp ), donde zi = Q M Q M {L, R}. K es una funci on uno-a-uno, de manera que a cada m aquina de Turing le corresponde una codicaci on unica bajo K . Esa codicaci on depende del orden en que se enlisten los estados, s mbolos, e instrucciones de la MT. on de una MT es una palabra en {a, b}, ss impor Si bien una codicaci tante notar que no cualquier palabra en {a, b} corresponde a la codicaci on de alguna MT.
96
98
Lenguajes decidibles
Un lenguaje L A es decidible si existe una m aquina de Turing capaz de decidir, para cada w A , si w pertenece o no a L. En otras palabras, un lenguaje L A si tanto L como A L son reconocibles por m aquinas de Turing. Todos los lenguajes libres de contexto son decidibles. El lenguaje G = {w {a, b} : w L (T (w))} no es decidible. Uno puede constru r una m aquina de Turing que decida un lenguaje decidible L haciendo que esta escriba una a al nal de la cinta si la palabra de entrada es aceptada, o una b si la palabra no es aceptada.
100
Problema de la parada
Una m aquina de Turing T con alfabeto {a, b} es autoterminante si eventualmente se detiene cuando se le da como entrada la palabra K (T ) (independientemente de si la palabra es o no aceptada por la m aquina). Denamos el lenguaje H {a, b} como H = {K (T ) : T es autoterminante}. Consideremos el problema de decidir H . De cierta forma, esto implica decidir si una m aquina de Turing se detiene cuando se le da como entrada una cadena espec ca. Debido a esto, al problema de decidir H se le conoce como el problema de la parada. Puede demostrarse que H no es decidible (suponer que lo es, considerar la MT TH que decide H y modicarla para que entre en un ciclo innito cuando una palabra es aceptada, preguntarse si esta nueva m aquina es autoterminante).
101
102
Computabilidad
Nos interesa ahora el estudio de aquellos procesos que son realizables por una m aquina de Turing. En general, podemos pensar que cualquier tipo de proceso computacional toma una entrada y devuelve una salida correspondiente a dicha entrada. Por lo tanto, cualquier proceso computacional puede representarse como una funci on. Aunque los dominios y contradominios de las funciones computables pueden ser muy diversos, en general es posible, mediante codicaciones adecuadas, representar cualquier funci on computable como una funci on parcial de la forma f : Nm Nn .
103
Funciones iniciales
Es f acil ver que las siguientes funciones son computables: Funci on cero: () = 0. Funci on sucesor: (x) = x + 1.
m (x , x , . . . , x ) = x . Proyecciones: k m 1 2 k
104
Combinaci on y composici on
La combinaci on de dos funciones f : Nm Np y g : Nm Nq es la funci on f g : Nm Np+q , denida como (f g )( x) = (f ( x), g ( x)), es computable si f y g lo son. La composici on de dos funciones f : Nm Np y g : Np Nn es la funci on g f : Nm Nn, denida como (g f )( x) = g (f ( x)), es computable si f y g lo son.
105
Recursividad primitiva
on recursiva primitiva h : Nm+1 Nn se dene a Una funci partir de otras dos funciones f : Nm Nn y g : Nm+n+1 Nn mediante la siguiente f ormula recursiva: h(x, 0) = f (x), h(x, y + 1) = g (x, y, h(x, y )) Si f y g son computables, entonces h es tambi en computable. Ejemplo: La funci on suma sum : N2 N puede denirse como
1(x), sum(x, 0) = 1 3 )(x, y, sum(x, y )) sum(x, y ) = ( 3
106
m K0 ( x) = (), m m Kc ( x) = (Kc 1 (y )) 1 prod(x, 0) = K0 (x), prod(x, y + 1) = sum(x, prod(x, y )). 1 pot(x, 0) = K1 (x), pot(x, y + 1) = prod(x, pot(x, y )).
Funciones tabulares:
Cociente:
109
Complejidad computacional
112