UV RO1 Calcul du flot maximum Algorithme de Ford Fulkerson Maxime Chambreuil | Nicolas Fournel |...

Post on 03-Apr-2015

108 views 2 download

Transcript of UV RO1 Calcul du flot maximum Algorithme de Ford Fulkerson Maxime Chambreuil | Nicolas Fournel |...

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 ?