• No se han encontrado resultados

Ejercicios de Computabilidad (III).

N/A
N/A
Protected

Academic year: 2022

Share "Ejercicios de Computabilidad (III)."

Copied!
11
0
0

Texto completo

(1)

Ejercicios de Computabilidad (III). COMPUTACI ´ ON

Sea φ(f ) una propiedad en la clase F de funciones sobre N de cualquier aridad, definida de la siguiente manera:

φ(f ) ≡ ∃n, ∃g0, ..., gn( gn= f ∧

( ∀i ≤ n ( gi es b´asica

∃i1≤ n, i2≤ n [gi= R(gi1, gi2)]

∃k ≤ n, i1≤ n, ..., ik ≤ n [gi= C(gi1; gi2, ..., gik] ) ) Y sea C la clase de funciones definida por φ

Proposici´on: f es p.r. si y s´olo si φ(f ). Es decir, C = PR

⇐=|

Es decir, veamos que C ⊆ PR

Si f ∈ C, existen n ∈ N y g0, ...., gn con gn = f

Vamos a probar, por inducci´on fuerte, que para todo j ≤ n, gj es p.r.

Caso base: Si j = 0, g0 ha de ser b´asica y, por tanto, p.r.

Paso inductivo: j < n −→ j + 1|

Por h. i. todas las anteriores a gj+1 son p.r.; como ´esta o es b´asica o se obtiene por recursi´on o composici´on de anteriores, concluimos que gj+1 es p.r.

Por tanto para toda j ∈ {0, 1, ..., n}, gj es p.r. En particular, f = gn es p.r.

Hemos probado: C ⊆ PR

=⇒|

Probaremos que C es una clase tal que contiene a las funciones b´asicas y es cerrada por composici´on y recursi´on (se dice que es de tipo PRC). Como PR es la menor clase de tal tipo, concluiremos que PR ⊆ C.

• Obviamente las b´asicas son de C

• C es cerrada bajo recursi´on.

Sean g, h ∈ C de aridades respectivas n y n + 2 . Veamos que f = R(g, h) ∈ C En efecto, existen n y g0, ..., gn tales que gn= g

An´alogamente, existen m y h0, ..., hmtales que hm= h

Por tanto, tomando hm+1= f existe una sucesi´on de n+m+3 funciones, g0, ..., gn, h0, ..., hm, hm+1, tales que f = hm+1 se obtiene por recursi´on de dos funciones anteriores. Por tanto, f ∈ C

• C es cerrada bajo composici´on.

Sean las siguiente funciones de C: g, de aridad n y h1, ..., hn todas de aridad m.

Veamos que f = C(g; h1, ..., hn) es tambi´en de C

Podemos considerar para cada una de las funciones que intervienen en la composici´on:

g0, ..., gk= g h1,0, ..., h1,l1 = h1

...

hn,0, ..., hn,ln = hn

sea, pues, la sucesi´on: g0, ..., gk, h1,0, ..., h1,l1, ...., hn,0, ..., hn,ln, f Y, obviamente, se verifica φ(f ). Por tanto f ∈ C

Lema de Euclides.

(2)

Ejercicio.-

a) Probar que el predicado φ(x) ≡ x es un m´ultiplo de 3 es primitivo recursivo.

b) Dise˜nar un programa GOTO que al recibir un dato de entrada n devuelva el elemento n − ´esimo de la sucesi´on:

0, 1, 2, 2, 3, 4, 4, 5, 6, 6, 7, ...

c) La sucesi´on anterior puede definirse mediante la funci´on: f : N −→ N f (0) = 0

f (x + 1) =

½ f (x) si x+1 es m´ultiplo de 3 f (x) + 1 e.c.o.c.

Probar que:

c1) f es sobreyectiva.

c2) f es primitiva recursiva.

a).-

φ(x) = ∃z ≤ x(x = 3z) b).-

[A] Z3←− Z3+ 3 [B] IF Z = X GOT O E

Z ←− Z + 1

IF Z = Z3 GOT O A Y ←− Y + 1

GOT O B

c1).- Inducci´on d´ebil en la variable y de la f´ormula ∀y(∃xf (x) = y):

Caso base: Para y = 0 tomamos x = 0: f (0) = 0

Paso inductivo: y → y + 1|: Suponemos que dado y existe x tal que f (x) = y.

• Si x + 1 es m´ultiplo de 3:

f (x + 1) = f (x) = y y como x + 2 no ser´a m´ultiplo de 3 resulta que

f (x + 2) = f (x + 1) + 1 = f (x) + 1 = y + 1. En este caso, x + 2 ser´a antiimagen de y + 1

• Si x + 1 no es m´ultiplo de 3

f (x + 1) = f (x) + 1 = y + 1 y, en consecuencia, x + 1 ser´a antiimagen de y + 1.

c2).- f es total [es f´acil probar por inducci´on que ∀x(f (x) ↓)].

Aplicamos directamente la definici´on de recursi´on:

½ f (0) = 0

f (x + 1)) = h(x, f (x)) donde h : N −→ N, definida por casos:

h(x, t) =

½ t si φ(x + 1) t + 1 e.c.o.c.

es primitiva recursiva.

Es decir, f est´a definida por recursi´on a partir de una constante y de la funci´on primitiva recursiva h. Luego es primitiva recursiva.

(3)

Ejercicio.- Probar que la siguiente funci´on es primitiva recursiva:

½ f (0) = 1, f (1) = 4, f (2) = 6

f (x + 3) = f (x) + f (x + 1)2+ f (x + 2)3

f es total (obvio).

• Primera forma: Utilizando la funci´on historia.

Para ello, reescribimos f as´ı:







f (0) = 1 f (x + 1) =



4 si x = 0

6 si x = 1

f (x − 2) + f (x − 1)2+ f (x)3 si x ≥ 2 Consideremos ahora la funci´on historia de f :







f (0) = 2ˆ f (x + 1) =ˆ



2·34 si x = 0

2·34·56 si x = 1 f (x)·pˆ f (x+1)x+2 si x ≥ 2

o sea







f (0) = 2ˆ f (x + 1) =ˆ



2·34 si x = 0

2·34,56 si x = 1

f (x)·pˆ f (x−2)+f (x−1)2+f (x)3

x+2 si x ≥ 2

es decir,







f (0) = 2ˆ f (x + 1) =ˆ



2·34 si x = 0

2·34·56 si x = 1

f (x)·pˆ ( ˆx+2f (x))x−1+(( ˆf (x))x)2+(( ˆf (x))x+1)3 si x ≥ 2

o sea, ˆf est´a definida a partir de la constante 2 y de la funci´on primitiva recursiva:

h(x, z) =



2·34 si x = 0

2·34·56 si x = 1

z·p(z)x+2x−1+((z)x)2+((z)x+1)3 si x ≥ 2

por tanto, ˆf es p.r. y, en consecuencia, la funci´on dada, f , es p.r.

• Segunda forma: La funci´on historia, f (x), ”almacena” todos los valores anteriores a x. Re- solv´amoslo ahora ”guardando” s´olo los valores estrictamente necesarios.

Definimos para ello la funci´on ”almacenadora”: G(x) = [f (x), f (x + 1), f (x + 2)]

Veamos por recursi´on que G es p.r.:















G(0) = [f (0), f (1), f (2)] = 21·34·56 G(x + 1) = [f (x + 1), f (x + 2), f (x + 3)]

= [f (x + 1), f (x + 2), f (x) + (f (x + 1))2+ (f (x + 2))3]

= [(G(x))2, (G(x))3, (G(x))1+ ((G(x))2)2+ ((G(x))3)3]

G est´a definida por recursi´on a partir de una constante, 21·34·56, y de la funci´on p.r.:

h(x, t) = [(t)2, (t)3, (t)1+ ((t)2)2+ ((t)3)3]

Por tanto, G es p.r. Finalmente, como f (x) = (G(x))1, concluimos que f es tambi´en p.r.

(4)

Ejercicio.- Probar que la siguiente funci´on es primitiva recursiva:





f (0) = 3 f (x + 1) =

Xx t=0

f (x)

Obviamente f es total.

Utilizamos la funci´on historia:

( f (0) = 2ˆ 3

f (x + 1) = ˆˆ f (x).pf (x+1)x+2 o sea,

( f (0) = 2ˆ 3

f (x + 1) = ˆˆ f (x).p

P

t≤x( ˆf (x))t+1

x+2 = h(x, ˆf (x))

es decir, ˆf est´a definida por recursi´on a partir de la constante 23 y la funci´on h definida como sigue:

h(x, z) = z.p

P

t≤x(z)t+1

x+2

que es p.r.; por tanto, ˆf es p.r. y, en consecuencia, f tambi´en lo es.

Nota: Obs´ervese que el exponente es la suma acotada, P

(,)g de la funci´on g(z, t) = (z)t+1y, por tanto, es p.r.

Otra forma:

Obs´ervese (pru´ebese como ejercicio) que la funci´on f puede escribirse:



f (0) = 3 f (x + 1) =

½ 3 si x = 0

2f (x) si x 6= 0

o tambi´en, ½

f (0) = 3 f (x + 1) = 2x·3

y, en ambos casos, probar que es p.r. es inmediato.

(5)

Ejercicio(01/12/01).- Sea f : N2−→ N definida por:

f (x, y) =

½ x si y = 0

f (bx2c, y − 1) si y ≥ 1 Probar que:

1.- Para cada z existen infinitos (x, y) tales que f (x, y) = z 2.- f es primitiva recursiva.

1).- Veamos que dado z ∈ N, se verifica que para todo k, f (2kz, k) = z Demostraci´on por inducci´on d´ebil en la variable k:

• Caso base: Si k = 0 entonces, para cualquier z, f (z, 0) = z -por definici´on-; luego se verifica la propiedad en el caso base (y, adem´as, podemos concluir que f es sobreyectiva).

• Paso inductivo: Para todo z, f (2k+1z, k + 1)def.= f (2kz, k)h.i.= z

2).- La funci´on ˆf (x, y) = [f (0, y), ..., f (x, y)] es primitiva recursiva.

En efecto, teniendo en cuenta que ˆf es total - por serlo f (*)-, veamos que puede definirse por recursi´on en la variable y, a partir de funciones primitivas recursivas:





f (x, 0) = [f (0, 0), ..., f (x, 0)] = [0, 1...x]ˆ f (x, y + 1) = [f (0, y + 1), ..., f (x, y + 1)] =ˆ Y

i≤x

pf (i,y+1)i+1 =Y

i≤x

pf (bi+12ic,y)=Y

i≤x

p( ˆi+1f (x,y))b i2c+1

Obs´ervese que:

a) ˆf (x, 0) = cId(x) donde cId es la funci´on historia de la funci´on identidad.

b) ˆf (x, y + 1) = h(x, y, ˆf (x, y), donde h(x, y, z) =Y

i≤x

exp(pi+1, (z)bi 2c+1).

As´ı pues, ˆf = R(cId; h); siendo cId y h funciones primitivas recursivas. Por tanto, ˆf es primitiva recursiva.

Finalmente, como f (x, y) = ( ˆf (x, y))x+1 concluimos que f es primitiva recursiva.

(*)Nota: Probar por inducci´on en y: ∀y(∀xf (x, y) ↓)

(6)

Ejercicio (11/01/03). Consideremos la siguiente funci´on f : N2→ N

 f (x, 0) = x2, f (x, 1) = x3

f (x, y) = 3 · f (x, y − 1) + 2 · f (x, y − 2) (y ≥ 2) (a) Pru´ebese, utilizando un programa GOTO, que f es GOTO–computable.

(b) Pru´ebese que f es primitiva recursiva.

a) El siguiente programa calcula la funci´on f : Z1← X12

Z2← X13

IF X26= 0 GOTO A Y ← Z1

GOTO E [A] X2← X2− 1

IF X26= 0 GOTO B Y ← Z2

GOTO E [B] X2← X2− 1

Y ← 3Z2+ 2Z1

Z1← Z2

Z2← Y

IF X26= 0 GOTO B

b) Como f es total (puede demostrarse por inducci´on), definamos la siguiente funci´on G : N → N G(x, y) = hf (x, y), f (x, y + 1)i

Entonces:

G(x, 0) = hx2, x3i

G(x, y + 1) = hr(G(x, y)), 3r(G(x, y)) + 2l(G(x, y))i

Por tanto G = R(g, h) es primitiva recursiva pues g(x) = hx2, x3i y h(x, z) = hr(z), 3r(z) + 2l(z)i pues g y h lo son.

Por tanto, f (x, y) = l(G(x, y)). Luego f es primitiva recursiva ya que es composici´on de funciones primitivas recursivas.

Lema de Euclides.

Para todo primo p existe otro primo q tal que p < q ≤ p ! + 1.

En efecto; para cualquier primo p, consideremos el n´umero p ! + 1.

Cualquier q primo tal que q ≤ p, divide a p ! y, por tanto, no divide a p ! + 1. Pero entonces, o bien p ! + 1 es primo o bien es divisible por un primo q tal que q > p.

En cualquier caso existe un q primo tal que p < q ≤ p ! + 1. Es decir, se verifica el lema. 2

(7)

Minimizaci´on acotada (predicados):

Sea θ : Nn+1−→ N un predicado. Definimos:

θµ(~x, y) =

 min{z ≤ y : θ(~x, z)} si existe tal m´ınimo

0 e.c.o.c.

que tambi´en escribiremos: µz≤ y (θ(~x, z))

PROPOSICI ´ON: Si θ ∈ PR(n+1) entonces θµ∈ PR(n+1) DEMOSTRACI ´ON:

Consideremos el predicado complementario: θ(~x, z) = ¬θ(~x, z) Caso 1.- Existe el m´ınimo (llam´emosle y0)

θ(~x, 0) =Y

z≤0

θ(~x, z) = 1

θ(~x, 0)·θ(~x, 1) =Y

z≤1

θ(~x, z) = 1 θ(~x, 0)·θ(~x, 1)·θ(~x, 2) =Y

z≤2

θ(~x, z) = 1

... ... ... ...

θ(~x, 0)·θ(~x, 1) ... θ(~x, y0− 1) = Y

z≤y0−1

θ(~x, z) = 1



























suman y0

θ(~x, 0)·θ(~x, 1) ... θ(~x, y0) = Y

z≤y0

θ(~x, z) = 0 θ(~x, 0)·θ(~x, 1) ... θ(~x, y0+ 1) = Y

z≤y0+1

θ(~x, z) = 0

... ... ...

θ(~x, 0)·θ(~x, 1) ... θ(~x, y) =Y

z≤y

θ(~x, z) = 0



















suman 0



























































 X

t≤y

Y

z≤t

θ(~x, z) = y0

Caso 2.- No existe el m´ınimo:

En ese caso, todos los productos anteriores valdr´ıan 1 y, en consecuencia,X

t≤y

Y

z≤t

θ(~x, z) = y + 1

Por tanto, nuestro predicado se caracteriza as´ı:

θµ(~x, y) =







 X

t≤y

Y

z≤t

θ(~x, z) si ∃z ≤ x(θ(~x, z))

0 e.c.o.c.

y, por tanto, es primitivo recursivo.

2

(8)

Ejercicio.- Sea f : N −→ N la funci´on cuyos valores sucesivos son:

1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5, ....

1. Dise˜nar un programa GOT O que calcule la funci´on f .

2. Explici tar una definici´on de f para probar que es primitiva recursiva.

La sucesi´on:

0, 0, 1, 0, 1, 2, 0, 1, 2, 3, 0, 1, ...

definida por una funci´on g, verifica: f (x) = g(x) + 1.

Bastar´a demostrar que g es computable (resp. primitiva recursiva) para realizar nuestro ejercicio.

1) El siguiente programa calcula g:

[A] IF X = 0 GOT O E X ←− X − 1 Y ←− Y + 1 IF Y ≤ Z GOT O A Y ←− 0

Z ←− Z + 1 GOT O A

(Nota: para obtener la sucesi´on determinada por f , bastar´a con incrementar en 1 el valor de salida; es decir, a˜nadiremos como ´ultima instrucci´on: [E] Y ←− Y + 1).

Analicemos el programa:

x 0 1 2 3 4 5 6 7 8 9 10 11 ...

Y 0 0 1 0 1 2 0 1 2 3 0 1 ...

Z 0 1 2 3 4 ...

Z e Y comienzan con el valor 0. Cada vez que Y supera el valor de Z, se pone a cero y ´esta ´ultima aumenta en 1.

Un ejemplo: cuando z = 3 e y = 2, la variable Y ha realizado los siguientes incrementos:

1 al superar el valor z = 0 (en ese momento, Y se pone a cero, y = 0, y Z actualiza Z con z = 1) 2 m´as cuando supera el valor z = 1 (en ese momento, Y se pone a cero, y = 0, y Z se actualiza con z = 2)

3 m´as al superar el valor z = 2 (en ese momento, Y se pone a cero, y = 0 y Z se actualiza con z = 3) Finalmente, realiza 2 incrementos m´as (y el valor de Z, en ese momento, es z = 3).

Es decir, cuando y = 2 y z = 3, tendremos: Incrementos(Y ) = 2 + (1 + 2 + 3) = y +X

j≤3

j

Cuando el n´umero de incrementos de Y alcanza el valor de entrada, x, se tiene:

x = y +X

j≤z

j

Por otro lado, Incrementos(Y ) = Decrementos(X) y el programa para cuando x = Incrementos(Y ).

Por tanto, la sucesi´on g puede definirse as´ı:

g(x) = µy ≤ x (∃z ≤ x ( x = y +X

j≤z

j ))

En consecuencia, es primitiva recursiva.

(9)

Minimizaci´on acotada (funciones):

Sea f : Nn+1−→ N. Definimos:

fµ(~x, y) =

 min{z ≤ y : f (~x, z) = 0} si existe tal m´ınimo

y + 1 e.c.o.c.

que tambi´en escribiremos: µz≤ y (f (~x, z) = 0)

PROPOSICI ´ON: Si f ∈ PR(n+1) entonces fµ∈ PR(n+1) DEMOSTRACI ´ON:

Caso 1.- Existe el m´ınimo (llam´emosle y0)

f (~x, 0) = sg(Y

z≤0

f (~x, z)) = 1

f (~x, 0)·f (~x, 1) = sg(Y

z≤1

f (~x, z)) = 1 f (~x, 0)·f (~x, 1)·f (~x, 2) = sg(Y

z≤2

f (~x, z)) = 1

... ... ... ...

f (~x, 0)·f (~x, 1) ... f (~x, y0− 1) = sg( Y

z≤y0−1

f (~x, z)) = 1



























suman y0

f (~x, 0)·f (~x, 1) ... f (~x, y0) = sg(Y

z≤y0

f (~x, z)) = 0 f (~x, 0)·f (~x, 1) ... f (~x, y0+ 1) = sg( Y

z≤y0+1

f (~x, z)) = 0

... ... ...

f (~x, 0)·f (~x, 1) ... f (~x, y) = sg(Y

z≤y

f (~x, z) = 0



















suman 0



























































 X

t≤y

sg(Y

z≤t

f (~x, z)) = y0

Caso 2.- No existe el m´ınimo:

f (~x, 0) = sgY

z≤0

f (~x, z) = 1

f (~x, 0)·f (~x, 1) = sgY

z≤1

f (~x, z) = 1 f (~x, 0)·f (~x, 1)·f (~x, 2) = sgY

z≤2

f (~x, z) = 1

... ... ... ...

f (~x, 0)·f (~x, 1) ... f (~x, y) = sgY

z≤y

f (~x, z) = 1



























suman y + 1: X

t≤y

sg(Y

z≤t

f (~x, z)) = y+1

Luego nuestra funci´on se expresa:

fµ(~x, y) =X

t≤y

sg(Y

z≤t

f (~x, z))

y, por tanto, es una funci´on primitiva recursiva. 2

Ejercicio.- Sea f : Nn+1−→ N una funci´on PR. Entonces la siguiente funci´on es tambi´en PR : fµ0(~x, y) =

 min{z ≤ y : f (~x, z) = 0} si existe tal m´ınimo

0 e.c.o.c.

Basta observar que:

fµ0(~x, y) =

 fµ(~x, y) si ∃z ≤ y(f (x, z) = 0)

0 e.c.o.c.

Nota: En muchas ocasiones esta es la expresi´on que se toma como definici´on de minimizaci´on acotada de

(10)

Ejercicio (12/02/03).- Dos n´umeros x, y son coprimos si no tienen divisores primos comunes.

1) Probar que el predicado COP (x, y) ≡ ”x e y son coprimos.esprimitivo recursivo.

2) Probar que la siguiente funci´on es primitiva recursiva:

f (x, k) =

 0 si x = 0 o k = 0

k–´esimo n´umero coprimo con x e.o.c.

(Indicaci´on: N´otese que si y es un primo mayor que x, entonces COP (x, y)).

———————————————

1) COP (x, y) ≡ m.c.d(x, y) = 1. Por tanto, COP es un predicado primitivo recursivo.

2) p(x + k) es el x + k–´esimo n´umero primo; y, seg´un la indicaci´on, el k–´esimo n´umero coprimo con x es inferior o igual a p(x + k). Por tanto, la funci´on dada puede expresarse como sigue:

f (x, k) =

 0 si x = 0 o k = 0

µy ≤ p(x + k)(P

j≤yCOP (x, j) = k) e.o.c.

que est´a definida por casos a partir de funciones primitivas recursivas y predicados p. r. exhaustivos y excluyentes. Por tanto f es primitiva recursiva.

(11)

Ejercicio.- Dar una definici´on recursiva de la funci´on f (x) =n´umero de d´ıgitos de x -en base 10- y probar que es primitiva recursiva.

Sea d(x) = qt(x, 10) la funci´on que trunca el n´umero x devolviendo las n-1 primeras cifras del mismo.

Entonces, la funci´on f puede definirse as´ı:

f (x) =

 1 si x ≤ 9

f (g(x)) + 1 e.o.c.

Para probar que es primitiva recursiva, la reescribimos as´ı:



f (0) = 1 f (x + 1) =

 1 si x ≤ 8

f (g(x)) + 1 e.o.c.

Formamos la funci´on historia de f :





f (0) = 2ˆ f (x + 1) =ˆ

( Cˆ1(x) si x ≤ 8 f (x)·pˆ f (x+1)x+2 e.o.c.

que, teniendo en cuenta la definici´on de f , podemos reescribir:





f (0) = 2ˆ f (x + 1) =ˆ

( Cˆ1(x) si x ≤ 8 f (x)·pˆ f (g(x))+1x+2 e.o.c.

Y como g(x) < x para x > 1, podemos escribir:





f (0) = 2ˆ f (x + 1) =ˆ

( Cˆ1(x) si x ≤ 8 f (x)·pˆ ( ˆx+2f (x))g(x)+1+1 e.o.c.

Es decir, ˆf est´a definida por recursi´on a partir de una constante y de la h:

h(x, z) =

( Cˆ1(x) si x ≤ 8 z·p(z)x+2g(x)+1+1 e.o.c.

que es p. r.

En consecuencia, ˆf es p.r. y, por tanto, f tambi´en lo es. 2

Referencias

Documento similar

presupuestario específico para la igualdad de género. Según la evaluación, el primer programa de apoyo presupuestario relativo al género tuvo un efecto limitado sobre otros

Brown (1988) sugiere que mientras la mayor parte de las teorías de las adicciones son específicas de la adicción, una teoría del aprendizaje social debería abarcar una amplia gama

En cumplimiento del Reglamento General de Protección de Datos, le informamos que sus datos serán incorporados al tratamiento denominado “homologación y convalidación de títulos

1) Los conjuntos de datos propiamente dichos: datos fiables y de confianza, de buena calidad, procedentes de grandes conjuntos de datos, incluyendo los datos abiertos (por

Infantil, Pedagogía y Educador Social será imprescindible que dicha asignación coincida con la asignación docente del Prácticum del 4º curso, de forma que para cada

b) ¿A qué distancia del fiel (BP, brazo de potencia) hemos de colocar la “pesa” para equilibrar la balanza?.. 21) Calcula que fuerza hay que hacer para elevar la carga en un

- Generar un debate sobre posibles propuestas que como ciudadanas podemos llevar a cabo para cambiar o mejorar esta realidad..5. EJEMPLOS

A fin de investigar eficazmente las transacciones financieras delictivas, los servicios represivos y las autoridades judiciales recibirán equipamiento y formación para