Table des matières 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 11 11 12 12 14 15 15 17 17 17 18 18 19 19 20 21 21 22 22 23 . . . . . . . . . . . . . . . . . . . . . . . . . . . . Gauss . . . . 25 25 25 26 27 27 28 28 29 30 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BR O U IL LO 2 Préliminaires 2.1 Algèbre . . . . . . . . . . . . . . . . . . . . . . . 2.2 Calculs booléens . . . . . . . . . . . . . . . . . . 2.3 Graphes . . . . . . . . . . . . . . . . . . . . . . . 2.4 Arbres . . . . . . . . . . . . . . . . . . . . . . . . 2.5 Alphabets, Mots, Langages . . . . . . . . . . . . 2.6 Changement d’alphabet . . . . . . . . . . . . . . 2.7 Codage, Décodage . . . . . . . . . . . . . . . . . 2.8 Logique Propositionnelle . . . . . . . . . . . . . . 2.8.1 Syntaxe de la logique propositionnelle . . 2.8.2 Sémantique de la logique propositionnelle 2.9 Structures du premier ordre . . . . . . . . . . . . 2.9.1 Signature . . . . . . . . . . . . . . . . . . 2.9.2 Terme clos . . . . . . . . . . . . . . . . . 2.9.3 Sémantique . . . . . . . . . . . . . . . . . 2.9.4 Isomorphisme de structures . . . . . . . . 2.10 Logique du premier ordre . . . . . . . . . . . . . 2.10.1 Termes . . . . . . . . . . . . . . . . . . . 2.10.2 Formules . . . . . . . . . . . . . . . . . . 2.10.3 Sémantique . . . . . . . . . . . . . . . . . 2.11 Notes bibliographiques . . . . . . . . . . . . . . . N 1 Introduction 3 Quelques algorithmes 3.1 Quelques exemples . . . . . . . . . . . . . . . . . . . . . . 3.1.1 L’algorithme d’Euclide . . . . . . . . . . . . . . . . 3.1.2 L’algorithme de Syracuse . . . . . . . . . . . . . . 3.1.3 L’ensemble de Mandelbrot . . . . . . . . . . . . . . 3.1.4 Algorithme de Bissection . . . . . . . . . . . . . . 3.1.5 Le problème du sac à dos réel . . . . . . . . . . . . 3.1.6 Equations polynomiales à une inconnue . . . . . . 3.1.7 Equations linéaires à n-inconnues : l’élimination de 3.1.8 Equations polynomiales à n-inconnues . . . . . . . 3 4 TABLE DES MATIÈRES 3.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 31 32 34 4 Qu’est-ce qu’un algorithme ? 4.1 Introduction . . . . . . . . . . . . . . . . 4.2 Premier postulat . . . . . . . . . . . . . 4.3 Second postulat . . . . . . . . . . . . . . 4.4 Structures vs mémoire . . . . . . . . . . 4.5 Mises à jour . . . . . . . . . . . . . . . . 4.6 Troisième posulat . . . . . . . . . . . . . 4.7 Définition formelle d’un d’algorithme . . 4.8 Une forme normale pour les algorithmes 4.8.1 Termes critiques . . . . . . . . . 4.8.2 Affectation . . . . . . . . . . . . 4.8.3 Mise en parallèle . . . . . . . . . 4.8.4 Construction si . . .alors . . . . . 4.8.5 Forme normale . . . . . . . . . . 4.9 Notes bibliographiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 35 35 36 37 37 38 39 39 39 40 40 41 41 43 BR O U IL LO N 3.3 Une petite discussion de cosmétique . 3.2.1 Notre écriture des algorithmes 3.2.2 Etats éléméntaires . . . . . . . Notes bibliographiques . . . . . . . . . 5 Quelques modèles, et leur équivalence 45 5.1 Machines de Turing . . . . . . . . . . . . . . . . . . . . . . . . . 45 5.1.1 Description . . . . . . . . . . . . . . . . . . . . . . . . . . 45 5.1.2 Formalisation . . . . . . . . . . . . . . . . . . . . . . . . . 46 5.1.3 Une machine de Turing est un algorithme . . . . . . . . . 47 5.2 Machines de Turing sur une structure M . . . . . . . . . . . . . . 48 5.2.1 Description . . . . . . . . . . . . . . . . . . . . . . . . . . 48 5.2.2 Formalisation . . . . . . . . . . . . . . . . . . . . . . . . . 49 5.2.3 Une machine de Turing sur une structure M est un algorithme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 5.2.4 Machines de Turing vs Machines de Turing . . . . . . . . 51 5.3 Machines RAM sur une structure M . . . . . . . . . . . . . . . . 51 5.3.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 5.3.2 Equivalence avec les machines de Turing . . . . . . . . . . 51 5.4 Equivalence entre algorithmes et machines de Turing . . . . . . . 52 5.5 Automates à k ≥ 2 piles sur une structure M . . . . . . . . . . . 52 5.5.1 Définitions . . . . . . . . . . . . . . . . . . . . . . . . . . 52 5.5.2 Equivalence avec les machines de Turing . . . . . . . . . . 52 5.6 Automates à compteurs . . . . . . . . . . . . . . . . . . . . . . . 52 5.6.1 Définitions . . . . . . . . . . . . . . . . . . . . . . . . . . 52 5.6.2 Equivalence avec les machines de Turing . . . . . . . . . . 52 5.7 Fonctions récursives à la Kleene . . . . . . . . . . . . . . . . . . . 53 5.8 Notes bibliographique . . . . . . . . . . . . . . . . . . . . . . . . 53 5 TABLE DES MATIÈRES de survie en calculabilité Introduction . . . . . . . . . . . . . . . . . . . . . Langages récursivement énumérables, décidables L’existence d’une machine universelle . . . . . . . Premier problème indécidable . . . . . . . . . . . Notion de réduction . . . . . . . . . . . . . . . . Théorème de Rice . . . . . . . . . . . . . . . . . Problèmes indécidables naturels . . . . . . . . . . 6.7.1 Pb de Post . . . . . . . . . . . . . . . . . 6.8 Enumération, Smn, Points fixes . . . . . . . . . . 6.9 Décidabilité de théories logiques . . . . . . . . . . 6.10 Théorèmes de Gödel . . . . . . . . . . . . . . . . 6.11 Le reste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BR O U IL LO 7 Circuits et Complexité 7.1 La notion de circuit . . . . . . . . . . . . . 7.1.1 Circuit booléen . . . . . . . . . . . . 7.1.2 Circuit sur une structure M . . . . . 7.2 Langage calculé par une famille de circuits . 7.2.1 Famille de circuits . . . . . . . . . . 7.2.2 Taille, profondeux, relations . . . . . 7.3 Circuits et Algorithmes . . . . . . . . . . . 7.4 P et circuits polynomiaux . . . . . . . . . . 7.4.1 Besoin d’uniformité . . . . . . . . . 7.4.2 P et circuits polynomiaux uniformes 7.5 Bornes infs par circuits . . . . . . . . . . . . 7.6 Classes parallèles . . . . . . . . . . . . . . . 7.6.1 Classes N C i et AC i . . . . . . . . . . 7.6.2 Classe N C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 55 55 56 56 56 57 57 57 58 58 58 59 N 6 Kit 6.1 6.2 6.3 6.4 6.5 6.6 6.7 . . . . . . . . . . . . . . 61 61 61 61 61 61 61 62 63 63 63 63 63 64 64