You are on page 1of 113

Teor a del Aut omata

Dr. Alfonso Alba Cadena fac@galia.fc.uaslp.mx

Facultad de Ciencias UASLP

Introducci on a las notas del curso


Estas notas est an dise nadas para ser una gu a en un curso b asico de teor a de aut omatas y lenguajes formales. El curso inicia con un breve repaso de teor a de conjuntos, y posteriormente presenta los conceptos b asicos de aut omatas, lenguajes, y gram aticas formales, para terminar con la denici on de m aquinas de Turing, las cuales son una representaci on abstracta de lo que es una computadora moderna. ultiples ejercicios, tanto en clase como Se sugiere realizar m en casa, sobre cada uno de los temas revisados, as como implementar simuladores de aut omatas y gram aticas en un lenguaje de uso com un como C/C++.
1

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.

Introducir los conceptos b asicos de computabilidad y complejidad computacional.


2

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

Automata and Languages John M. Howie Clarendon Press, Oxford

Unidad I Conceptos b asicos

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 / indican pertenencia o no-pertenencia de un elemento en un conjunto. Ejemplo: u A, z / A, 1 , 3 / .

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

Operaciones con conjuntos


Uni on: A B = {x | x A o x B}

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

Propiedades de las operaciones


Conmutativa: A B = B A, A B = B A (A B ) C = A (B C ) (A B ) C = A (B C )

Asociativa Uni on:

Asociativa Intersecci on: Distributiva Uni on:

A (B C ) = ( A B ) (A C ) A (B C ) = (A B ) (A C )

Distributiva Intersecci on: Leyes de DeMorgan:

(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

Cardinalidad y conjunto potencia


Un conjunto es nito si tiene un n umero nito de elementos; de otra forma, el conjunto es innito. El n umero de elementos de un conjunto nito A se denomina cardinalidad y se denota por |A|. Algunas propiedades: |A B | |A B | |A B | |A B | = = |A| |A| |A| + |B | |A B | |A||B | si A y B son nitos
14

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

Dominio e imagen de una funci on


El dominio dom de una funci on : A B se dene como dom = {a A | (a, b) para alg un b B } A. Si dom = A, entonces es una funci on total, de lo contrario, es una funci on estrictamente parcial. En general, a cualquier funci on se le puede llamar funci on parcial. El contradominio, rango, o imagen im de una funci on se dene como im = {(a) | a dom } B. La funci on identidad idA : A A de un conjunto A se dene como idA (a) = a para todo a A. Notar que dom idA = im idA = A.

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.

Teorema: Una funci on : A B tiene inversa si y s olo si es biyectiva.


21

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

Teoremas sobre cardinalidad


Teorema: Para cualquier conjunto X , |X | < |P (X )|.

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

Conjuntos contables e incontables


Un conjunto X es contable si es nito, o si |X | = |N +|. Si |X | > |N +|, entonces decimos que X es incontable.

El conjunto potencia de cualquier conjunto innito es incontable.

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

Ejemplos de conjuntos contables e incontables


N+ N+ es contable: se pueden enlistar primero las parejas que suman 2, luego las que suman 3, etc.

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.

Por lo tanto, hay por lo menos tantas funciones como subconjuntos de

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

Unidad II Aut omatas Finitos

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

Estado inicial: 1 Estado nal: 4

30

Aut omatas nitos deterministas


Formalmente, un aut omata nito determinista (AFD) se dene como una qu ntupla A = (Q, A, , i, T ), donde
Q es el conjunto nito de estados del aut omata. A es el alfabeto del aut omata; es decir, el conjunto de s mbolos que puede recibir como entrada. : Q A Q es una funci on de transici on que asocia a cada pareja (q, a), q Q, a A un estado destino (q, a). i Q es el estado inicial. T Q es el conjunto de estados terminales.

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

Lenguaje aceptado por un AFD


Notaci on: Podemos representar una transici on (q1, a) = q2 como q1 a = q2 , de manera que es posible escribir algo como: qa1 a2 = (qa1 )a2 = q a2 , si (q, a1 ) = q . Si w = a1 a2 . . . an A , entonces qw = qa1 a2 . . . an = (((qa1)a2 ) . . .) an . Dado un AFD A = (Q, A, , i, T ) y una palabra w A, podemos entonces determinar el estado qw al que se llega cuando se ingresa la palabra w al aut omata estando en el estado q . El lenguaje L(A) aceptado por el aut omata A se dene entonces como L(A) = {w A : iw T } . Un lenguaje L A es reconocible por un AFD A si y s olo si L = L(A).
34

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

L mites computacionales de los AFDs


El lenguaje L = {anbn : n 1} no es reconocible por ning un AFD. Prueba: Suponer que existe un AFD A = (Q, A, , i, T ) tal que L(A) = L. Sea qn = ian para n = 1, 2, . . .. Entonces qnbn T para todo n. Ya que Q es nito, entonces deben existir m, n distintos tales que qm = qn. Entonces, iambn = qmbn = qnbn T ; sin embargo ambn / L, lo cual contradice nuestra suposici on inicial. As como L, existen muchos lenguajes que no pueden reconocerse por ning un aut omata nito.
36

Lema del bombeo


Sea L un lenguaje innito reconocible en A. Existe entonces un entero positivo N tal que toda z L con |z | > N puede factorizarse como z = uvw donde
1. u, w A , v A+ , 2. |uv | N , 3. uv m w L para todo m 0.

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

Ejemplo de uso del Lema del Bombeo


Sea A = {a, b} y L = {w A : wR = w}, donde wR denota el reverso de una palabra. En otras palabras, L es el lenguaje formado por todos los pal ndromos en A . Suponer que L es reconocible por alg un AFD. Entonces, existe un N > 0 para el cual se cumple el Lema del Bombeo. Sea n > N . Considerar la palabra z = an ban L. Por el Lema del Bombeo, z puede factorizarse como z = uvw con |v | 1 y |uv | N < n. Por lo tanto, u = ap , v = aq , y w = ar ban donde q 1 y p + q + r = n. / L para m = 1. Por ejemplo, para m = 0, Sin embargo, uv m w uv 0 w = uw = anq ban / L. Por lo tanto, L no es reconocible.

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

no lo son. Utilice como alfabeto A = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, , .}.

40

Aut omatas Finitos No-Deterministas


Un aut omata nito no-determinista (AFN) es una m aquina de estado nito en la cual de un mismo estado y con el mismo s mbolo de entrada puede haber varias posibles transiciones a distintos estados. La diferencia con un AFD es que, durante una transici on, el estado destino es unico y est a bien determinado por la funci on de transici on. En el caso de los AFN, la funci on de transici on no devuelve un solo estado, sino un conjunto de estados destino.
41

Denici on formal de un AFN


Un AFN es una qu ntupla N = (Q, A, , i, T ) donde 1. Q es un conjunto nito no-vac o de estados. 2. A es un alfabeto (conjunto de s mbolos nito no-vac o). 3. : Q A P (Q) es la funci on de transici on. 4. i Q es el estado inicial. 5. T Q es el conjunto de estados terminales. De modo que si q Q y a1 , a2 A, entonces qa1 es un subconjunto de Q y qa1a2 = (qa1 )a2 =
pqa1

pa2

es tambi en subconjunto de Q. De igual manera se puede obtener el subconjunto qw Q, donde q Q y w A .


42

-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

Lenguaje aceptado por un AFN


El lenguaje aceptado por un AFN se dene como el conjunto de todas las palabras para las cuales existe una ruta que lleva al aut omata del estado inicial a un estado terminal al dar como entrada la palabra.

Formalmente, si N = (Q, A, , i, T ) es un AFN, entonces L(N ) = {w A : iw T = }.

44

Equivalencia entre AFNs y AFDs


Teorema: Sea A = (Q, A, , i, T ) un aut omata, no necesariamente determinista, y sea L(A) el lenguaje reconocido por A. Entonces existe un aut omata determinista completo A tal que L(A ) = L(A). M etodo de conversi on: Se dene el AFD
A = P (Q), A, : P (Q) A P (Q), {i}, T = {P P (Q) : P T = } ,

donde la funci on de transici on est a dada por (P, a) =


pP
45

(p, a), para todo P P (Q), a A.

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.

omata A se le dice accesible si todo q Q es accesible. Al aut

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

Capacidad de reconocimiento de los aut omatas nitos


Sea A un alfabeto nito. Cualquier conjunto {w}, w A (es decir, lenguajes que consistan de una sola palabra) es reconocible. El conjunto vac o es reconocible. Sea A un alfabeto nito y sean L1, L2 subconjuntos reconocibles de A. Entonces, la uni on L1 L2 es reconocible. Sea A un alfabeto nito. Entonces, cualquier subconjunto nito de A es reconocible.
49

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

Unidad III Gram aticas y Lenguajes

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

Lenguaje generado por una gram atica


Dada una gram atica = (V, A, , ), denimos una derivaci on w w para w, w V si existen x, y V y una producci on u v en tales que w = xuy, w = xvy. En general, si existe una cadena de derivaciones w1 w2 ... wn, podemos escribir simplemente w1 wn. De esta manera, se dene el lenguaje L() generado por como el conjunto de palabras en el alfabeto terminal que pueden derivarse del s mbolo inicial. Es decir, L() = {w A : w}.
53

Ejemplos de gram aticas


Ejemplo 1: Sea = (V, A, , ) con A = {el, un, perro, gato, muerde, come}, V = A {oraci on, art culo, sujeto, verbo}, y consta de las siguientes producciones: oraci on art culo sujeto verbo Ejemplo 2: art culo sujeto verbo el | un perro | gato muerde | come

Considerar la gram atica cuyas producciones son: a, b, a, b.

54

Tipos de gram aticas


Las gram aticas m as simples son las gram aticas regulares, en las cuales todas las producciones en son de la forma x, o bien y, V A, y A . x A+ , , V A,

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

Lenguajes regulares y racionales


Teorema: Un lenguaje es regular si y solo si es racional.

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

Gram aticas libres de contexto


Como se vi o anteriormente, una gram atica libre de contexto (LDC) es aquella en la cual todas las producciones son de la forma z, V A, z V .

Las gram aticas LDC son m as generales que las regulares, por lo que todo lenguaje racional es libre de contexto.

Sin embargo, no todo lenguaje libre de contexto es regular.


58

Lenguajes libres de contexto


Ejemplo 1: el lenguaje L = {anbn : n 1} no es regular, pero es LDC ya que es generado por la siguiente gram atica: ab ab Ejemplo 2: Mostrar que el lenguaje L = w {a, b} : w = wR es libre de contexto, pero no regular.

59

Lenguajes libres de contexto


Ejemplo 3: Dado un alfabeto A, si a A y w A, entonces |w|a denota el n umero de ocurrencias de a en w. Vericar que el lenguaje L = {w {a, b} : |w|a = |w|b} es generado por la siguiente gram atica: a b a a b2 b b a2

60

Forma Normal de Chomsky


Una gram atica libre de contexto que genere un lenguaje en A+ se encuentra en la Forma Normal de Chomsky si cada una de sus producciones es de alguno de los siguientes tipos: , a, , , V A, V A, a A.

Todo lenguaje libre de contexto en A+ puede Teorema: generarse mediante una gram atica en la Forma Normal de Chomsky.
61

Conversi on a la Forma Normal de Chomsky


1. Eliminar las producciones del tipo .

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

Unidad IV Aut omatas de pila

64

Limitantes de los aut omatas de estado nito


Los aut omatas de estado nito realizan una transici on hacia un nuevo estado determinado unicamente por el estado actual y el s mbolo de entrada, sin importar los estados recorridos anteriormente, o las entradas previas. Esta incapacidad de recordar estados o entradas previas limita la capacidad de reconocimiento de los aut omatas nitos. un tipo de Para superar esta limitante, podemos agregar alg memoria al aut omata. Una de las estructuras m as b asicas de memoria es una pila, en la cual se pueden insertar y extraer s mbolos unicamente por un solo extremo de la pila, llamado tope.
65

Aut omatas de pila


Un aut omata de pila (ADP) es un aut omata de estado nito no-determinista al que se le agrega una pila de s mbolos y la siguiente funcionalidad: 1. En cada transici on, se extrae un s mbolo de la pila y se utiliza para decidir a qu e estado ir. 2. En cada transici on se puede insertar cualquier cantidad de s mbolos en la pila. a determinado por: (1) De esta forma, el estado destino est el estado actual, (2) el s mbolo de entrada, y (3) el s mbolo extra do del tope de la pila.
66

Denici on formal de aut omata de pila


eptupla M = (Q, A, S, , i, , T ), donde Formalmente, un ADP es una s Q es un conjunto nito de estados A es el alfabeto del aut omata S es un conjunto nito de s mbolos llamado el alfabeto de la pila : Q (A { }) (S { }) P (Q S ) es la funci on de transici on. i es el estado inicial. S es el s mbolo inicial de la pila. T Q es el conjunto de estados terminales. La pila del aut omata es simplemente una cadena p S , la cual se modica en cada transici on. Inicialmente, la pila contiene unicamente al s mbolo .

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

Lenguaje reconocido por un ADP


Sea M = (Q, A, S, , i, , T ) un ADP. Una palabra w A es reconocida M si existe un c omputo de la forma (i, , w) . . . (qt, , ), qt T, S , es decir, que lleve al aut omata desde el estado inicial a un estado terminal en el cual la secuencia de s mbolos de entrada es precisamente w. El lenguaje L(M) reconocido por M es el conjunto de todas las palabras w A que son reconocidas por M:
L(M) = {w A : existe un c omputo (i, , w) . . . (qt , , ), qt T, S }.
71

Reconocimiento por pila vac a


Como se mencion o anteriormente, una palabra w es reconocida por un aut omata de pila M = (Q, A, S, , i, , T ) si existe un c omputo (i, , w) . . . (t, , ), t T, S .

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

Equivalencia entre criterios de reconocimiento


Llamemos ADP-ET a los aut omatas de pila que reconocen palabras cuando se llega a un estado terminal, y ADP-PV a los que reconocen palabras al vaciarse la pila.

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

Aut omatas de pila y lenguajes libres de contexto


Teorema: Sea A un alfabeto y L A . Entonces, L es libre de contexto si y solo si es reconocido por un ADP. Demostraci on (parcial): Suponer que L es LDC, y es generado por una gram atica = (V, A, , ) en la Forma Normal de Chomsky. Constru r el ADP M = ({i, q, t}, A, (V A) { }, , i, , {t}) , donde contiene las transiciones (i, , ) = {(q, )}, (q, , ) (q, ), por cada producci on de la forma , (q, , ) = {(t, )}, (q, , a) (q, ), por cada producci on de la forma a. No es dif cil ver que L(M) = L().
74

Lema del Bombeo para lenguajes LDC


Sea L un lenguaje libre de contexto. Entonces, existe un entero N > 0 que depende unicamente de L, con la propiedad de que si z L y |z | > N , entonces z puede factorizarse como z = uvwxy de manera que 1. |vx| 1, 2. |vwx| < N , 3. uv mwxmy L para todo m 0. Ejemplo: mostrar que el lenguaje L = {anbnan : n 1} no es libre de contexto.
75

Ejemplos de lenguajes no LDC


w2 : w {a, b}+
2

{an

: n 1}

{ap : p es primo} w {a, b, c}+ : |w|a = |w|b = |w|c wwR w : w {a, b}


76

Propiedades de cerradura de los lenguajes LDC


1. Si L1 y L2 son LDC, entonces L1 L2 y L1 L2 tambi en lo son. 2. Si L es LDC, entonces L tambi en lo es. 3. Si L1 y L2 son LDC, entonces L1 L2 no es necesariamente LDC. Ejemplo: L1 = {am bm : m 1} es LDC L2 = {bn an : n 1} es LDC L3 = L1 a+ = {am bm an : m, n 1} es LDC L4 = a+ L2 = {am bn an : m, n 1} es LDC Sin embargo, L3 L4 = {an bn an } no es LDC. 4. Si L A es LDC, entonces A L no es necesariamente LDC (usar leyes de DeMorgan). 5. Si L1 es regular y L2 es LDC, entonces L1 L2 es LDC.
77

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

Unidad V M aquinas de Turing

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

Limitantes de los aut omatas


Los aut omatas de estado nito se ven limitados en los siguientes aspectos: 1. Solamente pueden escanear la cinta hacia la derecha, siendo imposible regresar a escanear s mbolos anteriores. 2. Solamente pueden leer el contenido de la cinta, pero no modicarlo. Los aut omatas de pila pueden modicar el contenido de la pila (la cual puede verse tambi en como una cinta), pero solamente en un extremo. Tampoco pueden recorrer la cinta m as que hacia la derecha.
81

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

Descripciones instant aneas


Una descripci on instant anea (DI) es una palabra w1qw2, donde w1 M , w2 M +, y q Q, e indica que el contenido de la cinta es w1w2, y que la MT se encuentra en el estado q , escaneando el primer s mbolo de w2. Si w1 = a1a2 . . . am, y w2 = b1b2 . . . bn, entonces la DI w1qw2 puede representarse con el siguiente diagrama: q a1 a2 . . . am b1 b2 . . . bn

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

Lenguaje reconocido por una MT


Si w A, entonces decimos que w es reconocida por T si existe un c omputo iw . . . z1tz2, donde i es el estado inicial, t es un estado terminal, z1 M , y z2 M + . El lenguaje L(T ) reconocido por T es el conjunto de todas las palabras w A reconocidas por T .

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

Vericar que L(T ) = {anbn : n 1}.

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

M aquinas de Turing como procesadores de texto


Si consideramos la cinta de una MT como una cadena de caracteres, entonces uno puede considerar la MT como un procesador de texto que realiza alguna tarea espec ca. Por ejemplo, es relativamente sencillo constru r m aquinas de Turing que realicen los siguientes procesos: 1. Reemplazar un caracter por otro 2. Reemplazar una secci on del texto por otra de la misma longitud 3. Insertar un s mbolo, desplazando el texto hacia la derecha 4. Eliminar un s mbolo, desplazando el texto siguiente a la izquierda 5. Duplicar una secci on del texto 6. Vericar si dos palabras son iguales

88

Clase de lenguajes reconocidos por las MT


Es f acil demostrar que cualquier lenguaje regular puede ser reconocido por una MT. Tambi en es posible demostrar que una m aquina de Turing no-determinista tiene la misma capacidad de c omputo que una MT determinista. Utilizando lo anterior, es posible demostrar que cualquier lenguaje libre de contexto puede ser reconocido por una MT (determinista o no determinista). De hecho, la clase de lenguajes que son reconocidos por las m aquinas de Turing, son precisamente los lenguajes de estructura de frases; es decir, aquellos que pueden ser generados por una gram atica de estructura de frases, donde todas las producciones son de la forma: u v, u (V A)+ , v V .

aquinas de Turing tambi en se llaman Los lenguajes reconocidos por las m recursivamente ennumerables.
89

Conjuntos reconocidos por las MT


Utilizando las subrutinas de procesamiento de textos, es posible realizar algunas operaciones relativamente complejas con una MT. Algunos ejemplos son: Operaci on Suma Resta Producto Divisi on Entrada aman aman, n m aman aman Salida am+n amn amn aq ar , m = nq + r, r < n
90

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

Conjuntos que no son reconocidos por las MT


Dado un alfabeto nito no-vac o A, existe una cantidad innumerable de lenguajes en A. Esto es debido a que A es innito contable, y por lo tanto, P (A) es innito incontable. Por otra parte, el n umero de m aquinas de Turing que pueden dise narse es contable (pueden enlistarse primero todas las MT con un estado, luego todas las MT con dos estados, etc). Esto signica que existen lenguajes en A que no pueden ser reconocidos por una m aquina de Turing. Estos lenguajes, sin embargo, no son f aciles de encontrar, ya que no pueden ser descritos mediante ning un proceso algor tmico.

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

Un lenguaje no reconocido por ninguna MT


on de Sea A = {a, b}, y W A el conjunto de palabras que son codicaci una m aquina de Turing; es decir, W = {K (z1 , z2 , . . . , zp ) : zi Q M Q M {L, R}, i = 1, . . . , p, p 1} . Para w W , sea T (w) la m aquina de Turing tal que K (T (w)) = w. Uno podr a preguntarse si, dada una palabra w W , la MT T (w) reconoce w. Decimos que w es una buena codicaci on si w L (T (w)) . Sea G W el conjunto de palabras que son buenas codicaciones. Entonces, el conjunto D = A G; es decir, el complemento de G en A , no es recursivamente enumerable. La prueba se realiza por contradicci on, suponiendo que D = L(T ) para alguna MT T y vericando si una codicaci on w de T es buena o no lo es.
97

M aquinas de Turing universales


Una m aquina de Turing universal U es una m aquina de Turing que toma como entrada una palabra w = w1w2 {a, b}, donde w1 = K (M) es la codicaci on de una m aquina de Turing M con alfabeto A, y w2 es la codicaci on de una palabra en A; es decir, w2 = c2(a1 )c2(a2 ) . . . c2 (an ), a1 a2 . . . an A. La acci on de U consiste en simular la acci on de la m aquina M = T (w1) cuando la entrada de M es a1 a2 . . . an (se puede demostrar que existe una m aquina de Turing U es capaz de hacer esto). Por lo tanto, una m aquina de Turing universal es una m aquina de Turing que es programable cuyo programa se escribe (de manera codicada) en la cinta.

98

M aquinas de Turing universales


Consideremos el lenguaje G = {w {a, b} : w L (T (w))} ; es decir, el lenguaje que consiste en las codicaciones de todas aquellas m aquinas de Turing que aceptan su propia codicaci on. aquina de Turing uni Este lenguaje puede reconocerse mediante una m versal que realice los pasos siguientes: 1. Duplicar la palabra en la cinta: w ww. 2. Codicar la segunda palabra en la cinta: ww wc2 (a1 )c2 (a2 ) . . . c2 (an ), donde w = a1 a2 . . . an . 3. Simular la m aquina descrita por w con entrada w. aquina de Turing, Ya que D = A G no es reconocible por ninguna m entonces es claro que el complemento de un lenguaje recursivamente enumerable no necesariamente es recursivamente enumerable.
99

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

Unidad VI Computabilidad y complejidad computacional

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

Funciones recursivas primitivas


Las funciones recursivas primitivas son todas aquellas que pueden constru rse a partir de funciones iniciales mediante la aplicaci on de un n umero nito de combinaciones, composiciones, y recursiones primitivas. Toda funci on recursiva primitiva es computable y total. En otras palabras, si f : Nm Nn es recursiva primitiva, entonces el dominio de f es Nm. La mayor a de las funciones que se requieren en procesos de c omputo tradicionales son recursivas primitivas.
107

Ejemplos de funciones recursivas primitivas


Funci on constante: m Kc ( x) = c Producto: prod(x, y ) = x y Potencia: Predecesor: Resta no-negativa: y monus(x, y ) = x Comparaci on: x == y

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

pred(0) = (), 2 pred(y + 1) = 1 (y, pred(y )).


1 monus(x, 0) = 1 (x), monus(x, y + 1) = pred(monus(x, y )).

eq (x, y ) = monus(1, sum(monus(x, y ), monus(y, x))).


108

Ejemplos de funciones recursivas primitivas


Funciones caracter sticas: Negaci on l ogica: i (x) = eq (x, Ki0).
0 , x) . neg (x) = monus(K1

Funciones tabulares:

0 f (x) = Ky () x1 (x) + 1 0 Ky () x2 (x) + 2 . . . 0 Ky neg (x1 (x)) neg (x2 (x)). 0

Cociente:

coc(0, y ) = (), coc(x + 1, y ) = coc(x, y ) + eq (x + 1, (coc(x, y ) y ) + y ).

109

Funci on totales no recursivas primitivas


No toda funci on total es recursiva primitiva. Algunos ejemplos son: 1. Es claro que el conjunto F de todas las funciones recursivas primitivas es contable, por lo tanto, pueden enlistarse como P R = {f1 , f2 , . . .}. Considerar la funci on f : N N tal que f (n) = fn (n) + 1. Claramente f es total ya que est a bien denida para toda n N. Sin embargo, se puede probar tambi en que f / P R, y por lo tanto, f no es recursiva primitiva. 2. La funci on de Ackermann A : N2 N se dene recursivamente mediante las siguientes ecuaciones: A(0, y ) = y + 1, A(x + 1, 0) = A(x, 1), A(x + 1, y + 1) = A(x, A(x + 1, y )). Se puede demostrar que A es computable y total, pero no recursiva primitiva (se demuestra que la funci on f (n) = A(n, n) crece m as r apido con respecto a n que cualquier funci on recursiva primitiva).
110

Funciones recursivas parciales


Para obtener una funci on parcial f : Nm Nn (es decir, que no est e m necesariamente denida para todo x N ), se requiere del operador de minimalizaci on , cuya acci on puede denirse como sigue: f ( x) = y [g ( x, y ) == 0] , lo cual signica que f ( x) es el menor valor de y tal que g ( x, y ) == 0 y g ( x, z ) est a denida para todo z < y . Ejemplo: La divisi on entera es una funci on recursiva parcial que puede denirse como sigue: ((t y ) + y )) == 0] . div (x, y ) = t [((x + 1) Si g ( x, y ) es computable, entonces f ( x) = y [g ( x, y ) == 0] tambi en lo es. Se puede demostrar que la clase de funciones recursivas parciales es la misma que la clase de funciones computables por una m aquina de Turing.
111

Complejidad computacional

112

You might also like