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

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.
Introduction à la Théorie des graphes
La Méthode de Simplexe Standardisation
Théorie des graphes.
Tris.
La méthode du simplexe.
l’algorithme du simplexe
Algorithmes et structures de données avancés
Cours 3-b Méthode des éléments finis 1D
Calculs de complexité d'algorithmes
Introduction à la Théorie des graphes
II- Les structures de contrôle à condition d’arrêt
Les Structures de contrôles itératives
CHAPITRE 2 Nombres entiers, initiation à l’arithmétique- Nombres rationnels.
Mise à Niveau en Recherche Opérationnelle
A.Faÿ 1 Recherche opérationnelle Résumé de cours.
Plus rapide chemin bicritère : un problème d’aménagement du territoire
R.K.Ahuja & James B.Orlin (1988)
Structures de données linéaires
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.
Algorithmes Branch & Bound
Programmation linéaire
Optimisation linéaire
Optimisation et Complexité
Algorithme de Bellman-Ford
Problème de flot à coût minimum
Structures de données IFT-2000
7. Problème de flot à coût minimum.
Programmation linéaire en nombres entiers Algorithme de la subdivision successive («Branch and Bound Algorithm»)
Problème de flot maximal dans un réseau

Algorithmes d ’approximation
Optimisation dans les réseaux
Programmation linéaire et Recherche opérationnelle
Recherche Opérationnelle
Mise en oeuvre des MMCs L'utilisation des MMCs en reconnaissance des formes s'effectue en trois étapes : définition de la topologie de la chaîne de Markov,
21 février 2006Cours de graphes 2 - Intranet1 Cours de graphes Les plus courts chemins, les chemins les plus légers : à laide de la vague, à laide de la.
DONG Xiaoguang HONG Liang OULDBABA Fadel WANG Min
Programmation dynamique
GPA750 – Gestion de Projets
Pour le chemin le plus court pour tous les couples
Programmation linéaire en nombres entiers : les méthodes de troncature
Graphes 1. Introduction 2. Définition 3. Représentation mémoire
Vers un nouvel empirisme: l’ancien et le nouvel empirisme John Goldsmith Université de Chicago CNRS MoDyCo.
D.E ZEGOUR Ecole Supérieure d’Informatique
Programmation linéaire en nombres entiers
Présentation du marché obligataire
Algorithmes Branch & Bound
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.
Structures de données et algorithmes – TP7 Maria-Iuliana Dascalu, PhD
Licence d’Informatique Algorithmique des graphes
Ajouts et retraits dans un arbre de connexion Nicolas Thibault et Christian Laforest, Équipe OPAL Laboratoire IBISC (regroupement LaMI et LSC), Évry 8.
Post-optimisation, analyse de sensibilité et paramétrage
Résolution des équations différentielles
programmation linéaire
Correction du devoir 4 Première S Mathématiques. Exercice 1. Après avoir répondu à la question 1., il y a deux écritures possibles pour f (x) : Il faut.
A propos du “Minimal Controllability Problem” C. Commault Département Automatique Gipsa-Lab Grenoble –FRANCE 1 Séminaire GIPSA-Lab 22 octobre 2015.
Algorithmique Boucles et Itérations
Chap. 3 Récursion et induction. Les définitions par récurrence consistent à construire des objets finis, à partir d'autres, selon certaines règles. Les.
Algorithmes Branch & Bound Module IAD/RP/RO Master d ’informatique Paris 6 Philippe Chrétienne.
Cycle, Cocycle, Arbre et Arborescence
Techniques d'Optimisation Master
Chapitre 3 Problèmes de Cheminement
1 UE Intro. Optimisation L3 INFO UPSud II. Programmation linéaire en variables entières (ou mixtes)
Techniques d’Optimisation Chapitre 2: Problème de flôt
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)=c u - 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 R m 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 3

Modélisation du problème (2/3) On crée l’arc u r =(p, s) fictif tel que c(u r) =+  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  {u r } Un flot f est dit compatible sur R (X, U, a, b) s’il vérifie :  u  U  { u r }, a (u) ≤ f(u) ≤b (u). Le problème du flot maximum se formule comme suit: Techniques d'Optimisation ed2c'2012 4

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: 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: u 1 =(1,2), u 2 =(1,3) u 3 =(2,3) u 4 =(3, 2) u 5 =(2,4) u 6 =(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 b)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) c)Répéter l’opération jusqu’à saturer tous les chemins du réseau

Exemple Soit le réseau suivant: 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(n 4 )

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(nm 2 ) (indép. des capacités). Algorithme de Push-Relabel

Algorithme Push-Relabel Push: Un push d’un sommet x à un sommet y signifie l’envoi d’un flot excédent de x à y. Trois conditions doivent être satisfaites: – Excès (x, y)  0 (plus de flot entrant vers y que sortant de x) – Capacité disponible de x vers y, ie, (c(x,y)-f(x,y)>0) – hauteur (x) > hauteur (y) : On ne peut seulement en voyer à des sommets inférieurs. (Haut(s)=|X| et Haut (p)=0 et s’il existe un flot positif de x vers y alors Haut(x)>Haut(y) Relabel: Doing a relabel on a node u is increasing its height until it is higher than at least one of the nodes it has available capacity to. Conditions for a relabel: – Il doit exister une raison de re marquer les sommets – Pour chaque sommet x tel que les seuls sommets disponibles only nodes we have available capacity to are higher. – When relabelling u, we set to be the lowest value such that for some v where.

Push–relabel algorithm Push–relabel algorithms in general have the following layout: As long as there is legal push or relabel operation – Perform a legal push, or – a legal relabel. Complexité temporelle en O(n 2 m). Son implémentation avec la règle FIFO de sélection de sommets est en O(n 3 ). Il est plus efficace que l'algorithme Edmonds-Karp