Vous êtes sur la page 1sur 15

2- 8'

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

5. OTROS MODELOS DE COMPUTACIN


5.1. Mquinas d~ Turing como ca1culadores de .fwrites parciales. 5.2.
Algoritmos de Markov. 5.3. Funciones parcial-recms.i'ia:s.. 5.4. Equivalencia
de los modelos con el de los pro~while. 5.5. Tesis de Church de
nuevo.

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,

donde k =max {kl, iF2}, siendo kl y k2 el nmero de variables de Pi y Ph respectivamente: _


Haba que realizar transformaciones en P para que <p = <i>h <?i +_1~); 'En caso afirmativo
realcense.

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:

X o [R l(K t'I' )/1;

l' ->{xJ:"f'(o,y)

Xi =~( X~+ 'I)


.~+LJ=Xi

.,

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

N / n= 2/(n-l) +x} si tal mnimo exbte

f'( X)=

1
Cul es nmero nnimo

indefinido en otro caso

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}

si tal mnimo exl~e

f"(x)=l

lindefinido en otro caso


donde h : N2 ~ N es la funcin binaria semntica del P inicial.
11.- Disear un programa while sin sentencias innecesarias para computar la funcin:
f(X,Y) = rnax {n S Y I g(n,X) =Y}+ max {g(n,X) In~ Y }
siendo g una funcin total computada por P,, k-variables.

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'

ao= (10, 1, ... , 1) E

Nk'

16.- Sea P el siguiente programa while: begin X3 := 5; while XI* O do begin

Xl := pred(Xl); X2 := X3 + XI end; XI:= X2 end


a) Sealar las macros que aparecen en P.
b) Dar la expresin de la funcin unaria semntica de P.
e) Deshacer todas _
las macros de P, sin aadir sentencias innecesarias ni modificar las
variables que ya aparecen en P. Sea P' dicho programa.
d) Hasta qu aridad coinciden las funciones semnticas de P y P'?. Justifquese.
17.- Hacer un programa while P sin macro sentencias para calcular la funcin:
h(x,y) = x - y (diferencia positiva)
Hacer otros programas while Pl y P2 para calcular la funcin
f(x,y) =x div y (divisin entera)
de forma que:
i) PI utilice como nica macro sentencia la expresin X:= X - Y cuya macro expansin
es la natural

ii) P2 no utiliza ninguna macro sentencia pero utiliza el programa P calculado


anteriormeDle.
Cuntas variables utilizan Pl y P2 respectivamente?.
Hacer una secuencia de computacin para P 1 y otra para P2 con vectores-estado iniciales sin
ninguna componente nula.
-

. . , .

18.-a) Construir un programa while Pl sintcticamente correcto y sin sentencias innecesarias


calcule la funcin f(X, Y) = n~o de veces que Y divide a X.
b) Sea P2 el programa while siguiente:
begin
Xk+l := Xl; Xk+2 := X2; Xk+3 := I;
while Xk+3 Xk+l and Xk+4 Xk+2 do

-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

las g computadas por programas P , k - variables i = 1, ... , n.


l

b) h:: N2 ~ N tal que:


h.,(0,X) = f(X); h (n+ 1,X) = g(h (n.x),n,X)
-

con f y g computadas respectivamente por programas P f, k - variables, y P g


variables.
e) h : N -t N tal que hiX)
3

ki -

= y [ f(X, Y) = 1], siendo f una funcin total calculada por un

programa P. k - variables.

20.- Sea f la siguiente funcin de N en N:


X

f(u) =min {x =s; I L(j+ h(j)) ~u} .


.

j=O

..

Siendo h una funcin total calculada por un pr:ograma P k- :variables. es f totalt es f


computable?. Justifquese adecuadamente..
21.- Demostrar que las siguientes _funciones son computables construyendo mquinas URM que
las computen:
rO Si X :5; y
f(x) = 5

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)

27.- Demustrese utilizando el teorema de Universalidad, la veracidad de la siguiente expresin


3no e N:cpo (x) = <Pn.( no ,x)v'x e N
28.- Demostrar utilizando el teorema de parametrizacin, que para todo n, m nmero; naturales,
existe una funcin g de aridacl n+ 1, total y computable tal que:
<p g(i Z l.... L: ; (Y, ... ,Y :J = cp(Y, ...Ym,Zi, ... ,ZJ 'i/ i 21, .. ,,Zn, Y,.. .,Ym

29.- Demostrar la siguiente afirmacin:

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:
'

<P;;l.x .'x;..> ( X1 X<A-t>' X <.t+1> , X u.,-1>' X u.,+1> , X n+m) =.. <P?l+lf!){


Xi- . X ..+m )'vi, Xi, X n+m
..
. -.
.
11

30.- Demostrar la existencia de una funcin K de N en N total y computable tal qu~ _


rt n Dominio ((i)K(n)) ={x / X E N} .
31.- Sea n ~ 1; Demostrar la existencia de una funcin S de N en N total y computable tal qu~:
Dom (q>scx)) = {(y1, ... ,yJ I Y1+ ... +yn= x}
32.- Sea Pe el siguiente programa while:

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

indefinido en otro caso

r<P

2.

f n (X, Y) =

n(

n) si <P" (y) = n

l indefinido en otro caso


'X

3.

si q, 0 (y) = X

f)x,y)=
indefinido en otro caso

36.- Sea f: N~ N una fncin total y computable y sea


hnCx, y)= x * (f(n) mod 2) + y * (1 - (f(n) mod 2))
Es {h..: neN} una familia de f.c.e.e.?
Y si f no es total?
Y si fes total pero no es computable?.
37.- Sea {0n: ne N} una familia de funciones computables. Bajo qu condiciores ~ computable
la funcin f: N2 ~ N, f(n, m) = 0n(m)?. Demustrese.
38.- Demostrar sin utilizar la tesis de Church que existe una funcin computable <?no de aridad 3
tal que:
--
-
" "

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:

q>(n,m) = log(fu(i) + q>(m)) \f n, m.


Justifquese la respuesta.
40.- Sea f una funcin computable de aridad dos sobre los naturales:

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

':#

n \/ne N?. Contradice tu

N computable tal que:

'<in3X t q <Pt(n/ X)# <Pn (X)

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

48.- Existe algn nm~o natural no tal que:


'Pn 0 (x)= x+max{ q,)n0 ),'Pn 0 (x)}'v'x e N

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:"_ , __._:

'r:/ z 3 y/ <!)y(x) = cpy(x,z) 'r:/ x


51.- Demostrar sin utilizar la tesis de Church la siguiente expresin:
'<iY3 n I 'Pn(X,Z) ='Py (<pn(X,Z)) '<iX,Z

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

'

indefinido en otro caso

53.- Consideremos la siguiente familia de funciones:


'Pn( X) si </>y(Y )= 'Px( X )e N
fn( X.Y)=

ind en otro caso

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

54.- Sea ln( X.Y)=

,
<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

ii)g es total y computable y las f son una enumeracin efectiva


iii) g es computable y la f son una enumeracin efectiva de funciones totales
iv)g y las f son computables.
56.- Sea g:N~N una funcin total y computable.

a) Demustrese que 3n:q,! l(x,y) = <p~I~i (n *y) Vx, y


2

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

57.- Responder ramnadamente a las siguientes cuestiones:


a) Hasta que aridad puede definirse la funcin semntica de un programa while que
tenga exactamente k variables?.
b) Si P. es un programa While que calcula la funcin universal et>: N2~N. demostrar
que la salida de la computacin de Pe con entrada (e, a) coincide con la salida de la .
computacin con entrada (a, O) 'va e N.
c) Considrese la siguiente funcin:

-{ 1 si
X= 1
f(x)- .l
.
s1 no

Es computable?, Es total?, Existe un n, nmero natural,


q,n(y) =<i'f(n(y) 'vy?. Contradice tu respuesta al teorema de recursin?.

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

Dom (S) = [Dom(t) n Dom(h)] x [Dom(g) "I Dom(h)]


siendo AxB el producto cartesiano de A y B.
Calcular el ndice de S en funcin de los ndices de f, g y h.
63.- Demostrar, sin utilizar la tesis de Church, la siguiente igualdad
Vx Vz 3y tal que cpy(x, z, CJ)ylc)) = cp,(k) Vk

64.- Para cada u y v en _N se define la funcin


h(x) =f(<pu(x), <pv(x))
Demostrar fcrmalmente (sin utilizar la tesis de Church) que si fes computable," entonces h es
computable para cualesquiera valores de u y v. Cal es el ndice de h ando u =uO y v =vO
con uO y vO nmeros naturales fijos?
Utilizando el resultado anterior demostrar formalmente que
'v'u, 3v : <pv(x) = f(<pu(x), <pv(x)) y que
'v'v, 3u : cpu(x) = f(<pu(x), <pv(x))
65.- Considrese la siguiente familia de funciones:

f cp (X) *<pcpx(y) (n) si (l)x(y).J..


0

f n (X, Y) = \

1 en otro caso

.--. :

'

.,- - - .

{ , con n pertenecie-~te--~ ~-

a) Responder razonadamente a las siguientes cuestiones:


i) Es una familia de funciones computables?. En caso afirmativo es efectivamente..
enumerable?
ii) En caso de que no sea una familia de funciones computables existe algn n tal que fn es
computable?
iii) Es una familia de funciones totales? en cualquier caso existe alguna funcin f0 que
sea tocal?
iv) Puede demostrarse el hecho de que exista una f0 que tenga al propio n como uno de sus
ndices? En caso afinnativo demostrarlo.
b) Respndase a las mismas preguntas considerando ahora la familia:
f cp0 (X) *cpq,x(Y) (n) si (l)x(y).J... \

f 0 (X,Y)

--

l. en otro caso

f.

PROBLEMAS AADIDOS EN EL CURSO 98199


66.- Se pretende utilizar la Tesis de Church para justificar la computabilidad de una
funcin binaria sobre los naturales, f, a partir de un algoritmo descrito como una
secuencia de acciones de alto nivel. Determnese la expresin de f para las secuencias de
acciones A y B descritas en la tabla siguiente cuando sea posible ap~ar dicha Tesis.
Constryanse, si es posible, un programa while P y una U.R.M. que sigan los pasos del
algoritmo. Cuntas variables utiliza P?.

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:

f (x, y)= {Max{nly:ivideax} si existe dicho maxA y > 1


si no
Determnese un programa while, sintcticamente correcto y sin sentencias innecesarias;
que calcule la funcin binaria Mximo comn divisor (m.c.d.). suponiendo que Ios~dos
nmeros son no nulos

Ejemplo: m.c.d. (120, 100) = 20, pues 120 = 2 3 5 ,


2
2
100 = 2 5 .,y
2
20 = 2 * 5
Nota: Puede utilizarse como macro la funcin Primo (x), que devuelve 1 si x es primo y
Osi no.
70.- Un programador construy el siguiente programa while, considerando como input
del mismo, el par (X,Y):
P::
be gin
Xl := succ(X);
N:=0;
X2 := 1;
X3 :=Xl-X2;
while X3 "# Odo
X2 :=X2+X2;
N := succ(N);
X3 :=Xl-X2;
V := pred (N);
Xl := Y;
Ps;
XI := <l>(Xl, V)
end
Siendo g una funcin total y cmputable y Pg k-variables.
a) Es sintcticamente correcto?. En caso de no serlo arreglarlo manteniendo la filosofa
de lo que pretenda hacer el programador. Localizar las macros del programa
b) Determinar cp/2(X;Y) del programa arreglado.
c) Calcular el nmero de variables del P arreglado.

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.

72.- Consideremos la siguiente funcin sumatorio: f(x)= 1+2+... +x, si x

1; f(O) = O.

Construir un programa while recursivo para sumatorio y definir la correspondiente


funcin reescribe programas.

73.- Responder razonadamente a las siguientes cuestiones:


a) Deshacer el siguiente macro-test construyendo un programa while equivalente

y sin macros: while X ~ Y do X:= succ (Y).


b) Sea P un programa while que utiliza otro programa P', donde q>p es la funcin
siempre indeterminado. Podemos asegurar que q>p es igualmente la funcin que
vale siempre indeterminado ?
e) Supongamos que en el enunciado del teorema de parametrizacin no se exige
que la funcin sm0 sea computable. se podra, utili:zando este nuevo enunciado
de parametrizacin, demostrar la computabilidad de g(Y,Z) = f(l,Y,Z) supuesta
la computabilidad de f ?
d) Mediante el teorema de recursin: Podemos concluir que si una funcin g no

es total entonces no existe no con (l)g(nO) = q>n0 ?


74.- Diremos que un nmero natural x es "casi-cuadrado perfecto" si y slo si puede
ponerse como producto de un nmero n por el predecesor de n (i.e. x = n pred(n)).
As, puede observarse que x = O x = 2 son casi-cuadrados perfectos, mientras que no lo
es x = l.
a) Se pide demostrar la resolubilidad del problema de decidir si un nmero
cualquiera dado es casi-cuadrado perfecto, utilizando los siguientes modelos
de computacin: Modelo de los programas While; Modelo de las U.R.M.
75.- Demostrar sin utilizar la tesis de Church que el siguiente conjunto I ~ N es no
vaco:
I

= {n ~ 1 / <?n+l (X, Y, Z) = (l)q,x (Y.Z) (n + 2)}

76.- Demostrar que la funcin f: N ~ N definida a continuacin es computable,


mediante la construccin de un programa While en donde las nicas macros que pueden
aparecer son las de asignacin, asignacin de una constante y suma.

1 Si X=
f(x)=

Si X= 1

Si X= 2

f (x -3) + f (x t)l)

en otro caso

77~- Considrese una.familia de funciones computables: F = {g;(x) I i e N}. Se define a


partir de la familia anterior el conjunto de funciones {fn(x) =I; = Ov ..n g;(x) I n E N}.
a) dar justificadamente condiciones necesarias y suficientes sobre la familia F
para que se verifiquen separadamente cada una de las siguientes expresiones:
'fl n 3 X t.q. (pfn(x) (y) = (px (y) 'rf Y
3 l1o e N t.q. fno (y) = <pn0 (y) 'v y
b) Demostrar el segundo punto del apartado anterior en el caso concreto:
F = { g;(x) = (i + x)2 I i e N}

13

Vous aimerez peut-être aussi