La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Optimisation et Complexité

Présentations similaires


Présentation au sujet: "Optimisation et Complexité"— Transcription de la présentation:

1 Optimisation et Complexité
Algorithmes de Bloch et Ford Fulkerson Florent DELAHAYE Christophe DE BATZ Thibault LE BRAS Groupe B

2 Sommaire Introduction Présentation du sujet Première étape: Bloch
Étapes Graphe d’exemple Première étape: Bloch Algorithme Seconde étape: Ford-Fulkerson Conclusion

3 Présentation du sujet Première étape: Seconde étape:
A partir du flot nul (Flot = 0), nous devons pouvoir être capable de trouver un flot complet par l’algorithme de Bloch. Seconde étape: A partir du flot trouvé à la première étape, notre programme devra être capable de trouver un flot maximal par l’algorithme de Ford-Fulkerson.

4 Introduction Langage utilisée: C++ Fonctionnalités du programme
Orienté objet  modularité du code et clarté STL  gain de temps Bas niveau  rapide et robuste Fonctionnalités du programme Rechercher un flot complet. Rechercher un flot maximal à partir d’un flot complet. Vérifier si le flot complet était maximal. Traiter le cas des graphes avec circuit. Structures utilisées La classe Graph La classe Arc

5 Graphe d’exemple

6 Algorithme de Bloch Apparence dans la console: 1ére étape: 2éme étape:
etc.

7 Bloch : principe général
Initialiser le Flot par addition des flots des arcs d’entrée Marqué comme saturer les chemins où Flots = Capacité Les chemins saturés ne sont pas empruntables. Etablir un chemin (Relier point d’entrée à point de sortie) Choisir le prochain sommet disponible dans l’ordre alphabétique Les arcs ne sont pas empruntable dans le sens contraire Les sommets parcourus sont enregistrés et vérifié à chaque recherche du sommet suivant afin d’éviter les boucles. Calculer la différence flot / Capacité de chaque arc du chemin Prendre le minimum de ces valeurs, le stoker dans un entier α Ajouter α au flot de chaque arc du chemin. Ajouter α au flot initial Recommencer à l’étape 2 jusqu’à ce qu’il n’y ai plus de chemin entre le point d’entrée et le point de sortie du graphe.

8 Algorithme de Bloch Graphe du flot complet Résultat en console

9 Algorithme de Ford -Fulkerson
Rappel : Arc dans le bon sens => Chemin saturé quand : Flot = Capacité Arc dans le sens inverse => Chemin saturé quand : Flot = 0 Calcule la valeur du flot maximal: Pour les arcs ( i , j ) parcourus dans le sens des flèches 𝑑 1 =𝑚𝑖𝑛 𝐶 𝑖,𝑗 −𝜑 𝑖,𝑗 Pour les arcs ( i , j ) parcourus en sens opposé des flèches 𝑑 2 = min 𝜑 𝑖,𝑗

10 Ford –Fulkerson : principe général
1 : Trouver un chemin A partir du point d’entrée, prendre prochain sommet dispo dans l’ordre alphabétique. Prochains sommets dispo = Arcs sortant non-saturés (donc tant que flot ≠ capacité) + Arcs entrant non nuls (donc tant que flot ≠ 0) A chaque arc parcouru, Marquer si l’arc est parcouru dans le bon sens ou dans le sens inverse. enregistrer des valeurs ∆: La différence flot/capacité pour les arcs parcourus dans le bon sens. Le flot pour les arcs parcourus dans le sens inverse. 2 : Quand le chemin a été trouvé (Point d’entré du graphe relié au point de sortie) Prendre le minimum des ∆  Ajouter ∆ aux flots des arcs marqués dans le bon sens Soustraire ∆ aux flots des arcs marqués dans le sens inverse Ajouter ∆ à l’int représentant le flot complet/max (1) Continuer l’algorithme tant qu’un chemin est possible entre le point d’entré et le point de sortie.

11 Algorithme de Ford -Fulkerson
Apparence dans la console: 1ére étape :

12 Algorithme de Ford -Fulkerson
Graphe du flot maximal Console

13 Conclusion Un problème de réseau peut toujours être optimisé.
Problématiques d’apparences simples mais qui mettent en jeu de réels algorithmes.  Prise en charge des circuits dans Bloch Les applications de cette recherche opérationnelle sont multiples  travail concret !  Problématique routière, réseaux informatiques, urbanisme

14 Merci de nous avoir écouté
Fin de la présentation


Télécharger ppt "Optimisation et Complexité"

Présentations similaires


Annonces Google