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

Documents pareils