Procédure de marquage Procédure d

publicité
Calcul du flot maximum
Algorithme de Ford Fulkerson
Maxime Chambreuil | Nicolas Fournel | Vianney Gremmel | Leïla Traoré | Marouane Zehni
UV RO
1
Notre présentation
•
•
•
•
•
•
Introduction
L’algorithme de Ford Fulkerson
Proposition d’une solution
Notre solution…
Démonstration
Conclusion
UV RO
2
Introduction 1/2
• Calcul du flot maximum dans un graphe
– Implémentation de l’algorithme de Ford
Fulkerson
• Cas d’utilisation :
– Problèmes de charge maximale admissible par
des réseaux (électriques, informatiques,
routiers)
UV RO
3
Introduction 2/2
• Contrainte :
– But pédagogique
• Présentation claire
• Résolution pas à pas
• Aide à la compréhension de l’algorithme
UV RO
4
L’algorithme de Ford
Fulkerson 1/6
• Calcul du flot maximum
– Définition :
• Soit le graphe G(X,U) orienté, valué, connexe, antisymétrique, sans circuit
• A chaque arc u on associe deux scalaires
– Cu capacité de l’arc u tel que Cu ≥ 0
– φu le flot circulant sur u tel que φu ≤ Cu
UV RO
5
L’algorithme de Ford
Fulkerson 2/6
• Principe fondamental
– A tout moment, la loi de Kirchhoff doit être
vérifiée sur chaque sommet x de G
  



u
u

u
u

• But :
– Augmenter le flot jusqu’à son maximum tout en
respectant cette règle
UV RO
6
L’algorithme de Ford
Fulkerson 3/6
• Exemple :
3/3
1
2/2
1/2
S
2/2
2
P
3/3
Flot max : 5
UV RO
7
L’algorithme de Ford
Fulkerson 4/6
• Principe général :
– On part d’un flot compatible (généralement 0)
– On utilise deux fonctions alternativement :
• Procédure de marquage
• Procédure d’augmentation du flot
UV RO
8
L’algorithme de Ford
Fulkerson 5/6
• Procédure de marquage
– But :
• trouver une chaîne améliorante
– Principe :
• Marquage des sommets selon deux critères :
– Delta (flot max que l’on peut faire parvenir au sommet)
– Sommet de provenance
• Algorithme :
– cf. cours de RO du 21/10/2002
UV RO
9
L’algorithme de Ford
Fulkerson 6/6
• Procédure d’augmentation du flot
– But :
• augmenter le flot dans le graphe selon la valeur et le
marquage obtenu par la procédure de marquage
– Principe :
• Parcours du graphe du puit vers la source suivant les
indications de provenance de la procédure de
marquage
• Algorithme :
– cf. cours de RO du 21/10/2002
UV RO
10
Proposition d’une
solution 1/3
• Projet pédagogique sous-entend :
– Interface graphique claire
– Ergonomie
– Pas (trop) de contrainte de performance
=> Utilisation de Java
UV RO
11
Proposition d’une
solution 2/3
• Un format d’archivage de graphes
réutilisable :
– Sauvegarde des graphes selon le format XML
– => les graphes, définis par une dtd, sont
potentiellement réutilisables par d’autres
programmes
– Évolutions possibles : affichage web,
implémentation d’autres algorithmes.
UV RO
12
Proposition d’une
solution 3/3
• Un éditeur de graphe :
– Facilité de créer et de modifier des graphes
– Possibilité de faire tourner l’algorithme
directement après quelques modifications sur le
graphe
UV RO
13
Notre solution… 1/6
• Étapes du projet :
–
–
–
–
Compréhension de l’algorithme
Définition d’un modèle
Codage du modèle et de l’algorithme
Implémentation de l’interface graphique, de
l’éditeur et de la sauvegarde XML
– Phase de tests
UV RO
14
Notre solution… 2/6
• Diagramme de classes simplifié
UV RO
15
• Menus généraux
Notre solution 3/6
UV RO
16
• L’éditeur
Notre solution 4/6
UV RO
17
Notre solution 5/6
• Le viewer lors du déroulement de l’algorithme
UV RO
18
Notre solution 6/6
• L’algorithme est terminé…
UV RO
19
Démonstration ?
UV RO
20
Conclusion
• Résultat conforme à nos attentes
• Projet intéressant
• Projet évolutif (graphes XML)
QUESTIONS ?
UV RO
21
Téléchargement