UE3 : Algorithmes et
Complexité
Michel Van Caneghem
Décembre 2002
UE3 : Algorithme et Complexité #1 – 2002
Objectifs du cours
Les progrès des matériels informatiques et la complexité
des problèmes posés maintenant à l’Informatique de-
mandent une nouvelle analyse. Il faut donc :
✔Fournir les outils mathématiques nécessaires à l’analyse
des performances d’un algorithme.
✔Avoir une idée de ce qui est faisable et infaisable actuel-
lement.
✔Améliorer les performances des problèmes faciles.
✔Savoir comment aborder les problèmes difficiles.
UE3 : Algorithme et Complexité #1 – 2002 1
Le programme
Lun. 9 Déc. Introduction et rappels mathématiques sur les
limites et récurrences.
Jeu. 12 Déc. Hash-code et dictionnaires. [DEVOIR 1] [14h-16h]
Lun.16 Déc. Diviser pour régner : Les Tris.
Jeu.19 Déc. Le voyageur de commerce : Séparation et éva-
luation, le recuit simulé, méthode tabou, les
algorithmes génétiques. [DEVOIR 2]
Lun. 6 Jan. Diviser pour régner (2) : autres algorithmes.
Recherche de motifs dans un texte.
Jeu. 9 Jan. Initiation à la BioInformatique – Alignements
de séquences biologiques. [DEVOIR 3]
Lun.13 Jan. Les n-reines et les heuristiques
27-31 Jan. Examen
UE3 : Algorithme et Complexité #1 – 2002 2
La Note
Ce cours représente la moitié du cours UE3 (Coeff 1.3 –
ECTS 7). La Note sur 20 va être composée de 3 parties :
✍Un examen écrit sur 8 points.
✍Un premier devoir : Etude minutieuse du hachage (4
points), par binôme.
✍Un deuxième devoir : Localisation d’entrepôt et méthode
tabou (4 points), par binôme.
✍Un troisième devoir : Alignement de séquence en biolo-
gie (4 points), par binôme.
Les devoirs qui représentent, en gros, chacun 10h de travail
sont à rendre impérativement aux dates prévues
UE3 : Algorithme et Complexité #1 – 2002 3
Devoir 1 : Etude minutieuse du hachage
Ce devoir s’intéresse aux problèmes de consultation de dic-
tionnaire. On vous a beaucoup parlé des arbres, mais les
méthodes basées sur les tables de hachage (hash-code)
sont beaucoup plus performantes (c’est ce que je vous de-
mande de montrer), cependant elles utilisent beaucoup de
mémoire.
Cela va nous obliger à regarder de près certaines lois de
probabilité, qui justifient ces algorithmes.
Tout cela sera appliqué à la correction de l’orthographe d’un
texte de Proust avec un dictionnaire du français.
UE3 : Algorithme et Complexité #1 – 2002 4
Devoir 2 : Localisation d’entrepôt et méthode
tabou
Ce devoir concerne la résolution d’un problème difficile
(bien sûr NP-complet) : la localisation d’entrepôt.
Le problème posé est de choisir a quels endroits on doit ef-
fectivement construire les entrepôts pour minimiser le coût.
Je vous propose d’utiliser une méthode tabou pour ré-
soudre de manière approchée ce problème. Cela permet de
résoudre des problèmes réalistes : Une centaine de locali-
sation possible pour les entrepôts et un millier de clients,
en quelques secondes.
UE3 : Algorithme et Complexité #1 – 2002 5
Devoir 3 : Alignements de séquences en biologie
Ce devoir a pour but de programmer un algorithme qui
permet de comparer des séquences de lettre. Cet algo-
rithme est très utilisé pour comparer des séquences "bio-
logiques" : séquences d’ADN ou de protéines.
La programmation de cet algorithme demande un certain
soin.
On peut aussi utiliser cette méthode pour comparer deux
programmes : je me suis toujours dit que cela serait utile
pour comparer deux programmes faits par des binômes dif-
férents pour voir si ils ont copiés!!
UE3 : Algorithme et Complexité #1 – 2002 6
Les sujets de TER
A partir de sujets décrits dans ce cours je vais vous propo-
ser 3 sujets de TER (UE8). C’est un travail personnel (par
binôme) qui se fait du 12 Mai au 27 Juin 2003 (Coeff 2 –
ECTS 11).
✍TER 1 :
✍TER 2 :
✍TER 3 :
Ces TER vont se situer dans le domaine de la BioInforma-
tique
UE3 : Algorithme et Complexité #1 – 2002 7