78
1 TRANSFERT, RESEAUX, GRAPHES Flots et coupes Marie-Christine Costa ENSTA Paris-Tech TIPE 2014

TRANSFERT, RESEAUX, GRAPHES Flots et coupes

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

1

TRANSFERT, RESEAUX, GRAPHES

Flots et coupes

Marie-Christine Costa

ENSTA Paris-Tech TIPE 2014

Page 2: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

2

Conférence auprès des professerusde classes préparatoires aux

concours d’accès aux grandes écoles.

Initiation aux graphes et à la recherche opérationnelle.

Présentation mise à disposition pour utilisation éventuelle.

Page 3: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

3

TRANSFERT, RESEAUX, GRAPHES

1. Graphes et réseaux de transport

2. Le problème du flot maximal

3. Un algorithme simple (Ford-Fulkerson)

4. Flot max et coupe min (dualité)

5. Des modèles mathématiques:programmes linéaires duaux (matrices TU)

6. Application: maximisation d’une fonction pseudobooléenne négative-positive

7. Pistes d'approfondissement

8. Bibliographie

Page 4: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

Qu’est-ce qu’un graphe ?

« Des points et des traits ou des flèches »

• Point de vue mathématique : une relation binaire

• Point de vue pratique : représentation abstraited’un réseau (de télécommunication par exemple)

Les graphes, un outil magique, pour visualiser deséchanges, pour la modélisation des systèmes réels, ou…pour jouer.

Les graphes sont utilisés dans des domaines très variés :économie, informatique, industrie, chimie, sociologie.

1. Graphes et réseaux de transport

Page 5: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

55

e b

hd

a

c

f

Un graphe orienté G=(X,U)=(X,Γ)

X: { sommets}

(ounœuds)

U: { arcs}Γ+:X→P(X)

applicationmultivoque« successeur»

X={a,b,c,d,e,f,h}

U={ (a,c),(a,d),(b,h),…,(f,e),(f,h)}

Γ+(e)={a,b,c} Γ-(e)={c,f} ( Γ- : prédécesseur)

Page 6: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

66

e b

hd

a

c

f

Un graphe orientéChemin: suite d'arcs telle que l'extrémité terminale d'un arc coïncide avec l'extrémité initiale de l'arc suivant

Exemple

µ=((a,c),(c,e),(e,b),(b,h))=(a,c,e,b,h)

Page 7: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

77

e b

hd

a

c

f

Un graphe orienté Chaîne: suite d'arcs telle que tout arc a une extrémité commune avec l'arc précédent (sauf éventuellement le premier) et l'autre avec l'arc suivant (sauf éventuellement le dernier)

Exemple

µ’=((a,c),(f,c),(f,h)) = [a,c,f,h]

Remarque: un chemin est une chaîne.

Page 8: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

88

Réseau de transport

Graphe R=(X,U,C) orienté dans lequel1. Il existe une sources tel que Γ-(s)=∅2. Il existe un puits t tel que Γ+(t)=∅3. On associe à chaque arc u=(i,j) de U une capacitécij ≥0

4. Sur ce réseau, on trace un arc (fictif) de t à s (arc de retour)

Page 9: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

99

a

t

fd

sc

b

Un réseau de transportR=(X,U,C)

e

[4]

[2] [4]

[6]

[6][4] [4]

[6]

[2][3][7]

[1]

[2]

[2]

source puitscapacités

capacités

Page 10: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

1010

a

t

fd

sc

b

Un réseau de transportR=(X,U,C)

e

[4]

[2] [4]

[6]

[6][4] [4]

[6]

[2][3][7]

[1]

[2]

[2]

« Arc de retour » fictif (de très grande capacité)

Page 11: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

11

2. Le problème du flot maximal

Comment transférer une quantité maximale de « matière » de s à t sans dépasser la capacité de chaque arc ?

Page 12: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

12

Le problème du flot maximal

Page 13: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

13

Un réseau de distribution de l’eau

Page 14: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

14

Page 15: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

15

Capacité du château d’eau

[b][a]

Capacité des canalisations

[x]

[x]

[x]

[x]

[x]

[x]

s

[x]

[x]

Page 16: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

16

Capacité du château d’eau

[b][a]

Capacité des canalisations

[x]

[x]

[x]

[x]

[x]

[x]

s

[x]

[x]

[d4][d3] [d5][d2] [d6][d1]

t

demandes

Page 17: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

17

Le problème du flot maximal

• Comment transférer une quantité maximale de« matière » de s à t sans dépasser la capacité de chaque arc ?

• Hypothèses:

– On peut décomposer/recomposer la matière transférée en chaque nœud.

– Il y a conservation de la matière en chaque nœud.

Page 18: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

1818

a

t

fd

sc

b

Un réseau de transport

flux sur un arc

e

[4]

[2] [4]

[6]

[6][4] [4]

[6]

[2][3][7]

[1]

[2]

[2]

22

2

2

Page 19: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

1919

y

x

u

z

Décomposition/recomposition des flux

v

[6]

[7]

[4]

[6]

[4]

35

2

4

5

[2] 1

ϕij désigne le flux sur l’arc (i, j), qui correspond à la quantité de « matière » circulant sur l’arc.

w

t

Page 20: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

2020

Flot des à t sur un réseau de transport

� Le vecteur ϕ = (ϕij )(i,j)∈U∪(t,s) est appelé flot sur R.

� Les flux sur R doivent vérifier lacontrainte de capacité: 0 ≤ ϕij ≤ cij

� Lorsqueϕij = cij , l’arc (i, j) est dit saturé.

� Les flux sur R doivent également respecter la loi de conservation(≈loi de Kirchhoff en électricité 1845) :

∀� ∈ �, ∑ �∈�� = ∑ �∈��

Page 21: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

2121

Flot sur un réseau de transport

• La loi de conservation est également vérifiéeens et t grâce à l’adjonction de l’arc de retour.

• Un flot ϕ est ditréalisable (ou admissibleoucompatible) si et seulement si :– il respecte les contraintes de capacité sur chaque arc– Il respecte la loi de conservation en chaque sommet

• Un flot ϕ est dit complet si et seulement sitout chemin des à t comporte au moins un arcsaturé.

Page 22: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

2222

a

t

fd

sc

b

Un réseau de transport

e

[4]

[2] [4]

[6]

[6][3] [4]

[6]

[2][3][7]

[1]

[2]

[2]

44

4

4

Page 23: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

2323

a

t

fd

sc

b

Un réseau de transport

e

[4]

[2] [4]

[6]

[6][3] [4]

[6]

[2][3][7]

[1]

[2]

[2]

44

4

11

1

4+1

Page 24: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

2424

a

t

fd

sc

b

Un réseau de transport

e

[4]

[2] [4]

[6]

[6][3] [4]

[6]

[2][3][7]

[1]

[2]

[2]

44

4

11

1

2

22

Le flot est

complet et

v(ϕ)=7

4+1+2

Page 25: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

2525

Chaîne améliorante

µ est une chaîne améliorante (ouaugmentante) des à t pour un flotϕ admissibledonné si :

– ϕij < cij pour tout arc (i, j) de µ dans le "bonsens" (des verst)

– ϕij > 0 pour tout arc (i, j) de µ dans le "mauvais sens" (de t vers s)

Page 26: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

2626

a

t

fd

sc

b

Chaîne améliorante

e

[4]

[2] [4]

[6]

[6][3] [4]

[6]

[2][3][7]

[1]

[2]

[2]

4

44

11

1

2

2

2

+

+

-

+

+

Amélioration de: min (2-1,6-0,4, 3,4-1)=1

Page 27: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

2727

a

t

fd

sc

b

Chaîne améliorante

e

[4]

[2] [4]

[6]

[6][3] [4]

[6]

[2][3][7]

[1]

[2]

[2]

4

44

11

1

2

2

2

+1

+1

-1

+1

+1

7 +1

v(ϕ)=8

Page 28: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

2828

a

t

fd

sc

b

Chaîne améliorante

e

[4]

[2] [4]

[6]

[6][3] [4]

[6]

[2][3][7]

[1]

[2]

[2]

3

44

21

2

2

2

2

11

8

v(ϕ)=8

Page 29: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

2929

Chaîne améliorante

• On note :– µ + = {arcs de µ dans le bon sens}

– µ - = {arcs de µ dans le mauvais sens}

• Augmentation de la valeur du flot de α :

α=min [min(i,j)∈µ+(cij-ϕij) , min(i,j)∈µ- ϕij]

• Dansµ + : on augmente les flux de α• Dansµ - : on diminue les flux de α

Page 30: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

30

3. Un algorithme simple (Ford-Fulkerson)

Idées de l’algorithme FF de recherche d’un flot maximal:

• Trouver un flot initial (complet)

• Tant que c’est possible:

• chercher une chaîne améliorante

• améliorer le flot le long de cette chaîne

• Il n’y a plus de chaîne améliorante: le flot ainsi obtenuest optimal . (preuve plus loin)

Page 31: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

31

L’algorithme de Ford-Fulkerson: une procédure de marquage

1. Établir, au jugé, un flot admissible, si possible complet

2. Marquer s d’un +, puis, au fur et à mesure, marquer :a) L’extrémité terminale j de tout arc (i, j) non saturé tel que i est

marqué (on marque ‘+i ’ le sommet j ), puis quand ces marquages sont achevés,

b) L’extrémité initiale i de tout arc (i, j) de flux non nul tel que j

est marqué (on marque ‘-j ’ le sommet i).

c) Retour en a) jusqu’à ce que :i. Le marquage ne peut se poursuivre et on n’a pas pu marquer t : le flot

maximal a alors été trouvé : STOP

ii. Ou bien on a marqué t : choisir une chaîne améliorante, augmenter le flux le long de cette chaîne et retour en 2.

Page 32: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

3232

a

t

fd

sc

b

Chaîne améliorante

e

[4]

[2] [4]

[6]

[6][3] [4]

[6]

[2][3][7]

[1]

[2]

[2]

3

44

21

2

2

2

2

11

+

+s

+e

+a

-b +c

+d

8

v(ϕ)=8

Page 33: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

3333

a

t

fd

sc

b

Chaîne améliorante

e

[4]

[2] [4]

[6]

[6][4]

[6]

[2][3][7]

[1]

[2]

[2]

3

44

21

2

2

2

2

11

+

+s

+e

+a

-b +c

+d

Améliorationde +2 le longde la chaîne

[3]

µ s d c b a e t5 3 5 3 2+ + -+ +

2+

Page 34: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

3434

a

t

fd

sc

b

Chaîne améliorante

e

[4]

[2] [4]

[6]

[6][4]

[6]

[2][3][7]

[1]

[2]

[2]

3

44

21

2

2

2

2

11

+

+s

+e

+a

-b +c

+d

Améliorationde +2 le longde la chaîne

+2

+2

-2

+2

+2

+2

8 +2

[3]

v(ϕ)=10

Page 35: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

3535

a

t

fd

sc

b

e

[4]

[2] [4]

[6]

[6][3] [4]

[6]

[2][3][7]

[1]

[2]

[2]

1

44

21

4

4

2

2

33

2

10

v(ϕ)=10

Page 36: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

a

t

d

sc

b

e

[4]

[2] [4]

[6]

[6]

f

[3] [4]

[6]

[2][3][7]

[1]

[2]

[2]

1

44

21

4

4

2

2

33

2+

+s

-b +c

+d

t non marqué: flot maximal

v(ϕ* )=10

10

Page 37: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

37

4. Flot maximal et coupe minimalePreuve de l’algorithme

Comment séparer la sources du puits t ensupprimant un ensemble d’arcs de valeur totaleminimale ?

« Séparer » veut dire qu’il n’existe plus dechemin des à t après la suppression des arcs.

Remarque: les valeurs sur les arcs peuvent être des capacités, des coûts, des poids,…

Page 38: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

38

Une coupe(S, T) est une partition de X en deux sous-ensembles Set T t.q. s ∈ Set t ∈ T

On note : ω -(T) = {arcs entrant dans T} = {( i, j) ∈ U t.q. i ∈ Set j ∈T}ω +(T)= {arcs sortant de T} = {( i, j) ∈ U t.q. i ∈ T et j ∈ S}

Par définition: (t,s)∉ ω+(T)

Soit (S, T) une coupe. La capacitéc(S, T) de la coupe est définie par :

� �, � = � �, ��(�)

Page 39: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

3939

a

t

fd

sc

b

Coupe et réseau de transport

Exemple

Une coupe de valeur 15

e

[4]

[2] [4]

[6]

[6][3] [4]

[6]

[2][3]

[7]

[1]

[2]

[2]

C=ω -(T)={(b,t),(a,e),(c,e),(s,d)}

S={s,a,b,c}

T={t,d,e,f}

Page 40: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

40

Flot / coupe

Propriété : Soit R=(X,U) un réseau de transport.

∀ ϕ flot admissible sur R, ∀ (S,T) coupe de R on a :

v(ϕ) ≤ c(S,T)

Preuve fondée sur la relation « flux ≤ capacité » et sur la loi

de conservation des flux.

Σ(i,j)∈ω-(T) ϕij = Σ(i,j)∈ω+(T) ϕij + ϕts et v(ϕ)=ϕts

v(ϕ) =Σ(i,j)∈ω-(T) ϕij - Σ(i,j)∈ω+(T) ϕij ≤ Σ(i,j)∈ω-(T) cij=c(S,T)

Page 41: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

a

t

d

sc

b

e

[4]

[2] [4]

[6]

[6]

f

[3] [4]

[6]

[2][3][7]

[1]

[2]

[2]

1

44

21

4

4

2

2

33

2+

+s

-b +c

+d

t non marqué: flot maximal

v(ϕ* )=10=v(C*)

Coupe minimale :sépare les sommetsmarqués/non marqués

S*={s,a,b,c,d}

T*={t,e,f}

C*={( b,t),(a,e),(c,e),(d,f)}

Page 42: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

42

Théorème (Ford-Fulkerson, 1962) :

La valeur d’un flot maximal est égale à la capacité d’une coupe minimale.

Propriété CNS d’optimalité : un flotϕ de s à t est maximalsi et seulement s’il n’existe pas de chaîne améliorante de s à t.

Théorème de Ford-Fulkerson

Page 43: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

43

Soit ϕ* le flot obtenu par l’algorithme et soitS* (resp.T*)l’ensemble des sommets marqués (resp. non marqués) à lafin de l’algorithme. (v(ϕ*)=ϕ*( t,s) et par définition: (t,s)∉ ω+(T))

• Toute coupe (S,T) et tout flotϕ vérifient: v(ϕ) ≤ c(S,T)

• La loi de conservation des flux implique:

v(ϕ∗)= Σ(i,j)∈ω-(T) ϕ∗ij -Σ(i,j)∈ω+(T) ϕ∗ij

= Σ(i,j)∈ω-(T) c* ij - 0 =c (S*,T*)

• Donc ϕ* est un flot maximal et (S*, T*) est une coupeminimale.

Preuve du théorème et de l’algorithme de Ford-Fulkerson

Page 44: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

44

Convergence de l’algorithme

Théorème des valeurs entières : Dans un réseau de transport à capacités entières, il existe un flot maximal dont tous les flux sont entiers.

Convergence de l’algorithme : Sous l’hypothèse des capacités entières, l’algorithme de Ford-Fulkersonconverge en un nombre fini d’itérations :

– La valeur du flot max est bornée par la capacité d’une coupe quelconque

– À chaque itération de l’algorithme, on augmente le flot d’une valeur α > 0 et entière

Page 45: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

45

Complexité de l’algorithme (nombre d’itérations)

Si l’on ne prend pas garde au choix de la chaîneaméliorante, on peut avoir un nombred’itérations égal à la valeur du flot maximal.

Page 46: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

46

Complexité de l’algorithme (nombre d’itérations)

Si l’on ne prend pas garde au choix de la chaîneaméliorante, on peut avoir un nombred’itérations égal à la valeur du flot maximal.

Page 47: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

47

+1+1

+1+1

+1 1

1 -11

1

1 +1

1

+1

1

+1 1+1

1+1 2

2 -11

1 2

3 4…

Page 48: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

48

Théorème : Si chaque augmentation du flot est faitesuivant une chaîne améliorante de longueur minimale,alors le flot maximal est obtenu après moins demn/2itérations, et au plusm essais de marquage à chaqueitération, soit de l’ordre dem2n/2 « opérations ».

(n=nombre de sommets ; m=nombre d’arcs)

Remarque : il existe des algorithmes plus efficaces.

Complexité de l’algorithme (nombre d’«opérations »)

Page 49: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

49

5. Des modèles mathématiques« Programmation linéaire »

U(i,j)

Xj

U(i,j)c

ij

ji jijiij

ijij

ts

∈∀≥

∈∀=−

∈∀≤

∑ ∑− +Γ∈ Γ∈

0

(2) 0

(1)

max

)( )(

ϕ

ϕϕ

ϕ

ϕ

(1) : contraintes de capacités

(2): Contraintes de conservation des flux

Page 50: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

50

Max ���� ≤ �� ≥ 0

Programme linéaire :

A: vecteurn C: vecteurm Bmatricem x n

L'ensemble des points admissibles (tels queBx ≤ C) estdéfini par un polyèdre.(on peut avoir aussi = ou≥)

Propriété

Si (P) admet une solution finie, alors le programme admetun optimumen un point extrême du polyèdre.

(P)

Page 51: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

51

Max ���� ≤ �� ≥ 0

Programme linéaire : (P)

L'optimumd'un programme linéaire en variables continues peut êtreobtenu en temps polynomial (fonction demetn).

On peut résoudre un PL avec Excel et il existe des logiciels trèsperformants, libres ou commercialisés mais gratuits pour lesacadémiques, qui traitent des problèmes ayant des dizaines demilliers de variables et contraintes en quelques minutes.

Si les variables sont entières, les problèmes sont nettement plusdifficiles à résoudre.

Page 52: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

52

U(i,j)

Xj

U(i,j)c

ij

ji jijiij

ijij

ts

∈∀≥

∈∀=−

∈∀≤

∑ ∑− +Γ∈ Γ∈

0

(2) 0

(1)

max

1

)( )(

ϕ

ϕϕ

ϕ

ϕ

Ajout de variables d’écart fictives: transformationdes inégalités en égalités.

Flot maximalUn modèle mathématique « Programme linéaire »

Page 53: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

53

Un modèle mathématique « Programme linéaire »

U(i,j)

Xj

U(i,j)c

ij

ji jijiij

ijij

ts

∈∀≥

∈∀=−

∈∀≤

∑ ∑− +Γ∈ Γ∈

0

(2) 0

(1)

max

)( )(

ϕ

ϕϕ

ϕ

ϕ

U(i,j)e

Xj

U(i,j)ce

ijij

ji jijiij

ijijij

ts

∈∀≥≥

∈∀=−

∈∀=+

∑ ∑− +Γ∈ Γ∈

0 0

(2) 0

(1)

max

)( )(

ϕ

ϕϕ

ϕ

ϕ

Page 54: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

54

Max Ax

� ≤ �� ≥ 0

Programme linéaire : (P)

Propriété

Si (P) admet une solution finie etC est entier etB esttotalement unimodulaire (TU) alors

(P) admet une solution optimale entière.

Définition: une matriceM est TUsi tout déterminant d’unesous-matrice carrée deM vaut 0, 1 ou -1.

Page 55: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

55

Programme de flot max:

Toute matrice de flot est totalement unimodulaire.

Conséquence: un logiciel de PLfournit unesolution entière (si le problème admet une solutionfinie).

U(i,j)e

Xj

U(i,j)ce

ijij

ji jijiij

ijijij

ts

∈∀≥≥

∈∀=−

∈∀=+

∑ ∑− +Γ∈ Γ∈

0 0

(2) 0

(1)

max

)( )(

ϕ

ϕϕ

ϕ

ϕ

Page 56: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

56U(i,j)e

Xj

U(i,j)ce

ijij

ji jijiij

ijijij

ts

∈∀≥≥

∈∀=−

∈∀=+

∑ ∑− +Γ∈ Γ∈

0 0

(2) 0

(1)

max

)( )(

ϕ

ϕϕ

ϕ

ϕ

Une colonne par variable eij

1 1

1 11 -1 -1-1 1 1 1

-1 1

1 -1 -1

Une colonne par variable ϕij

2 matrices identité

un 1 et un -1 par colonne

B: 0, 1 ou -1

B est T.U.

Page 57: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

57

Dualité flot/coupe

Deux nouveaux programmes mathématiques

Données: G=(X,E)

ce, e∈E capacité de l’arce (e=(i,j))

Chemins des à t numérotés de 1 àM (M peut être très grand)

pi , i=1,…,M chemin des à t

Variables:

fi , i=1,…,M fi ≥0 flot circulant sur le cheminpi

ye, e∈E ye=1 si l’arce est coupé,ye=0 sinon

Flot total: v(ϕ) = Σ i=1,…,M fi

Page 58: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

5858

a

t

fd

sc

b

e

[4]

[2] [4]

[6]

[6][3] [4]

[6]

[2][3][7]

[1]

[2]

[2]

1

44

21

4

4

2

2

33

2

v(ϕ)=10

p1=(s,a,b,t) f1=1

p2=(s,a,e,t) f2=3

p3=(s,a,e,d,f,t) f3=0

p4=(s,a,e,f,t) f4=0

p5=(s,c,b,t) f5=2

p6=(s,c,e,t) f6=0

p7=(s,d,c,b,t) f7=1

p8=(s,d,f,t) f8=2

p9=(s,d,c,e,t) f3=1

p10=(s,a,e,d,c,b,t) =

p11=(s,c,e,f,t) …

f10=f11=…=0

ybt=yae=yce=ydf=1

yij=0 pour les autres arcs.

Page 59: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

• Flot

)1(

t.q.0

ecf e

pei

i

i

∀≤∑∈

=

M

iifMax

1

Mif i ,..,1 0 =∀≥

Dualité flot/coupe

Deux nouveaux programmes mathématiques

Contraintes de capacités sur chaque arc (flot sur l’arc = somme des flots sur les chemins qui passent par cet arc)

Remarque: si ce=1, on cherche des chemins disjoints.

Page 60: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

• Coupe

)2(0

1 iyipe

e ∀≥∑∈

{ } Eeye ∈∀∈ 1,0

Contraintes de coupe(Il faut au moins un arc coupé surchaque cheminpi de s à t, donc aumoins unye qui vaut 1 sur chaquecheminpi ).

eEe

e ycMin ∑∈

Dualité flot/coupe

Deux nouveaux programmes mathématiques

60

Page 61: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

• Coupe

)2(0

1 iyipe

e ∀≥∑∈

{ } Eeye ∈∀∈ 1,0

• Flot

)1(

t.q.0

ecf e

pei

i

i

∀≤∑∈

=

M

iifMax

1

Mif i ,..,1 0 =∀≥

eEe

e ycMin ∑∈

Dualité flot/coupe

Deux nouveaux programmes mathématiques

61

Page 62: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

• Coupe

)2(0

1 iyipe

e ∀≥∑∈

• Flot

)1(

t.q.0

ecf e

pei

i

i

∀≤∑∈

=

M

iifMax

1

Mif i ,..,1 0 =∀≥

eEe

e ycMin ∑∈

Deux programmes mathématiques « duaux »

62

matrice des coef. B tB

Eeye ∈∀≤≤ 10

Page 63: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

• Coupe

)2(0

1 iyipe

e ∀≥∑∈

• Flot

)1(

t.q.0

ecf e

pei

i

i

∀≤∑∈

=

M

iifMax

1

Mif i ,..,1 0 =∀≥

eEe

e ycMin ∑∈

Deux programmes mathématiques « duaux »

63

Eeye ∈∀≤≤ 10

Page 64: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

• Coupe

)2(0

1 iyipe

e ∀≥∑∈

Eeye ∈∀≤≤ 10

• Flot

)1(

t.q.0

ecf e

pei

i

i

∀≤∑∈

=

M

iifMax

1

Mif i ,..,1 0 =∀≥

eEe

e ycMin ∑∈

B TU ⇔ tB TU

B TU⇐ tB Matrice de « chaîne »: TU

Même valeur optimale (entière) !!64

Deux PL

« duaux »

Page 65: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

65

6. Maximisation d’une fonction pseudobooléenne négative-positive

Méthode montrée sur un exemple mais généralisable àtoute fonction de ce type (et même plus, aux fonctions sur-modulaires). xj∈{0,1} xj= 1 – x�j f: {0,1} n→Z

Maximiser

f = -2x1-3x2-2x3-3x4+2x1x2+3x1x3+6x3x4

f = -10+2x�1+3 x�2+2 x�3+3 x�4+2x1x2+3x1x3+6x3x4

Page 66: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

Maximisation d’une fonction négative-positive

Graphe de conflit xi = 0 ou 1 ∀i

max 2x�1+3 x�2+2 x�3+3 x�4+2x1x2+3x1x3+6x3x4

x�1

x�2

x�3

x�4

x1x2

x1x3

x3x4

3

2

3

23

2

6

Recherche d’un ensemble

stable de poids maximal

dans un graphe biparti

Stable: sous-ensemble de sommets

non adjacents 2 à 2

Partition des sommets en 2 stables

Page 67: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

Maximisation d’une fonction négative-positive

Graphe de conflit xi = 0 ou 1 ∀i

max 2x�1+3 x�2+2 x�3+3 x�4+2x1x2+3x1x3+6x3x4

x�1

x�2

x�3

x�4

x1x2

x1x3

x3x4

3

2

3

23

2

6

Recherche d’un ensemble

stable de poids maximal

dans un graphe biparti

Stable: sous-ensemble de sommets

non adjacents 2 à 2

Exemple:x�3 , x�4 , x1x2 f=7

Page 68: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

Maximisation d’une fonction négative-positive

max 2x�1+3 x�2+2 x�3+3 x�4+2x1x2+3x1x3+6x3x4

x�1

x�2

x�3

x�4

x1x2

x1x3

x3x4

[3][2]

[3]

[2]

Recherche d’un ensemble stable de poids maximal G biparti

flot maximal

s t

[2]

[3]

[6]

[∞]

[∞][∞]

[∞]

[∞]

Page 69: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

Maximisation d’une fonction négative-positive

max 2x�1+3 x�2+2 x�3+3 x�4+2x1x2+3x1x3+6x3x4

x�1

x�2

x�3

x�4

x1x2

x1x3

x3x4

[3][2]

[3]

[2]

flot maximal / coupe minimale

s t

[2]

[3]

[6]

22 2

2

2

2

3

02

0

5

2

3

[∞]

Page 70: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

Maximisation d’une fonction négative-positive

max 2x�1+3 x�2+2 x�3+3 x�4+2x1x2+3x1x3+6x3x4

x�1

x�2

x�3

x�4

x1x2

x1x3

x3x4

[3][2]

[3]

[2]s t

[2]

[3]

[6]

22 2

2

2

2

3

02

0

5

2

3

++

+

poids du stable {x�2, x1x3, x3x4} =

somme de tous les poids (arcs incidents s ou t) – valeur de la coupe

et coupe min ⇒ stable max

[∞]

Page 71: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

Maximisation d’une fonction négative-positive

max 2x�1+3 x�2+2 x�3+3 x�4+2x1x2+3x1x3+6x3x4

x�1

x�2

x�3

x�4

x1x2

x1x3

x3x4

[3][2]

[3]

[2]s t

[2]

[3]

[6]

++

+

valeur de la coupe =

somme de tous les poids – poids du stable {x�2, x1x3, x3x4}

et coupe min ⇒ stable max

[∞]

Page 72: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

Maximisation d’une fonction négative-positive

max 2x�1+3 x�2+2 x�3+3 x�4+2x1x2+3x1x3+6x3x4

x�1

x�2

x�3

x�4

x1x2

x1x3

x3x4

[3][2]

[3]

[2]s t

[2]

[3]

[6]

++

+

stable max {x�2, x1x3, x3x4} de poids 3+3+6=12

Solution: f =12 avec x2 = 0, x1 = x3 = x4 = 1

Page 73: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

Maximisation d’une fonction négative-positive

max 2x�1+3 x�2+2 x�3+3 x�4+2x1x2+3x1x3+6x3x4

x�1

x�2

x�3

x�4

x1x2

x1x3

x3x4

[3][2]

[3]

[2]s t

[2]

[3]

[6]

stable max {x�2, x1x3, x3x4} de poids 3+3+6=12

Solution: f =12 avec x2 = 0, x1 = x3 = x4 = 1

Page 74: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

74

Cas général de maximisation d’une fonction

pseudobooléennenégative-positive

Une fonction pseudobooléenneest une fonction réelle devariables binaires qui peut s’écire:

f(x1,x2,…,xn)= Σk=1,…,pbk Πj∈Nk xj + K

∀k bk réel,Nk indices des variables dukièmemonome,K cste

Maximiserf: problème difficile en général

problème de flot si « négative-positive »

Page 75: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

75

Maximisation d’une fonction négative-positive

Définition

Unefonction pseudobooléenne négative-positives’écrit:

f(x1,…,xn)= -Σj=1,…,n cj xj+Σi=1,…,m bi Πj∈Ni xj

cj ≥0 ∀ j= 1,…,n , bi ≥ 0 ∀i= 1,…,m

f = -Σj=1,…,n cj+ Σj=1,…,n cj x�j +Σi=1,…,m bi Πj∈Ni xj

où x�j = 1 - xj

Page 76: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

Maximisation d’une fonction négative-positive

max f = Σj=1,…,n cj x�j +Σi=1,…,m bi Πj∈Ni xj

x�1

x�2

x�3

x�4

Πj∈N1 xj

Πj∈N2 xj

Πj∈N3 xj

[c2]

[c1]

[c4]

[c3]s

t

[b1]

[b2]

[b3]

Solution: stable de poids max obtenu en sélectionnant les sommets adjacents aux arcs non saturés incidents à set t.

[∞]

[∞]

[∞]

Page 77: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

77

7. Pistes d'approfondissement

• Flot maximal de coût minimal (problème "facile")

• Flot avec multiplicateurs

• Multiflots et multicoupes (problèmes "difficiles")

• Matrice totalement unimodulaire et programmation linéaire en nombres entiers

• Programmation linéaire et dualité

• Recherche d'applications (réseaux de transport, de télécommunications...)

Page 78: TRANSFERT, RESEAUX, GRAPHES Flots et coupes

78

8. Petite bibliographie

• Recherche opérationnelle pour ingénieurs (Volume 1). D. de Werra, T. M. Liebling, J.-F. Hêche.2003. Presses polytechniques universitaires romandes.

• Précis de recherche opérationnelle. R. Faure, B. Lemaire,C. Picouleau. 2009. Dunod.

• Optimisation combinatoire: Théorie et algorithmes. B. H.Korte, J. Vygen. 2010. Springer.

• Méthodes de planification en transport. Y. Nobert, R. Ouellet, R. Parent. 2005. Les presses del'université de Montréal.

• Programmation linéaire avec Excel. C. Prins, M. Sevaux. 2011. Eyrolles.

• Optimisation discrète: De la modélisation à la résolutionpar des logiciels de programmationmathématique. A. Billionnet. 2007. Dunod.

• Graphes et algorithmes. M. Gondran et M. Minoux. 2009. Lavoisier.

• Une application : Optimizing the deployment of a multilevel optical FTTH network. M. Chardy,M.-C. Costa, A. Faye, M. Trampont. EJOR European Journal of Operational research, vol.222(3), pp. 430--440, 2012.

• Un survey sur les multiflots: M.-C. Costa, L. Létocart , F. Roupin. Minimal multicut andmaximal integer multiflow: a survey, EJOR European J. on Operations Research, vol. 162(1), pp.55-69, 2005.

• et pour vous amuser: L'agrapheur: intrigues policières à saveur mathématique, Alain Hertz, 2010.Presses internationales Polytechnique.