TRANSFERT, RESEAUX, GRAPHES Flots et coupes

Preview:

Citation preview

1

TRANSFERT, RESEAUX, GRAPHES

Flots et coupes

Marie-Christine Costa

ENSTA Paris-Tech TIPE 2014

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.

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

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

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)

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)

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.

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)

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

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é)

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 ?

12

Le problème du flot maximal

13

Un réseau de distribution de l’eau

14

15

Capacité du château d’eau

[b][a]

Capacité des canalisations

[x]

[x]

[x]

[x]

[x]

[x]

s

[x]

[x]

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

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.

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

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

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) :

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

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é.

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

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

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

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)

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

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

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

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 α

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)

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.

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

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+

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

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

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

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,…

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 :

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

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}

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)

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)}

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

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

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

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.

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.

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…

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 »)

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

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)

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.

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 »

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

)( )(

ϕ

ϕϕ

ϕ

ϕ

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.

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

)( )(

ϕ

ϕϕ

ϕ

ϕ

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.

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

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.

• 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.

• 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

• 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

• 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

• 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

• 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 »

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

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

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

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]

[∞]

[∞][∞]

[∞]

[∞]

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

[∞]

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

[∞]

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

[∞]

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

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

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 »

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

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.

[∞]

[∞]

[∞]

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...)

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.

Recommended