Sans titre - UFR 6 - Université Paris 8

publicité
Université Paris 8 — U.F.R. M.I.T.S.I.C.
Logique et Complexité — Printemps 2013
Examen final — 4 juin 2013
la carte d’étudiant est obligatoire
aucun appareil électronique n’est autorisé
aucun document n’est autorisé
sont interdits : communication, sacs et vêtements sur la table.
Indiquez vos nom, prénom, numéro sur chaque copie. — Durée : 3h — Barème 9 3 3 5
Exercice 1 Questions de cours. — c d f 1pt, a b e g 1,5pt
a) Donnez la définition de la classe des fonctions récursives.
b) Donnez une interprétation algorithmique de chacune des opérations C, M , R sur les fonctions.
c) Citez un problème insoluble par algorithme ? (pas seulement son nom mais aussi son énoncé)
d) Citez une fonction récursive, définie partout, mais pas récursive primitive.
e) Qu’affirme la Thèse de Church - Turing ?
f) Dans son article de 1936, de quoi A. Turing affirme-t-il s’être inspiré pour élaborer ses machines ?
g) Dans cet article, il est également question de “machines universelles”. Expliquez de quoi il s’agit.
Exercice 2 a) Décrivez une machine à registres qui calcule la fonction f : n �→ n mod 3.
b) Décrivez une machine à registres qui calcule la fonction g : n �→ 1 si n est multiple de 3
0 sinon.
c) La fonction g est-elle calculable par machine de Turing ?
Exercice 3 a) Soient une application f : IN → IN et M une machine de Turing.
Rappelez la définition de “M calcule f ”.
b) Soit f0 : IN → IN définie seulement en 0 :
f0 (0) = 0
et
f0 non définie en n �= 0.
Fabriquez une machine de Turing (alphabet au choix) qui calcule f0 .
c) Cette fonction est-elle récursive ? récursive primitive ?
Exercice 4 On considère un codage effectif des machines de Turing et on définit la fonction sh :
IN → IN
a �→
2 si a n’est pas le code d’une M. de T. à 1 argument,
1 si a est le code d’une M. de T. à 1 argument qui s’arrête pour l’entrée a,
0 si a est le code d’une M. de T. à 1 argument qui ne s’arrête pas pour l’entrée a.
On définit ensuite f : a �→ 0
si sh(a) = 0,
non défini si sh(a) = 1 ou 2.
a) Montrez que si sh est calculable alors f est calculable.
b) Soit M une M. de T. à 1 argument, de code a. Montrez que :
M s’arrête si on lui fournit l’entrée a
ssi
f n’est pas définie en a.
La machine M calcule-t-elle la fonction f ?
c) Déduisez de la question précédente que f n’est pas calculable par M d T. La fonction sh l’est-elle ?
d) Soit X = {a ∈ IN | sh(a) �= 0}. Montrez que si X est décidable alors sh est calculable. Qu’en
déduisez-vous au sujet de X ?
Université Paris 8 — U.F.R. M.I.T.S.I.C.
Logique et Complexité — Printemps 2012
Examen final — 29 mai 2012
la carte d’étudiant est obligatoire
aucun appareil électronique n’est autorisé
aucun document n’est autorisé
sont interdits : communication, sacs et vêtements sur la table.
Indiquez vos nom, prénom, numéro sur chaque copie. — Durée : 3h — Barème 10 2 3 2 3
Exercice 1 Questions de cours.
a) Qu’est-ce qu’une fonction calculable ?
b) Existe-t-il des problèmes insolubles par algorithme ? (Justifiez.)
c) Donnez la définition de la classe des fonctions récursives.
d) Existe-t-il une fonction calculable par machine de Turing et pas récursive primitive ? (Justifiez.)
e) Existe-t-il une fonction calculable par machine de Turing et pas récursive ? (Justifiez.)
f) Qu’affirme la Thèse de Church - Turing ?
g) Dans son article de 1936, Turing résout, par la négative, un problème très important à l’époque,
posé par Hilbert. Ce problème est évoqué dans le titre de l’article. De quoi s’agit-il ?
h) Dans cet article, un autre grand problème, à saveur informatique est à la fois posé et résolu,
toujours négativement. De quel problème s’agit-il ?
i) Montrez que si f : IN → IN est récursive et totale alors Z = {n ∈ IN | f (n) = 0} est décidable.
j) Quel est l’objet de la théorie de la complexité ?
n.b. Dans les questions g et h, le nom du problème n’est pas suffisant, il faut décrire son contenu.
Exercice 2 a) Trouvez un algorithme qui calcule la fonction f∅ : IN → IN définie nulle part.
b) Expliquez pourquoi cette fonction n’est pas récursive primitive.
Exercice 3 a) Soit g définie sur IN 2 par g(a, b) = reste de la division de a + b par 3.
Soit f définie par minimisation M à partir de g. Que vaut f (a) pour a ∈ IN ?
b) Soit h0 = 0 (fonction à 0 argument) et h2 : IN 2 → IN telle que h2 (a, b) = add(a, s(b)) = a+b+1.
On considère f définie par récursion R à partir de h0 et h2 . Que vaut f (a) pour a ∈ IN ?
Exercice 4 Soient (An )n∈IN des sous-ensembles de IN . On considère B = {n ∈ IN | n ∈
/ An }.
Montrez que B n’est pas dans la liste (An )n∈IN .
Exercice 5
Soit la fonction nul : IN → IN telle que nul(a) = 1 si a = 0
0 si a �= 0.
Décrivez a) une machine à registres, b) une machine de Turing, qui calculent nul.
Université Paris 8 — U.F.R. M.I.T.S.I.C.
Logique et Complexité — Printemps 2011
Examen final — 27 mai 2011
la carte d’étudiant est obligatoire
aucun appareil électronique n’est autorisé
aucun document n’est autorisé
sont interdits : communication, sacs et vêtements sur la table.
Indiquez vos nom, prénom, numéro sur chaque copie. — Durée : 3h — Barème 5 5 6 4
Exercice 1 Calculable/Récursif
a) Qu’est-ce qu’une fonction calculable ?
b) Y a-t-il une différence entre “calculable” et “calculable par machine de Turing” ?
c) Y a-t-il une différence entre “calculable” et “récursive” ?
d) Montrez que si f : IN → IN est récursive et totale alors Z = {n ∈ IN | f (n) = 0} est décidable.
e) Soit X ⊂ IN tel qu’il existe deux fonctions récursives f et g ayant la propriété, pour f , d’être
définie seulement sur X et, pour g, d’être définie seulement sur X̄. Montrez que X est décidable.
n.b. Un ensemble est décidable si sa fonction caractéristique est récursive, ou encore, s’il existe un algorithme capable
de décider si une entrée appatient ou pas à cet ensemble.
Exercice 2 L’article de Turing
a) De quelle année date l’article d’A. Turing où sont introduites ses machines ?
b) De quoi Turing s’est-il inspiré, selon ses propres mots, pour élaborer ses machines ?
c) Dans cet article, Turing résout, par la négative, un problème très important à l’époque, posé
par Hilbert. Ce problème est évoqué dans le titre de l’article. De quoi s’agit-il ?
d) Dans cet article, il est également question de “machines universelles”. Expliquez de quoi il s’agit.
e) Dans cet article, un autre grand problème, à saveur informatique est à la fois posé et résolu,
toujours négativement. De quel problème s’agit-il ?
n.b. Dans les questions c et e, le nom du problème n’est pas suffisant, il faut expliquer son contenu.
Exercice 3 a) Décrivez une machine à registres qui calcule le p.g.c.d. de deux nombres chargés
dans les registres R1 et R2. Les machines élémentaires vues en cours, comme le transfert d’une
valeur dans un registre, peuvent être utilisées. Mais il est recommandé de ne pas utiliser la machine
calculant la division euclidienne et de penser plutôt aux propriétés : pgcd(a, b) = pgcd(a − b, b) et
pgcd(a, 0) = a.
b) Si vous faites calculer à votre machine le p.g.c.d. de 126 et 102, combien d’incrémentations et
de décrémentations sont nécessaires pour mener le calcul à son terme ?
c) Finalement, quel est l’obstacle majeur à l’utilisation des machines à registres en théorie de la
complexité, i.e. comme outil de mesure de la complexité des algorithmes ?
Exercice 4 a) Expliquez pourquoi la division euclidienne posée, apprise à l’école élémentaire,
est un algorithme dont la complexité en temps, considérée dans le pire des cas, est polynomiale en
la taille des données.
b) On peut vérfier facilement que si b � a � 2n , l’algorithme d’Euclide appliqué au couple (a, b) ne
nécessitera pas plus de n divisions euclidiennes. Expliquez alors pourquoi cet algorithme est aussi
de complexité polynomiale en la taille des données.
Université Paris 8 — U.F.R. M.I.T.S.I.C.
Logique et Complexité — Printemps 2010
Examen final — 17 juin 2010
la carte d’étudiant est obligatoire
aucun appareil électronique n’est autorisé
document autorisé : une page A4 écrite de votre main, et pas en noir
sont interdits : communication, sacs et vêtements sur la table.
Indiquez vos nom, prénom, numéro sur chaque copie. — Durée : 2h30 — Barème 5 4 4 3 12 3 12
Exercice 1 a) Donnez la définition de la classe des fonctions récursives.
b) Existe-t-il des problèmes insolubles par algorithme ? (Justifiez.)
c) Qu’affirme la Thèse de Church - Turing ?
d) Existe-t-il une fonction calculable par machine de Turing et pas récursive primitive ? (Justifiez.)
e) Existe-t-il une fonction calculable par machine de Turing et pas récursive ? (Justifiez.)
Exercice 2 On considère la fonction f : IN → IN , définie par f (n) = n + 1 si n est pair et
f (n) = n − 1 si n est impair.
a) Proposez une machine de Turing à alphabet binaire qui calcule f .
b) Proposez une machine de Turing à alphabet unaire qui calcule f .
Exercice 3 Soit un problème P.
a) On considère un algorithme A qui résout P. Expliquez comment est définie la fonction de
complexité en temps (évaluée dans le pire des cas) de l’algorithme A. Cette définition dépend-elle
de la technologie qui exécute l’algorithme ?
b) À quelle condition dit-on que P est un problème polynômial (exactement : “un problème résoluble
en temps déterministe polynômial”) ? Donnez un exemple de problème polynômial.
Exercice 4 a) Effectuez la multiplication de 127 par 74 en utilisant la méthode dite “à la Russe”.
b) Comptez les différentes opérations élémentaires que vous avez exécutées pour mener à bien votre
calcul.
Exercice 5 Un algorithme A a une complexité en temps de l’ordre de n10 .
a) Par combien est multiplié le temps de calcul lorsqu’on multiplie par 2 la taille des entrées ?
b) Si un ordinateur effectue 109 opérations élémentaires par seconde, en combien de temps exécutet-il l’algorithme A pour une entrée de taille 10 ? de taille 20 ?
c) Cet algorithme est-il considéré comme “rapide” ?
Téléchargement