Problemas del Tema 3

Anuncio
Teorı́a de la Computabilidad. Grupo 1
Ejercicios del Tema 3
(Curso 2010–11)
Tema 3
Ejercicio 35.– Sean g1 : N3 − → N y g2 , g3 : N2 − → N funciones parciales GOTO–
computables. Probar que las funciones
h1 (x, y) = g1 (x, y, g2 (y, x))
y
h2 (w, x, y, z) = g1 (g2 (w, y), z, g3 (2, g3 (y, z)))
son GOTO–computables.
Ejercicio 36.– Dada una función f : N → N se define la función itf : N2 → N como
n+1 veces
itf (x, 0) = x, e itf (x, n + 1) = f n+1 (x) = f (f (
···
f (x) · · · )), para cada x, n ∈ N
Pruébese que si f es GOTO–computable, entonces itf también lo es:
(a) Utilizando para ello un programa GOTO.
(b) Sin utilizar ningún programa GOTO.
Ejercicio 37.– Dada una función ϕ : N → N se define f : N2 → N como sigue:
f (x, 0) = ϕ(x)
f (x, y + 1) = f (f (x, y), y)
Se pide:
(a) Probar por inducción débil sobre y que ∀y ∀x (f (x, y) = ϕ2 (x)).
y
(b) Del apartado (a), deducir que si ϕ es GOTO–computable, entonces f también lo es.
Ejercicio 38.– Explicitar las siguientes funciones:
(a) µy(x • y = 0)
•
(b) µy(x − y = 0)
•
(c) µx(x − y = 0)
(d) µy(g(x, y) = 0), donde g(x, y) es la función: g(x, y) =
(
•
x−y
1
si x es par
e.o.c
Ejercicio 39.– Probar que la función f : N → N definida por:
f (0) = 1 y f (n + 1) = número de dı́gitos de n + 1 en base 10
es GOTO–computable.
Ejercicio 40.–
a) Probar que todo conjunto finito es GOTO–computable.
b) Probar que, para cualquier número natural n, se tiene que el conjunto B = {x : x ≥ n}
es GOTO–computable.
Ejercicio 41.– Sean a ∈ N y f : Nk → N una función total y GOTO–computable. Probar
que el conjunto A = {~x ∈ Nk : f (~x) = a} es GOTO–computable.
Ejercicio 42.– Probar que si A, B son conjuntos GOTO–computables, entonces el producto
cartesiano A × B es GOTO–computable.
Ejercicio 43.– Sea A ⊆ N un conjunto GOTO–computable y f : Nk → N una función
total GOTO–computable. Probar que el conjunto f −1 [A] = {~x ∈ Nk : f (~x) ∈ A} es GOTO–
computable.
Ejercicio 44.– Probar que la función f : N → N definida por:
33
2
f (0) = 0, f (1) = 1, f (2) = 2 , f (3) = 3 , . . . , f (n) = n
··
n·
n
(n veces)
es GOTO–computable
Indicación: Considérese la función g : N2 → N caracterizada por las relaciones: g(0, x) =
x y g(n + 1, x) = xg(n,x) . Pruébese que dicha función es GOTO–computable, que g(n, x) =
·
xx
··
x
(n+1 veces)
y que f (n) = g(n − 1, n), para cada n ≥ 1.
Ejercicio 45.– Probar que es GOTO–computable la función f : N → N, definida por
f (0) = 7

f (n)


2
f (n + 1) =


3 · f (n) + 1
si f (n) es par.
si f (n) es impar.
Ejercicio 46.–
a) Probar que el predicado θ(x) ≡ x es un múltiplo de 3 es GOTO–computable.
b) Diseñar un programa GOTO que al recibir un dato de entrada n devuelva el término
n − ésimo de la sucesión: 0, 1, 2, 2, 3, 4, 4, 5, 6, 6, 7, ....
c) La sucesión anterior puede definirse mediante la función: f : N −→ N
f (0) = 0
f (x + 1) =
f (x)
si x + 1 es múltiplo de 3
f (x) + 1 e.c.o.c.
Probar que f es sobreyectiva.
Utilizando recursión primitiva, probar que f es GOTO–computable.
Ejercicio 47.– Sea f : Nk+1 −→ N una función total (k + 1)–aria, con k ≥ 0. Se define la
suma acotada de f , que notaremos Σf , ası́:
X
Σf (~x, y) =
f (~x, z)
z≤y
Probar que si la función f es GOTO–computable, entonces la correspondiente función suma
acotada Σf también lo es.
Nota: AnálogamenteY
se define el producto acotado, Πf , de una función total (k + 1)–
Q
aria f : f (~x, y) =
f (~x, z), y se prueba que si f es GOTO–computable, entonces la
z≤y
correspondiente función producto acotado Πf también lo es.
Ejercicio 48.– Probar que las funciones binarias que calculan el máximo común divisor
y el mı́nimo común múltiplo de dos números naturales son GOTO–computables.
Ejercicio 49.– Probar que los siguientes predicados binarios son GOTO–computables.
θ1 (x, y) ≡ x e y tienen distinta paridad y, además, tienen el mismo número de divisores primos.
θ2 (x, y) ≡ x e y son distintos de cero y tienen los mismos divisores primos.
θ3 (x, y) ≡ el número de divisores de x es, al menos, y.
Ejercicio 50.– Probar que las siguientes funciones son GOTO-computables:
(a)
f (0) = 0
f (x) = la suma de los divisores de x,
si x 6= 0
(b) g(x) = el número de primos menores o iguales que x.
√
(c) h(x) = el único número natural n tal que n ≤ 2 · x < n + 1.
Ejercicio 51.– Sean f1 , f2 , ..., fn : N −→ N funciones totales. Sea G(x) = [f1 (x), f2 (x), ..., fn (x)].
Probar que G es GOTO-computable sı́ y sólo si f1 , f2 , ..., fn son GOTO–computables.
Ejercicio 52.– Sea f : N −→ N una función total. Se define la función historia de f , ası́:
fˆ(x) = [f (0), f (1), ..., f (x)]
Probar que fˆ es GOTO-computable sı́ y sólo si f es GOTO–computable.
Ejercicio 53.– Utilizando la función auxiliar h(n) = [f (n), g(n)], probar que las siguientes
funciones f y g son GOTO–computables:
g(0)
= 0
f (0)
= 0
g(n + 1) = 2 + f (n)
f (n + 1) = 1 + g(n)
Ejercicio 54.– Probar que la función f : N → N definida por:
f (0) = 0, f (1) = 1, f (n) = n − f (n − 2), si n ≥ 2
es GOTO-computable.
Indicación: Considérese la función auxiliar h(x) = [f (x), f (x + 1)].
Ejercicio 55.– Sea θ(x, y) un predicado binario GOTO–computable. Se define la función
total g : N2 → N como sigue:
g(x, y) = máx θ(x, z)
z≤y
Es decir, g(x, y) es el mayor número natural z ≤ y que verifica θ(x, z), si existe; en caso
contrario, el valor es 0. Probar que la función g es GOTO–computable.
Ejercicio 56.– Probar que la función de Fibonacci f : N → N definida por:
f (0) = 0, f (1) = 1, f (n) = f (n − 1) + f (n − 2), si n ≥ 2
es GOTO-computable.
Ejercicio 57.– Probar que las siguientes funciones f y g son GOTO–computables.
f (0) = 1, f (1) = 4, f (2) = 6
f (x + 3) = f (x) + f (x + 1)2 + f (x + 2)3
g(0) = 3
g(x + 1) =
x
X
t=0



g(t) 

Indicación: Pruébese que las correspondientes funciones historia fˆ y ĝ son GOTO–computables.
Ejercicio 58.– Sea f : N2 → N la función definida por
x
si y = 0
f (x, y) =
f (⌊ x2 ⌋, y − 1) si y > 0
(a) Probar que f es total.
Indicación: Pruébese por inducción débil que ∀x ∀y ∃z (f (x, y) = z).
(b) Probar que para cada z existen infinitos pares naturales (x, y) tales que f (x, y) = z.
Indicación: Pruébese por inducción débil que ∀k ∀z (f (2k · z, k) = z).
(c) Probar que f es GOTO–computable.
Indicación: Pruébese que es GOTO–computable la función fˆ(x, y) = [f (0, y), . . . , f (x, y)].
Ejercicio 59.– Se dice que dos números naturales x e y son coprimos (o bien que son
primos entre sı́) si no tienen divisores primos comunes.
(a) Probar que el predicado binario COP(x, y) ≡ x e y son coprimos es GOTO–computable.
(b) Probar que la siguiente función es GOTO–computable:
f (x, k) = 0
f (x, k) = k-ésimo número coprimo con x
si x = 0 ó k = 0
en otro caso
Indicación: Obsérvese que si y es un número primo estrı́ctamente mayor que x,
entonces x e y son primos entre sı́. Pruébese que f (x, k) ≤ px+k (recuérdese que pn
representa al n–ésimo número primo).
Ejercicio 60.– Sea θ(x, y) el predicado “x e y tienen el mismo número de divisores
primos” (por ejemplo, θ(6, 28) = 1 y θ(6, 9) = 0).
(a) Probar que el predicado θ es GOTO–computable.
(b) Consideremos la función
0
f (x, k) =
k-ésimo y tal que θ(x, y)
si x ≤ 1 o k = 0
en otro caso
Probar que f es GOTO–computable.
Indicación: Obsérvese que si x es un número natural estrı́ctamente mayor que 1,
entonces x, x2 , x3 , . . . xk tienen los mismos divisores primos (en particular, tienen el
mismo número de divisores primos).
Descargar