AAC Objectifs Avoir des outils pour concevoir un ”bon” algorithme

AAC
Pr´
esentation du cours
Rappels
Sophie Tison -Lille1- Master1 Informatique
() 1 / 78
AAC: Algorithmique Avanc ´
ee et Complexit ´
e
() 2 / 78
Objectifs
Avoir des outils pour concevoir un ”bon” -c.`
a.d. correct et efficace -
algorithme pour r ´
esoudre un probl`
eme.
() 3 / 78
Avoir des outils pour concevoir un ”bon” algorithme
pour r´
esoudre un probl `
eme.
Cela pose de nombreuses questions...et demande pas mal de savoir-faire...
Existe-il un algorithme pour r ´
esoudre le probl`
eme?
Connaˆ
ıtre quelques Notions de Calculabilit´
e et de d´
ecidabilit´
e.
() 4 / 78
Avoir des outils pour concevoir un ”bon” algorithme
pour r´
esoudre un probl `
eme.
Cela pose de nombreuses questions...et demande pas mal de savoir-faire...
Est-ce un probl`
eme classique?
Connaˆ
ıtre et savoir reconnaˆ
ıtre des grands classiques
Tris, m´
ethodes de s´
election, recherche
algorithmique des graphes,
m´
ethodes de hachages
Programmation lin´
eaire...
....
() 5 / 78
Avoir des outils pour concevoir un ”bon” algorithme
pour r´
esoudre un probl `
eme.
Cela pose de nombreuses questions...et demande pas mal de savoir-faire...
Comment concevoir un algorithme?
Sch´
emas d’algorithmes, Algorithmic design patterns
”Diviser pour r´
egner”
Programmation Dynamique
Algorithmes gloutons
() 6 / 78
Avoir des outils pour concevoir un ”bon” algorithme
pour r´
esoudre un probl `
eme.
Cela pose de nombreuses questions...et demande pas mal de savoir-faire...
L’algorithme est-il correct?
Savoir prouver un algorithme...
ou tout du moins avoir un minimum de rigueur
() 7 / 78
Avoir des outils pour concevoir un ”bon” algorithme
pour r´
esoudre un probl `
eme.
Cela pose de nombreuses questions...et demande pas mal de savoir-faire...
L’algorithme est-il efficace?
Savoir analyser la complexit´
e d’algorithmes
() 8 / 78
Avoir des outils pour concevoir un ”bon” algorithme
pour r´
esoudre un probl `
eme.
Cela pose de nombreuses questions...et demande pas mal de savoir-faire...
Peut-on trouver un algorithme plus efficace pour le probl`
eme?
Est-ce un probl`
eme dur?
...Avoir quelques notions de Complexit´
e des probl`
emes
() 9 / 78
Avoir des outils pour concevoir un ”bon” algorithme
pour r´
esoudre un probl `
eme.
Cela pose de nombreuses questions...et demande pas mal de savoir-faire...
Si le probl`
eme est dur, comment l’appr´
ehender!
Connaˆ
ıtre quelques techniques d’ algorithmique avanc ´
ee:
M´
eta-heuristiques, Algorithmes probabilistes,...
Backtracking, Min-Max, s´
eparation-´
evaluation
() 10 / 78
Ce que nous ferons
Plan Approximatif
Quelques sch´
emas d’algorithmes (3 cours)
Un peu de complexit ´
e de probl`
emes (3 cours)
Un peu d’algorithmique avanc ´
ee (2-3 cours)
Quelques notions de d´
ecidabilit´
e et calculabilit´
e (1-2
cours)
() 11 / 78
Bibliographie : de nombreuses ressources en ligne
. Le dictionnaire recensant les algorithmes et probl`
emes
classiques du NIST
. The Stony Brook Algorithm Repository” qui contient des
impl´
ementations d’algorithmes pour des dizaines de
probl`
emes classiques,
. Algorithms Courses on the WWW, qui contient une
collection de cours d’algorithmique,
. Le site du cours ”Algorithms in the Real World”,
. ”A compendium of NP optimization problems”:
() 12 / 78
Bibliographie : de nombreux livres
.Cormen, Leiserson, Rivest, ”Introduction `
a
l’algorithmique”, Dunod (disponible `
a la BU) vraiment
”une” r´
ef´
erence essentielle 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
. Sur l’aspect ”algorithmic pattern”, ”Data Structures and
Algorithms with object-oriented design patterns in Java”.
2000, disponible sur le Web , ...
() 13 / 78
Organisation: les TPs
Il y aura 6 s´
eances de TP (langage : Java) encadr ´
ees pour la mise en
oeuvre directe des m´
ethodes ´
etudi´
ees en cours:
. Programmation dynamique, Algorithmes gloutons(2
s´
eances)
. Propri ´
et´
es NP, r´
eductions polynˆ
omiales (2 s´
eances)
. Heuristiques, M´
etaheuristiques ou Calculabilit ´
e (2
s´
eances)
() 14 / 78
.... Evaluation
Le contrˆ
ole continu sera bas´
e sur les TPs et un DS en milieu de
semestre. La note de contrˆ
ole continu sera
1/3(note DS) + 2/3(note TP)avec ´
eventuellement un bonus
donn´
e par des ”devoirs maison” facultatifs mais recommand ´
es.
() 15 / 78
Quelques exemples
Pour quel probl`
eme peut-on trouver un algorithme efficace, quel probl`
eme est ”facile”?
.Probl`
eme 1: Trouver un cycle qui passe une et une seule
fois par tous les sommets d’un graphe
Si vous trouvez un algorithme ”efficace” pour ce
probl`
eme, vous gagnez 1 million de dollars.
Si vous montrez qu’on ne peut pas en trouver un, vous
gagnez aussi 1 million de dollars.
.Probl`
eme 2: Trouver un cycle qui passe une et une seule
fois par tous les arcs d’un graphe
Les 7 ponts de Koenigsberg
Il existe un algorithme simple et ”efficace”: il faut et suffit
que chaque noeud soit d’arit ´
e paire (Euler)
() 16 / 78
Quelques exemples introductifs
Pour quel probl`
eme peut-on trouver un algorithme efficace, quel probl`
eme est ”facile”?
.Probl`
eme 1: Trouver le plus court chemin entre deux
sommets d’un graphe
Algorithme de Dijkstra, algorithme de Bellmann
.Probl`
eme 2: Trouver le chemin le plus long -sans cycle-
entre deux sommets dans un graphe
encore un probl`
eme difficile `
a un million de dollars
() 17 / 78
Quelques exemples introductifs
.Probl`
eme 1: Planifier n cours dont les horaires sont
donn´
es dans k salles
. Probl`
eme 2: Planifier n cours dans k cr´
eneaux, en
connaissant les incompatibilit´
es entre deux cours
Si vous trouvez un algorithme ”efficace” pour le 2, vous gagnez 1
million de dollars.
Si vous montrez qu’on ne peut pas en trouver un, vous gagnez aussi 1
million de dollars!
() 18 / 78
Quelques exemples
.Probl`
eme 1: Colorier les sommets d’un graphe avec n
couleurs de fac¸on `
a ce que les extr ´
emit´
es d’un arc soient
de couleur diff´
erentes
. Probl`
eme 2: Planifier n cours dans k cr´
eneaux, en
connaissant les incompatibilit´
es entre deux cours
Les deux probl`
emes sont ”r´
eductibles” l’un dans l’autre.
() 19 / 78
Quelques rappels
() 20 / 78
1 / 20 100%

AAC Objectifs Avoir des outils pour concevoir un ”bon” algorithme

La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !