UV RO 1
Calcul du flot maximumAlgorithme de Ford Fulkerson
Maxime Chambreuil | Nicolas Fournel | Vianney Gremmel | Leïla Traoré | Marouane Zehni
UV RO 2
Notre présentation
• Introduction
• L’algorithme de Ford Fulkerson
• Proposition d’une solution
• Notre solution…
• Démonstration
• Conclusion
UV RO 3
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 4
Introduction 2/2
• Contrainte :– But pédagogique
• Présentation claire
• Résolution pas à pas
• Aide à la compréhension de l’algorithme
UV RO 5
L’algorithme de Ford Fulkerson 1/6
• Calcul du flot maximum– Définition :
• Soit le graphe G(X,U) orienté, valué, connexe, anti-symé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 6
• Principe fondamental– A tout moment, la loi de Kirchhoff doit être
vérifiée sur chaque sommet x de G
• But :– Augmenter le flot jusqu’à son maximum tout en
respectant cette règle
L’algorithme de Ford Fulkerson 2/6
u
u
u
u
UV RO 7
L’algorithme de Ford Fulkerson 3/6
• Exemple :1
P
2
S
3/3
3/3
1/2
2/2
2/2
Flot max : 5
UV RO 8
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 9
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 10
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 11
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 12
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 13
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 14
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 15
Notre solution… 2/6
• Diagramme de classes simplifié
UV RO 16
Notre solution 3/6• Menus généraux
UV RO 17
Notre solution 4/6• L’éditeur
UV RO 18
Notre solution 5/6• Le viewer lors du déroulement de l’algorithme
UV RO 19
Notre solution 6/6• L’algorithme est terminé…
UV RO 20
Démonstration ?
UV RO 21
Conclusion
• Résultat conforme à nos attentes
• Projet intéressant
• Projet évolutif (graphes XML)
QUESTIONS ?