Algorithmique et ComplexiTé Présentation du cours

publicité
Objectifs du cours
Organisation
Quelques exemples introductifs
Objectifs du cours
Organisation
Quelques exemples introductifs
C ONTEXTE ET O BJECTIFS
Algorithmique et ComplexiTé
Présentation du cours
Master1 Informatique
Les algorithmes sont au coeur de l’informatique:
tris, recherche, compression, ordonnancement, algorithmes
géométriques, recommandation, cryptographie, . . .
Objectif: Avoir des outils pour concevoir un ”bon” algorithme
pour résoudre un problème.
Sophie Tison
[email protected]
Objectif: Avoir des outils pour concevoir un algorithme correct
et efficace pour résoudre un problème.
Objectifs du cours
Organisation
Quelques exemples introductifs
C ELA POSE DE NOMBREUSES QUESTIONS ET
DEMANDE UN CERTAIN SAVOIR - FAIRE
Existe-il un algorithme pour résoudre le problème?
Connaı̂tre quelques notions de calculabilité et de décidabilité.
Objectifs du cours
Organisation
Quelques exemples introductifs
C ELA POSE DE NOMBREUSES QUESTIONS ET
DEMANDE UN CERTAIN SAVOIR - FAIRE .
Comment modéliser le problème?
Est-ce un problème classique?
Savoir modéliser, Connaı̂tre et savoir reconnaı̂tre des grands classiques
Objectifs du cours
Organisation
Quelques exemples introductifs
C ELA POSE DE NOMBREUSES QUESTIONS ET
DEMANDE UN CERTAIN SAVOIR - FAIRE .
Objectifs du cours
Comment concevoir un algorithme?
Savoir modéliser
Connaı̂tre et savoir reconnaı̂tre des grands classiques
Schémas d’algorithmes, Algorithmic design patterns
”Diviser pour régner”
Programmation Dynamique
Algorithmes gloutons
Tris, méthodes de sélection, recherche
Algorithmique des graphes,
Programmation linéaire
...
Organisation
Quelques exemples introductifs
C ELA POSE DE NOMBREUSES QUESTIONS ET
DEMANDE UN CERTAIN SAVOIR - FAIRE
Est-ce un problème classique?
Objectifs du cours
Organisation
Quelques exemples introductifs
C ELA POSE DE NOMBREUSES QUESTIONS ET
DEMANDE UN CERTAIN SAVOIR - FAIRE .
Objectifs du cours
Organisation
Quelques exemples introductifs
C ELA POSE DE NOMBREUSES QUESTIONS ...
DEMANDE PAS MAL DE SAVOIR - FAIRE .
L’algorithme est-il correct?
L’algorithme est-il efficace?
Savoir prouver un algorithme...
ou tout du moins avoir un minimum de rigueur
Savoir analyser la complexité d’algorithmes
ET
Objectifs du cours
Organisation
Quelques exemples introductifs
Objectifs du cours
Organisation
Quelques exemples introductifs
C ELA POSE DE NOMBREUSES QUESTIONS ET
DEMANDE UN CERTAIN SAVOIR - FAIRE .
C ELA POSE DE NOMBREUSES QUESTIONS ET
DEMANDE UN CERTAIN SAVOIR - FAIRE .
Peut-on trouver un algorithme plus efficace pour le problème?
Est-ce un problème dur?
Si le problème est dur, comment l’appréhender!
Avoir quelques notions de complexité des problèmes
Objectifs du cours
Organisation
Quelques exemples introductifs
Connaı̂tre quelques techniques d’algorithmique avancée:
Méta-heuristiques, Algorithmes probabilistes, ...
Backtracking, minmax, séparation-évaluation
Objectifs du cours
Organisation
Quelques exemples introductifs
P ROGRAMME P R ÉVISIONNEL
Objectifs du cours
Présentation et Rappels (2 cours)
Organisation
Quelques schémas d’algorithmes (4 cours)
Un peu de complexité de problèmes (3 cours)
Quelques exemples introductifs
Un peu d’algorithmique avancée (2-3 cours)
Objectifs du cours
Organisation
Quelques exemples introductifs
Objectifs du cours
R ESSOURCES
Organisation
Quelques exemples introductifs
L ES TP S
Résumés de cours distribués en amphi et mis sur
le portail
Transparents de cours mis sur le portail au fur et à
mesure
De nombreux livres comme par exemple:
. Cormen, Leiserson, Rivest,
”Introduction à l’algorithmique”,
Dunod (disponible à la BU) vraiment
”une” référence en algorithmique,
. S. Skiena, ”Algorithm Design
Manual”, une ”mine”! (Une version
on-line proche du livre papier ),
. Jon Kleinberg & Eva Tardos,
”Algorithm design”, Addison Wesley
2005
Il y aura 12 séances de TP (langage au choix: Java, C , Haskell,
. . . ) encadrées pour la mise en oeuvre directe des méthodes
étudiées en cours. Les TPs seront évalués.
de nombreuses ressources en ligne!
Objectifs du cours
Organisation
Quelques exemples introductifs
Objectifs du cours
Organisation
E VALUATION
Le contrôle continu sera basé sur
Objectifs du cours
. les TPs
. un DS (le 12 octobre?).
. éventuellement un bonus donné par le chargé de
TD: par exemple, ”devoirs maison”, préparation
d’exercices...
La note de contrôle continu sera
CC = 1/3 ∗ (note DS) + 2/3 ∗ (note TP) + éventuel bonus.
La note finale sera sup(Exam, (Examen + CC)/2).
Organisation
Quelques exemples introductifs
Quelques exemples introductifs
Objectifs du cours
Organisation
Quelques exemples introductifs
Objectifs du cours
G RAPHES ET C HEMINS
Organisation
L ES 7
Quelques exemples introductifs
PROBL ÈMES DU MILLENIUM
I NSTITUT C LAY
I
Problème 1: Trouver le plus court chemin entre deux
sommets d’un graphe
C’est un grand classique: algorithme de Dijkstra,
algorithme de Bellman-Ford, algorithme de
Floyd-Warshall, ...
I
7 problèmes ont été identifiés comme ”Millenium problems”
pour leur impact par l’Institut Clay, avec pour chacun d’eux
1million de dollars de récompense à la clef.
Problème 2: Trouver le chemin le plus long sans cycle entre
deux sommets dans un graphe
Si vous trouvez un algorithme ”efficace”, vous gagnez 1
million de dollars.
Si vous montrez qu’on ne peut pas en trouver un, vous
gagnez aussi 1 million de dollars!
Pour quel problème peut-on trouver un algorithme efficace?
Objectifs du cours
Organisation
Quelques exemples introductifs
Objectifs du cours
Organisation
L ES PROBL ÈMES DU MILLENIUM
G RAPHES ET C HEMINS
I NSTITUT C LAY
E ULER ET H AMILTON
I
P versus NP
I
conjecture de Poincaré
I
l’hypothèse de Riemann
I
conjecture de Hodge
I
conjecture de Birch and Swinnerton-Dyer
I
”YangMills existence and mass gap problem”
I
équations de NavierStokes
Le problème qui nous concerne ici est P versus NP.
La conjecture de Poincaré a été prouvée en 2003 par Grigori
Perelman qui a reçu et refusé le prix en 2010.
Quelques exemples introductifs
I
Problème 1: Trouver un cycle qui passe une et une seule
fois par tous les sommets d’un graphe
I
Problème 2: Trouver un cycle qui passe une et une seule
fois par tous les arcs d’un graphe
Pour quel problème peut-on trouver un algorithme efficace?
Objectifs du cours
Organisation
Quelques exemples introductifs
Objectifs du cours
Organisation
G RAPHES ET C HEMINS
G RAPHES ET C HEMINS
H AMILTON
H AMILTON
Quelques exemples introductifs
Problème 1: Trouver un cycle qui passe une et une seule fois
par tous les sommets d’un graphe
Problème 1: Trouver un cycle qui passe une et une seule fois
par tous les sommets d’un graphe
C’est la recherche d’un cycle hamiltonien: encore un problème
”à un million de dollars”!
C’est la recherche d’un cycle hamiltonien: encore un problème
”à un million de dollars”!
William Rowan Hamilton
Le jeu icosien
Objectifs du cours
Organisation
Quelques exemples introductifs
G RAPHES ET C HEMINS
Objectifs du cours
Organisation
G RAPHES ET C HEMINS
E ULER ET H AMILTON
Problème 2: Trouver un cycle qui passe une et une seule fois
par tous les arcs d’un graphe
C’est la recherche d’un cycle eulérien:
Leonhard Euler
Il faut et il suffit que le graphe soit connexe sans sommet de
degré impair.
Il existe un algorithme efficace!
Les ponts de Koenigsberg
Quelques exemples introductifs
Objectifs du cours
Organisation
Quelques exemples introductifs
Objectifs du cours
G ROUPES EN PAIX
Organisation
Quelques exemples introductifs
G ROUPES EN PAIX
L E PREMIER EST FACILE ...
Données: un ensemble d’étudiants. Chacun donne la liste de
ceux avec qui il s’entend.
I
Problème 1: répartir si c’est possible! en deux groupes tels
que les membres d’un même groupe s’entendent tous
entre eux.
I
Problème 2: répartir si c’est possible! en trois groupes tels
que les membres d’un même groupe s’entendent tous
entre eux.
Objectifs du cours
Organisation
Quelques exemples introductifs
L’ ALGORITHME EST- IL CORRECT ?
tant qu’il reste des étudiants non placés
Mettre un étudiant au hasard dans A
tant qu’il reste un ennemi de A(resp. B) non placé
si il n’a pas d’ennemis dans B (resp. A) l’y mettre
sinon “répartition impossible”
I
I
I
si l’algo sort une solution, elle est correcte:
invariant: Tous les membres de A (resp. B) s’entendent.
si l’algo sort “répartition impossible”, il n’y a pas de
solution: pourquoi?
pour simplifier supposons que le “graphe des ennemis”
soit connexe.
invariant suppplémentaire: si il y a une solution, un groupe
contient les étudiants de A, l’autre ceux de B.
On généralise ensuite au cas de plusieurs composantes
connexes.
L’algo s’arrête!
Données: un ensemble d’étudiants. Chacun donne la liste de
ceux avec qui il s’entend.
Problème 1: répartir, si c’est possible, les étudiants en deux
groupes tels que les membres d’un même groupe s’entendent
tous entre eux.
tant qu’il reste des étudiants non placés
Mettre un étudiant au hasard dans A
tant qu’il reste un ennemi de A(resp. B) non placé
si il n’a pas d’ennemis dans B (resp. A) l’y mettre
sinon “répartition impossible”
Objectifs du cours
Organisation
Quelques exemples introductifs
G ROUPES EN PAIX
L E DEUXI ÈME EST MOINS FACILE ...
Données: un ensemble d’étudiants. Chacun donne la liste de
ceux avec qui il s’entend.
Problème 2: répartir si c’est possible en trois groupes tels que les
membres d’un même groupe s’entendent tous entre eux.
Si vous trouvez un algorithme ”efficace”, vous gagnez 1 million
de dollars.
Si vous montrez qu’on ne peut pas en trouver un, vous gagnez
aussi 1 million de dollars!
On peut montrer que c’est bien un problème à un million de
dollars (cf partie 2 du cours).
Objectifs du cours
Organisation
Quelques exemples introductifs
Objectifs du cours
FACILE , VOUS AVEZ DIT FACILE ?
Attention: Dire que le problème 1 est “plus facile” que le
problème 2 veut dire ici qu’on connaı̂t un algorithme efficace
pour le problème 1 mais qu’on n’en connaı̂t pas pour le
problème 2.
On précisera cette notion de facile/dur dans la deuxième partie
du cours.
Bien sûr ici, pour les mêmes données, si il y a une solution avec
deux groupes, il y a une solution avec 3 groupes!
Objectifs du cours
Organisation
Quelques exemples introductifs
B IN ÔMES ?
Données: un ensemble d’étudiants. Chacun donne la liste de
ceux avec qui il veut bien faire équipe.
I
Problème 1: Regrouper les étudiants en binômes qui
s’entendent (si possible).
I
Le problème 1 a un algorithme efficace -non trivial-, c’est
un problème de ”perfect matching” (algorithme de
Edmonds).
I
Perfect matching: trouver un ensemble d’arcs qui n’ont
aucun sommet en commun et qui couvrent tous les
sommets.
Organisation
Quelques exemples introductifs
B IN ÔMES OU TRIN ÔMES ?
Données: un ensemble d’étudiants. Chacun donne la liste de
ceux avec qui il veut bien faire équipe.
I
Problème 1: Regrouper les étudiants en binômes qui
s’entendent (si possible).
I
Problème 2: Regrouper les étudiants en trinômes qui
s’entendent (si possible).
Le deuxième n’a pas d’algorithme efficace connu, et c’est
encore un problème à un million de dollars.
Objectifs du cours
Organisation
Quelques exemples introductifs
B IN ÔMES REVISIT ÉS
Données: un ensemble d’étudiants. Chacun donne une liste
totalement ordonnée par préférence des autres étudiants.
Problème des binômes bis: proposer une bonne répartition des
étudiants en binômes
Qu’est-ce qu’une bonne répartition?
Une répartition est stable si il n’y a pas deux binômes (A,B) et
(C,D) tels que A préfère travailler avec D, C préfère travailler
avec B.
Il n’y a pas toujours de répartition stable!
Si il y en a une, il existe un algorithme efficace pour la trouver
(Irving 85).
Problème proche: les mariages stables ou encore l’affectation
sur des postes: cette-fois ci il y a deux types d’éléments à
”apparier”: (poste, personne)...
Objectifs du cours
Organisation
Prochain Cours: demain
Quelques exemples introductifs
Objectifs du cours
Organisation
Quelques exemples introductifs
Téléchargement