Algorithmique et ComplexiT´
e
Pr´
esentation du cours
Master1 Informatique
Sophie Tison
CONTEXTE
Les algorithmes sont au coeur
de l’informatique: tris,
recherche, compression,
ordonnancement, algorithmes
g´
eom´
etriques, cryptographie,. . .
Ils prennent une place de plus
en plus centrale dans la soci´
et´
e
en particulier via les ”big data”:
recommandation,
personnalisation, simulation,
pr´
ediction, analyse de
comportements, . . .
OBJECTIFS DE CE COURS
Avoir des outils pour concevoir un ”bon” algorithme pour
r´
esoudre un probl`
eme.
Objectif: Avoir des outils pour concevoir un algorithme correct
et efficace pour r´
esoudre un probl`
eme.
Cela pose de nombreuses questions et demande un certain
savoir-faire d´
ej`
a partiellement acquis ... `
a renforcer: c’est
l’objectif de ce cours!
DE NOMBREUSES QUESTIONS,UN SAVOIR-FAIRE
Existe-il un algorithme pour r´
esoudre le probl`
eme?
Connaˆ
ıtre quelques notions de calculabilit´
e et de d´
ecidabilit´
e.
POUR LEQUEL DE CES DEUX PROBL `
EMES EXISTE-IL UN
ALGORITHME?
IProbl`
eme 1
IEntr´
ee: G une grammaire alg´
ebrique;
ISortie: Oui Ssi le langage g´
en´
er´
e est non vide
IProbl`
eme 2
IEntr´
ee: G une grammaire alg´
ebrique;
ISortie: Oui Ssi le langage g´
en´
er´
e est l’ensemble de tous les
mots sur l’alphabet.
Le prmeier est d´
ecidable, le deuxi`
eme est ind´
ecidable
DE NOMBREUSES QUESTIONS,UN SAVOIR-FAIRE.
Comment mod´
eliser le probl`
eme?
Est-ce un probl`
eme classique?
Savoir mod´
eliser, Connaˆ
ıtre et savoir reconnaˆ
ıtre des grands classiques
EST-CE UN PROBL`
EME CLASSIQUE?
Tris, m´
ethodes de s´
election, recherche
Algorithmique des graphes,
Programmation lin´
eaire
...
DE NOMBREUSES QUESTIONS,UN SAVOIR-FAIRE.
L’algorithme est-il correct?
Savoir prouver un algorithme...
ou tout du moins avoir un minimum de rigueur
Les Hatton, professeur de luniversit´
e Kingston de Londres
estime qu’en Europe les pertes li´
ees aux erreurs de
programmation co ˆ
utent jusqu’`
a 150 milliards d’euros par an.
DE NOMBREUSES QUESTIONS,UN SAVOIR-FAIRE.
L’algorithme est-il efficace?
Savoir analyser la complexit´
e d’ un algorithme
DE NOMBREUSES QUESTIONS,UN SAVOIR-FAIRE
Comment concevoir un algorithme?
Sch´
emas d’algorithmes, Algorithmic design patterns
”Diviser pour r´
egner”
Programmation Dynamique
Algorithmes gloutons
DE NOMBREUSES QUESTIONS,UN 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
DE NOMBREUSES QUESTIONS,UN 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, minmax, s´
eparation-´
evaluation
PROGRAMME PR´
EVISIONNEL
Pr´
esentation et Rappels (2 cours)
Quelques sch´
emas d’algorithmes (4 cours)
Un peu de complexit´
e de probl`
emes (3 cours)
Un peu d’algorithmique avanc´
ee (2-3 cours)
RESSOURCES
R´
esum´
es de cours distribu´
es en amphi et sur le
portail
Slides de cours sur le portail au fur et `
a mesure
De nombreux livres comme par exemple:
ICormen, Leiserson, Rivest, ”Introduction `
a
l’algorithmique”, Dunod (disponible `
a la BU)
vraiment ”une” r´
ef´
erence en algorithmique,
IChristoph D ¨
urr, Jill-Jˆ
enn Vie,
”Programmation Efficace Les 128 Algorithmes
Qu’Il Faut Avoir Compris et Cod´
es en Python
au Cours de sa Vie Broch´
e ” 1 mars 2016
IJon Kleinberg & Eva Tardos, ”Algorithm
design”, Addison Wesley 2005
De nombreuses ressources en ligne!
LES TPS
Il y aura 12 s´
eances de TP (langage au choix: Java, C , Haskell,
. . . ) encadr´
ees pour la mise en oeuvre directe des m´
ethodes
´
etudi´
ees en cours. Les TPs seront ´
evalu´
es.
EVALUATION
Le contrˆ
ole continu sera bas´
e sur
. les TPs
. un DS (le 24 octobre a priori).
.´
eventuellement un bonus donn´
e par le charg´
e de
TD: par exemple, ”devoirs maison”, pr´
eparation
d’exercices . . .
La note de contrˆ
ole continu sera
CC =1/3(note DS) + 2/3(note TP)+´
eventuel bonus.
La note finale sera sup(Examen,(Examen +CC)/2).
GRAPHES ET CHEMINS
POUR QUEL PROBL `
EME PEUT-ON TROUVER UN ALGORITHME EFFICACE?
IProbl`
eme 1: Trouver le plus court chemin entre deux
sommets d’un graphe dirig´
e
C’est un grand classique: algorithme de Dijkstra,
algorithme de Bellman-Ford, algorithme de
Floyd-Warshall, ...
IProbl`
eme 2: Trouver le chemin le plus long sans cycle entre
deux sommets dans un graphe dirig´
e
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!
LES 7PROBL`
EMES DU MILLENIUM
INSTITUT CLAY
7 probl`
emes ont ´
et´
e identifi´
es comme ”Millenium problems”
pour leur impact par l’Institut Clay, avec pour chacun d’eux 1
million de dollars de r´
ecompense `
a la clef.
1 / 10 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!