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