recherche opérationnellemarc.sibert.free.fr/img/pdf/cours_de_recherche_operationnelle.pdf ·...

36
Recherche Opérationnelle IFIPS – Département Informatique Recherche Opérationnelle Cours de 5 ème année par A. LISSER Version du 2 décembre 2004 par Marc SIBERT 1 / 36

Upload: nguyenque

Post on 11-Sep-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Recherche Opérationnellemarc.sibert.free.fr/IMG/pdf/Cours_de_Recherche_Operationnelle.pdf · Recherche Opérationnelle IFIPS – Département Informatique Table des matières Les

Recherche Opérationnelle IFIPS – Département Informatique

Recherche OpérationnelleCours de 5ème année par A. LISSER

Version du 2 décembre 2004 par Marc SIBERT

1 / 36

Page 2: Recherche Opérationnellemarc.sibert.free.fr/IMG/pdf/Cours_de_Recherche_Operationnelle.pdf · Recherche Opérationnelle IFIPS – Département Informatique Table des matières Les

Recherche Opérationnelle IFIPS – Département Informatique

Table des matièresLes Méta-Heuristiques..........................................................................................................................4

1 Introduction : la fable des randonneurs.........................................................................................42 Formulation du problème..............................................................................................................43 Méthode de descente (ou amélioration itérative)..........................................................................4

3.1 Principe................................................................................................................................. 43.2 Voisinage d'une solution....................................................................................................... 43.3 Quelques exemples de voisinage.......................................................................................... 53.4 Exemple : le problème du voyageur de commerce............................................................... 53.5 Schéma général d'une descente............................................................................................. 6

4 Le recuit simulé ou RS (Simulated Annealing)............................................................................ 64.1 Analogie avec la thermodynamique...................................................................................... 64.2 Schéma du recuit simulé....................................................................................................... 74.3 L'algorithme du Recuit Simulé..............................................................................................74.4 Modèles de recuit.................................................................................................................. 8

5 Variable Neighborhood Search (V.N.S.)...................................................................................... 9La Relaxation Lagrangienne...............................................................................................................10

1 Rappels........................................................................................................................................102 Exemple...................................................................................................................................... 103 Position du problème.................................................................................................................. 144 Résolution du problème dual...................................................................................................... 155 Relaxation Lagrangienne et Programmation Linéaire................................................................ 15

Généralités sur les graphes................................................................................................................. 171 Définitions.................................................................................................................................. 17

Arbres Couvrant de Poids Minimum (ACPM)...................................................................................191 Définition.................................................................................................................................... 192 Exemple...................................................................................................................................... 193 Applications................................................................................................................................ 194 Conditions d'optimalité...............................................................................................................19

4.1 Conditions d'optimalité liées aux coupes............................................................................ 194.2 Conditions d'optimalité du chemin..................................................................................... 20

5 1er algorithme : Algorithme de Kruskal..................................................................................... 205.1 Étapes de l'algorithme......................................................................................................... 205.2 Remarque............................................................................................................................ 205.3 L'algorithme de Kruskal...................................................................................................... 20

6 2ème algorithme : Algorithme de PRIM.................................................................................... 216.1 Principe de l'algorithme.......................................................................................................216.2 Algorithme de PRIM...........................................................................................................216.3 Complexité de l'algorithme de PRIM..................................................................................216.4 Exemple.............................................................................................................................. 22

7 3ème algorithme : Algorithme de Sollin.....................................................................................227.1 Principe............................................................................................................................... 227.2 Complexité.......................................................................................................................... 227.3 Exemple.............................................................................................................................. 23

ACPM et Programmation Linéaire.....................................................................................................241 Motivations................................................................................................................................. 242 PL correspondant au problème de l'ACPM................................................................................ 24

Plus court chemin............................................................................................................................... 25

2 / 36

Page 3: Recherche Opérationnellemarc.sibert.free.fr/IMG/pdf/Cours_de_Recherche_Operationnelle.pdf · Recherche Opérationnelle IFIPS – Département Informatique Table des matières Les

Recherche Opérationnelle IFIPS – Département Informatique

1 Introduction.................................................................................................................................251.1 Domaines d'applications..................................................................................................... 251.2 Définitions...........................................................................................................................251.3 Problème de PCC (plus court chemin)................................................................................26

2 Algorithmes de PCC................................................................................................................... 263 PCC d'un sommet à tous les autres............................................................................................. 27

3.1 Motivations......................................................................................................................... 273.2 Exemple.............................................................................................................................. 273.3 Algorithme de Dijkstra........................................................................................................273.4 Complexité.......................................................................................................................... 28

Problème de flots................................................................................................................................301 Applications................................................................................................................................ 302 Définitions.................................................................................................................................. 303 Algorithme de Ford-Fulkerson................................................................................................... 32

3.1 Chaîne augmentante............................................................................................................ 323.2 Exemple.............................................................................................................................. 323.3 Principe de l'algorithme.......................................................................................................33

Problèmes de multiflots......................................................................................................................341 Formulation sommets-arcs..........................................................................................................342 Conditions d'optimalité...............................................................................................................343 Formulation arcs-chemins...........................................................................................................35

3 / 36

Page 4: Recherche Opérationnellemarc.sibert.free.fr/IMG/pdf/Cours_de_Recherche_Operationnelle.pdf · Recherche Opérationnelle IFIPS – Département Informatique Table des matières Les

Recherche Opérationnelle IFIPS – Département Informatique

Les Méta-HeuristiquesCe sont des méthodes approchées qui ne donnent pas le résultat exact. Elles sont basées surl'exploration du voisinage.

1 Introduction : la fable des randonneurs4 randonneurs (R1, R2, R3 et R4) arrivés au sommet du Mont Blanc sont surpris par le brouillard. Ilsdoivent redescendre à Chamonix et choisissent différentes stratégies pour leurs retours :

R1 effectue l'exploration exhaustive → temps de calcul très important ;

R2 suit des chemins descendants → risque de blocage dans une cuvette (minimum local) :c'est la méthode de descente ;

R3 fait le choix de chemins aléatoires → il peut atteindre son but avec une certaineprobabilité : c'est la méthode probabiliste, le recuit ;

R4 mémorise les chemins déjà empruntés → taille mémoire limitée, mais peut atteindre sonbut : c'est la méthode tabou.

2 Formulation du problèmeLe problème à résoudre se présente comme suit :

Minimiser f X X ∈S

où S est l'ensemble (fini) des solutions.

Un élément de S s'appelle une solution réalisable ou solution. Si cet élément donne à f sa valeurminimale, on l'appellera solution optimale du problème.

3 Méthode de descente (ou amélioration itérative)

3.1 PrincipeIl s'agit de partir d'une solution de départ X0 et d'engendrer une suite finie de solutions Xi

déterminées de proche en proche. Xi+1 est calculé à partir de Xi tel que ∀ i , f X if X i1 . Pourpasser d'une solution à une autre, on utilise la notion de voisinage de celle-ci.

3.2 Voisinage d'une solutionEn général, le voisinage d'une solution est définie à l'aide d'une transformation élémentaire (oulocale). On appelle transformation toute opération permettant de changer une solution X en unesolution X' de S. Une transformation est dite locale si elle ne modifie que faiblement la solutioncourante à laquelle elle s'applique.

4 / 36

Page 5: Recherche Opérationnellemarc.sibert.free.fr/IMG/pdf/Cours_de_Recherche_Operationnelle.pdf · Recherche Opérationnelle IFIPS – Département Informatique Table des matières Les

Recherche Opérationnelle IFIPS – Département Informatique

Le choix de la transformation dépend à priori du problème à résoudre. Néanmoins, unetransformation doit répondre à deux exigences :

• on doit pouvoir évaluer facilement ses conséquences dans la mesure où elle va être appliquée denombreuses fois ;

• elle doit permettre d'explorer une grande partie de l'espace des solutions.

Définition« Étant donné une transformation locale, le voisinage V(X) d'une solution X est l'ensemble dessolutions que l'on peut obtenir en appliquant à X cette transformation locale ».

3.3 Quelques exemples de voisinagePour définir le voisinage, on utilise une ou plusieurs des opérations suivantes, selon la nature duproblème et du codage des solutions :

1. Complémentation On remplace un bit par son complémentaire. Exemple : 10010100 → 10010010

2. Échange Consiste à intervertir deux caractères différents de la chaîne. Exemple : ABCDEF → AFCDEB

3. Insertion - décalage Consiste à choisir deux positions a et b, à insérer en position a le caractère situé en position b età décaler tous les caractères situés entre a (inclus) et b (exclu) d'un cran à droite si b > a ou àgauche sinon. Exemple : ABCDEF → ABECDF

4. Inversion Elle consiste à choisir deux positions a et b avec b > a puis à inverser l'ordre d'écriture descaractères entre a et b (inclus). Exemple : ABCDEF→ AEDCBF

3.4 Exemple : le problème du voyageur de commerceEn général, on choisit 2 arêtes non adjacentes dans le cycle hamiltonien1 et on les remplace par les 2arêtes qui permettent de reconstituer le cycle hamiltonien :

Cette transformation a été proposée par S. Lin et B.W. Kerningham et appelée 2-opt.

1 Cycle Hamiltonien : passe par tous les noeuds une et une seule fois avec fermeture ;Chemin Hamiltonien : idem mais sans fermeture (sans retour au point de départ)

5 / 36

i

i+1

jj+1

i

i+1

jj+1

2-opt

Page 6: Recherche Opérationnellemarc.sibert.free.fr/IMG/pdf/Cours_de_Recherche_Operationnelle.pdf · Recherche Opérationnelle IFIPS – Département Informatique Table des matières Les

Recherche Opérationnelle IFIPS – Département Informatique

3.5 Schéma général d'une descenteUne descente consiste à partir de X0 à engendrer une suite de solutions Xi telle que :

X i∈V X i−1 avec f X if X i−1 2

On arrête la méthode quand la configuration Xq est telle que :∀ X ∈V X q , f X f X q

On conclut que Xq est un minimum local de f par rapport à la transformation adoptée. L'explorationdu voisinage peut être :

• soit aléatoire,

• soit systématique pour déterminer un voisin meilleur,

• soit exhaustive pour déterminer le meilleur voisin.

4 Le recuit simulé ou RS (Simulated Annealing)Cette méthode a été conçue simultanément par S. Kirkpatrick, C. D. Gellat et M. P. Vechi d'une partet par V. Cerny en Slovaquie d'autre part en 1982.

Le recuit simulé repose sur une analogie avec la thermodynamique et reprend les simulationsutilisées en 1953 par N. Metropolis, A. W. Rosenbluth, M. N. Rosenbluth et A. H. Teller pourétudier l'évolution d'un système physique au contact d'un bain de chaleur. On l'appelle aussil'algorithme de Metropolis.

4.1 Analogie avec la thermodynamiqueL'état d'un matériau dépend de la température à laquelle il est porté. La distribution de probabilitédonnées par la loi canonique de Gibbs - Boltzman stipule que la probabilité P(X) d'observer l'état Xest :

P X =T . e−E X

kT où : T : température,

k : constante de BoltzmanE(X) : énergie interne de la configuration Xα(T) : paramètre de normalisation des probabilités.

• Pour T fixée, un état X est d'autant plus probable que E(X) est faible.

• Pour T élevée, Pr(X)3 est presque la même quelque soit X.

• Pour T proche de zéro, seuls les états fondamentaux ont une probabilité non nulle.

Par rapport à l'optimisation combinatoire, la trempe est l'analogue de la descente et les minimalocaux d'énergie interne sont l'analogue des minima locaux des fonctions. Les transformationslocales correspondent aux réaménagements des molécules. L'idée du recuit simulé est d'autoriser destransformations locales provoquant des transformations de f avec une certaine probabilité.

2 Ici V(X) représente le voisinage de X3 Pr(X) : probabilité de X

6 / 36

Page 7: Recherche Opérationnellemarc.sibert.free.fr/IMG/pdf/Cours_de_Recherche_Operationnelle.pdf · Recherche Opérationnelle IFIPS – Département Informatique Table des matières Les

Recherche Opérationnelle IFIPS – Département Informatique

4.2 Schéma du recuit simuléLa probabilité d'accepter une transformation provoquant une remontée peut être choisie ens'inspirant de la distribution de Gibbs - Boltzman :

• On effectue une transformation simple locale de Xi à Xj,

• On calcule la variation : f ij=f X j−f X i

• On accepte la transformation avec une probabilité P(i,j) :si f ij≤0, P i , j =1

si f ij0, P i , j =e− f ij

t

où : t est un paramètre de contrôle jouant le rôle kT en thermodynamique,

• Quand t est élevée, un grand nombre de transformations sera accepté,

• Quand t est proche de zéro, seules les transformations avantageuses sont acceptées.

Pour savoir si une transformation désavantageuse sera acceptée, on tire aléatoirement, avec une

distribution uniforme, un nombre p compris entre 0 et 1. Si pe− f ij

t , on accepte la transformation.

Sinon, on la refuse (ce choix de l'exponentielle s'appelle « Règle de Metropolis »).

D'autre part, la température en métallurgie décroît par paliers jusqu'à ce qu'elle soit suffisammentbasse pour qu'on puisse considéré le système comme gelé. Ceci se traduit dans le recuit simulé parun certain critère à définir par l'utilisateur pour avoir le nombre de changements de température(c'est la Condition 1).

Entre deux changements de température, il est nécessaire que celle-ci devienne uniforme dans lematériau que l'on recuit. Dans le recuit simulé, cela correspond au nombre de transformationsélémentaires proposées à température fixée (c'est la Condition 2).

Le recuit simulé est composé de 6 éléments :

• Condition 1,

• Condition 2,

• configuration initiale,

• température initiale,

• décroissance de T• voisinage.

4.3 L'algorithme du Recuit Simulé4

Calculer une solution initialeXbest ← XFbest ← f(Xbest)Initialiser la températureTant que "Condition 1" vraie, Faire

Tant que "Condition 2" vraie, Faire4 Algorithme en pseudo-Pascal disponible en page 213 de l'article

7 / 36

Page 8: Recherche Opérationnellemarc.sibert.free.fr/IMG/pdf/Cours_de_Recherche_Operationnelle.pdf · Recherche Opérationnelle IFIPS – Département Informatique Table des matières Les

Recherche Opérationnelle IFIPS – Département Informatique

Choisir X' ∈ V(X)Calculer ∆f ← f(X') – f(X)Si ∆f < 0, Alors

X ← X'Si f(X) < fbest, Alors

fbest ← f(X)Xbest ← X

Sinon // ∆f >= 0tirer p dans [0,1]Si p <= exp(-∆f/t), Faire X ← X'

t ← g(t)5

Retourner Xbest

4.4 Modèles de recuitUn modèle de recuit est défini par un jeu de réglages de différents paramètres. Les réglages diffèrentselon le problème traité et les résultats escomptés de l'utilisateur.

1. Solution initialeSon choix n'est pas primordial. On peut prendre une configuration au hasard ou la calculer à l'aided'un algorithme glouton.

2. Température initialeElle doit être suffisamment grande pour que des transformations coûteuses soient acceptées. S.Kirkpatrick propose le schéma suivant :

• Calculer la proposition de transformations coûteuses acceptées par rapport au nombre detransformations coûteuses6 engendrées (i.e. taux d'acceptation). Si est grand, adopter lavaleur de t, sinon doubler la valeur essayée et recommencer. Kirkpatrick propose ≃80 % .

• D'autres modèles proposent de calculer la moyenne de ∆f pour des transformations coûteuses eten déduire t en fonction de fixé à l'avance :

t=− f

ln

3. Décroissance de TEn général, on utilise la fonction suivante : g t = t , 0 1 . En pratique, ≃0,95 .

4. Condition 1 : nombre de paliersIl doit être choisi de façon qu'à la fin de l'algorithme, la température finale soit tellement faiblequ'aucune transformation ne soit acceptée.

5. Condition 2 : nombre de transformations par palierIl s'agit du nombre de transformations à température fixée. En recuit simulé, on peut prendre n2

itérations par exemple (avec n, le nombre de sommets du graphe).5 C'est la fonction d'évolution de la température6 Les transformations qui éloignent d'un optimum (désavantageuses)

8 / 36

Page 9: Recherche Opérationnellemarc.sibert.free.fr/IMG/pdf/Cours_de_Recherche_Operationnelle.pdf · Recherche Opérationnelle IFIPS – Département Informatique Table des matières Les

Recherche Opérationnelle IFIPS – Département Informatique

6. TransformationCf. Méthode de descente

5 Variable Neighborhood Search7 (V.N.S.)La recherche de l'optimum se fait en augmentant la taille des « opt » de 2 à n :

En fait c'est très simple. Voici un algorithme librement adapté du polycopié :Soit x une solution non-optimalek ← 1tant que k < kmax faire

générer une solution x' au kème voisinage de xrechercher un optimum local x'' à partir de x'si x'' est meilleur que x alors

x ← x''; k ← 1sinon

k ← k + 1fin tant que

7 Recherche avec Voisinage Variable

9 / 36

2-opt

3-opt

n-opt

Page 10: Recherche Opérationnellemarc.sibert.free.fr/IMG/pdf/Cours_de_Recherche_Operationnelle.pdf · Recherche Opérationnelle IFIPS – Département Informatique Table des matières Les

Recherche Opérationnelle IFIPS – Département Informatique

La Relaxation Lagrangienne

1 RappelsDans beaucoup de cas, la solution optimale (Z*) n'est pas calculable. On cherche donc à encadrercette solution par deux bornes, ces bornes étant les plus proches possibles.

Z≤Z *≤ZPour calculer ces bornes, on utilise :

Pour les bornes inférieures (Z)

Par relaxation :

• Programmation Linéaire,

• Programmation Semi-Définie,

• Relaxation Lagrangienne

Pour les bornes supérieures ( Z )

Par les méta-heuristiques :

• Recuit Simulé

• VNS• Tabu Search• Genetic Algorithm

2 ExempleProblème de plus court chemin avec contrainte de délai :

avec sur les arcs : coût - délai

ProgrammeCalculer le plus court chemin en respectant la contrainte de temps de propagation qui ne doit pasdépasser 10.

1ère solutionpar énumération :

Chemin Coût Temps depropagation

1-2-6 16 61-3-6 8 14

10 / 36

46

3

5

1

2

3 – 4

3 – 8

4 – 22 – 24

10 – 20 – 2

13 – 25 – 6

9 – 12

2 – 6

6 –

1

6 – 4

Page 11: Recherche Opérationnellemarc.sibert.free.fr/IMG/pdf/Cours_de_Recherche_Operationnelle.pdf · Recherche Opérationnelle IFIPS – Département Informatique Table des matières Les

Recherche Opérationnelle IFIPS – Département Informatique

Chemin Coût Temps depropagation

1-4-6 13 141-5-6 4 30

1-2-3-6 18 121-3-4-6 12 221-4-5-6 12 12

1-2-3-4-6 22 201-3-4-5-6 11 20

1-2-3-4-5-6 21 181-4-3-6 15 9

La dernière ligne est la meilleure solution qui satisfait au critère de temps de propagation. Mais cetype d'énumération n'est pas possible pour un grand nombre d'arcs.

2ème solutionModéliser le problème sous forme de programme linéaire à variables binaires :

xij={1 si l'arc i , j fait partie du chemin,0 sinon

Le PL s'écrit de la manière suivante :

{minimiser Z=3 x12 3 x13 4 x14 2 x15 10 x23 0 x34 6 x43 6 x45 5 x36 9 x46 2 x56

s/c

n1 : x12 x13 x14 x15 =1 (1 seul flux sortant du noeud 1)n2 :−x12 x23 x26 =0 (conservation des flux)n3 :−x13 x43 −x23 x34 x36 =0 (conservation des flux)n4 :−x14 −x34 x43 x45 x46 =0 (conservation des flux)n5 :−x15 −x45 x56 =0 (conservation des flux)n6 :−x26 −x36 −x46 −x56 =−1 (1 seul flux entrant dans le noeud 6)T : 4 x12 8 x13 2 x14 24 x15 ...6 x56 ≤10 (contrainte de délai)xij∈{0, 1 },∀i , j ∈A

Si on remplace les contraintes xij∈{0,1} par 0 ≤xij≤1 (relaxation linéaire), on obtient la solutionrelaxée suivante :

{Z *=12x12 =x13 =x26 =x36 =0,5 (toutes les autres variables sont nulles)

La technique de l'Évaluation et Séparation (Branch & Bound) consiste à fixer chaque variablefractionnaire à 0 ou à 1.

11 / 36

Page 12: Recherche Opérationnellemarc.sibert.free.fr/IMG/pdf/Cours_de_Recherche_Operationnelle.pdf · Recherche Opérationnelle IFIPS – Département Informatique Table des matières Les

Recherche Opérationnelle IFIPS – Département Informatique

x12 x36

0 1 0 1

Z*12-0 = 13,6x13 = 0,2x14 = 0,8x43 = 0,8x36 = 0,8

Z*12-1 = 16x12 = 1x26 = 1

Z*36-0 = 13,3x12 = 0,33x14 = 0,66x26 = 0,33x56 = 0,66

Z*36-1 = 13,6x13 = 0,2x14 = 0,8x43 = 0,8x36 = 1

En poursuivant, on trouve :Z *=15 x14 =x43 =x36 =1

3ème solutionRéécrivons le PL de la 2ème solution :

{min ∑

i , j ∈Acij xij

s/c ∑

jxij−∑

jx ji={1 si i=1 (s : source)

−1 si i=6 (t : tink)0 sinon

∑i , j∈A

t ij xij≤T (où T est le délai maxi)

xij∈{0, 1},∀i , j

(P : en fait c'est le problème primal)

Si on remonte la contrainte sur le temps de transmission dans la fonction objectif, on obtient :L x ,= ∑

i , j ∈Acij xij ∑i , j ∈A

t ij xij−T avec∈ℝ+ où L est la fonction de Lagrange,

et {min L x ,

s/c ∑jxij−∑

jx ji={1 si i=s

−1 si i=t0 sinon

xij≥0, ∀i , j

On parle aussi de Dualisation de la contrainte.

Pour un λ donné, on définit la fonction :

{W =min L x ,

s/c x∈S≡[∑jxij−∑

jx ji={1 si i=s

−1 si i=t0 sinon

xij≥0, ∀i , j

Dans ce cas W ≤f x (f(x) est la fonction coût que l'on cherche à minimiser)

Pour calculer le premier λ, on procède de la manière suivante :

12 / 36

Page 13: Recherche Opérationnellemarc.sibert.free.fr/IMG/pdf/Cours_de_Recherche_Operationnelle.pdf · Recherche Opérationnelle IFIPS – Département Informatique Table des matières Les

Recherche Opérationnelle IFIPS – Département Informatique

L x ,= ∑i , j ∈A

cij xij ∑i , j ∈At ij xij−T

Calculons le PCCH (plus court chemin) noté x1 au sens du coût :1 ->- 5 ->- 6, coût = 4, tps de trans = 30

Remplaçons ces valeurs dans L(x, λ) :L(x1, λ) = 4 + λ (30-10) = 4 + 20 λ

Calculons le PCCH noté x2 au sens du temps de transmission :1 ->- 2 ->- 6, coût = 16, tps de trans = 6L(x2, λ) = 16 + λ (6 - 10) = 16 - 4 λ

On en déduit : 4 ≤f *≤16 car L x1 , 0≤ f *≤L x2 , 0 mais pourquoi ??

On trouve λ = 0,5 ; on a L(x1, λ) = L(x2, λ) = 14 = W*1

{W 0,5= ∑i , j ∈A

cij0,5 t ij xij−0,5 T

x∈S

Ce qui revient à calculer un PCCH avec un coût modifié : cij0,5 t ij .

En appliquant ce nouveau coup, on obtient un nouveau graphe :

Le PCCH devient :1 ->- 3 ->- 6, coût modifié = 15

W 0,5=15 −0,5 ∗10 =10 ⇒10 ≤W*≤14 ⇒10 ≤f *≤16 puisque W ≤f x

Avec x3 le nouveau PCCH trouvé :L x3, =8 14 −10=8 4

Programme dual :

{max W ≥0

(D)

13 / 36

46

3

5

1

25

7

514

111

14

8

15

5

6,5

8

Page 14: Recherche Opérationnellemarc.sibert.free.fr/IMG/pdf/Cours_de_Recherche_Operationnelle.pdf · Recherche Opérationnelle IFIPS – Département Informatique Table des matières Les

Recherche Opérationnelle IFIPS – Département Informatique

Itération 2

=1, W2 *=12

W 1= ∑i , j ∈A

cijt ij−T

PCCH :

1 ->- 3 ->- 6 ou 1 ->- 2 ->- 6, coût modifié = 22

W 1=22 −10 =12 W 1≤W*≤W2

*

⇒12 ≤W*≤12 ⇒12 ≤f *≤16

Conclusion• f* n'est pas atteint

• si l'on prend le chemin x* :

1 ->- 4 ->- 3 ->- 6 de coût = 15 et de tps de trans = 9

On a L(x*, λ) = 15 - λ qui passe au-dessus du graphe de W(λ)

3 Position du problème

(P) {min f x

s/c gi x≤0, pour i=1, m ix∈S

où f et g sont des fonctions réelles définies sur S

Définitions1. On appelle fonction de Lagrange associée au problème (P) la fonction L définie sur S×ℝ+

m :

L x ,=f x∑i=1

m

i gi x

avec =1, ,m et i≥0, i∈{1, , m}

2. Les λi sont appelés les multiplicateurs de Lagrange

3. On appelle fonction duale, la fonction W définie sur ℝ+m par :

14 / 36

46

3

5

1

27

11

626

122

15

11

21

8

7

10

Page 15: Recherche Opérationnellemarc.sibert.free.fr/IMG/pdf/Cours_de_Recherche_Operationnelle.pdf · Recherche Opérationnelle IFIPS – Département Informatique Table des matières Les

Recherche Opérationnelle IFIPS – Département Informatique

W =minx∈S

L x ,

ThéorèmeSi ∈ℝ+

m et si x∈S qui vérifie les contraintes de (P) :W ≤f x

Preuve : Par définition de la fonction duale, on a ∀∈ℝ+m et ∀ x∈S :

W ≤L x ,=f x∑i=1

m

i gi x≤f x

DéfinitionLe problème dual (D) du problème (P) consiste à maximiser W(Λ) pour ∈ℝ+

m . (P) s'appellealors le problème primal.

4 Résolution du problème dualmax≥0

W = maxx∈ℝ+

m[minx∈S

L x ,]=W * (le maximum du dual)

1. On choisit quelques points de S : x1, , xk−1 :max∈ℝ+

m= max∈ℝ+

m[minxi∈S

L x1, , L x2, , , L xk−1 ,] ???

Le maximum est atteint pour Λ = Λk et à une valeur W k* .

W k* est une borne supérieure de W * , d'où W *≤W k

*

2. On calcule W k =minx∈S

L x ,k

Soit xk un point qui atteint ce minimum.

3. W k*≥W *(borne supérieure)

W *≥W k (borne inférieure)}⇔W k ≤W *≤W k*

1 ère conséquence : Si W k

*=W k alors W k =W k*=W * alors le problème dual est résolu. Sinon on considère le

problème (Dk) avec le point xk et on recommence.

RemarqueLa suite W k

* est décroissante mais la suite W k n'est pas forcément croissante. A chaque étape,on a : max

i=1, kW i≤W *≤W k

*

5 Relaxation Lagrangienne et Programmation Linéaire

Dual {max0

W

La résolution du dual peut se faire à l'aide de la programmation linéaire.

15 / 36

Page 16: Recherche Opérationnellemarc.sibert.free.fr/IMG/pdf/Cours_de_Recherche_Operationnelle.pdf · Recherche Opérationnelle IFIPS – Département Informatique Table des matières Les

Recherche Opérationnelle IFIPS – Département Informatique

Itération 1 :calcul du PCCH, Δ(x1) et Δ(x2)

{max W

s/c W≤4 20W≤16 −4

Itération 2 :calcul du PCCH c u1

2 t u ,Δ(x3), W(λ) = 10

W≤8 4Itération 3 :calcul du PCCH c ut u ,W(λ) = 12, W(λ) = W*

16 / 36

Δ(x1), Δ(x2)

W*=14λ=0,5

Δ(x3)

W*=12λ=1

Page 17: Recherche Opérationnellemarc.sibert.free.fr/IMG/pdf/Cours_de_Recherche_Operationnelle.pdf · Recherche Opérationnelle IFIPS – Département Informatique Table des matières Les

Recherche Opérationnelle IFIPS – Département Informatique

Généralités sur les graphes

1 Définitions1. Graphe orienté / graphe non-orienté

2. Graphe complet (clique)

noté (Kn) où n est le nombre de côtés

3. Graphe partiel / sous-grapheUn graphe partiel de G = (X, E) est un graphe ayant le même ensemble de sommets que G, maisseulement un sous-ensemble d'arêtes de E.

G G partiel

G sous-graphe de G

4. Degrés d'un sommet

• Graphe non-orientéLe degré d'un noeud x noté d(x) est le nombre d'arêtes incidentes à x :

d(x) = 6

• Graphe orientéDans ce cas, on parlera de degré entrant d'un sommet x et de degré sortant :

d-(x) = 4 et d+(x) = 3

17 / 36

i j

lk

i j

lk

x

x

Page 18: Recherche Opérationnellemarc.sibert.free.fr/IMG/pdf/Cours_de_Recherche_Operationnelle.pdf · Recherche Opérationnelle IFIPS – Département Informatique Table des matières Les

Recherche Opérationnelle IFIPS – Département Informatique

5. Prédécesseur / successeur

• y est prédécesseur de x ou antécédent de x, si (y, x) existe.

• y est successeur de x si l'arc (x, y) existe.

18 / 36

Page 19: Recherche Opérationnellemarc.sibert.free.fr/IMG/pdf/Cours_de_Recherche_Operationnelle.pdf · Recherche Opérationnelle IFIPS – Département Informatique Table des matières Les

Recherche Opérationnelle IFIPS – Département Informatique

Arbres Couvrant de Poids Minimum (ACPM)

1 DéfinitionIl s'agit de trouver un graphe partiel d'un graphe orienté dont les arêtes sont valuées.

2 Exemple

Poids de l'ACPM = 80

3 Applications• Réseaux télécom :

• chercher un réseau connexe de coût minimum dans un réseau dorsal,

• connexion de site de réseau de liaisons louées (VPN)

• Autres réseaux de transport (routes, voies ferrées, électriques, etc.)

4 Conditions d'optimalitéIl s'agit de développer et établir la validité d'algorithmes de résolution de l'ACPM.

4.1 Conditions d'optimalité liées aux coupesPour un arbre T* soit un APCM, il faut et il suffit que ∀i , j ∈T * , cij≤ckl ,∀k , l ∈{S , S } obtenupar suppression de l'arête i , j ∈T * .

19 / 36

35

40 2

5

10

15

30201

2 3

54

3510

15

201

2 3

54

i j

S_S

Page 20: Recherche Opérationnellemarc.sibert.free.fr/IMG/pdf/Cours_de_Recherche_Operationnelle.pdf · Recherche Opérationnelle IFIPS – Département Informatique Table des matières Les

Recherche Opérationnelle IFIPS – Département Informatique

4.2 Conditions d'optimalité du cheminPour que T* soit un APCM, il faut et il suffit que ∀k , l ∉T * , cij≤ckl∈chemin reliant k à l dansT * .

5 1er algorithme : Algorithme de KruskalCet algorithme découle des conditions d'optimalités liées au chemin

5.1 Étapes de l'algorithme1. Choisir un arbre courant T quelconque

2. Tester les conditions d'optimalité du chemin :

• si T est satisfait alors T est un ACPM

• sinon, ∃cij≥ckl ,k , l ∉T et i , j ∈chemin de k à l dans T et on remplace (i, j)par (k, l)

5.2 RemarqueEn répétant les étapes (1.) et (2.) pendant un nombre fini d'itérations, on obtient un ACPM. Maisceci ne peut être fait en un temps polynomial.

5.3 L'algorithme de Kruskal

Principe• Sélectionner les arêtes d'un graphe partiel de G (au départ sans arêtes)

• Choisir une arête de poids minimum ne formant pas de cycle avec les arêtes déjà choisies.

Mise en oeuvre de l'algorithmeDeux étapes :

Trier les arêtes par ordre de poids croissant, O(m log2 m)

20 / 36

i j

T*

S

T*

_S

kl

Page 21: Recherche Opérationnellemarc.sibert.free.fr/IMG/pdf/Cours_de_Recherche_Operationnelle.pdf · Recherche Opérationnelle IFIPS – Département Informatique Table des matières Les

Recherche Opérationnelle IFIPS – Département Informatique

Tant que l'on a pas (n-1) arêtes : O(n²)Prendre dans l'ordre du tri la 1ère arête nonencore examinée. Deux cas possibles

Soit elle forme un cycle → rejet O(1)Soit on l'intègre dans T O(n)

Exemple numérique

Tri : 10, 15, 20, 25////, 30////, 35, 40

6 2ème algorithme : Algorithme de PRIML'algorithme de Prim découle des conditions d'optimalité liées aux coupes

6.1 Principe de l'algorithme1. Étendre de proche en proche un arbre en couvrant un sommet à chaque étape.

2. Prendre l'arête la plus légère entre S et S barre => complexité de O(n^3)

6.2 Algorithme de PRIMÉtapes :

1. choisir un sommet x0 quelconque comme pivot,

2. parmi l'ensemble des arêtes reliant x0 à ses voisins, choisir celle qui a le poids le plus faible.

6.3 Complexité de l'algorithme de PRIM• La boucle de parcours des noeuds O(n)

• Le passage dans la boucle se fait en O(n)

Complexité totale de O(n^2)

21 / 36

35

40 2

5

10

15

30201

2 3

54

3510

15

201

2 3

54

Page 22: Recherche Opérationnellemarc.sibert.free.fr/IMG/pdf/Cours_de_Recherche_Operationnelle.pdf · Recherche Opérationnelle IFIPS – Département Informatique Table des matières Les

Recherche Opérationnelle IFIPS – Département Informatique

6.4 Exemple

7 3ème algorithme : Algorithme de SollinCet algorithme est déduit des conditions d'optimalité liées aux coupes, c'est une version hybride deKruskal et de PRIM. Comme Kruskal, il maintient un ensemble d'arbres couvrants des noeuds N1,N2 , etc. et ajoute des arêtes. Par contre, il ajoute des arêtes de poids minimum comme l'algorithmede PRIM. Par conséquent, Sollin est un algorithme qui utilise des structures simples et a unecomplexité de O(m log2 n) pour n noeuds et m arêtes.

7.1 PrincipeCet algorithme est basé sur la recherche du plus proche voisin. Cette opération prend en entrée unarbre couvrant les noeuds Nk (sous-ensemble de noeuds). Elle détermine ensuite l'arête (ik, jk) depoids minimum parmi toutes celles incidentes aux noeuds Nk.

I.e. I k∈N k et jk∉N k ik et jk∈2 arbres différents

7.2 ComplexitéElle dépend de la structure des données choisie. La recherche du plus proche voisin peut êtreréalisée en O(m). Le nombre d'opérations nécessaires pour fusionner les arbres est de O(log n), etdonc la complexité totale est O(m log n). Rappel : O(n2) pour PRIM, O(n2 m log m) pour Kruskal.

22 / 36

Page 23: Recherche Opérationnellemarc.sibert.free.fr/IMG/pdf/Cours_de_Recherche_Operationnelle.pdf · Recherche Opérationnelle IFIPS – Département Informatique Table des matières Les

Recherche Opérationnelle IFIPS – Département Informatique

7.3 Exemple

23 / 36

Page 24: Recherche Opérationnellemarc.sibert.free.fr/IMG/pdf/Cours_de_Recherche_Operationnelle.pdf · Recherche Opérationnelle IFIPS – Département Informatique Table des matières Les

Recherche Opérationnelle IFIPS – Département Informatique

ACPM et Programmation Linéaire

1 MotivationsLa PL apporte une preuve d'optimalité supplémentaire de l'algorithme de Kruskal. Elle permet defaire le lien entre la théorie des graphes et la combinatoire (PLNE).

2 PL correspondant au problème de l'ACPMSoit E(S) l'ensemble des arêtes du sous-graphe G = (X, E) induit par les noeuds de S. Autrement dit,E(S) est l'ensemble des arêtes dont leurs deux extrémités sont dans S. Soit xij une variable entièredéfinie par :

xij={1 si on choisit l'arêtei , j comme faisant partie de l'arbre couvrant0 sinon

Soit cij le poids de l'arête (i, j), le PL s'écrit :

{min ∑

i , j∈Ecij xij

s/c

∑i , j ∈E

xij=n−1 (cardinalité des noeuds de l'ACPM)

∑i , j ∈E S

xij≤∣S∣−1, ∀ l'ensemble des noeuds S (pour éviter d'avoir des cycles)

xij≥0, entier

La seconde somme peut présenter un nombre non polynomial de contraintes. Le problème est alorsnon-solvable.

Soit cij le poids de l'arête (i, j), soit yij le flot circulant sur l'arête (i, j), le PL s'écrit :

{min ∑

i , j ∈Ecij xij

s/c

∑j

yij−∑j

y ji={n−1 si i=r−1 si i≠r

∀ i∈X (r racine de l'arbre)

∑i , j ∈E

xij=n−1

yij≤xij∀i , j ∈Exij∈{0, 1 }, yij≥0 ∀i , j ∈E

24 / 36

Page 25: Recherche Opérationnellemarc.sibert.free.fr/IMG/pdf/Cours_de_Recherche_Operationnelle.pdf · Recherche Opérationnelle IFIPS – Département Informatique Table des matières Les

Recherche Opérationnelle IFIPS – Département Informatique

Plus court chemin

1 Introduction

1.1 Domaines d'applications• Affectations de ressources en production

• Problème de sac-à-dos (linéaire)

• Affectations de personnels d'un opérateur télécom

• Réseaux (transport, télécom, électrique, etc.)

1.2 DéfinitionsSoit le graphe orienté G = (X, U) valué i.e. d'application p :U ℝ appelée poids, longueur, coût,etc. est définie.

On appelle chemin une suite x1 e1 x2 e2 ... xn en de sommets xi et d'arcs ej tel que ej a comme origine xj

et comme extrémité xj+1.

On appelle chemin élémentaire un chemin qui n'utilise pas deux fois le même sommet.

On appelle racine d'un graphe orienté G, un sommet r tel qu'il existe un chemin de r à tous lessommets de G.

On appelle un circuit un chemin dont les extrémités coïncident.

Un circuit est dit absorbant si la somme des valuations de ses arcs est négative.

On appelle arborescence de racine r, un graphe orienté tel que :

• Le graphe non orienté sous-jacent est un arbre ;

• Pour tout sommet x, l'unique chaîne entre r et x du graphe non orienté sousjacent correspond à unchemin de r vers x dans l'arborescence.

25 / 36

Page 26: Recherche Opérationnellemarc.sibert.free.fr/IMG/pdf/Cours_de_Recherche_Operationnelle.pdf · Recherche Opérationnelle IFIPS – Département Informatique Table des matières Les

Recherche Opérationnelle IFIPS – Département Informatique

r

Parmi les caractérisations possibles d'une arborescence figure la proposition suivante :

• Un graphe orienté A est une arborescence de racine r si et seulement si le graphe non orientésous-jacent est un arbre avec de plus d -r =0 et d + x =1 ∀ x≠r . Par conséquent, on connaîtl'arborescence lorsqu'on connaît le père de chaque sommet dans celle-ci.

1.3 Problème de PCC (plus court chemin)On peut considérer les problèmes suivants :

• Pb 1 : Étant donné deux sommets x et y, trouver un chemin de coût min de x à y.

• Pb 2 : Étant donné un sommet x, trouver un PCC de x à tous les sommets du graphe.

• Pb 3 : Pour toutes paires de sommets x et y, trouver un PCC de x à y.

On peut poser les mêmes problèmes pour les chemins élémentaires.

RemarqueLe problème Pb 2 est central : on ne connaît pas de meilleurs algorithmes pour résoudre Pb 1 que derésoudre Pb 2.

2 Algorithmes de PCCIl existe deux cas importants en pratique quand le graphe n'a pas de circuit absorbant :

a) Lorsque tous les poids sont positifs ou nuls, on dispose de l'algorithme de Dijkstra,

b) Lorsque le graphe est sans circuit, on dispose de l'algorithme de Bellman.

Lorsque le graphe est quelconque, on utilise les algorithmes de Ford, Ford-Dantzig.

26 / 36

Page 27: Recherche Opérationnellemarc.sibert.free.fr/IMG/pdf/Cours_de_Recherche_Operationnelle.pdf · Recherche Opérationnelle IFIPS – Département Informatique Table des matières Les

Recherche Opérationnelle IFIPS – Département Informatique

3 PCC d'un sommet à tous les autres

3.1 MotivationsIl s'agit de trouver un routage dans un réseau dont les arcs sont valués (longueur en km, km/câbles,km/systèmes, coût, délai de transmission, etc.)

3.2 Exemple

1 0

3.3 Algorithme de Dijkstra

PrincipeIl s'agit d'étendre une arborescence initialement réduite à la racine r en gagnant à chaque étape unsommet non encore couvert et un arc dont ce sommet est l'extrémité.

On notera A l'ensemble des sommets couverts par l'arborescence à une étape donnée. À la fin del'algorithme, cette arborescence donne pour chaque sommet x un PCC de r à x et est appeléearborescence des PCC de r à x.

On définit deux fonctions sur l'ensemble des sommets :

• Une fonction Π à valeurs réelles telle que Π(x) donne la longueur du PCC de r à x.

• Une fonction père, notée père(x), qui donne le prédécesseur de x dans l'arborescence du PCC de rà x.

Étapes de l'algorithmeInitialisation :

A ← {r}pivot ← rΠ(x) ← ∞ ,∀ x≠r

boucle do : ∀ y∉A et succ. de pivot, fairesi Π(pivot) + p(pivot, y) < Π(y) // p() poids de l'arc p(x, y)alors

Π(y) ← Π(pivot) + p(pivot, y)père(y) ← pivot // ---> Ass. 1

Chercher parmi les sommets ∉ A,un sommet y tel que Π(y) est minimum.

27 / 36

Page 28: Recherche Opérationnellemarc.sibert.free.fr/IMG/pdf/Cours_de_Recherche_Operationnelle.pdf · Recherche Opérationnelle IFIPS – Département Informatique Table des matières Les

Recherche Opérationnelle IFIPS – Département Informatique

pivot ← y; // ---> Ass. 2A ← A U {pivot}

Assertion 1∀ y∉A , il existe arc dont l'origine ∈ A et l'extrémité est y, on a : y=min

x∈A[x p x , y ]

Assertion 2Π(pivot) = la longueur du PCC de r à pivot. père(pivot) : prédécesseur de pivot dans ce PCC.

Exemple numérique

3.4 ComplexitéMise à jour des distances :

A chaque étape, on actualise la fonction Π en O(d+(pivot)) opérations, chacune en O(1).Pour étendre l'arborescence, le pivot décrit successivement tous les sommets du graphe soitau total O ∑x∈X d+ x environ O(m).

Sélection des noeuds :

On doit aussi déterminer le minimum de q valeurs, où q décroît de n-1 à 1, en O(q)opérations élémentaires.Ce calcul du minimum se fait en O ∑q=1

n q soit O(n2).

La complexité de l'algorithme de Djikstra est de O(n2).

Il existe d'autres implémentations plus performantes en complexité :

• Implémentation Dial : O(m + nC) avec C plus grande valuation des arcs,

• Implémentation d'Heap : O(m logd n) avec d = m/n

28 / 36

Page 29: Recherche Opérationnellemarc.sibert.free.fr/IMG/pdf/Cours_de_Recherche_Operationnelle.pdf · Recherche Opérationnelle IFIPS – Département Informatique Table des matières Les

Recherche Opérationnelle IFIPS – Département Informatique

• Implémentation de Fibonacci : O(m + n log n)

• Implémentation de Johnson : O(m log2 C)

29 / 36

Page 30: Recherche Opérationnellemarc.sibert.free.fr/IMG/pdf/Cours_de_Recherche_Operationnelle.pdf · Recherche Opérationnelle IFIPS – Département Informatique Table des matières Les

Recherche Opérationnelle IFIPS – Département Informatique

Problème de flots

1 Applications• Réseaux (transport, télécom, électricité...)

• Graphes (bipartis, connectivité de graphes,résistance aux pannes...)

• Multiflots

2 DéfinitionsSoit un réseau modélisé par un graphe orienté, G = (X, U) pour lequel on définit une applicationcapacité c :U ]0, ∞[ et on choisit deux sommets, s comme source et p comme puits.

Soit un ensemble de sommets contenant s et ne contenant pas p. On note S le complémentaire de Sdans X.

(S, S ) est l'ensemble des arcs dont l'origine est dans S et l'extrémité dans S .

L'ensemble (S, S ) s'appelle une coupe séparant s de p.

On appelle flot dans le réseau, une application f :UR qui vérifie les propriétés suivantes :• ∀ l'arc u∈U , 0 ≤f u≤cu

• ∀ le sommet x≠{s , p} , il y a conservation de flot.

On appelle flux d'un arc u, la quantité f(u) qu'il porte.

On définit la valeur du flot f, notée val(f), par l'une des trois expressions suivantes :

1. Valeur à la source : val f =∑u d'orig. s f u−∑u d'extr. s f u

2. Valeur au puits : val f =∑u d'extr. p f u−∑u d'orig. p f u

3. Somme des flux sur les arcs de (S, S ), notée f(S, S ) moins f( S , S) : f S , S −f S , S

La capacité d'une coupe séparant s de p est définie par :CS , S = ∑

u∈S , S c u

• Recherche d'un flot de valeur max.

• Recherche d'une coupe de valeur min.

30 / 36

Page 31: Recherche Opérationnellemarc.sibert.free.fr/IMG/pdf/Cours_de_Recherche_Operationnelle.pdf · Recherche Opérationnelle IFIPS – Département Informatique Table des matières Les

Recherche Opérationnelle IFIPS – Département Informatique

Soit le graphe G suivant :

Les équations de conservation de flot s'écrivent :si f sj f sk = vj i− f sj f jk f jp = 0k i − f sk− f jk − f kp = 0pi − f jp f kp =−v

Si l'on fait la somme des 3 premières équations, on obtient :v= f jp – f kp

Donc val f =f S , S −f S , S ∀ u∈S , S , f u≤cude sorte c S , S ≥f S , S ∀ u∈S , S , f u≥0

Théorème 1Soit f un flot dans un graphe et (S, S ) une coupe séparant s et p, on a :• val f ≤c S , S

• si val f =cS , S alors f est de valeur maximum

31 / 36

S_S

s p

s

j

p

k

Page 32: Recherche Opérationnellemarc.sibert.free.fr/IMG/pdf/Cours_de_Recherche_Operationnelle.pdf · Recherche Opérationnelle IFIPS – Département Informatique Table des matières Les

Recherche Opérationnelle IFIPS – Département Informatique

•val f =c S , S ssi

∀ u∈S , S , f u=cu et∀ u∈S , S , f u=0

3 Algorithme de Ford-FulkersonCet algorithme détermine un flot max ainsi qu'une coupe de capacité min. Il repose sur le principesuivant :

Partant d'un flot dans le réseau (éventuellement nul), on cherche s'il existe une « chaîneaugmentante » pour ce flot de s à p.

Si celle-ci existe, on augmente le flot des arcs le long de cette chaîne, sinon le flot est maximun.

3.1 Chaîne augmentanteSoit f un flot dans le réseau, on considère une chaîne d'extrémités s et p du sous graphe non orientésous-jacent.

Si on veut augmenter la valeur du flot sur cette chaîne, on doit respecter les contraintes deconservation des flot.

Augmenter d'une quantité α les flux des arcs à l'endroit et diminuer de α les flux des arcs à l'envers.

3.2 Exemple

1ère chaîne augmentante

1 1a ->- b ->- d → α = 1

1 1a ->- c ->- d → α = 1c(u) – f(u)

On ne peut donc augmenter le flot en utilisant la chaîne que si l'on a :

c u– f u≥ pour les arcs à l'endroit et f u≥ pour les arcs à l'envers. S'il existe un αvérifiant ces conditions, on dit que la chaîne est augmentante pour le flot de s à p.

Soit C+ l'ensemble des arcs à l'endroit d'une chaîne et C- l'ensemble des arcs à l'envers d'une chaîne,on prendra alors :

32 / 36

Page 33: Recherche Opérationnellemarc.sibert.free.fr/IMG/pdf/Cours_de_Recherche_Operationnelle.pdf · Recherche Opérationnelle IFIPS – Département Informatique Table des matières Les

Recherche Opérationnelle IFIPS – Département Informatique

=minminu∈C+

c u−f u , minu∈C -

f uPropositionSoit un flot f dans un réseau, f est un flot de valeur maximum ssi il n'existe pas de chaîneaugmentante de s à p.

Théorème 2 de la coupe et du flotSoit le graphe G, la valeur maximum d'un flot dans G est égale à la capacité minimum d'une coupede G.

3.3 Principe de l'algorithmeChaque itération est composée de deux phases :

• La première est constituée d'un algorithme de marquage pour déterminer une chaîne augmentantesi elle existe.

• La deuxième phase exploite la chaîne augmentante pour améliorer le flot courant.

33 / 36

Page 34: Recherche Opérationnellemarc.sibert.free.fr/IMG/pdf/Cours_de_Recherche_Operationnelle.pdf · Recherche Opérationnelle IFIPS – Département Informatique Table des matières Les

Recherche Opérationnelle IFIPS – Département Informatique

Problèmes de multiflots

1 Formulation sommets-arcsSoit le graphe G = (V, A), les arcs sont munis de capacité u≥0 . Soit K l'ensemble des demandes àrouter. Soit cik

k le coût unitaire du flot K sur l'arc (i, j) et xikk le flux de la demande sur l'arc (i, j), le

problème de multiflot à coût min. s'écrit :

(MCM) {min ∑

1 ≤k≤K∑

i , j ∈Acij

k xijk

s/c

∑1≤k≤K

xijk≤uij ,∀i , j ∈A (contraintes couplantes)

∑j :i , j ∈A

xijk− ∑

j : j , i∈Ax ji

k ={bk si i=sk ,∀ i∈V−bk si i= pk ,∀ i∈V et 1 ≤k≤K0 sinon

xijk≥0, ∀i , j ∈A ,∀ k∈K

où bk : quantité de demande k.

Taille du programme linéaireNombre de contraintes = ∣A∣∣K∣∗∣V∣

Nombre de variables = ∣A∣∗∣K∣∣A∣ <- (???)

Congestion dans les réseaux

min∑k∈K∑

i , j ∈Axij

k

uij−xijk

2 Conditions d'optimalitéPour caractériser les solutions optimales des multiflots, on utilise les conditions d'optimalité de laprogrammation linéaire. On a deux variables duales :

1) Une pour les contraintes de capacité (wij)

2) Une pour les contraintes de conservation de flot (ik )

Le coût réduit de l'arc (i, j) de la demande k s'écrit :cij k=cij

kwij−ik j

k

Le dual de (MCM) s'écrit :

{max− ∑i , j∈Auij w ij∑

k=1

K

jkks/c cij

PIk=cijwij−ik j

k∀i , j ∈A et ∀ k∈Kwij≥0 ∀i , j ∈A

34 / 36

Page 35: Recherche Opérationnellemarc.sibert.free.fr/IMG/pdf/Cours_de_Recherche_Operationnelle.pdf · Recherche Opérationnelle IFIPS – Département Informatique Table des matières Les

Recherche Opérationnelle IFIPS – Département Informatique

x(primal) * z(var. d'écart du dual) = 0s(var. d'écart du primal) * y(var. du dual) = 0

Conditions d'optimalité des multiflots

a) w ij ∑k xijk−uij=0, ∀i , j ∈A

b) cij k≥0, ∀i , j ∈A ,∀ k∈K

c) cij k∗xij

k=0, ∀i , j ∈A ,∀ k∈K

3 Formulation arcs-cheminsxij

k → flux sur (i, j) de la demande k.Soit Pk l'ensemble de chemins de Sk à tk,f(p) : le flot sur un chemin P pour la kème demande,

ij P : indicateur d'un arc du chemin P {ij P =1 si l'arc i , j fait partie du chemin Pij P =0 sinon

ck(P) : coût du chemin P pour la demande kLe modèle de multiflots s'écrit :

{min∑

k∈K∑p∈Pk

ck P f P

s/c

min∑k∈K∑p∈P k

ij P f P ≤uij ,∀i , j ∈A

∑p∈P k

f P =d k ,∀ k∈K

f P ≥0, ∀ k∈K ,∀ p∈P k

35 / 36

Page 36: Recherche Opérationnellemarc.sibert.free.fr/IMG/pdf/Cours_de_Recherche_Operationnelle.pdf · Recherche Opérationnelle IFIPS – Département Informatique Table des matières Les

Recherche Opérationnelle IFIPS – Département Informatique

Bonnes révisions

;-)

36 / 36