Optimisation dans les r - PowerPoint PPT Presentation

About This Presentation
Title:

Optimisation dans les r

Description:

Optimisation dans les r seaux Recherche Op rationnelle GC-SIE – PowerPoint PPT presentation

Number of Views:64
Avg rating:3.0/5.0
Slides: 46
Provided by: Michel361
Category:

less

Transcript and Presenter's Notes

Title: Optimisation dans les r


1
Optimisation dans les réseaux
  • Recherche Opérationnelle
  • GC-SIE

2
Le problème du flot maximal

3
Introduction
  • Données
  • Graphe (N,A)
  • Capacités xij ? bij,cij
  • Un nœud source s
  • Un nœud puits t
  • Problème
  • Faire passer un maximum de flot de s à t.
  • Maximiser la divergence de s
  • Minimiser la divergence de t.

4
Introduction
  • Plus court chemin coûts, mais pas de capacités
  • Flot maximal capacités, mais pas de coûts
  • Transbordement coûts et capacités

5
Flot maximal et coupe minimale
  • Idée de base
  • Un flot x peut être amélioré si lon trouve un
    chemin de s à t qui soit non bloqué par rapport à
    x.
  • Envoyer un flot le long de ce chemin augmente la
    divergence de s sans violer les contraintes de
    capacité.
  • Question si on ne trouve pas un tel chemin,
    sommes-nous à loptimum ?

6
Coupes dans un graphe
  • Définition
  • Une coupe Q dans un graphe (N,A) est une
    partition de lensemble des nœuds N en deux
    ensembles non vides S et N \ S.
  • On notera
  • Q S,N \ S
  • Attention S,N \ S ? S \ N,S

7
Coupes dans un graphe
  • Notations
  • Q(i,j)?A i?S et j?S
  • Q-(i,j)?A i?S et j ?S
  • Q est non vide si Q?Q-??
  • Q sépare s de t si s ?S et t?S

8
Coupes dans un graphe
N \ S
S
2
4
1
6
3
5
  • S1,2,3
  • Q(2,4),(1,6)
  • Q-(4,1),(6,3),(5,3)

9
Coupes dans un graphe
  • Définition
  • Soit un vecteur de flots. Le flot F(Q) à travers
    une coupe non vide QS,N \ S est le flot total
    net sortant de S.
  • On peut facilement montrer que

10
Coupes dans un graphe
  • Définition
  • Étant données les contraintes de capacité sur les
    flots, la capacité dune coupe Q non vide est

11
Coupes dans un graphe
N \ S
(1,1,2)
S
2
4
(0,1,1)
(1,2,3)
1
6
(-1,2,2)
3
5
(1,2,2)
  • Sur chaque arc (bij,xij,cij)
  • F(Q) 12-(122)-2
  • C(Q)23-(0-11)5

12
Coupes dans un graphe
  • On a toujours
  • F(Q) C(Q)
  • Si F(Q)C(Q), on dit que la coupe est saturée par
    rapport au vecteur de flots x.
  • Par convention, une coupe vide est supposée
    saturée.

13
Coupes dans un graphe
N \ S
(1,2,2)
S
2
4
(0,0,1)
(1,3,3)
1
6
(-1,-1,2)
3
5
(1,1,2)
  • Sur chaque arc (bij,xij,cij)
  • F(Q) 23-(0-11)5
  • C(Q)23-(0-11)5

14
Coupes dans un graphe
  • Théorème
  • Soit x un vecteur de flots vérifiant les
    contraintes de capacité.
  • Soit s et t deux nœuds.
  • Exactement une des deux affirmations suivantes
    est vérifiée
  • Il existe un chemin simple de s à t non bloqué
    par rapport à x.
  • Il existe une coupe saturée séparant s de t.

15
Coupes dans un graphe
  • Algorithme du chemin non bloqué
  • Idée
  • On génère une suite densembles de nœuds (Tk),
    avec T0 s
  • Tk contient lensemble des nœuds qui peuvent être
    atteints à partir de s par un chemin non bloqué
    de k arcs.

16
Coupes dans un graphe
  • Algorithme du chemin non bloqué
  • Pour k0,1,
  • Si Tk ? ou t?Tk, STOP
  • Tk1 ?
  • Pour tout nœud i ?Tk
  • Pour tout (i,j) ?A
  • Si xij lt cij et j ?T0,Tk alors Tk1Tk1?j
  • Pour tout (j,i) ?A
  • Si xij gt bij et j ?T0,Tk alors Tk1Tk1?j

17
Coupes dans un graphe
  • Notes
  • Il y a deux manières pour cet algorithme de
    sarrêter
  • t?Tk. Dans ce cas, il existe un chemin non bloqué
    de s à t.
  • Tk ?. Si on définit S?Ti, alors la coupe S,N
    \ S est saturée.

18
Coupes dans un graphe
  • Exemple 1 s1, t5

(1,1,2)
2
4
(0,0,1)
(-1,0,1)
(0,0,1)
(0,1,1)
1
6
T0
(1,2,2)
(0,0,1)
(0,1,1)
3
5
(1,1,2)
  • Sur chaque arc (bij,xij,cij)

19
Coupes dans un graphe
  • Exemple 1 s1, t5

(1,1,2)
2
4
(0,0,1)
(-1,0,1)
(0,0,1)
(0,1,1)
1
6
T0
(1,2,2)
(0,0,1)
(0,1,1)
3
5
(1,1,2)
  • Sur chaque arc (bij,xij,cij)

20
Coupes dans un graphe
  • Exemple 1 s1, t5

(1,1,2)
2
4
(0,0,1)
(-1,0,1)
(0,0,1)
(0,1,1)
1
6
T0
(1,2,2)
(0,0,1)
(0,1,1)
3
5
(1,1,2)
  • Sur chaque arc (bij,xij,cij)

21
Coupes dans un graphe
  • Exemple 1 s1, t5

(1,1,2)
2
4
(0,0,1)
(-1,0,1)
(0,0,1)
(0,1,1)
1
6
T0
(1,2,2)
(0,0,1)
(0,1,1)
3
5
(1,1,2)
  • Sur chaque arc (bij,xij,cij)

22
Coupes dans un graphe
  • Exemple 1 s1, t5

(1,1,2)
2
4
(0,0,1)
(-1,0,1)
(0,0,1)
(0,1,1)
1
6
T0
(1,2,2)
(0,0,1)
(0,1,1)
3
5
(1,1,2)
T1
  • Sur chaque arc (bij,xij,cij)

23
Coupes dans un graphe
  • Exemple 1 s1, t5

(1,1,2)
2
4
(0,0,1)
(-1,0,1)
(0,0,1)
(0,1,1)
1
6
T0
(1,2,2)
(0,0,1)
(0,1,1)
3
5
(1,1,2)
T1
  • Sur chaque arc (bij,xij,cij)

24
Coupes dans un graphe
  • Exemple 1 s1, t5

(1,1,2)
2
4
(0,0,1)
(-1,0,1)
(0,0,1)
(0,1,1)
1
6
T0
(1,2,2)
(0,0,1)
(0,1,1)
3
5
(1,1,2)
T1
  • Sur chaque arc (bij,xij,cij)

25
Coupes dans un graphe
  • Exemple 1 s1, t5

T2
(1,1,2)
2
4
(0,0,1)
(-1,0,1)
(0,0,1)
(0,1,1)
1
6
T0
(1,2,2)
(0,0,1)
(0,1,1)
3
5
(1,1,2)
T1
  • Sur chaque arc (bij,xij,cij)

26
Coupes dans un graphe
  • Exemple 1 s1, t5

T2
(1,1,2)
2
4
(0,0,1)
(-1,0,1)
(0,0,1)
(0,1,1)
1
6
T0
(1,2,2)
(0,0,1)
(0,1,1)
3
5
(1,1,2)
T1
T3
  • Sur chaque arc (bij,xij,cij)

27
Coupes dans un graphe
  • Exemple 1 s1, t5

T2
(1,1,2)
2
4
(0,0,1)
(-1,0,1)
(0,0,1)
(0,1,1)
1
6
T0
(1,2,2)
(0,0,1)
(0,1,1)
3
5
(1,1,2)
T1
T3
  • Sur chaque arc (bij,xij,cij)

28
Coupes dans un graphe
  • Exemple 2 s1, t5

T2
(1,1,2)
2
4
(0,0,1)
(-1,0,1)
(0,0,1)
(0,1,1)
1
6
T0
(1,2,2)
(0,0,1)
(0,0,1)
3
5
(1,1,2)
T1
  • Coupe saturée (5,3),(5,6) séparant s et t

29
Coupe et flot maximal
  • Dans le problème de flot maximal, on cherche
    parmi les vecteurs de flot admissibles, ayant une
    divergence nulle en tout nœud différente de s ou
    t, celui qui maximise la divergence de s.
  • Soit un de ces vecteurs de flots, et une coupe
    QS,N \ S séparant s de t.
  • La divergence de s est le flot qui traverse Q.
    En effet, s est le seul nœud de S à divergence
    non nulle.

30
Coupe et flot maximal
  • On a donc
  • ?Q, divergence s F(Q) C(Q)
  • flot maximal capacité de Q
  • Si le problème de flot maximum possède une
    solution, alors il existe une coupe telle que
    linégalité soit une égalité.

31
Coupe et flot maximal
  • Théorème de flot maximal/coupe minimale
  • Soit x est une solution optimale du problème de
    flot maximum.
  • Soit Q la coupe de capacité minimum séparant s
    de t.
  • Alors la divergence de s est égale à la capacité
    de Q.

32
Algorithme de Ford-Fulkerson
  • Idée
  • Soit un vecteur de flots tel que
  • il vérifie les contraintes de capacité
  • divergence nœud i0, si i?s, i?t
  • Soit un chemin P non bloqué de s à t.
  • On envoie le plus de flot possible le long de P
    augmentation du flot.
  • On dira que P est un chemin daugmentation.

33
Algorithme de Ford-Fulkerson
  • Augmentation du flot

34
Algorithme de Ford-Fulkerson
  • Initialisation
  • Trouver un vecteur de flots admissible.
  • Si toutes les capacités inférieures bij sont
    nulles, le vecteur nul est admissible.
  • Itérations
  • Appliquer lalgorithme du chemin non bloqué.
  • Si coupe saturée STOP.
  • Si chemin non bloqué augmentation de flot.

35
Algorithme de Ford-Fulkerson
  • Notes
  • Si le vecteur de flot initial ainsi que les
    bornes sont entiers ou rationnels, lalgorithme
    se terminera en un nombre fini ditérations.
  • Méthode du plus court chemin daugmentation
    parmi tous les chemins non bloqués, choisir comme
    chemin daugmentation celui comportant le moins
    darcs.
  • Si cette méthode est utilisée, lalgorithme
    convergera toujours.
  • De plus, même avec des données entières, cette
    méthode est plus performante.

36
2
(0,0,1)
(0,0,4)
(0,0,1)
s
4
(0,0,2)
t
(0,0,1)
(0,0,5)
(0,0,2)
(0,0,3)
3
37
2
(0,0,1)
(0,0,4)
(0,0,1)
s
4
(0,0,2)
t
(0,0,1)
(0,0,5)
(0,0,2)
(0,0,3)
3
38
2
(0,1,1)
(0,1,4)
(0,0,1)
s
4
(0,0,2)
t
(0,0,1)
(0,0,5)
(0,0,2)
(0,0,3)
3
39
2
(0,1,1)
(0,1,4)
(0,0,1)
s
4
(0,0,2)
t
(0,0,1)
(0,0,5)
(0,0,2)
(0,0,3)
3
40
2
(0,1,1)
(0,2,4)
(0,1,1)
s
4
(0,0,2)
t
(0,0,1)
(0,1,5)
(0,0,2)
(0,0,3)
3
41
2
(0,1,1)
(0,2,4)
(0,1,1)
s
4
(0,0,2)
t
(0,0,1)
(0,1,5)
(0,0,2)
(0,0,3)
3
42
2
(0,1,1)
(0,2,4)
(0,1,1)
s
4
(0,0,2)
t
(0,0,1)
(0,3,5)
(0,2,2)
(0,2,3)
3
43
2
(0,1,1)
(0,2,4)
(0,1,1)
s
4
(0,0,2)
t
(0,0,1)
(0,3,5)
(0,2,2)
(0,2,3)
3
44
2
(0,1,1)
(0,3,4)
(0,1,1)
s
4
(0,1,2)
t
(0,0,1)
(0,4,5)
(0,2,2)
(0,3,3)
3
45
F(Q)C(Q)5
2
(0,1,1)
(0,3,4)
(0,1,1)
s
4
(0,1,2)
t
ys5
(0,0,1)
(0,4,5)
yt-5
(0,2,2)
(0,3,3)
3
Write a Comment
User Comments (0)
About PowerShow.com