Rappel de théorie des graphes et introduction aux ...gstauffe/cours/MSE... · Rappel de théorie...

27
Rappel de théorie des graphes et introduction aux différents problèmes/modèles de flots MSE3211A: Flot et Routage (d’après Ahuja, R.K., T.L. Magnanti and J.B. Orlin, Prentice Hall, 1993, et d’après les notes des cours de L.A. Wolsey et F. Vanderbeck) Last update: January 12, 2011 Gautier Stauffer, MAB, Bur. A33:358, Email [email protected]

Transcript of Rappel de théorie des graphes et introduction aux ...gstauffe/cours/MSE... · Rappel de théorie...

Rappel de théorie des graphes et introductionaux différents probłèmes/modèles de flots

MSE3211A: Flot et Routage

(d’après Ahuja, R.K., T.L. Magnanti and J.B. Orlin, Prentice Hall, 1993,et d’après les notes des cours de L.A. Wolsey et F. Vanderbeck )

Last update: January 12, 2011

Gautier Stauffer, MAB, Bur. A33:358, Email [email protected]

GRAPHES: définitions

Un graphe non-orienté G est défini par un ensemble denoeuds (ou sommets) N et un ensemble d’arêtes (edges)E (i.e. paire de noeuds): i.e. G = (N, E)Un graphe orienté (digraphe) G est défini par unensemble de noeuds N et un ensemble d’arcs A (i.e. pairede noeuds orientée): i.e. G = (N, A)Pour l’arc (i , j), le noeud i est la queue (tail) et le noeud jest la tête (head) .Un noeud est incident à une arête (un arc) si ce noeudforme une des extrémités de cette arête (cet arc) etvice-versa.2 noeuds sont adjacents s’ ils sont liés par une arête (unarc).2 arêtes (arcs) sont parallèles si elles (ils) correspondentà la même paire de noeuds.

GRAPHES: définitions

Une boucle est une arête (arc) du type (i , i) pour i ∈ N

Un graphe (digraphe) est simple s’il n’a ni arêtes (arcs)parallèles, ni boucles.

Un graphe simple est complet si toute paire de noeudsdéfinit une arête.

Un sous-graphe H d’un graphe G est défini par unsous-ensemble de noeuds N(H) ⊆ N(G) et unsous-ensemble d’arêtes E(H) ⊆ E(G) (d’arcsA(H) ⊆ A(G)) incidentes à ces noeuds.

Un sous-graphe H est induit par N(H) siE(H) = E(G(N(H))).

GRAPHES: définitions

Un sous-graphe H forme un recouvrement (spanning)des noeuds du graphe G si N(H) = N(G).

Un parcours (walk) P dans un graphe (resp. digraphe) estun sous-graphe formé par une séquence de noeudsi1, i2, . . . , in et les arêtes associées: (ik , ik+1) ou(ik+1, ik ) ∈ E(P) (resp. ∈ A(P)) pour k = 1, . . . , n.

Un parcours orienté (directed walk) P dans un digrapheest un sous-graphe formé par une séquence de noeudsi0, i1, . . . , in et les arcs associés:(ik−1, ik ) ∈ A(P) pour k = 1, . . . , n

Un chemin est un parcours simple, c-à-d un parcoursdans lequel aucun noeud n’est répété: tous les noeuds dela séquence i0, i1, . . . , in sont distincts. Un chemin orienté. . .

GRAPHES: définitions

Un cycle est un chemin i0, i1, . . . , in augmenté d’une arête(in, i0). Un cycle orienté . . .

Un graphe est dit acyclique s’il ne contient pas de cycleorienté .

Deux noeuds d’un graphe sont connectés s’il existe aumoins un chemin entre ces 2 noeuds.

Un graphe est connexe s’il existe au moins un cheminentre chaque paire de noeuds.

S’il existe un parcours entre deux noeuds, alors il existe unchemin entre ces deux noeuds.

Un graphe est strictement connexe s’il existe au moinsun chemin orienté entre chaque paire de noeuds.

GRAPHES: définitions

Une coupe dans un graphe est définie par une partition del’ensemble des noeuds: N = S ∪ (N \ S). Les arêtes (arcs)de cette coupe, qu’on note [S, N \ S], sont celles qui ontleurs extrémités dans S et N \ S respectivement.NOTATION: δ(S) = ensemble des arêtes (arcs) ayant uneextrémité (resp. leur origine) dans S

Un arbre T est un (sous-)graphe connexe ne présentantpas de cyclesPROPRIÉTÉS:

|E(T )| = |N(T )| − 1∃ un chemin unique entre chaque paire de noeuds.admet au moins deux noeuds de degrés 1.

GRAPHES: définitions

Une forêt est un (sous-)graphe ne présentant pas decycles (il existe au plus un chemin entre chaque paire denoeuds.) Une forêt est une collection d’arbres .

Un arbre est dit enraciné (rooted) au noeud i ∈ N(T ) sile noeud i a été désigné comme le noeud racine de l’arbreT .

Un graphe G(N, A) est biparti si N = N1 ∪ N2 avecN1 ∩ N2 = ∅ et A ⊆ (N1 × N2) ∪ (N2 × N1). (PROPRIÉTÉ:chaque cycle est pair)

RÉSEAUX (Network): définitions

Un réseau est un graphe augmenté de valeursnumériques associées aux noeuds et aux arêtes (arcs):

4

1

2

3

5

6

4

62 11

2

23

7

bi ∀i ∈ N demande si bi < 0, offre (production) si bi > 0

ci j ∀(i , j) ∈ A coût unitaire pour traverser (i , j) (≤ C)

ui j ∀(i , j) ∈ A flot maximum sur (i , j) (≤ U)

li j ∀(i , j) ∈ A flot minimum sur (i , j) (≤ L)

Algorithmes et Complexité

Un algorithme est une procédure pas à pas pour résoudreun problème. Pour comparer la performance de nosalgorithmes, on s’interessera essentiellement au temps decalcul i.e. le nombre d’opérations ‘élémentaires’Notation grand O : pour éviter de rentrer dans les détailsde certaines opérations, on dira qu’on algorithme est enO(f (n)) si ∃c, n0 tell que le temps pris par l’algorithmedans le pire des cas est plus petit ou égal à c · f (n) pourtout n ≥ n0.Un algorithme est polynomial si le temps d’exécution peutêtre borné par une fonction polynomiale en la taille duproblème e.g. trouver la plus petite arête dans un graphepeut se faire en O(m) où m est le nombre d’arêtes.Pour les graphes, un algorithme est polynomial sipolynomial en n, m, log C, log U, log L.

MODÈLES DE FLOT DANS DES RÉSEAUX

RÉSEAU NOEUDS ARCS FLOTÉlectrique stations de géné. lignes élec. électricitéTéléphone sta. de contrôle câble communicationsWeb serveurs câbles bitsUsine machines tapis roulant produitsRoutier carrefours rue véhicules, biens

PROBLÈMES DE BASE

Problème du plus court chemin: Trouver la meilleure façon de traverserun réseau (moins coûteuse, plus rapide, plus sûre)→ OPTIMISATION.

Problème de flot maximum: Envoyer autant de flot que possible autravers d’un réseau, en respectant les capacités des arcs→RÉALISABILITÉ.

Problème de flot de coût minimum: envoyer des flots au travers unréseau pour satisfaire les demandes aux noeuds de destination à partirdes approvisionnements des noeuds sources en respectant lescapacités des arcs et en minimisant les coûts associés→RÉALISABILITÉ et OPTIMISATION.

PROBLÈME DU PLUS COURT CHEMIN

Dans un réseau orienté avec des arcs de longueur connue,trouver un chemin de longueur minimale entre deux noeudsdonnés: la source s et le puits t.

APPLICATIONSroute de longueur minimale dans un réseau routier;routage le plus sûr dans un réseau télécom.

DONNÉESun graphe orienté G = (N, A) connexe;le noeud source s et le puits t ∈ N;un coût ci j pour chaque arc (i , j) ∈ A.

4

1

2

3

5

6

4

62 11

2

23

7

PROBLÈME DU PLUS COURT CHEMIN

VARIANTES

Plus court chemin de s vers tous les autres noeuds.

Plus court chemin entre chaque paire de noeuds.

4

1

2

3

5

6

4

62 11

2

23

7

FORMULATION

VARIABLES:

xi j =

{

1 si on choisit l’ arc (i , j)0 sinon

CONTRAINTES:

j∈N

xi j −∑

j∈N

xj i =

+1 i = s0 i 6= s, t

−1 i = t(1)

xi j ∈ {0, 1} pour tout (i , j)

OBJECTIF: min∑

(i ,j)∈A ci j xi j

HYPOTHÈSE :PAS DE CYCLE DE COÛT NÉGATIFPROPRIÉTÉ La relaxation linéaire a une solution entière.

CYCLES DE COÛT NÉGATIF

Le problème qu’ils posent

1

2

−5

Cas particuliersarcs à coût positifgraphe sans cycle

graphe en couchesordre topologique

Cas généralDétecter la présence d’un cycle de coût négatif (facile).Si ∃, il est difficile de trouver un plus court chemin.(reduction au problème du plus long chemin)

PROBLÈME DE FLOT MAXIMUM

Dans un réseau orienté avec des capacités sur les arcs,envoyer autant de flot que possible entre un noeud source s etun noeud puits t, sans excéder les capacités.APPLICATIONSmaximiser le flux (flot par unité de temps) dans un “pipeline”;trafic maximum dans un réseau routier, de télécom.DONNÉES

Un graphe orienté G = (N, A) avec les noeuds s & t ;

Une capacité 0 ≤ ui j ≤ U entier, pour chaque arc (i , j).

2

3

vv

10 7

1

6 10

ts

PROBLÈME DE FLOT MAXIMUM

FORMULATION

max v

s.a.

j∈N

xi j −∑

j∈N

xj i =

v pour i = s0 pour i 6= s, t

−v pour i = t

0 ≤ xi j ≤ ui j pour tout (i , j) ∈ A

NB: La programmation linéaire résoud le programme linéaireen nombres entiers (losrque les capacites sont entières)

PROBLÈME DE FLOT À COÛT MINIMUM

Établir un flot de coût minimal qui satisfasse à toutes lesdemandes aux noeuds puits à partir des approvisionnementsaux noeuds sources, tout en respectant les capacités des arcs.DONNÉES: un réseaux, c-à-d

un graphe orienté G = (N, A) augmenté de

émissions

bi > 0 aux noeuds sourcebi = 0 aux noeuds de transitbi < 0 aux noeuds de demande

∀i ∈ N

coût ci j pour tout arc (i , j) ∈ A.

capacité (borne supérieure) ui j pour tout (i , j) ∈ A.

flot minimal (borne inférieure) li j pour tout (i , j) ∈ A.

PROBLÈME DE FLOT À COÛT MINIMUM

FORMULATION (LP résoud le IP):Variables de décision:xi j = flot au travers de l’arc (i , j)

Contraintes:∑

j :(i ,j)∈A

xi j −∑

j :(j ,i)∈A

xj i = bi ∀i ∈ N

li j ≤ xi j ≤ ui j ∀(i , j) ∈ A

Objectif:

min∑

(i ,j)∈A

ci j xi j

CAS PARTICULIERS

Problème du plus court chemin:

li j = 0, ui j = ∞ ∀(i , j) ∈ A;

bs = −bt = 1, bi = 0 ∀ autres noeuds.

Problème de flot maximum:

ci j = 0 ∀(i , j) ∈ A

bi = 0 ∀i

ct s = −1, ut s = ∞.

CAS PARTICULIERS

Problème de transport: l’ ensemble des noeuds separtitionne en un ensemble de fournisseurs, N1, et unensemble de clients, N2:

bi > 0 ∀i ∈ N1

bj < 0 ∀j ∈ N2

et tout arc va d’un fournisseur à un client:

∀(i , j) ∈ A : i ∈ N1, j ∈ N2

(le graphe est BIPARTI).Exemples:transport de matières premières, de produits finis vers lesentrepôts, des entrepôts vers les magasins; transport depersonnes.

CAS PARTICULIERS

Problème d’affectation: le graphe est biparti (comme pourles problèmes de transport) et de plus:

bi = 1 ∀i ∈ N1, bj = −1 ∀j ∈ N2

ui j = 1 ∀(i , j) ∈ A, |N1| = |N2|

Exemples:Affectation de travailleurs aux tâchesAffectation de tâches aux machines.Problème de circulation: tous les noeuds sont des noeudsde transit: pas de production, pas de demandes: bi = 0 ∀iLe flot est induit par les bornes inférieures.

li j > 0 pour certains arcs (i , j)

Exemple: l’affectation du personnel naviguant dans unecompagnie aérienne.

GÉNÉRALISATION:

Problèmes de flot à coûts convexes: considèrent unefonction coût plus générale que la fonction linéaire

Coût ≡∑

(i ,j)∈A

ci j xi j

Si on fait l’hypothèse de coût définit comme une fonctionconvexe du flot dans l’arc Coût ≡

(i ,j)∈A c(xi j) oùc(x) :→ est une fonction convexe , on garde beaucoupdes “bonnes propriétés” qui rendent les problèmes de flotrelativement facile. Beaucoup d’application peuvent êtremodéliser comme un problème de flot avec coûts convexe.Exemples:Coût représentant la perte de puissance électrique due àla résistance, congestion dans un réseaux urbain.

GÉNÉRALISATION:

Problèmes de flot généralisé: Le flot à la sortie d’un arcn’est pas nécessairement le même que le flot à l’entrée:l’arc peut consommer ou produire du flot .

ixi j µi j xi j

−−−−−−−−−→ j

arc à perte: 0 < µi j < 1arc à gain: 1 < µi j < ∞Exemples:pertes dans réseau électrique ou réseau d’eau, transportde biens périssables, flot financier.

GÉNÉRALISATION:

Problèmes multi-flot: Plusieurs flots de types différentsse partagent la capacité d’un réseau.Ces flots se distinguent

soit par le fait qu’ils représentent des entités différentes(p.e. produits distincts dans un atelier de fabrication)soit simplement par leur origine et /ou destination

Problème:partitionner la capacités des arcs entres les 6= flotsExemples:transport de biens distincts, réseau urbain, traffic télécom,sacs de courrier

FLOT SUR ARCS ↔ FLOT SUR CHEMINS/CYCLES

Etant donné un réseau R = (G, l , u, b), un flot est une solutionréalisable pour le système suivant :

j :(i ,j)∈A

xi j −∑

j :(j ,i)∈A

xj i = bi ∀i ∈ N

li j ≤ xi j ≤ ui j ∀(i , j) ∈ A

où xi ,j représente le flot au travers de l’arc (i , j)

4

3

02

6

3

2

4

3

2

3 5

4

1 6+7 -7

2

3 5

4

1 6

3 units

4 units

2 units

+7 -7

Algorithme de DÉCOMPOSITION DES FLOTS

Il est trivial de passer d’une représentation sur les chemin et cycles à unereprésentation sur les arcs. Dans l’autre direction, on peut utiliser l’algorithme suivant :

Supposons qu’il existe i0 un noeud avec un déficit de flot. Il doit alors y avoir un

arc (i1, i0) portant un flot strictement positif.si i1 est un noeud avec exces de flot, on s’arrêtesinon le bilan au noeud nous indique qu’il y a un arc (i2, i1) qui porte du flot

on repète jusqu’à ce qu’on trouve un noeud en exces ou qu’on revisite un

sommet (au plus n fois)Si on a trouvé un chemin P de ik à i0, on fait passer autant de flot quepossible sur ce chemin: f (P) = min{b(i0),−b(ik ), min{xij : (i , j) ∈ P}} eton mémorise P et le f (P).si on a trouvé un cycle W , on fait passer autant de flot que possible sur cecycle : f (W ) = min{xij : (i , j) ∈ W}}.

On soustrait de x le flot sur P ou sur W : xij := xij − f (P) pour tout (i , j) ∈ P ouxij := xij − f (W ) pour tout (i , j) et on réitère.

Une fois tous les noeuds avec un exces/deficit = 0, on applique le mêmeraisonnement sur les arcs portant du flot. Si un tel arc (i1, i0) existe, ce flot doitarriver en i1 et on itère comme précédemment pour détecter un cycle W . Onsoustrait de x le flot sur W et on répète la procédure tant qu’il existe des arcsporteurs de flot.

THÉORÈME DE DÉCOMPOSITION D’UN FLOT

Considérons un digraphe G(N, A) avec |N| = n et |A| = m.

TheoremTout flot qui est défini en terme de flot sur des chemins et le long de cycles aune représentation unique en terme de flot sur des arcs. Inversement , toutflot qui est défini en terme de flot sur des arcs peut être représenté commeun flot sur des chemins et le long de cycles (bien que cette représentation nesoit pas unique) avec les propriétés suivantes:(i) Tout chemin portant un flot positif va d’un noeud source à un noeud puits.(ii) Il y a au plus m + n chemins et cycles portant un flot positif; et au plus md’entre eux sont des cycles.

Un flot de circulation peut être représenté comme des flots lelong de, au plus, m cycles.