Le support du cours
Transcription
Le support du cours
Les mathématiques du calcul Module Maths Discrètes, INSA, Univ Lyon 1, 2015-2016 Eric Tannier ([email protected]) Les mathématiques du calcul Tradition orientale Al-Khawarizmi Sur l'addition et la soustraction avec les nombres indien Al-Khawarizmi, 783-850 Al jabr (algèbre), résolution d'équations Algorithmes Méthodes calculatoires Les mathématiques du calcul Les racines médiévales orientales de la programmation dynamique (Bellman, RAND, 1953) Comment calculer un coefficient binomial C(n,p) : nombre de parties à p éléments d'un ensemble à n éléments Apparu en Chine et en Mésopotamie au Moyen-Age, avec une formule de récurrence pour les calculer : C(n,p) = C(n-1,p-1) + C(n-1,p) Ensemble à n éléments E Un élément Parties à p éléments dans E : soit p soit p-1 éléments dans F Ensemble à n-1 éléments F Les mathématiques du calcul La révolution scientifique en occident introduction du calcul Blaise Pascal, 16231662 et son triangle Gottfried von Leibniz, 1646-1716, et sa formule La « réduction du savoir » Isaac Newton, 1643-1727, et la « formule du binôme » Les mathématiques du calcul Pour calculer un coefficient binomial, méthode de Pascal ou de Leibniz ? Ou la méthode moderne Complexité Combien d'opérations pour calculer un coefficient binomial? Notations pour la complexité : f et g sont deux fonctions f = O(g) s'il existe un nombre k tel que quel que soit x, f(x) <= k * g(x) ce qui veut dire que f ne croît pas beaucoup plus vite que g Propriétés : O(k*f) = O(f) (k est une constante et f une fonction) O(f+g) = O(f) + O(g) (f et g deux fonctions) O(f*g) = O(f) * O(g) (f et g deux fonctions) Avec la méthode de Pascal? Avec Les mathématiques du calcul Gottfried von Leibniz, 1646-1716 Calculus Ratiocinator David Hilbert, 1862-1943 Automatisation des mathématiques : algorithmes pour résoudre des problèmes de mathématiques En particulier, existe-t-il un algorithme pour toutes les équations à coefficients entiers ? En général, existe-t-il un algorithme qui pour toute proposition puisse dire si elle est vraie ou fausse ? Les mathématiques du calcul Ada Lovelace, 1815-1852 Alan Turing, 1912-1954 Formalisation du calcul dans les mathématiques Machine de Turing = automate avec mémoire Les mathématiques du calcul Les paradoxes qui tuent le rêve de Hilbert Bertrand Russel, 1872-1970 P1 : P2 est fausse P2 : P1 est vraie P1 est-elle vraie ? L'ensemble de tous les ensembles qui ne se contiennent pas est-il un élément de lui-même ? Kurt Gödel, 1906-1978 P1 : P2 n'est pas démontrable P2 : P1 est vraie P2 est-elle démontrable ? Les mathématiques du calcul Les paradoxes qui tuent le rêve de Hilbert Alonzo Church, 1903-1995 Alan Turing, 1912-1954 Existe-t-il un algorithme qui prenne en entrée un algorithme A, et qui en sortie réponde à la question « A se termine-t-il ? » (Il existe des algorithmes qui ne se terminent jamais, par exemple n=k=0 Tant que n < 10 : k = n+2) Les mathématiques du calcul Les paradoxes qui tuent le rêve de Hilbert Existe-t-il un algorithme qui prenne en entrée un algorithme A et son entrée E, et qui en sortie réponde à la question « A se termine-t-il avec E? » Supposons l'existence d'un tel algorithme : A1 : en entrée, A et E, en sortie 1 si A se termine avec E, 0 sinon Alors on peut construire A2 : A2 : en entrée, A et E, Lance A1 sur A et E en sortie 1 si A1 retourne 0, sinon boucle indéfiniment A2 se termine-t-il avec en entrée A2 ? Les mathématiques du calcul Emil Post Exemple de problème incalculable moins alambiqué Problème des correspondances de Post Un alphabet fini A Deux ensembles de N mots sur A : Existe-t-il une séquence Exemples : A = {a,b} 1/ a,ab,bba et baa,aa,bb 2/ ab,bba et aa,bb telle que Théorie de la complexité L Euler à Königsberg, 1736 Théorie de la complexité WR Hamilton en Irlande, 1857 Théorie de la complexité WR Hamilton en Irlande, 1857 Théorie de la complexité Jack Edmonds, né en 1934 Un bon algorithme a sa complexité bornée par un polynôme de la taille des donnée O(log(n)), O(n), O(n2), O(n3000) OK O(2n), O(nk), O(n!) Non Théorie de la complexité log(n) n n2 2n 1 10 100 1024 1.3 20 400 1 048 576 2 100 10 000 1.1030 2.7 500 250 000 3 1000 1 000 000 4 10 000 100 000 000 Théorie de la complexité Les limites de la théorie O(n3000) est un bon algorithme O(2n/3000) Non (et un rappel : O(3000n) = O(n)) Théorie de la complexité Classification des problèmes de décision Problème de décision : on attend une réponse « oui » ou « non » NP : classe de problèmes pour lesquels on peut vérifier une réponse « oui » avec un bon algorithme Co-NP : classe de problèmes pour lesquels on peut vérifier une réponse « non » avec un bon algorithme P : classe de problèmes pour lesquels on peut trouver la réponse avec un bon algorithme Théorie de la complexité Classification des problèmes de décision Conjecture : il existe des problèmes dans NP pour lesquels il n'existe pas de bon algorithme (P ≠ NP) Classe NP-complet : un problème X est NP-complet si X est dans P => P = NP NP-complet = Problèmes algorithmiquement difficiles Théorie de la complexité Classification des problèmes de décision co-NP NP Euler NP-complet Hamilton P Théorie de la complexité Classification des problèmes de décision Théorème (Cook, 1971) : Il existe des problèmes NPcomplets Exemple : SAT Un ensemble de variables Un ensemble de clauses : ensemble de variables ou de leur négation Existe-t-il une affectation des variables à 0 ou 1 telle que toutes les clauses contiennent une variable à 1 ? Théorie de la complexité Classification des problèmes de décision Réduction : On montre qu'un problème X est difficile (NPcomplet) en choisissant un autre problème Y NP-complet, et en montrant X est dans P => Y est dans P Théorie de la complexité Classification des problèmes de décision Exemples de réduction : SAT Circuit hamiltonien orienté Circuit hamiltonien non orienté Clique maximum Plus longue sous-séquence commune Exemple de réduction détaillée Problème X : clique maximum dans un graphe Entrée : un graphe, un entier K Sortie : existe-t-il une clique de taille K? Problème Y : SAT Entrée : des variables et des clauses Sortie : existe-t-il une assignation des variables qui satisfasse toutes les clauses? On réduit Y à X, c'est à dire qu'on prouve X est dans P => Y est dans P Attention, ce n'est pas symétrique!!!!! On suppose que X est dans P, donc qu'il existe un algorithme A qui résout X en temps polynomial. Soit E une entrée de Y c'est à dire des variables et des clauses. On construit à partir de Y une entrée de X, c'est à dire un graphe G. Pour chaque variable de chaque clause, on construit un sommet, et on relie deux sommets par une arête si - ils sont dans des clauses différentes et - ils ne sont pas la négation l'un de l'autre On a construit une entrée de X : le graphe et K=le nombre de clauses. Exemple de réduction détaillée Propriété : il existe une clique de taille K dans G si et seulement si il existe il existe dans E une assignation des variables qui satisfasse toutes les clauses. Preuve : s'il existe une clique, alors elle contient exactement un sommet par clause. On met chaque variable à 1 (les variables complémentées se retrouvent à 0), c'est une bonne assignation. Inversement, s'il existe une assignation, tous les sommets correspondants aux variables si satisfont chaque clause forment une clique. On applique l'algorithme A à G et K. D'après la propriété il répond à la question pour E, donc Y est dans P. On a donc prouvé X est dans P => Y est dans P, et en supposant que Y est NPcomplet, c'est à dire Y est dans P => P=NP, on a X est dans P => P=NP, donc X est NP-complet. SAT Clique maximum Circuit hamiltonien orienté Circuit hamiltonien non orienté Plus longue sous-séquence commune Plus long chemin Plus grand cycle Stable max Voyageur de commerce Transversal min Ensemble de colonnes intersectant toutes les lignes d'une matrice binaire Comité représentatif Ensemble dominant Problème des correspondances de Post borné Phylogénie avec des caractères Alignement multiple États ancestraux avec des réarrangements DCJ Arbre de Steiner Colorier un graphe (en trois couleurs) Bin packing Sous-arbre commun maximum Sudoku, Tetris