Décidabilité Et Complexité
Total Page:16
File Type:pdf, Size:1020Kb
Chapitre 1 Informatique th´eorique: D´ecidabilit´eet Complexit´e 0 Olivier Bournez, Ecole´ polytechnique, [email protected], Gilles Dowek, Ecole´ polytechnique, [email protected], R´emi Gilleron, Lab- oratoire d'Informatique Fondamentale de Lille (LIFL), [email protected], Serge Grigorieff (Coordinateur), LIAFA, CNRS & Universit´e Paris Diderot, [email protected], Jean-Yves Marion (Coordinateur), Nancy-Universit´e, LORIA [email protected] Simon Perdrix, PPS, CNRS & Universit´eParis Diderot, [email protected]. Sophie Tison, Laboratoire d'Informatique Fondamen- tale de Lille (LIFL), [email protected] 1 2CHAPITRE 1. INFORMATIQUE THEORIQUE´ : DECIDABILIT´ E´ ET COMPLEXITE´ Sommaire 1 Informatique th´eorique: D´ecidabilit´eet Complexit´e 1 1.1 Introduction `al'informatique fondamentale . 4 1.2 Emergence de la notion de calculabilit´e. 6 1.2.1 Mod`elesde calcul discrets par sch´emasde programmes 6 1.2.2 Mod`elesde calcul discrets par machines s´equentielles . 7 1.2.3 Mod`elesde calcul discrets par machines `aregistres `a acc`esal´eatoire . 8 1.2.4 Grammaires de type 0 de Chomsky . 9 1.2.5 Mod`elede calcul discret `aparall´elismemassif : les automates cellulaires . 9 1.2.6 Un mod`ele `apart : le Lambda-calcul . 11 1.2.7 La th`esede Church et ses diff´erentes versions . 12 1.2.8 Axiomatisation de la th`esede Church par Gandy . 13 1.3 Th´eoriede la calculabilit´e . 14 1.3.1 Calculs qui ne s'arr^etent pas . 14 1.3.2 Trois th´eor`emes \positifs" en calculabilit´epartielle . 15 1.3.3 Deux th´eor`emes\n´egatifs"en calculabilit´epartielle . 17 1.4 Formalisation de la notion d'algorithme . 18 1.4.1 D´enotationnelversus op´erationnel . 18 1.4.2 Compl´etudeop´erationnelle . 18 1.4.3 L'axiomatisation de la notion d'algorithme par Gurevich 20 1.4.4 Compl´etudeop´erationnelleet r´ecurrence. 21 1.5 Calculabilit´esur les r´eels. 22 1.5.1 Analyse r´ecursive . 22 1.5.2 Mod`elede Blum, Shub et Smale . 23 1.5.3 \General Purpose Analog Computer" de Shannon . 23 1.5.4 Mod`elesde calcul `atemps continu . 24 1.5.5 Calculabilit´equantique . 24 1.5.6 Le probl`emede l’unification de ces mod`eles . 25 3 4 SOMMAIRE 1.5.7 Calculabilit´eau-del`ade la th`esede Church ? . 26 1.6 D´eductionet calcul : la nature algorithmique des preuves constructives . 27 1.6.1 Les preuves constructives comme langage de program- mation . 27 1.6.2 Les logiques et leurs syst`emesformels . 28 1.6.3 Les preuves constructives et leurs notations . 29 1.6.4 R´eductionde preuve constructive . 34 1.6.5 L'interpr´etationde Brouwer-Heyting-Kolmogorov . 35 1.6.6 Th´eories. 37 1.6.7 Autres extensions . 39 1.6.8 Elimination des coupures et r´esultatsde coh´erence . 40 1.7 D´ecidableversus ind´ecidable. 41 1.7.1 D´emonstrationautomatique : d´ecidabilit´eet th´eories logiques . 41 1.7.2 Quelques autres probl`emes . 44 1.7.3 D´ecideravec une bonne probabilit´ede r´eponse exacte 45 1.8 A l'int´erieurde la calculabilit´e: la th´eoriede la complexit´e . 46 1.8.1 Limites des ressources physiques . 46 1.8.2 Complexit´ede quelques probl`emes . 47 1.8.3 Complexit´ed'un probl`eme . 49 1.8.4 Classes de complexit´e . 51 1.8.5 Caract´erisationdes classes de complexit´e . 53 1.8.6 Complexit´eet repr´esentation des objets . 54 1.9 Complexit´ealgorithmique de l'information . 54 1.10 Une op´erationnalit´eefficace: les automates finis . 56 1.10.1 Les automates finis de mots . 56 1.10.2 Les extensions des automates de mots . 62 1.10.3 Automates finis pour les structures discr`etes. 65 1.10.4 Automates et applications . 67 1.1 Introduction `al'informatique fondamentale L'informatique fondamentale est un vaste sujet, comme en t´emoignent les 2 283 et 3 176 pages des \Handbooks" [vL90, AGM01]. Couvrir en quelques dizaines de pages, l'ensemble de l'informatique fondamentale nous a sembl´e une entreprise hors de notre port´ee.De ce fait, nous nous sommes concentr´es sur la notion de calcul, sujet qui refl`etele go^utet la passion des auteurs de 1.1. INTRODUCTION A` L'INFORMATIQUE FONDAMENTALE 5 ce chapitre. La notion de calcul est omnipr´esente et aussi ancienne que les math´ematiques: • Calculs sur les nombres entiers : algorithme d'Euclide calculant le plus grand commun diviseur de deux nombres entiers, crible d'Eratosth`ene donnant les nombres premiers, etc. • Calculs sur les nombres r´eels: m´ethode de Simpson de calcul num´erique d'une int´egrale,m´ethode de Newton d'approximation d'un z´erod'une fonction sur les r´eels,etc. • Calculs g´eom´etriques: aires et volumes divers, algorithme de For- tune donnant le diagramme de Vorono¨ı d'un ensemble de n points A1;:::;An du plan (ce diagramme d´ecompose le plan en n r´egions d’influence de formes polygonales : la i-`emer´egionest form´eedes points du plan plus proches de Ai que des autres points Aj, j 6= i), etc. • Tri d'une famille d'objets selon un certain ordre : tris par insertion, ´echange (tri bulle, quicksort), s´election(tri par tas), fusion, distribu- tion. Knuth [Knu73] y consacre 388 pages ! • Calculs sur les textes : recherche de motifs (algorithme de Knuth, Morris & Pratt), compression de texte (algorithme de Ziv & Lempell). • Calculs dans les graphes finis : plus court chemin entre deux sommets (algorithme de Dijkstra), couverture minimale (i.e. ensemble C de sommets tels que tout sommet soit dans C ou voisin direct d'un point de C). Ce n'est qu’`apartir de la premi`eremoiti´edu 20i`emesi`ecleque la notion de mod`elede calcul a ´et´ed´efinieet ´etudi´ee. Nous pr´esenterons de nom- breux mod`elesde calcul au cours de ce chapitre. La vari´et´ede ces mod`eles montre la difficult´e`aappr´ehender la nature et la diversit´edes calculs. Il y a les calculs m´ecaniqueset s´equentiels, les calculs quantiques, et tous les autres calculs qui s'appuient sur des hypoth`esesphysiques de mod´elisation de la nature. Un mod`elede calcul est une repr´esentation math´ematique de ce qui est calculable suivant certaines hypoth`eses sur le monde physique qui nous entoure. Ainsi face `aface, il y a des mod`elesde calcul et des r´ealisationsconcr`etes (les ordinateurs. ). Cette dualit´er´esideaussi dans le rapport entre syntaxe et s´emantique, entre l'objet manipul´eet son sens. Notre premi`ere´etape nous conduira `aexplorer diff´erents mod`elesqui calcu- lent les m^emes fonctions que les machines de Turing, conduisant `ala th`ese 6 SOMMAIRE de Church-Kleene-Turing. Ceci ´etant, chacun de ces mod`elespropose une vision particuli`erequi tisse une notion de calcul. Il y a les calculs s´equentiels et le d´eveloppement de la calculabilit´e.La th´eoriede la calculabilit´ed´efinit une repr´esentation abstraite et alg´ebriquede ce qui est calculable. Un de ses objectifs est ainsi de distinguer ce qui est calculable/d´ecidablede ce qui ne l'est pas, c'est `adire qui est ind´ecidable.Il y a aussi les calculs par automates cellulaires qui sont des machines massivement parall`eleset synchrones. Bien que conceptuellement diff´erents des mod`eless´equentiels, ils calculent pour- tant exactement les m^emesfonctions que les machines de Turing. La cal- culabilit´eest une formalisation math´ematiquede ce qui est calculable. Elle exprime un point de vue d´enotationel.C'est seulement dans les ann´ees1980 que la notion d'algorithme, consid´er´eecomme objet d'´etude,a r´eellement vu le jour. Cette dualit´ed´enotation/intention se refl`eteen logique avec l'´emergencede la th´eoriede la d´emonstration,o`ules d´emonstrationssont des algorithmes au travers de l'isomorphisme de Curry-Howard. 1.2 Emergence de la notion de calculabilit´e Il y a plusieurs ouvrages qui sont un bon point de d´epartsur la calculabilit´e pour le lecteur curieux. Les livres de Rogers [Rog67] et Odiffredi [Odi89] sont des classiques qui traitent de la calculabilit´epour le lecteur qui a un penchant pour les math´ematiques.Le livre de Jones [Jon97] a une approche plus orient´eeth´eoriede la programmation et traite de la complexit´e.Le livre de Savage [Sav98] se concentre sur les aspects machines et algorithmiques. Enfin, m^emesi le livre de Papadimitriou [Pap94] se consacre essentiellement `ala complexit´e,il offre une bonne introduction `ala calculabilit´e. 1.2.1 Mod`elesde calcul discrets par sch´emasde programmes R´ecursivit´eprimitive. Les premi`erestentatives de formalisation math´ematique de la notion de calculabilit´ese sont faites en consid´erant divers proc´ed´esde constructions de fonctions `apartir d'autres fonctions. En termes actuels de programmation, ces constructions correspondent `ades instructions bien connues. C'est ainsi que la premi`ereapproche math´ematiquea ´et´ecelle des fonctions appel´eesaujourd'hui \r´ecursives primitives". Sur les entiers, il s'agit des fonctions que l'on peut obtenir `apartir de fonctions tr`essimples (fonction constante de valeur 0, fonction successeur, fonctions projections k N ! N) par composition et d´efinitionpar r´ecurrence. En termes de pro- grammation imp´erative, ce sont les fonctions programmables avec la seule boucle FOR (donc sans boucle WHILE). Cependant, on s'est assez vite aper¸cu 1.2. EMERGENCE DE LA NOTION DE CALCULABILITE´ 7 (Ackermann, 1928) que cette famille ´etaittrop petite.