240 likes | 1.18k Views
Calcul du flot maximum Algorithme de Ford Fulkerson Maxime Chambreuil | Nicolas Fournel | Vianney Gremmel | Leïla Traoré | Marouane Zehni. Notre présentation. Introduction L’algorithme de Ford Fulkerson Proposition d’une solution Notre solution… Démonstration Conclusion. Introduction 1/2.
E N D
Calcul du flot maximumAlgorithme de Ford FulkersonMaxime Chambreuil | Nicolas Fournel | Vianney Gremmel | Leïla Traoré | Marouane Zehni UV RO
Notre présentation • Introduction • L’algorithme de Ford Fulkerson • Proposition d’une solution • Notre solution… • Démonstration • Conclusion UV RO
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
Introduction 2/2 • Contrainte : • But pédagogique • Présentation claire • Résolution pas à pas • Aide à la compréhension de l’algorithme UV RO
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 • Cucapacité de l’arc u tel que Cu ≥ 0 • φu le flot circulant sur u tel que φu ≤ Cu UV RO
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 • But : • Augmenter le flot jusqu’à son maximum tout en respectant cette règle UV RO
1 2/2 3/3 1/2 P S 3/3 2/2 2 Flot max : 5 L’algorithme de Ford Fulkerson 3/6 • Exemple : UV RO
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
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
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
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
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
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
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
Notre solution… 2/6 • Diagramme de classes simplifié UV RO
Notre solution 3/6 • Menus généraux UV RO
Notre solution 4/6 • L’éditeur UV RO
Notre solution 5/6 • Le viewer lors du déroulement de l’algorithme UV RO
Notre solution 6/6 • L’algorithme est terminé… UV RO
Démonstration ? UV RO
Conclusion • Résultat conforme à nos attentes • Projet intéressant • Projet évolutif (graphes XML) QUESTIONS ? UV RO