Académique Documents
Professionnel Documents
Culture Documents
COMPUTABILIDAD
CURSO: 1998-99
PROFESORES: Camino Rodrguez Vela, Csar L. Alonso Gonzlez
OBJETIVOS
La Teora de la Computabilidad es la materia que estudia.Jos -fundamentos de la
computacin sin limites de espacio y tiempo. As, con el objeto de responder a la
pregunta qu es algortmico? se empieu definiendo el concepto de funcin
- computable a partir de un lenguaje de programacin con un conjunto pequeo de
instrucciones y caracteres bsicos: los Programas While. La definicin de
macrosentencias y la comparacin del poder computacional de estos programas con
otros formalismos de computacin del mismo tipo permiten introducir con cierta
credibilidad la tesis de que ~stos programas calculan cualquier funcin algorftmica.,:c. -- A continuacin, con el modelo de computacin definido,. se estudiaD- los
resultados ms importantes de esta teora como la existencia de un programa universal,
es decir, que sea intrprete de cuaJguicr programa, o la imposibilidad de disear un
algoritmo para decidir si .un programa cualquiera para o no con una entrada; y se ver
tambin cmo caracterizar en general la decidibilidad total o parcial de conjuntos.
Por ltimo, se definen los modelos de computacin ms .utili7.ados para el
desarrollo de la teora de la computabilidad como son las Mquinas de Turing o las
funciones Parciales Recursivas. La demostracin de la equivaJencia,,de estos,-sistemas
con el de los Programas While servir como justificacin final de la Tesis de Cburch
con la que se cierra, como se abri, el curso de Computabilidad.
PROGRAMA
l. FUNCIONES COMPUTABLES
1.1. Concepto intuitivo de algoritmo. 1.2. Programas-while, RAM, Programas
goto, URM, S, limited Pascal. 1.3. Funciones while-computables. Tesis de
Church.
2 ENUMERACIN DE LOS ALGORITMOS
2.1. Enumeracin de los programas while. 2.2. Teorema de la Universalidad.
2.3. Teorema s-m-n. 2.4. Teorema de Recursin.
3. RESOLUBILIDAD E IRRESOLUBILIDAD ALGORTMICA
3.1. Problemas resolubles e irresolubles algoritmicamcnte. 3.2. Mtodo de
Diagonalizacin: problema de la Totalidad. 3.3. Problema de la Parada. 3.4.
Mtodo de Reduccin. 3.5. Teorema de Rice: problemas de la Totalidad y
de la Equivalencia.
4. PROPIEDADESDECOMPUTABILIDADDELOSCONJUNTOS
4.1. Conjuntos recursivos. 4.2. lgebra de los conjuntos recursivos. 4.3.
Resolubilidad parcial: conjuntos recursivamente enumerables (r.e.). 4.4.
Relacin entre los conjuntos recursivos y los r.e.. 4.5. Teorema de
incompletitud de Godel 4.6. Clasificacin de los conjuntos: conjuntos
productivos, creativos y simples.
/10
BIBLIOGRAFA
-Brookshear, J. G., Teora de la Computacin.. .\ddisoo- \:sley Iberoamericana,
1993.
-Cutland, N.J., Computability: An introdMction ro ra.JiA!: ftmction theory.
Cambridge U niversity Press, 1980.
-Davis M.O., Weyuker, E. J., Computabili1y. C ~ and Languages.
Academic Press, 1983.
-Kfoury, A J., Moll, R. N., Arbib, M. A-.. A Progra,m,ing Approach ro
Computability. Springer-VerJag, 1982.
-Lewis, H. E., Papadimitrio~ C. H., Ekmmt.t of TMo~- o/ C:O.,,utation. PrcnticeHall, 1981.
-Machtey, M., Young, P., An lntroduction to tM Gmnal '11,eory of Algoritms.
North-Holland, 1978.
-Mallozi, J.S~. Lillo, de N. J., Computability ttidr Pascal Pm:e-Hall, 1984.
-McNaughton, R., Elementary Computabiliry. Formal ~ e s . and Auromata.
Prentice-Hall, 1982.
-Salomaa, A, Computation andAutomata. Cambridge l:ni\d:sity Press, 1985.
-Tourlakys, G.J., Computahility. Prentice-Hall., 1984.
MTODO DE EVALUACIN
Para la evaluacin del alumnado se realizarn dos exmen5 parciales y uno final
en la convocatoria de junio as como exmenes finales concspondientes a las
convocatorias de Septiembre y Febrero. Tanto los emenes pa:rriales como los finales
podrn ser de la modalidad conocida como: tipo test..
..
~-f
,
B. .1.,.111,elllll'-!I A-Gl80R .. .
.
PBOBhl.AS E ,G)Mlj'I AIII . ll>AD (11!11)
(19. Wbile-, -iveraalillatt, Pirametriaaeia, r~a)
1.- Sea P : begin
pi;
X1 := X1 + X1i:+1 ;
ph
end,
2.- Escribir un programa while que compute f-(g h) donde f, _g, h: N~N son funciones
computadas por PI, P2 y P3 con kl, k2 y k3 variables respectivamente. Anlogamente con
f{g+h).
.
. .
. - .
0
3.- Sea P un programa while k- variables . Demostrar que para todo i, j mayores que k se
verifica:
<)p(Xl, ... ,xi) = cpp(Xl, ... ,Xj) '<;f (Xl, ... ,Xi)e Ni, (Xl, ... ,Xj)e Ni
4.- Sean P y P' dos w-p de kl y k2 variables que calculan las funciones binarias f y g
respectivamente. Justifquese formalmente la computabilidad de la siguiente funcin:
F : N 2 ~ N, F(x, y)= g(y, f(x, y)).
5.- Sean P y P' w-p de k y k'variables que computan las funciones binarias f y g. Sabiendo que:
i) g. N2 ~ N, g(x, y)= xY
ii) P: begin
' X1i:+1 :=X1;
X1:=X1;
P';
X2 := X1i:+1;
p
end
a) Cal es el valor de k?
b) Determnese la expresin algebraica de f, si es posible.
c) Realcense las reformas nnimas necesarias para obtener. a partir de P, un programa P'' que
calcule la funcin ternaria h: N3 ~ N, h(x, y, z) =(xY)2
6.- Sean f: N2 ~ N y g : N ~ N funciones semnticas de P1 y P2 respectivamente. Hacer un
nico programa while (sintcticamente correcto y sin sentencias innecesarias) que compute h 1 y
h: siendo stas:
h: : K 3 ~ N, h1 (x, y, z) = z + f(g(x + z), f(x, y))
h:: ~= -t N, h: (x, y)= f(g(x), f(x, y)).
7.- Sea 6i: X1: =X1**2 una expresin que definiremos como macro sentencia de programas .while
cuyo efecto sea el de elevar un nmero al cuadrado. ,..
Sea 6i: begin
X2: X1:
X1: = O;
while X2 ,;: X3 do
begin
X1:=X1+X2;
X3: = succ(X3)
end
end
a) Cul es la funcin unaria semntica de 6i?
b) Sean P1 y P2 los programas while siguientes:
P1: begin X2: = SUCC(X); 01;X2: = pred(X2) end
P2: begin X2: = SUCC(X); 6i;X2: : pred(X2) end
cuntas variables utilizan P 1 y P2 respectivamente?
coinciden sus funciones unarias semnticas?
Realiz.ar una secuencia de computacin de cada una de ellas con sendos vectores iniciales sin
ninguna componente nula.
c) Sea 6.i una sentencia compuesta con la misma funcin semntica que 6i; y sea ..
P3: begin X2: = succ(X1); 0:,;X2: =pred(X2) end
Es (j)pJ =<j)P2?
8.-a) Puede un programa while tener secuencias de computacin idnticas para dos entradas
distintas.?
b) Pueden dos programas while distintos tener identicas secuencias de computacin para
alguna misma entrada?
,~ A..:.V., ~~ l ., M l ' 4 ~
~
~
--- ~ r-~ .
7
.
.
9.- Sea P:IN2 ~ { O, 1} una funcin total y computable. Realizar un programa while
sintcticamente correcto y sin sentencias innecesarias para calcular:
~tJ--..<.~)
TliE"';KH=MM<(~k,~)
f(X, Y) = (X+ 1)-sirno nmero natural n tal que P(n:;Y) = l. x~+t ' Xi
i,!Y 4 icti ()..cr
;:,;i:
l' ->{xJ:"f'(o,y)
.,
10.- Sea P un w-p k-variables que calcula f: N ~ N. Construir otro P' para calcular f : N ~ ~~' =,"kl.iX','=P/ )(1r' 1/
'
1 min{ ne
f'( X)=
1
Cul es nmero nnimo
el
de variables necesarias para construir P'?. Hacer en P' las reformas
mnimas necesarias para que calcule
Jmin{ ne N / n = 2h(n-l.n+l) + x}
f"(x)=l
12.- Sea la funcin f(x) = y [mult(x,y) > suma(x,y)] (menor y tal que..). Demustrese qu~ es
while computable. Esi total?. En caso negativo para qu valores no est definida f!.
No est permitido utilizar las macros * y + para multiplicar -Ysumar respectivamente, ' -sino que se suponen conocidos programas P1 (k1-variables) y P2 (krvariables) tales que sus .
funciones semnticas respectivas de aridad dos son mult y suma.
13.a) Construir un programa while P, donde las nicas macros permitidas son: diferencia
positiva, *,:=,para calcular la funcin f(x) = parte entera de J;..
b) Realizar el menor nmero de modificaciones en P para que calcule .la funcin exceso,
-'=
-- -
cuya definicin es: exceso (x) =x - f(x)2.
14.a) Sea P(X) un polinomio con coeficientes enteros calculado por un programa P
- (kvariables). Demostrar mediante un programa while que la funcin
f(a)= menor entero no negativo que sea raz de P(X)-a
es cornputabk(f(a) ser indefinida si no existe dicha raz.).
b) Hacer un programa while P sin macros y sin sentencias innecesarias para computar el
polinomio P(X) = X 2-X+3.
15.- Sea P un programa while k-variables cuya funcin semntica es:
<{)p
(x)-{l
-
si x es primo
O si no
a) Utilizar P para construir un programa while P' sintcticamente correcto y sin sentencias
innecesarias para calcular la funcin:
f(x) = n de divisores primos de x
b) Realcese, si es posible, una secuencia de computacin de P' con un vector estado inicial que
no posea componentes nulas.
e) Construir P y determinar el n de variables, k', de P'.
d) Realizar sendas secuencias de computacin para los vectores estado iniciales siguientes:
ao= (10, o, ... , O) e Nk'
Nk'
. . , .
-que
begin
Xk+3 := succ(Xk+3); Xl := Xk+3; X2 := O; ... ; Xk := O;
P;
if XI= 1 then
begin
XI :=Xk+l modXk+3;
if XI = O then Xk+4 := succ (Xk+4)
end
en~
XI:= Xk+l; X2 := Xk+3; X3 :=O; ... ; Xkl :=O;
Pl
end
Donde P es un programa while k- variables que calcula la funcin g(X) = i si X es primo y O si
no.
Detemnese la funcin binaria semntica de P2. Cuntas variables utiliza P2?. Realcese una
secuencia de computacin de P2 con un vector estado inicial numrico sin ninguna componente
nula.
19.- Construir programas while para calcular las siguientes funciones, de manera que la nica
macro que puede eventualmente aparecer es la de asignacin del contenido de una variable a
otra ( i. e. X := Xj)a) h : N ~ tal que 11 (x) = f (g (X), ... , g (X)), con f computada por P , k - variables y
1
ki -
programa P. k - variables.
j=O
..
f(x,y)
=~l1
S X>
f(x) = {
Y3
iruief.
si x es mltiplo de 3
f(x)
en otro caso
=[ 2Jj]
22.- Demostrar que para cualquier instruccin de transferencia T(m, n) de una mquina U.R.M.,
existe otra mquina U.R.M. sin instrucciores de transferencia que causa exactamente el mismo
efecto que T(m, n). En consecuencia las instrucciones de transferencia son redundantes e
innecesarias.
23.- Sea Muna U.R.M. sin instrucciones de salto. Demostrar que existe un nmero m tal que
CJ)M (x) =m 'i/ x bien ~ (x) = x +m 'i/ x
24.- Construir una U.R.M. que calcule la funcin f(n) = r i=o... ..n i
25.- Construir una U. R. M. que calcule la funcin f(X) =X!
Nota: Puede ser til construir previamente una U.R.M. que calcule el producto de dos
nmeros.
26.- a) Construir una mquina URM y un programa whlle P sin macros, para computar la
siguiente funcin: f(X,Y) = Resto (X,Y), cuyo resultado es el resto de la divisin entera de X por
y.
b) Cuntas v.ariables utiliza el programa P?
c) Suponiendo que P utiliza k variables, calcular
computacin con vectores iniciales genricos
<p,Cl), <pp<kl)
. _
mediante secuencias de
<pp(k+l)
Para todo par.(n,m) existe una funcin g total y computable tal que: fijados m nme.ros
naturales jl, ...jm, comprendidos entre 1 y m + n, se verifica:
'
begin
X2 : = succ(Xl);
while X2 :;t:X3 do
begin
X2 := pred (X2);
Xl := succ (XI)
end
end
Calcular, utilizando las funciones 1t31, 1t32, 1t33 y 't, el programa P s11on(e) de manera que Pe y P
shon(el tengan la misma funcin unaria semntica
33.- Demostrar la siguiente afirmacin:
Dada una j-aria funcin computable cpf: Ni ~ N existe una funcin computable unaria
q>: N ~N tal que:
q,/ =<P1f
Demostrar que el ndice i' puede ser construido de manera efectiva.
34.- Demustrese a partir del programa P 1 que viene asociado a f: N3~ N, f(x, y, z) = x y' , que
las funciones siguientes son computables:
f.J(x, y) = x; f1(x,y) = xY; fi(x, y) = x y' ; ... ; fo(x, y) = x y
35.- Demustrese que {f0 : ne N} son enumeraciones efectivas de funciones computables para las
f0 :N2~N dadas a continuacin:
1 si Pncon entrada x para devolviendo y
1
l.
J)x,y)=1
r<P
2.
f n (X, Y) =
n(
n) si <P" (y) = n
3.
si q, 0 (y) = X
f)x,y)=
indefinido en otro caso
Dominio ((!)no)= { (Xl, X2, X3) I <)x1(X2) + <)x..-0(3) = g(nO) } con g total y computable.
39.- Sea {f1, ... ,fn.,} una familia de funciones computables. Bajo qu condiciones se puede
asegrar que existe un nmero natural i tal que verifique:
c) Demostrar que existe un no, nmero natural, tal que <i>no(X) =f(no,X) 'v X E N
d) Aplicar el apartado anterior para demostrar la existencia de un IDo tal que:
Dominio( <prnl) = { IDo}
41.- Dar un ejemplo de do.s familias de funciones computables distintas efectivamente
enumerables, digamos {in / n E N} y {g n/ n E N} tales que exista un no con f no = g no
42.- Existen funciones totales y computables, f, tales que f(n)
respuesta el Teorema de Recursin?.
43.- Justificar Qu se puede decir de una funcin f:N
':#
44.- Encuntrese para cada nmero natural n, un ndice para la funcin h..(X) = c:pn(X,X). Existe
algn progr~ while Pn que calcule dicho ndice para cada n?.
45.- Demustrese formalmente que para toda funcin computable f de N en N tal que f no es total
pero para la cual existe un IIl) en N a partir del cual f est siempre definida, se verifica lo
siguiente:
3 nO e N t. q. (!)f(nO) = <i>no
46.- Justifquese informalmente la existencia de programas-while verificando respectivamente
que:
Rotando una posicin circularmente sus sentencias (la primera pase a ser la segunda, la
segunda tercera, .. ., la ltima la primera) siga calculando la misma funcin.
Diferencindose exclusivamente en que la primera sentencia de uno es la ltima del otro y
viceversa calculen la misma funcin.
47.- Demostrar que: 3i*eN: 'Vj <p(j) =cpi(i*).
49.- Sea {f 1, fn, .. ;} una familia de funciones tales que para cada i,'fviene dada por: ,
f (n,m) = cpm(h(n) + i) 'r:/ n,m
a) Bajo qu condiciones son computables todas las funciones de dicha familia?
b) Es i el ndice de f para tcxlo i?. En caso negativo, cul es dicho ndice?.
'e) Puede ser i el ndice def en algn caso?. Justifquese.
50.- Demustrese la siguiente condicin utilizando al menos el teci'ema, de parametrizaciqg:"_ , __._:
52.- Demustrese utilizando el resultado del problema 35. 3 si es posible garantizar en algn caso
que:
rxsi <p~ 1 )(y)=x
'Pn(2)( x,y ) =
'
a) Demostrar sin utilizar la tesis de Church que se trata de una familia efectivamente enumerable.
b) Existe un m en N tal que fm(X,Y) =fm+1(X,Y) para todo X e Y?
<p n ( X ) si Y ~ X
,
<p x ( n) si Y > X
Probar utilizando el teorema de parametrizacin que f es computable para todo nen IN.
ii) Se obtiene en i) algn ndice para fa con ae IN fijo?
iii) Sea no el ndice del programa while realizado en i) para demostrar la computabilidad de
0(n,X,Y) = fn(X,Y). Cul es el programa while de ndice s;rn0 ,n)?
i)
55.- Sean {f: ieN} funciones binarias computables y sea g:N~N una funcin cualquiera. Si se
define h:N 1 ~N. h(x, y) = fg(,/x, y). Determinar cul de las siguientes condiciones hace a h
computable:
i)g computable y las f son una enumeracin efectiva
b) Si se define h..(x, y)= (!)g(xi(n*y), demostrar por parametrizacin que las hn son efectivamente
enumerables. ha sido demostrada en algn momento en el apartado a) la enumera~ilidad efectiva
de las bn?.
-{ 1 si
X= 1
f(x)- .l
.
s1 no
tal
que:
58.- Existe algn programa cuya funcin semntica de aridad 2 tenga por ndice la suma de los
elementos de su rango?.
59.- Demostrar, usando al menos el teorema de parametrizacin, que existe una funcin
computable, <?n , tal que Vx <i'n (x) sea ndice de <pn.
60.- Demustrese sin utilizar la tesis de Church que existe una funcin binaria f en los naturales,
total y computable tal que :
Para todo n, m en N Dom(<pCl f(n.ml ) = Dom( q,Cl JnDom( q,<l,,,), con s en N fijo.
61.- Demostrar sin utilizar la tesis de Church que dadas f y g totales y computables:
V n 3 m tal que <pm (X,Y) = f(<pm(X),<pg(n)(Y)) V X,Y.
62.- Demostrar, sin utilil.ar la tesis de Church, que para cada terna de funciones computables f,
g, h: N ~ N, existe otra funcin computable S: N2 ~ N tal que
f n (X, Y) = \
1 en otro caso
.--. :
'
.,- - - .
{ , con n pertenecie-~te--~ ~-
f 0 (X,Y)
--
l. en otro caso
f.
Accin B
Accin A
Leer X y K
Para cada I desde 1 hasta K hacer
XI:= I ~ X
Sumar los valores Xl, X2, ... , XK
Devolver esta suma
Leer X yK
Hacer Z igual a cero
Para cada I desde 1 hasta K hacer
Z :=Z+X +I
Devolver Z
10
67. Sea Pe un programa while con ke variables y considerar el P!hm(e) asociado. Se puede
conocer el nmero de variables de P shm(c) sin conocer ke ?. Se puede determinar el propio
Pshat(c) sin conocer ke?.
68. Demustrese, sin utilizar la Tesis de Church, que existe un n e N tal que
Rang(cpn) = {nx IX e N}
69.- Sea P un programa while con k variables cuya funcin ~inaria s~mntica es la
siguiente:
11
d) Es total su-funcin binaria semntica? En caso negativo dar una condicin suficiente
de totalidad ..
.
e) Dar una condicin necesaria y suficiente sobre g para qu_e las funciopes binaria y
unaria del P arreglado coincidan~
71.- Demustrese la siguiente afirmacin: Para todo n e N (n ~ 1), existen n funciones _
unarias totales y computables gl, ... ,gn tales que se verifica la siguiente igualdad:
<j)gI(x) +... +gn(x)(y,z) =(1)1+... +11(y,x,z), 'v X, y, z E N.
1; f(O) = O.
1 Si X=
f(x)=
Si X= 1
Si X= 2
f (x -3) + f (x t)l)
en otro caso
13