Algorithmique Avancée
Master Informatique M1-STL
Enseignants de cours :
Maryse Pelletier, Maryse.P[email protected]
Olivier Bodini, Olivier[email protected]
Supports de cours : Michèle Soria
Année 2007-2008
Algorithmique Avancée
Présentation Organisation
Contenu
Organisation
Le site : http ://www-master.ufr-info-p6.jussieu.fr/2007
L’équipe pédagogique :
Cours : Maryse Pelletier et Olivier Bodini
TD-TME : G1 : Maryse Pelletier ; G2 : Olivier Bodini ;
G3 : Guénaël Renault et Safia Kedad ;
G4 : Phliippe Trébuchet
Les séances :
10 semaines (TDs décalés d’une semaine vs cours)
des séances de TME
partiel semaine du 29 octobre
fin des enseignements le 7 décembre
examen session 1 semaine du 17 décembre
examen session 2 semaine du 21 janvier
Algorithmique Avancée
Présentation Organisation
Contenu
Organisation
La note :
0.4 CC + 0.6 Exam
CC = 0.25 TME1 + 0.25 TME2 + 0.5 Partiel
L’évaluation des TME :
un rapport écrit
une soutenance orale (semaine du 5 novembre pour TME1)
Algorithmique Avancée
Présentation Organisation
Contenu
Plan du cours
Structures de données avancées
Files Binomiales et Fibonacci
Arbres-B et Hachage
Algorithmique géométrique
Enveloppe convexe
triangulations de Delaunay
Algorithmes sur les graphes
Composantes fortement connexes
Chemins minimaux et flots maximaux
NP-complétude et réduction entre problèmes
Algorithmique Avancée
Présentation Organisation
Contenu
Bibliographie
T. Cormen, C. Leiserson, R. Rivest, C. Stein
Introduction à l’algorithmique,
C. Froidevaux, M-C. Gaudel, M. Soria
Types de données et algorithmes
D. Beauquier, J. Berstel, P. Chrétienne
Eléments d’algorithmique
Algorithmique Avancée
Files de Priorités
Arbres binômiaux
Files binomiales
Algorithme d’union
Autres opérations
Plan du Cours 1
CHAPITRE 1 : Union de Files de Priorités
Files Binomiales et Files de Fibonacci (TD)
Opérations sur les files de priorités
Arbres binomiaux : définition et propriétés
Files binomiales : définition et propriétés
Union de 2 files binomiales : algorithme, complexité
logarithmique
Autres opérations sur les files binomiales (complexité
logarithmique)
Algorithmique Avancée
Files de Priorités
Arbres binômiaux
Files binomiales
Algorithme d’union
Autres opérations
Définition
Applications
Opérations sur les files de priorités
Ensemble d’éléments
Chaque élément a une clé
Ordre total sur les clés
Opérations
Ajouter un élément
Supprimer l’élément de clé minimale
Union de 2 files de priorités
Construction
Modification d’une clé
Algorithmique Avancée
Files de Priorités
Arbres binômiaux
Files binomiales
Algorithme d’union
Autres opérations
Définition
Applications
Représentations et Efficacité
Nombre de comparaisons dans le pire des cas
Liste triée Tas (Heap) File Binomiale
Supp Min (n) O(1)O(log n)O(log n)
Ajout (n) O(n)O(log n)O(log n)
Construction (n) O(n2)O(n)O(n)
Union (n, m) O(n+m)O(n+m)O(log(n+m))
Algorithmique Avancée
Files de Priorités
Arbres binômiaux
Files binomiales
Algorithme d’union
Autres opérations
Définition
Applications
Applications des Files de priorité
Tri heapsort
Sur les graphes
plus court chemin à partir d’une source (Dijkstra)
plus court chemin entre tous les couples de sommets
(Johnson)
arbre couvrant minimal (Prim)
Interclassement de listes triées
Code de Huffmann (compression)
Algorithmique Avancée
Files de Priorités
Arbres binômiaux
Files binomiales
Algorithme d’union
Autres opérations
Définition – Propriétes
Arbre binomial- Définition
Un arbre binomial pour chaque entier positif.
Définition par récurrence
B0est l’arbre réduit à un seul nœud,
Étant donnés 2 arbres binomiaux Bk, on obtient Bk+1en
faisant de l’un des Bkle premier fils à la racine de l’autre
Bk.
Exemples : dessiner B0,B1,B2,B3,B4
Algorithmique Avancée
Files de Priorités
Arbres binômiaux
Files binomiales
Algorithme d’union
Autres opérations
Définition – Propriétes
Arbre binomial - Propriétés
Propriétés de Bk, (k0)
1Bka 2knœuds
2Bka 2k1 arêtes
3Bka hauteur k
4Le degré à la racine est k
5Le nombre de nœuds à profondeur iest !k
i"
6La forêt à la racine de Bkest <Bk1,Bk2, . . . , B1,B0>
Algorithmique Avancée
Files de Priorités
Arbres binômiaux
Files binomiales
Algorithme d’union
Autres opérations
Définition – Propriétes
Arbre binomial - Preuves
1n0=1 et nk=2nk1
2arbre : xnœuds x1 arêtes
3h0=0 et hk=1+hk1
4d0=0 et dk=1+dk1
5nk,0=1, nk,l=0 pour l>k, et nk,i=nk1,i+nk1,i1,
pour i=1, . . . , k
6propriété de décomposition, par récurrence sur k
Algorithmique Avancée
Files de Priorités
Arbres binômiaux
Files binomiales
Algorithme d’union
Autres opérations
Définition
Propriétes
Principe de l’union
File Binomiale
Tournoi Binomial
Un tournoi binomial est un arbre binomial étiqueté croissant
(croissance sur tout chemin de la racine aux feuilles)
File Binomiale
Une file binomiale est une suite de tournois binomiaux de
tailles strictement décroissantes
Exemples :
FB12 =<TB3,TB2>,
FB7=<TB2,TB1,TB0>
Algorithmique Avancée
Files de Priorités
Arbres binômiaux
Files binomiales
Algorithme d’union
Autres opérations
Définition
Propriétes
Principe de l’union
Représentation d’une file de priorité
Représentation d’une file de priorité Pde néléments
si n=2k,Ptournoi binomial
sinon Pfile binomiale, suite de tournois correspondants
aux bits égaux à 1 dans la représentation binaire de n.
Représentation binaire de n
n=
"log2n#
$
i=0
bi2i,avec bi{0,1},b"log2n#=1
ν(n) = #ibi: # bits à 1 dans représentation binaire de n.
Algorithmique Avancée
Files de Priorités
Arbres binômiaux
Files binomiales
Algorithme d’union
Autres opérations
Définition
Propriétes
Principe de l’union
File binomiale - Propriétes
Propriétés de FBn
1FBnannœuds
2FBnanν(n)arêtes
3Le plus grand arbre de la file est B"log2n#
(hauteur $log2n%et nombre de nœuds 2"log2n#)
4Le nombre d’arbres de la file est ν(n)(avec
ν(n)1+$log2n%)
5Le minimum de la file est à la racine de l’un des arbres
1n=#bi2i,
2nν(n) = #bi(2i1),
3ν(n) = #ibi
Algorithmique Avancée
Files de Priorités
Arbres binômiaux
Files binomiales
Algorithme d’union
Autres opérations
Définition
Propriétes
Principe de l’union
Union de files binomiales
1Union de 2 tournois de tailles différentes :
TBk1TBk2F2k1+2k2=<TBk1,TBk2>
Exemple : TB1TB2
2Union de 2 tournois de même taille :
TBkTBk!TBk+1,
avec rac(TBk+1) = min(rac(TBk),(rac(TBk!)))
Exemple : TB2TB$
2
3Union de 2 files binomiales ≡≡ addition binaire
Exemple : FB5FB7
Algorithmique Avancée
Files de Priorités
Arbres binômiaux
Files binomiales
Algorithme d’union
Autres opérations
Définition
Propriétes
Principe de l’union
Union de deux files
1interclasser les 2 files en partant des tournois de poids
minimum
2lorsque 2 tournois de taille kon engendre un tournoi de
taille k+1
3à chaque étape au plus 3 tournois de même taille à
fusionner (1 dans chacune des files + 1 retenue de la
fusion à l’étape précédente)
4lorsque 3 tournois de taille kon en retient 2 pour
engendrer un tournoi de taille k+1, et l’on garde le
troisième comme tournoi de taille k.
Algorithmique Avancée
Files de Priorités
Arbres binômiaux
Files binomiales
Algorithme d’union
Autres opérations
Primitives
Algorithme
Complexité
Primitives sur les tournois binomiaux
EstVide : TournoiB booleen
renvoie vrai ssi le tournoi est vide
Degre : TournoiB entier
renvoie le dégré du tournoi
UTid : TournoiB * TournoiB TournoiB
renvoie l’union de 2 tournois de même taille TkTk,→ Tk+1
Decapite : TournoiB FileB
renvoie la file binomiale obtenue en enlèvant la racine du
tournoi Tk,→<Tk1,Tk2, ..., T1,T0>
Algorithmique Avancée
Files de Priorités
Arbres binômiaux
Files binomiales
Algorithme d’union
Autres opérations
Primitives
Algorithme
Complexité
Primitives sur les files binomiales
EstVide : FileB booleen
renvoie vrai ssi la file est vide
Min : FileB TournoiB
renvoie le tournoi de poids minimal de la file
Reste : FileB FileB
renvoie la file privée de son tournoi de poids minimal
AjoutMin : TournoiB * FileB FileB
hypothèse : le tournoi est de poids inférieur au Min de la file
renvoie la file obtenue en ajoutant le tournoi comme
tournoi de poids minimal de la file initiale
Algorithmique Avancée
Files de Priorités
Arbres binômiaux
Files binomiales
Algorithme d’union
Autres opérations
Primitives
Algorithme
Complexité
Algorithme d’Union
UnionFile : FileB * FileB FileB
renvoie la file binomiale union des deux files F1 et F2
Fonction UnionFile(F1, F2)
Retourne UFret(F1, F2, Ø)
FinFonction UnionFile
UFret : FileB * FileB * TournoiB FileB
renvoie la file binomiale union de deux files et d’un tournoi
Fonction UFret(F1, F2, T)
Algorithmique Avancée
1 / 8 100%
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 !