Optimisation dans les réseaux GC-SIE Graphes et flots 1
Graphes Un graphe orienté G=(N,A) consiste en un ensemble de N nœudsnet un ensemble de A arcs A. On supposera 1 N < et 0 A < il existe un seul arc reliant deux nœuds dans une même direction Un arc (i,j) sera considéré comme une paire ordonnée. (i,j) est donc différent de (j,i). Graphes et flots Michel Bierlaire Définitions Si (i,j) est un arc, on dira que (i,j) est un arc sortantde i (i,j) est un arc entrantdans j (i,j) est incidentà i et à j i est le prédécesseurde j j est le successeurde i Le degrédu nœud i est le nombre d arcs qui lui sont incidents. Un graphe est complets il y a un arc entre chaque paire de nœuds. Graphes et flots Michel Bierlaire 4 2
Chemins Nous utiliserons principalement des graphes orientés, et omettrons souvent l adjectif orienté. Un cheminp est une suite de nœuds (n 1,n 2,,n k ), k > 1, et la suite correspondante de k-1 arcs tels que le i ième arc de la suite est soit (n i,n i+1 ) : arc avançant (n i+1,n i ) : arc reculant n 1 est l origine du chemin n k est la destination du chemin Graphes et flots Michel Bierlaire 5 Chemins P + est l ensemble des arcs avançant de P P - est l ensemble des arcs reculant de P Un cycleest un chemin dont l origine est identique à la destination n 1 =n k Un chemin est simplelorsqu il ne contient pas d arcs ni de nœuds répétés, exceptés éventuellement n 1 et n k Un chemin est avançantsi tous ses arcs le sont. Un chemin est reculantsi tous ses arcs le sont. Graphes et flots Michel Bierlaire 6
Chemins Un cycle Hamiltonienest un cycle simple avançant contenant tous les nœuds du graphe. Attention: la suite de nœuds n est pas toujours suffisante pour décrire le chemin. 1 2 4 5 Nœuds (1,2,,4,5) Arcs ((1,2),(,2),(,4),(4,5)) Graphes et flots Michel Bierlaire 7 Flots Notation : x ij = flot sur arc (i,j) IR Si x ij < 0, le flot est orienté dans le sens contraire à l arc. L ensemble {x ij t.q. (i,j) A} est appelé vecteur de flots A chaque vecteur de flots x est associé un vecteur de divergencey IR N Graphes et flots Michel Bierlaire 8 4
Flots Pour tout i N, y i = flot total sortant flot total entrant Graphes et flots Michel Bierlaire 9 Flots Un nœud i est une sourcesi y i > 0 Un nœud i est un puitssi y i < 0 Un vecteur de flots x est une circulationsi y i =0 pour touti N On a toujours Graphes et flots Michel Bierlaire 10 5
Flots puits y 2 = -2 2 x 12 =1 x 24 =-2 y 1 = 1 1 x 2 =1 x 2 =0 4 y 4 = 0 sources x 1 =0 y = 1 x 4 =2 Graphes et flots Michel Bierlaire 11 Flots Circulation x 12 =1 y 2 = 0 2 x 24 =-1 y 1 = 0 1 x 2 =1 x 2 =-1 4 y 4 = 0 x 1 =-1 x 4 =1 Graphes et flots Michel Bierlaire 12 y = 0 6
Flots Contraintes de borne b ij x ij c ij (i,j) A Un chemin P est non bloqué par rapport à xsi x ij < c ij (i,j) P + x ij > b ij (i,j) P Idée: on ne peut plus envoyer de flot sur un chemin bloqué sans violer une contrainte. Graphes et flots Michel Bierlaire 1 Flots -2 x ij 2 (i,j) A y 2 = -2 2 x 12 =1 x 24 =-2 y 1 = 1 1 x 2 =1 x 2 =0 4 y 4 = 0 x 1 =0 (1,2,4) non bloqué (4,2,1) bloqué y = 1 x 4 =2 Graphes et flots Michel Bierlaire 14 7
Flots et chemins Un flot de chemin simpleest un vecteur de flot qui correspond à l envoi d une quantité positive ade flot le long d un chemin simple. Graphes et flots Michel Bierlaire 15 Flots et chemins 2 1 x12 =1 x 24 =-2 1 x 2 =1 x 2 =0 4 x 1 =0 x 4 =2 Graphes et flots Michel Bierlaire 16 8
Flots et chemins 2 x 12 =1 x 24 =-2-1 1 x 2 =1 x 2 =0 4 x 1 =0 1 x 4 =2 Graphes et flots Michel Bierlaire 17 Flots et chemins 2 x 12 =1 x 24 =-2-1 1 x 2 =11 x 2 =0 4 1 x 1 =0 x 4 =2 Graphes et flots Michel Bierlaire 18 9
Flots et chemins On aimerait décomposer un vecteur de flots en la somme de flots de chemins simples. Un chemin P est conformeà un vecteur de flots x si x ij > 0 (i,j) P + x ij < 0 (i,j) P P est un cycle ou P relie une source à un puits. Un flot de chemin simple x s est conformeà x si le chemin correspondant l est. Graphes et flots Michel Bierlaire 19 Flots et chemins y 2 = -2 2 1 y 1 = 1 1 4 y 4 = 0 y = 1 Graphes et flots Michel Bierlaire 20 10
Flots et chemins y 2 = -2 2-1 y 1 = 1 1 4 y 4 = 0 y = 1 1 Graphes et flots Michel Bierlaire 21 Flots et chemins y 2 = -2 2-1 y 1 = 1 1 1 4 y 4 = 0 y = 1 1 Graphes et flots Michel Bierlaire 22 11
Flots et chemins y 2 = -2 2 x 12 =1 x 24 =-2 y 1 = 1 1 x 2 =1 x 2 =0 4 y 4 = 0 x 1 =0 y = 1 x 4 =2 Graphes et flots Michel Bierlaire 2 Flots et chemins Théorème de décomposition conforme : Un vecteur de flots non nul peut être décomposé en la somme de t vecteurs de flots de chemin simple x 1, x 2,, x t, tous conformes à x. Si x est entier, on peut choisir x 1, x 2,, x t entiers également Si x est une circulation, on peut choisir x 1, x 2,, x t flots de cycle simple Graphes et flots Michel Bierlaire 24 12
Le problème de transbordement Énoncé Une entreprise doit transporter ses produits de ses usines (lieux de production) vers ses clients. Elle désire minimiser ses coûts. Elle doit se plier aux contraintes de capacité du système de transport. Elle peut éventuellement transborder les marchandises en tout nœud du réseau. Graphes et flots Michel Bierlaire 26 1
Énoncé Trouver un vecteur de flots qui minimise une fonction de coût (linéaire), qui produise un vecteur de divergence donné, qui vérifie les contraintes de capacité. Graphes et flots Michel Bierlaire 27 Énoncé Données : coefficients de coût : a ij capacités inférieures : b ij capacités supérieures : c ij divergences : s i Si s i > 0 alors s i est l offreen i, c-à-d ce qui est produit par l usine située en i Si s i < 0 alors s i est la demandeen i, c-à-d ce qui est réclamé par le client situé en i. Graphes et flots Michel Bierlaire 28 14
Énoncé sous contraintes Graphes et flots Michel Bierlaire 29 Contraintes contraintes d offre/demande contraintes de conservation des flots contraintes de capacité Graphes et flots Michel Bierlaire 0 15
Problème du plus court chemin Le problème du plus court chemin consiste à déterminer le chemin de coût minimum reliant un nœud αà un nœud β. On peut le voir comme un problème de transbordement. On envoie une unité de flot de αà β. Graphes et flots Michel Bierlaire 1 Problème du plus court chemin Données : coefficients de coût : a ij capacités inférieures : 0 capacités supérieures : + divergences : s α = 1 s β = -1 s i = 0 si i αet i β Graphes et flots Michel Bierlaire 2 16
Problème d affectation Je possède 4 chefs-d œuvre que je désire vendre. 4 acheteurs se présentent, et me font les propositions suivantes (en milliers de $) Van Gogh Renoir Monet Bierlaire Christie s 8000 11000 - - Drouot 9000 1000 12000 - COOP 9000-11000 0.01 Metropolitan - 14000 12000 - Graphes et flots Michel Bierlaire Problème d affectation Je désire vendre exactement une peinture à chaque acheteur. Quelle peinture dois-je vendre à quel acheteur pour gagner un maximum? On peut le voir comme un problème de transbordement. Représentation en réseau. Graphes et flots Michel Bierlaire 4 17
Problème d affectation Van Gogh Christies Renoir Drouot Monet COOP Bierlaire Metro Graphes et flots Michel Bierlaire 5 Problème d affectation Données : coefficients de coût : -a ij a ij = prix proposé par acheteur j pour peinture i. capacités inférieures : 0 capacités supérieures : 1 divergences : s i = 1 si i représente une peinture (offre) s i = -1si i représente un acheteur (demande) Graphes et flots Michel Bierlaire 6 18
Problème de flot maximal Une société pétrolière désire envoyer un maximum de pétrole via un réseau de pipelines entre un lieu α et un lieu β. Combien de litres par heure pourra-t-elle faire passer par le réseau? Les capacités des pipelines (en kilolitres/heure) sont indiquées sur les arcs. Graphes et flots Michel Bierlaire 7 Problème de flot maximal 4 1 2 2 α 1 2 β Graphes et flots Michel Bierlaire 8 19
Problème de flot maximal On peut le voir comme un problème de transbordement. Il faut ajouter un arc artificiel. Idée: chaque unité de flot qui a réussi à passer à travers le réseau est ramenée artificiellement à α, en rapportant des bénéfices (coût négatif). Graphes et flots Michel Bierlaire 9 Problème de flot maximal 4 1 2 2 α 1 2 β Graphes et flots Michel Bierlaire 40 20
Problème de flot maximal Données : coefficients de coût : 0 pour les arcs «réels» -1 pour l arc artificiel capacités inférieures : b ij (souvent 0) capacités supérieures : c ij divergences : s i = 0 pour tout i on désire une circulation Graphes et flots Michel Bierlaire 41 Problème de transport Une société électrique possède trois générateurs pour fournir 4 villes en électricité. Les générateurs produisent resp. 5, 50 et 40 MKWh. Les villes consomment resp. 45, 20, 0 et 0 MKWh. Les coûts de transport d un MKWh d un générateur à une ville sont repris dans le tableau suivant. Graphes et flots Michel Bierlaire 42 21
Problème de transport Ville 1 Ville 2 Ville Ville 4 Gén. 1 8 6 10 9 Gén. 2 9 12 1 7 Gén. 14 9 16 5 Comment approvisionner les villes à moindre coût? Représentation en réseau. Graphes et flots Michel Bierlaire 4 Problème de transport Gén. 1 5 45 Ville 1 Gén. 2 50 20 Ville 2 Gén. 40 0 Ville 0 Ville 4 Graphes et flots Michel Bierlaire 44 22
Problème de transport Données : coefficients de coût : a ij a ij = prix entre gén. i et ville j capacités inférieures : 0 capacités supérieures : + divergences : s i = capacité de production si i = générateur s i = -demande si i = ville Graphes et flots Michel Bierlaire 45 2