Calculabilité - Fiche 1 Calculabilité Intuitive - Fonctions RP F. Prost - C. Pernet M1 informatique 2017 1 Calculabilité sans théorie Pour chacun des problèmes suivants, essayez de trouver : • un algorithme de décision ; • ou, à défaut, un algorithme de semi-décision (un “semi-algorithme”) ; • ou, à défaut, une opinion argumentée en faveur de l’existence ou de l’inexistence d’un tel algorithme ou semi-algorithme. 1. Etant donné un graphe G et un entier k, y a-t-il une clique de taille k dans G ? 2. Etant donnée une équation quadratique ax2 + bx + c = 0 à coefficients entiers, a-t-elle une solution réelle ? une solution entière ? 3. Etant donnée une équation algébrique à une ou plusieurs variables et à coefficients entiers, a-t-elle une solution réelle ? une solution entière ? Réfléchissez d’abord à la façon de résoudre l’équation x66 − 15x62 − 2017 = 0 ou bien x7 − 17xy + y 5 − 9999 = 0. 4. Pour quelles valeurs initiales a de x, le programme P suivant s’arrête-t-il ? Pour lesquelles diverge-t-il ? while (x mod 5) <> 0 if x mod 5 = 4 then x := (x*x) + 1 else x := x + 2. 5. C’est une légère généralisation du problème précédent. Pour quelles valeurs initiales a et b de x et de y le programme P suivant s’arrête-t-il ? Pour lesquelles diverge-t-il ? while (x mod y) <> 0 if (x mod y) = y - 1 then x := (x*x) + 1 else x := x + 2 6. Même question que pour 4 et 5. while x <> 1 if x mod 2 = 0 then x := x/2 else x := 3x + 1 1 7. Même question . . . mais il y a un cas particulier ! while x <> 1 do if (x mod 2) = 0 then x := x/2 else x := 3*x - 1 2 Quelques Fonctions Récursives Primitives Montrer que les fonctions suivantes, sur les entiers naturels, sont récursives primitives (RP). On rappelle que l’ensemble (RP) est inductivement définit par : • Base : – Constantes : m(k) = (x1 , . . . , xk ) 7→ m – Successeurs : S = x 7→ x + 1 (k) – Choix d’argument : Ai = (x1 , . . . , xk ) 7→ xi • Schémas d’induction : – Substitution régulière : (m) σ[g (k) , g1 (m) (m) , . . . , gk ] = (x1 , . . . , xm ) 7→ g (k) (g1 (m) (x1 , . . . , xm ), . . . , gk (x1 , . . . , xm )) – Récursion primitive : ρ[g (k−1) (k+1) ,h ]= (0, x2 , . . . , xk ) 7→ g(x2 , . . . , xk ) (y + 1, x2 , . . . , xk ) 7→ h(k+1) (y, ρ[g (k−1) , h(k+1) ](y, x2 , . . . , xk ), x2 , . . . , xk ) 1. Multiplication M ult = (a, b) 7→ a ∗ b (en supposant prouvé que Add = (a, b) 7→ a + b ∈ RP 2. Exponentielle Exp = (a, b) 7→ ab . ...a 3. Double exponentielle EExp = (a, b) 7→ aa (avec b étages de puissance). 4. Le Signe Sg = a 7→ (a > 0) (Sg(a) = 0 si a = 0 et 1 sinon). 5. Le prédécesseur P d défini par P d(a) = 0 si a = 0 et a − 1 si a > 0. · 6. La différence propre Dif f = (a, a) 7→ a − b définie par Dif f (a, b) = a − b si a ≥ b et 0 sinon. 7. La différence absolue Abs = (a, b) 7→ |a − b|. 8. Le maximum de deux éléments M ax défini par M ax(a, b) = a si a ≥ b et b sinon. 3 Schémas et fonctions RP plus complexes • Somme finie. Montrer que si f (n+1) ∈ RP alors h(n+1) = Σ[f (n+1) ] définie par (y, x1 , . . . , xn ) 7→ Σyi=0 f (n+1) (y, x1 , . . . , xn ) est aussi dans RP . • Prédicats RP simples. Montrer que les prédicats suivants sont RP : x 7→ x = 0; (x, y) 7→ x > y; (x, y) 7→ x < y, (x, y) 7→ x = y • Nombres parfaits. Un nombre est parfait s’il est égal à la somme de tous ses diviseurs (différents de x). Montrer que le prédicat E stParfait est RP. 2