Techniques d’Optimisation Chapitre 2: Problème de flôt

Slides:



Advertisements
Présentations similaires
7. Probème de flot à coût minimum.
Advertisements

Calcul du flot maximum Algorithme de Ford Fulkerson Maxime Chambreuil | Nicolas Fournel | Vianney Gremmel | Leïla Traoré | Marouane Zehni UV RO.
Théorie des graphes.
Mise à Niveau en Recherche Opérationnelle
A.Faÿ 1 Recherche opérationnelle Résumé de cours.
Plus courts chemins On présente dans ce chapitre un problème typique de cheminement dans les graphes : la recherche d'un plus court chemin entre deux sommets.
Programmation linéaire
Optimisation et Complexité
Algorithme de Bellman-Ford
Problème de flot à coût minimum
7. Problème de flot à coût minimum.
Problème de flot maximal dans un réseau

Optimisation dans les réseaux
Programmation linéaire et Recherche opérationnelle
Recherche Opérationnelle
DONG Xiaoguang HONG Liang OULDBABA Fadel WANG Min
GPA750 – Gestion de Projets
Programmation linéaire en nombres entiers
LE FLOT MAXIMAL et LA COUPE MINIMALE
Ceci est un graphe valué Des arcs : 1-2, 1-4, 7-10,…..
Licence d’informatique Algorithmique des graphes
Université Pierre et Marie Curie Laboratoire d’Informatique de Paris VI Département ASIM Analyse et résultats sur le dimensionnement des mémoires pour.
6. Problème de flot à coût minimum.
Licence d’Informatique Algorithmique des graphes
Techniques d’Optimisation Chapitre 2: Problème de flôt Dr TARI Abdelkamel Mars 2014.
Cycle, Cocycle, Arbre et Arborescence
Chapitre 3 Problèmes de Cheminement
CINI – Li115 1 Semaine 9 Algorithmes de tri ● Introduction ● Tri à bulle ● - principe ● - algorithme ● - efficacité ● Tri par sélection ● - principe, algorithme,
7. Problème de flot à coût minimum. 7.1 Graphes, graphes orientés, réseaux Un graphe G =(V, E) est constitué d’un ensemble non vide fini de sommets V.
Qu’appelle-t-on résistivité ? Ch.3 - Résistances & couplages - Exercice 1 La résistivité est la résistance que présentent les différents corps conducteurs,
Chapitre 2 Théorèmes généraux
Outils de Recherche Opérationnelle en Génie MTH 8414
Les Instructions Itératives (Les Boucles)
Introduction au Langage Pascal
Pierre Joli Cours de Mathématique Pierre Joli
V Graphes étiquetés Ce sont des graphes orientés où les arêtes sont affectées d’étiquettes. Lorsque les étiquettes sont des nombres, on dit que le graphe.
Université Abou Bakr Belkaid Faculté des Sciences Département d’informatique Algorithmique Avancée et Complexité Chap5: Les méthodes de résolution exactes.
Master Réseaux et Systèmes Distribués (RSD)
Précision d'une mesure et chiffres significatifs
Pr ZEGOUR Djamel Eddine
Microéconomie I.
Techniques d’Optimisation Chapitre 3: Programmation en 0-1 (bivalente)
Plan Introduction Parcours de Graphe Optimisation et Graphes
Programmation linéaire et Recherche opérationnelle Licence d’Econométrie Professeur Michel de Rougemont
Université Abou Bakr Belkaid Faculté des Sciences Département d’informatique Algorithmique Avancée et Complexité Chap7: Les méthodes de résolution exactes.
L ES I NSTRUCTIONS I TÉRATIVES (L ES B OUCLES ) Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université A.Mira,
A) Notions élémentaires A-1) LOI D'OHM CONVENTIONS D'ORIENTATIONS.
Plan Introduction Parcours de Graphe Optimisation et Graphes
Les tableaux.
La méthode du simplexe. 1) Algorithme du simplexe  Cet algorithme permet de déterminer la solution optimale, si elle existe, d’un problème de programmation.
Structure D’une Base De Données Relationnelle
1 RECURSIVITE PRESENTATION Ch. PAUL ALGORITHMIQUE Présentation de la récursivité.
OPTIMISATION 1ère année ingénieurs
Généralités sur les fonctions
Plan Introduction Parcours de Graphe Optimisation et Graphes
Cycle, Cocycle, Arbre et Arborescence
Chapitre 1 Formulation d’un programme linéaire (PL) Georges Abboudeh BUST 347.
l’algorithme du simplexe
CSI 3505 Algorithmes Voraces
RABAH M ed Ali 2018/2019
Recherche de zero d'une fonction MARMAD ANAS MPSI -2.
Chapitre 12 : Mouvements dans un champ de force uniforme.
CSI 3505 / Automne 2005: Conception et Analyse des Algorithmes I.
Encadrée par: - Mr. Abdallah ALAOUI AMINI Réalisée par : -ERAOUI Oumaima -DEKKAR Amal - ES-SAHLY Samira -Houari Mohammed PROGRAMMATION MULTIOBJECTIFS.
Introduction  La PLNE regroupe l’ensemble des techniques permettant de résoudre des programmes linéaires dont les solutions doivent être entières.  Formellement,
A. Zemmari SDRP & MA Problème du rendez vous : un algorithme probabiliste et une analyse probabiliste A. Zemmari.
GESTION DE LA PRODUCTION Réalisé par : EL MAROUSSI Mohammed DRIOUCHI Mohammed Abdeljabbar WAKENNOU Salah CRMEF Grand Casablanca Cycle de préparation à.
Outils de Recherche Opérationnelle en Génie MTH 8414
La programmation dynamique
Transcription de la présentation:

Techniques d’Optimisation Chapitre 2: Problème de flôt Dr TARI Abdelkamel Mars 2014

Sommaire Modélisation du problème de flôt Problème de la coupe minimale Chaîne augmentante Algorithme de Ford-Fulkerson Exemple

Modélisation du problème (1/3) - Soient un réseau R=(X, U, c) un graphe fini orienté, connexe et sans boucles, et c une application: UR u  c(u)=cu - Il s’agit d’envoyer un flôt (une matière) d’une source s (-(s)= ) et de récupérer son maximum au sommet puits p (+(p)=  ) tout en conservant la matière en chaque sommet de ce réseau (Kirchoff) - Un flôt f est un vecteur de Rm vérifiant: w+(x): Cocycle engendré par les arcs sortants du sommet x w -(x): Cocycle engendré par les arcs entrants vers le sommet x Techniques d'Optimisation ed2c'2012

Modélisation du problème (2/3) On crée l’arc ur =(p, s) fictif tel que c(ur)=+ pour avoir une conservation totale sur le réseau. f est dit réalisable s’il vérifie: 0  f(u) c(u)  u U{ur } Un flot f est dit compatible sur R (X, U, a, b) s’il vérifie :  u  U { ur }, a (u) ≤ f(u) ≤b (u). Le problème du flot maximum se formule comme suit: Techniques d'Optimisation ed2c'2012

Modélisation du problème (3/3) Soit x ij la quantité du flot sur l’arc (i, j), la contrainte de conservation de flot peut s’exprimer sur la forme suivante : Le modèle mathématique devient: Ce modèle est un programme linéaire à variables bornées.!

Coupe minimale Une coupe =w+(A) séparant p de s et engendré par A  X est un cocircuit w+(A) où sA et p  A. Sa capacité est: c()= Une coupe * est dite minimale si sa capacité est minimale. Le problème de la coupe minimale se formule comme suit :

Exemple Soit le réseau suivant: 2 3 5 1 1 1 4 7 4 3 3 5 1 1 1 4 7 4 3 Déterminer toutes les coupes ainsi que la coupe minimale.

Chaîne augmentante Une chaine C est dite augmentante par rapport à un flot  si elle vérifie :  u  C+  (u) < c (u).  u  C-  (u) > 0 C+ : Ensemble des arcs allant de s vers p et C -: Ensemble des arcs dans le sens inverse. Dans l’exemple précédent: C = { (1,3) ; (3,4)} est une Chaîne augmentante pour le flot f = (2, 0, 1, 0, 1, 1) de valeur 2. avec: u1=(1,2), u2=(1,3) u3=(2,3) u4=(3, 2) u5=(2,4) u6=(3,4)

Résultats théoriques (1/2) Lemme: Soient R=(X, U, c) un réseau =w+(A) coupe séparant p de s v=f(ur) flôt réalisable alors on a: v  c() En effet: Soient flot f réalisable et A une partie de X vérifiant s  A et p  A  est un flot  + f(ur)  Comme f réalisable D’où le résultat

Résultats théoriques (2/2) Théorème: Un flôt est maximum si et seulement s’il n’existe aucune chaine augmentante CN: Evidente CS: Considérons un flot réalisable f* n’ayant pas de chaîne augmentante alors il existerait un cocycle  =  (A) vérifiant :  u  + f* (u)= c(u)  u  - f* (u)= 0 * = +(A) est une coupe séparant p de s et f* est maximum (Lemme précédent.) Remarque : Si toutes les capacités des arcs sont entières alors il existe un flot entier maximum.

Algorithme de Ford-Fulkerson (1/2) Principe: Démarrer d’un flot réalisable (par exemple, nul) et l’améliorer d’itération en itération. Utiliser une procédure de marquage pour exhiber la chaîne augmentante. Dans la cas où elle n’existe pas, le flôt courant est optimal (on aurait construit une coupe minimale séparant p de s). Procédure de marquage: On marque le sommet s d’un (+) et on pose d(s)=+ (flôt infini). On pose C+=C-= et Y={s} Marquage direct: S’il existe un arc u=(x, y) avec x marqué et y non marqué vérifiant: f(u) < c(u) alors on marque y d’un +x et on pose: d(y)=Min{d(x); c(u)-f(u)}, C+=C+  {u} et Y=Y {y} Marquage indirect: S’il existe un arc u=(y, x) avec x marqué et y non marqué vérifiant: f(u) >0 alors on marque y d’un -x et on pose: d(y)=Min{d(x); f(u)}, C-=C-  {u} et Y=Y {y}.

Algorithme de Ford-Fulkerson (2/2) Deux cas se présentent à la fin de la procédure de marquage: - p marqué: C= C+  C- est une chaîne augmentante. Le flôt est amélioré comme suit: où: k(u ) est la valeur du flot sur l’arc u à l’itération k et ε = d (p) = min{d(x)/ x Y}. - p n’est pas marqué: Le flot courant est optimal et w+(Y) est la coupe minimale

Amélioration de l’algorithme Un flôt est dit complet si tout chemin de s à p contient au moins un arc saturé (f(u=c(u) ou f(u)=0) Procédure: a) Recherche d’un flot « au jugé » en distribuant de sommet en sommet le flot en respectant la conservation de la matière Considérer un chemin de s à p n’ayant aucun arc saturé et augmenter la valeur du flot sur ce chemin jusqu’à saturation d’un arc (en respectant la conservation de la matière sur les sommets de ce chemin) Répéter l’opération jusqu’à saturer tous les chemins du réseau

Exemple 2 3 4 3 3 1 1 1 6 3 2 3 4 5 Soit le réseau suivant: 2 3 4 3 3 1 1 1 6 3 2 3 4 5 Considérer le flot au jugé suivant: (1,2) (1,3) (2,3) (2,4) (3,5) (4,5) (4,6) (5,6) f = ( 2, 0, 1, 1, 1, 0, 1, 1 ) de valeur 2

Complexité de Ford-Fulkerson Soit G=(X, U) avec |X|= n , U|= m et c*=Max {c(u), uU} On suppose que les capacités des arcs sont entières - O(m) opérations pour la recherche d'une chaîne améliorante et l'amélioration du flot. La capacité d'une coupe est au plus en O(n c*). En effet, dans le pire des cas le flot augmente d'une seule unité à chaque fois. Donc au plus O(n c*) améliorations. Complexité Ford-Fulkerson est en O(n m c*) O(n4)

Quelques variantes de l’algorithme Variante : Algorithme d'Edmonds-Karp (1972). C'est une implémentation particulière de l'algorithme de Ford-Fulkerson en parcours largeur (BFS) et qui consiste à toujours choisir une chaine améliorante de plus court chemin de s à t, c'est-à-dire celle avec le moins d'arêtes possibles. Cet algorithme se termine toujours (même pour des capacités non entières, contrairement à Ford-Fulkerson...) avec une complexité en O(nm2) (indép. des capacités). Algorithme de Push-Relabel