Institut National des Sciences Appliquées et de ...

160
RECHERCHE OPÉRATIONNELLE Mohamed Khalil Labidi [email protected] Institut National des Sciences Appliquées et de Technologie Année universitaire : 2014 – 2015

Transcript of Institut National des Sciences Appliquées et de ...

Page 1: Institut National des Sciences Appliquées et de ...

RECHERCHE OPÉRATIONNELLE

Mohamed Khalil Labidim o h a m e d . k h a l i l . l a b i d i @ g m a i l . c o m

Institut National des Sciences Appliquées et de Technologie

Année universitaire : 2014 – 2015

Page 2: Institut National des Sciences Appliquées et de ...

Plan global

1. Introduction générale2. Introduction à la théorie des graphes3. Complexité des problèmes, méthodes de résolution4. Programmation linéaire

2

Page 3: Institut National des Sciences Appliquées et de ...

Introduction générale

Page 4: Institut National des Sciences Appliquées et de ...

Introduction générale

1. Motivation

2. Définitions3. Formalisation

4. Domaines d’application

4

Page 5: Institut National des Sciences Appliquées et de ...

Motivation

Un voyageur de commerce, basé à Toulon, doit visiter ses clients à travers la France

Il souhaite effectuer la tournée la plus courte possible

𝐷𝐷

5

Page 6: Institut National des Sciences Appliquées et de ...

Motivation

Données: 𝑛𝑛 villes avec une matrice de distances

Solution: Tournée visitant chaque ville et revenant

au point de départ

𝐷𝐷

6

Page 7: Institut National des Sciences Appliquées et de ...

Motivation

7

Page 8: Institut National des Sciences Appliquées et de ...

Motivation

Pouvons-nous fournir des méthodes pour répondre à un type précis de problème, c’est-à-dire à élaborer une démarche universelle pour un type de problème qui aboutit à la ou les solutions les plus efficaces?

8

Page 9: Institut National des Sciences Appliquées et de ...

Définitions Operational research UK, US operations research, Or simply OR

Cambridge Dictionary: The systematic study of how best to solve problems in business and industry

Wikipedia: Is the use of mathematical models, statistics and algorithms to aid in decision-

making

Roadef (société française de recherche opérationnelle et d’aide à la décision): Approche scientifique pour la résolution de problèmes de gestion de systèmes

complexes

9

Page 10: Institut National des Sciences Appliquées et de ...

FormalisationFace à un problème pratique de décision Aspects mathématiques Contraintes, objectifs, simplifications

Modélisation Graphes, programmation linéaire, PPC...

Analyse des modèles et résolution Etude de complexité: que peut-on espérer pour le temps disponible?

10

Page 11: Institut National des Sciences Appliquées et de ...

FormalisationFace à un problème pratique de décision Mise au point d'algorithmes

Implémentation et analyse des résultats Valider par rapport à la demande

Itérer avec le demandeur si nécessaire

Déploiement des solutions Intégration logicielle

11

Page 12: Institut National des Sciences Appliquées et de ...

Domaines d’application

Conception, configuration et exploitation de systèmes techniques complexes (réseaux de communication, systèmes d'information…)

Gestion de la chaîne logistique (transports, production, stocks...) Gestion stratégique d'investissements

Et aussi: santé, instruction publique, voirie, ramassage et distribution de courrier, production et transport d‘énergie, télécommunications, banques, assurances...

12

Page 13: Institut National des Sciences Appliquées et de ...

Domaines d’application

Production: maximiser le profit selon la disponibilité de la main d‘œuvre, demande du marché, capacité de production, prix de revient du matériau brut…

Transport: minimiser la distance totale parcourue selon les quantités de matériaux à transporter, capacité des transporteurs, points de ravitaillement en carburant…

13

Page 14: Institut National des Sciences Appliquées et de ...

Introduction à la théorie des graphes

Page 15: Institut National des Sciences Appliquées et de ...

Introduction à la théorie des graphes

1. Introduction2. Notions fondamentales sur les graphes3. Représentation d’un graphe4. Arbres, forêts et arborescences5. Problèmes

1. Le problème du plus court chemin2. Le problème de l’arbre couvrant minimum3. Le problème de flot maximum

15

Page 16: Institut National des Sciences Appliquées et de ...

Introduction

XVIIIème siècle Ville de Königsberg

16

Page 17: Institut National des Sciences Appliquées et de ...

Introduction

Peut-on traverser d'une seule traite les 7 ponts de la ville sans avoir à repasser par l'un d'entre eux ?

17

Page 18: Institut National des Sciences Appliquées et de ...

Introduction

Euler (1707-1783)

Résolution de l’énigme en 1736 Représentation de cette situation à l'aide d'un « dessin »

18

Page 19: Institut National des Sciences Appliquées et de ...

Introduction

19

Page 20: Institut National des Sciences Appliquées et de ...

Introduction

Les sommets représentent les terres et les arêtes les ponts

20

Page 21: Institut National des Sciences Appliquées et de ...

Introduction

21

Page 22: Institut National des Sciences Appliquées et de ...

Notions fondamentales sur les graphes

Un graphe 𝐺𝐺 = (𝑋𝑋, 𝑈𝑈) est déterminé par la donnée :

D’un ensemble 𝑋𝑋 non vide et fini dont les éléments sont appelés sommets ou nœuds. Si 𝑛𝑛 = |𝑋𝑋| est leur nombre, on dira que 𝐺𝐺 est d’ordre 𝒏𝒏

D’un ensemble 𝑈𝑈 ⊆ 𝑋𝑋 × 𝑋𝑋 dont les éléments sont des couples ordonnés de sommets appelées arcs ou arêtes. On notera souvent 𝑈𝑈 = 𝒎𝒎

22

Page 23: Institut National des Sciences Appliquées et de ...

Notions fondamentales sur les graphes

Si 𝑢𝑢 = 𝑖𝑖, 𝑗𝑗 est un arc de 𝐺𝐺, 𝑖𝑖 et 𝑗𝑗 sont les extrémités de 𝑢𝑢 et sont dites adjacentes. Si 𝑢𝑢 est orienté de 𝑖𝑖 vers 𝑗𝑗, alors 𝑖𝑖 est l’extrémité initiale de 𝑢𝑢 et 𝑗𝑗 est l’extrémité terminale de 𝑢𝑢

Si tous les nœuds de 𝐺𝐺 sont mutuellement connectés, on aura 𝑚𝑚 = 𝑛𝑛 𝑛𝑛−12

et G sera dit complet

Le degré 𝑑𝑑 𝑖𝑖 d’un sommet 𝑖𝑖 est égal au nombre d’arcs dont 𝑖𝑖 est une extrémité

23

Page 24: Institut National des Sciences Appliquées et de ...

Notions fondamentales sur les graphes

Dans un graphe orienté, le demi-degré entrant 𝑑𝑑+(𝑖𝑖) (resp. sortant 𝑑𝑑−(𝑖𝑖)d’un sommet 𝑖𝑖 est égal au nombre d’arcs dont 𝑖𝑖 est une extrémité terminale ( resp. initiale) et nous avons 𝑑𝑑(𝑖𝑖) = 𝑑𝑑+(𝑖𝑖) + 𝑑𝑑−(𝑖𝑖) Un graphe est simple s'il ne contient ni boucle ni arêtes multiples, par boucle on sous-entend une arête dont ses deux extrémités sont identiques et par arêtes multiples les différentes arêtes reliant les mêmes extrémités initiale et terminale

24

Page 25: Institut National des Sciences Appliquées et de ...

Notions fondamentales sur les graphes

On dira aussi qu’un graphe 𝐺𝐺′ = 𝑋𝑋′, 𝑈𝑈𝑈 est un sous-graphe d’un graphe 𝐺𝐺 =𝑋𝑋, 𝑈𝑈 lorsque 𝑋𝑋𝑈 ⊆ 𝑋𝑋 et 𝑈𝑈𝑈 ⊆ 𝑈𝑈 Un sous-graphe recouvrant d’un graphe 𝐺𝐺 = 𝑋𝑋, 𝑈𝑈 est un sous-graphe 𝐺𝐺′ =

𝑋𝑋, 𝑈𝑈𝑈 c’est-à-dire un sous-graphe dont sont sommets tous les sommets de G

Une chaine de longueur q (de cardinalité q) est une séquence de q arcs : 𝐿𝐿 =𝑢𝑢1, 𝑢𝑢2, … , 𝑢𝑢𝑞𝑞 telle que chaque arc 𝑈𝑈𝑟𝑟 de la séquence 2 ≤ 𝑟𝑟 ≤ 𝑞𝑞 − 1 ait une

extrémité commune avec l’arc 𝑢𝑢𝑟𝑟−1 𝑢𝑢𝑟𝑟−1 ≠ 𝑢𝑢𝑟𝑟 et l’autre extrémité commune avec l’arc 𝑢𝑢𝑟𝑟+1 𝑢𝑢𝑟𝑟+1 ≠ 𝑢𝑢𝑟𝑟

25

Page 26: Institut National des Sciences Appliquées et de ...

Notions fondamentales sur les graphes

L’extrémité i de 𝑢𝑢1 non adjacente à 𝑢𝑢2, et l’extrémité j de 𝑢𝑢𝑞𝑞 non adjacente à 𝑢𝑢𝑞𝑞−1 sont appelées les extrémités de la chaine L

Une chaîne dont le nœud de départ et le nœud d'arrivée sont identiques s’appelle cycle

Un chemin est une séquence finie et alternée de sommets et d’arcs, débutant et finissant par des sommets, telle que chaque arc est sortant d’un sommet et incident au sommet suivant dans la séquence

Un chemin dont le nœud de départ et le nœud d'arrivée sont identiques s’appelle circuit

26

Page 27: Institut National des Sciences Appliquées et de ...

Notions fondamentales sur les graphes

Un graphe est dit connexe si, pour tout couple de sommets i et j, il existe une chaine joignant i et j. La relation:

𝑖𝑖 ℛ 𝑗𝑗 ⇔ �𝑠𝑠𝑠𝑠𝑖𝑖𝑠𝑠 𝑖𝑖 = 𝑗𝑗

𝑠𝑠𝑠𝑠𝑖𝑖𝑠𝑠 𝑖𝑖𝑖𝑖 𝑒𝑒𝑒𝑒𝑖𝑖𝑠𝑠𝑠𝑠𝑒𝑒 𝑢𝑢𝑛𝑛𝑒𝑒 𝑐𝑐𝑐𝑐𝑐𝑖𝑖𝑛𝑛𝑒𝑒 𝑗𝑗𝑠𝑠𝑖𝑖𝑗𝑗𝑐𝑐𝑛𝑛𝑠𝑠 𝑖𝑖 𝑒𝑒𝑠𝑠 𝑗𝑗

est une relation d’équivalence (réflexive, symétrique, transitive)

27

Page 28: Institut National des Sciences Appliquées et de ...

Notions fondamentales sur les graphes

Les classes d’équivalence induites sur X par cette relation forment une partition de X en : 𝑋𝑋1, 𝑋𝑋2, … , 𝑋𝑋𝑝𝑝. Le nombre de classes d’équivalence distinctes, noté p, est appelé le nombre de connexité du graphe. Un graphe est dit connexe si et seulement si son nombre de connexité p est égal à 1.

Un sous-graphe GA engendré par 𝐴𝐴 ⊂ 𝑋𝑋 dont les sommets sont les éléments de A, et les arêtes sont les arêtes de G ayant leurs deux extrémités dans A, les sous-graphes 𝐺𝐺1, 𝐺𝐺2, … , 𝐺𝐺𝑝𝑝 engendrés par les sous-ensembles 𝑋𝑋1, 𝑋𝑋2, … , 𝑋𝑋𝑝𝑝 sont appelés composantes connexes (CC) du graphe G

28

Page 29: Institut National des Sciences Appliquées et de ...

Notions fondamentales sur les graphes

29

Page 30: Institut National des Sciences Appliquées et de ...

Notions fondamentales sur les graphes Un graphe est fortement connexe est un graphe orienté dont toutes les paires de sommets peuvent être reliées par un chemin. La relation:

𝑖𝑖 ℛ 𝑗𝑗 ⇔ �𝑠𝑠𝑠𝑠𝑖𝑖𝑠𝑠 𝑖𝑖 = 𝑗𝑗

𝑠𝑠𝑠𝑠𝑖𝑖𝑠𝑠 𝑖𝑖𝑖𝑖 𝑒𝑒𝑒𝑒𝑖𝑖𝑠𝑠𝑠𝑠𝑒𝑒 𝑢𝑢𝑛𝑛 𝑐𝑐𝑐𝑒𝑒𝑚𝑚𝑖𝑖𝑛𝑛 𝑐𝑐𝑖𝑖𝑖𝑖𝑐𝑐𝑛𝑛𝑠𝑠 𝑑𝑑𝑒𝑒 𝑖𝑖 à 𝑗𝑗𝒆𝒆𝒆𝒆 𝑢𝑢𝑛𝑛 𝑐𝑐𝑐𝑒𝑒𝑚𝑚𝑖𝑖𝑛𝑛 𝑑𝑑𝑒𝑒 𝑗𝑗 à 𝑖𝑖

est une relation d’équivalence.

Les classes d’équivalence induites sur X par cette relation forment une partition de X en : 𝑋𝑋1, 𝑋𝑋2, … , 𝑋𝑋𝑝𝑝. Les sous-graphes 𝐺𝐺1, 𝐺𝐺2, … , 𝐺𝐺𝑝𝑝 engendrés par les sous-ensembles 𝑋𝑋1, 𝑋𝑋2, … , 𝑋𝑋𝑝𝑝 sont appelés les composantes fortement connexes (CFC) de G

30

Page 31: Institut National des Sciences Appliquées et de ...

Notions fondamentales sur les graphes

31

Page 32: Institut National des Sciences Appliquées et de ...

Notions fondamentales sur les graphes

La distance entre deux sommets d'un graphe connexe (ou entre 2 sommets d'une même composante connexe) est égale à la longueur (nombre d’arêtes) de la plus courte chaine les reliant

On appelle ainsi diamètre d’un graphe G, noté 𝛿𝛿 𝐺𝐺 , la distance maximale entre deux sommets du graphe G

32

Page 33: Institut National des Sciences Appliquées et de ...

Représentation d’un graphe

Comment stocker un graphe d’une manière efficace ?

33

Page 34: Institut National des Sciences Appliquées et de ...

Représentation d’un graphe

espace mémoire la complexité d’accès

34

Page 35: Institut National des Sciences Appliquées et de ...

Représentation d’un graphe

Aucune représentation n’est parfaite

Choix de la structure à adopter en fonction du graphe et l’algorithme

Trois structures très utilisées:

Matrice d’incidence nœud-arc

Matrice d’adjacence nœud-nœud

Liste d’adjacence

35

Page 36: Institut National des Sciences Appliquées et de ...

Représentation d’un graphe

Matrice d’incidence nœud-arc: Matrice 𝒜𝒜 𝐺𝐺 de taille 𝑛𝑛 × 𝑚𝑚

𝑐𝑐𝑖𝑖𝑖𝑖 = �1

−10

𝑠𝑠𝑖𝑖 𝑖𝑖𝑒𝑒 𝑠𝑠𝑠𝑠𝑚𝑚𝑚𝑚𝑒𝑒𝑠𝑠 𝑖𝑖 𝑒𝑒𝑠𝑠𝑠𝑠 𝑖𝑖𝑈𝑠𝑠𝑟𝑟𝑖𝑖𝑗𝑗𝑖𝑖𝑛𝑛𝑒𝑒 𝑑𝑑𝑒𝑒 𝑖𝑖𝑈𝑐𝑐𝑟𝑟𝑐𝑐 𝑘𝑘𝑠𝑠𝑖𝑖 𝑖𝑖𝑒𝑒 𝑠𝑠𝑠𝑠𝑚𝑚𝑚𝑚𝑒𝑒𝑠𝑠 𝑖𝑖 𝑒𝑒𝑠𝑠𝑠𝑠 𝑖𝑖𝑐𝑐 𝑑𝑑𝑒𝑒𝑠𝑠𝑠𝑠𝑖𝑖𝑛𝑛𝑐𝑐𝑠𝑠𝑖𝑖𝑠𝑠𝑛𝑛 𝑑𝑑𝑒𝑒 𝑖𝑖𝑈𝑐𝑐𝑟𝑟𝑐𝑐 𝑘𝑘

𝑝𝑝𝑐𝑐𝑟𝑟𝑠𝑠𝑠𝑠𝑢𝑢𝑠𝑠 𝑐𝑐𝑖𝑖𝑖𝑖𝑖𝑖𝑒𝑒𝑢𝑢𝑟𝑟𝑠𝑠

Dans le cas non orienté, les coefficients valent 1 si le sommet en est une extrémité de l’arête et 0 sinon

36

Page 37: Institut National des Sciences Appliquées et de ...

Représentation d’un graphe

Matrice d’incidence nœud-arc: Cas orienté: u1 u2 u3 u4 u5 u6

1 0 0 -1 -1 0 0

2 1 1 0 0 0 0

3 -1 0 1 0 0 0

4 0 0 0 0 -1 1

5 0 0 0 0 1 -1

6 0 -1 0 1 0 0

37

Page 38: Institut National des Sciences Appliquées et de ...

u1 u2 u3 u4 u5

1 1 1 0 0 0

2 0 0 1 1 0

3 1 0 1 0 0

4 0 0 0 0 1

5 0 0 0 0 1

6 0 1 0 1 0

Représentation d’un graphe

Matrice d’incidence nœud-arc: Cas non orienté:

38

Page 39: Institut National des Sciences Appliquées et de ...

Représentation d’un graphe

Matrice d’adjacence nœud-noeud: Matrice ℬ(𝐺𝐺) de taille 𝑛𝑛 × 𝑛𝑛

𝑏𝑏𝑖𝑖𝑖𝑖 = 1 𝑠𝑠𝑖𝑖 𝑒𝑒𝑠𝑠 𝑠𝑠𝑒𝑒𝑢𝑢𝑖𝑖𝑒𝑒𝑚𝑚𝑒𝑒𝑛𝑛𝑠𝑠 𝑠𝑠𝑖𝑖 𝑖𝑖, 𝑗𝑗 ∈ 𝑈𝑈 (𝑏𝑏𝑖𝑖𝑖𝑖 = 0 𝑠𝑠𝑖𝑖𝑛𝑛𝑠𝑠𝑛𝑛)

Remarque: 𝐺𝐺 ne peut contenir ni d’arêtes multiples, ni plus d’une boucle par sommet

39

Page 40: Institut National des Sciences Appliquées et de ...

Représentation d’un graphe

Matrice d’adjacence nœud-noeud: Cas orienté:

1 2 3 4 5 6

1 0 0 0 0 0 0

2 0 0 1 0 0 1

3 1 0 0 0 0 0

4 0 0 0 0 1 0

5 0 0 0 1 0 0

6 1 0 0 0 0 0

40

Page 41: Institut National des Sciences Appliquées et de ...

Représentation d’un graphe

Matrice d’adjacence nœud-noeud: Cas non orienté:

1 2 3 4 5 6

1 0

2 0 0

3 1 1 0

4 0 0 0 0

5 0 0 0 1 0

6 1 1 0 0 0 0

41

Page 42: Institut National des Sciences Appliquées et de ...

Représentation d’un graphe

Liste d’adjacence:

Chaque élément de la première représente un nœud qui à son tour comporte une structure à une dimension qui énumèrera les successeurs du sommet en question

42

Page 43: Institut National des Sciences Appliquées et de ...

Représentation d’un graphe

Liste d’adjacence: Cas orienté: 1 → ∅

2 → 3 6

3 → 1

4 → 5

5 → 4

6 → 1

43

Page 44: Institut National des Sciences Appliquées et de ...

Représentation d’un graphe

Liste d’adjacence: Cas non orienté: 1 → 3 6

2 → 3 6

3 → 1 2

4 → 5

5 → 4

6 → 1 2

44

Page 45: Institut National des Sciences Appliquées et de ...

Arbres, forêts et arborescences Un arbre peut être définit de plusieurs manières, nous citons quelques unes. Un graphe G est un arbre si et seulement si:

Il est connexe et sans cycle

Il est connexe minimum au sens des arêtes, c’est-à-dire qu’il n’est plus connexe si on lui supprime l’une quelconque de ses arêtes

Il est sans cycles et maximum au sens des arêtes, c’est-à-dire qu’on crée un cycle en ajoutant une arête rendant adjacents deux quelconques de ses sommets qui ne l’étaient pas

Il est connexe (ou sans cycles) et possède 𝑛𝑛 − 1 arêtes

45

Page 46: Institut National des Sciences Appliquées et de ...

Arbres, forêts et arborescences

46

Page 47: Institut National des Sciences Appliquées et de ...

Arbres, forêts et arborescences Une forêt est un graphe sans cycle (ou un ensemble d’arbre)

47

Page 48: Institut National des Sciences Appliquées et de ...

Arbres, forêts et arborescences Un graphe 𝐺𝐺 est une arborescence s’il existe un sommet 𝑟𝑟 appelé racine de 𝐺𝐺tel que pour tout sommet 𝑠𝑠 de 𝐺𝐺, il existe un chemin et un seul de 𝑟𝑟 vers 𝑠𝑠

48

Page 49: Institut National des Sciences Appliquées et de ...

Problèmes: Le problème du plus court chemin

Définition: Soit 𝐺𝐺 = (𝑋𝑋, 𝑈𝑈) un graphe valué; on associe à chaque arc 𝑢𝑢 = (𝑖𝑖, 𝑗𝑗)une longueur 𝑖𝑖(𝑢𝑢) ou 𝑖𝑖𝑖𝑖𝑖𝑖. Le problème du plus chemin entre 𝑖𝑖 et 𝑗𝑗 consiste à trouver un chemin 𝜇𝜇(𝑖𝑖, . . , 𝑗𝑗) de 𝑖𝑖 à 𝑗𝑗 tel que:

𝑖𝑖 𝜇𝜇 = ∑𝑢𝑢∈𝜇𝜇 𝑖𝑖(𝑢𝑢) soit minimale

49

Page 50: Institut National des Sciences Appliquées et de ...

Problèmes: Le problème du plus court chemin Lemme de Koenig: Un plus court chemin entre 2 sommets est élémentaire

Nombre de chemins devient fini

De l’ordre de 𝑛𝑛!

Principe de sous-optimalité: Si 𝜇𝜇 = (𝑖𝑖, . . , 𝑗𝑗) est un plus court chemin entre 𝑖𝑖 et 𝑗𝑗, alors pour tout sommet 𝑒𝑒 sur le chemin 𝜇𝜇:

Le sous-chemin de 𝜇𝜇 jusqu’à 𝑒𝑒, (𝑖𝑖, . . , 𝑒𝑒), est le plus court chemin de 𝑖𝑖 à 𝑒𝑒

Le sous-chemin de 𝜇𝜇 depuis 𝑒𝑒, (𝑒𝑒, . . , 𝑗𝑗), est le plus court chemin de 𝑒𝑒 à 𝑗𝑗

50

Page 51: Institut National des Sciences Appliquées et de ...

Problèmes: Le problème du plus court chemin Lemme de Koenig: Un plus court chemin entre 2 sommets est élémentaire

Nombre de chemins devient fini

De l’ordre de 𝑛𝑛!

Principe de sous-optimalité: Si 𝜇𝜇 = (𝑖𝑖, . . , 𝑗𝑗) est un plus court chemin entre 𝑖𝑖 et 𝑗𝑗, alors pour tout sommet 𝑒𝑒 sur le chemin 𝜇𝜇:

Le sous-chemin de 𝜇𝜇 jusqu’à 𝑒𝑒, (𝑖𝑖, . . , 𝑒𝑒), est le plus court chemin de 𝑖𝑖 à 𝑒𝑒

Le sous-chemin de 𝜇𝜇 depuis 𝑒𝑒, (𝑒𝑒, . . , 𝑗𝑗), est le plus court chemin de 𝑒𝑒 à 𝑗𝑗

51

Page 52: Institut National des Sciences Appliquées et de ...

Problèmes: Le problème du plus court chemin

Algorithme de Dijkstra: Permet de calculer le plus court chemin entre un sommet et tous les autres

Graphe 𝐺𝐺 à longueurs positives

Numérotation des sommets de 𝐺𝐺 de 1 à 𝑛𝑛

Recherche des chemins partant du sommet 1

Construction d’un vecteur 𝜆𝜆 = (𝜆𝜆 1 ; 𝜆𝜆 2 ; … ; 𝜆𝜆(𝑛𝑛)) tel que 𝜆𝜆 𝑗𝑗 soit égale à la longueur du plus court chemin allant de 1 au sommet 𝑗𝑗

Construction d’un vecteur 𝑝𝑝 pour mémoriser le chemin pour aller du sommet 1 au sommet voulu. La valeur 𝑝𝑝(𝑗𝑗) donne le sommet qui précède 𝑗𝑗 dans le chemin

52

Page 53: Institut National des Sciences Appliquées et de ...

Problèmes: Le problème du plus court chemin

Algorithme de Dijkstra: 𝜆𝜆 est initialisé à 𝑐𝑐1𝑖𝑖, tel que:

𝑐𝑐𝑖𝑖𝑖𝑖 = �0∞𝑖𝑖 𝑖𝑖, 𝑗𝑗

𝑠𝑠𝑖𝑖 𝑖𝑖 = 𝑗𝑗𝑠𝑠𝑖𝑖 𝑖𝑖 ≠ 𝑗𝑗 𝑒𝑒𝑠𝑠 (𝑖𝑖, 𝑗𝑗) ∉ 𝐸𝐸𝑠𝑠𝑖𝑖 𝑖𝑖 ≠ 𝑗𝑗 𝑒𝑒𝑠𝑠 (𝑖𝑖, 𝑗𝑗) ∈ 𝐸𝐸

𝑝𝑝(𝑗𝑗) initialement est égal à NULL, ou 1 si (1, 𝑗𝑗) ∈ 𝐸𝐸

Deux ensembles de sommets sont considérés, 𝑆𝑆 initialisé à {1} et 𝑇𝑇 à 2, … , 𝑛𝑛

À chaque itération, on ajoute à 𝑆𝑆 un sommet de 𝑇𝑇 de telle sorte que le vecteur 𝜆𝜆donne à chaque étape la longueur minimale des chemins de 1 aux sommets de 𝑆𝑆

53

Page 54: Institut National des Sciences Appliquées et de ...

Problèmes: Le problème du plus court chemin

Algorithme de Dijkstra:Initialisations

𝜆𝜆 𝑗𝑗 = 𝑐𝑐1𝑖𝑖 et 𝑝𝑝 𝑗𝑗 = 𝑁𝑁𝑈𝑈𝐿𝐿𝐿𝐿, pour 1 ≤ 𝑗𝑗 ≤ 𝑛𝑛Pour 2 ≤ 𝑗𝑗 ≤ 𝑛𝑛 faire

Si 𝑐𝑐1𝑖𝑖 < ∞ alors𝑝𝑝 𝑗𝑗 = 1

𝑆𝑆 = {1} ; 𝑇𝑇 = {2, … , 𝑛𝑛}

54

Page 55: Institut National des Sciences Appliquées et de ...

Problèmes: Le problème du plus court chemin

Algorithme de Dijkstra:Itérations

Tant que 𝑇𝑇 n’est pas vide fairechoisir 𝑖𝑖 dans 𝑇𝑇 tel que 𝜆𝜆(𝑖𝑖) est minimumretirer 𝑖𝑖 de 𝑇𝑇 et l’ajouter à 𝑆𝑆Pour chaque successeur 𝑗𝑗 de 𝑖𝑖, avec 𝑗𝑗 dans 𝑇𝑇, faire

Si 𝜆𝜆 𝑗𝑗 > 𝜆𝜆 𝑖𝑖 + 𝑖𝑖(𝑖𝑖, 𝑗𝑗) alors𝜆𝜆 𝑗𝑗 = 𝜆𝜆 𝑖𝑖 + 𝑖𝑖(𝑖𝑖, 𝑗𝑗)𝑝𝑝 𝑗𝑗 = 𝑖𝑖

55

Page 56: Institut National des Sciences Appliquées et de ...

Problèmes: Le problème du plus court chemin

Algorithme de Dijkstra:Exp:

56

Page 57: Institut National des Sciences Appliquées et de ...

Problèmes: Le problème de l’arbre couvrant minimum On souhaite connecter des villes entre elles avec un nouveau réseau très haut débit Un certains nombre de connexions directes point à point entre les villes sont techniquement possibles Il nous faut choisir lesquelles parmi ces connexions nous allons effectivement mettre en place

57

Page 58: Institut National des Sciences Appliquées et de ...

Problèmes: Le problème de l’arbre couvrant minimum

La distance entre 2 villes dans le réseau final a peu d'importance au vu des débits prévus

Les coûts d'installation des liaisons ne sont pas les mêmes

Comment connecter toutes les villes en minimisant le coût total du réseau?

58

Page 59: Institut National des Sciences Appliquées et de ...

Problèmes: Le problème de l’arbre couvrant minimum

Arbre de recouvrement: Un arbre de recouvrement (AR) 𝐺𝐺𝐴𝐴𝐴𝐴 = 𝑋𝑋, 𝑈𝑈∗ de 𝐺𝐺est un sous-graphe recouvrant de 𝐺𝐺 qui est un arbre, les arêtes de 𝐺𝐺𝐴𝐴𝐴𝐴 sont appelées branches

59

Page 60: Institut National des Sciences Appliquées et de ...

Problèmes: Le problème de l’arbre couvrant minimum

Formulation: étant un graphe 𝐺𝐺 = 𝑋𝑋, 𝑈𝑈 non orienté, connexe et pondéré par une fonction 𝑖𝑖 attachée aux arêtes. On souhaite trouver dans 𝐺𝐺 un AR de poids total minimum

60

Page 61: Institut National des Sciences Appliquées et de ...

Problèmes: Le problème de l’arbre couvrant minimum

61

Page 62: Institut National des Sciences Appliquées et de ...

Problèmes: Le problème de l’arbre couvrant minimum

Plusieurs algorithmes de résolution

Exploitation des caractéristiques des arbres

Graphes connexes minimaux

Graphes acycliques (sans cycles) maximaux

Les deux algorithmes les plus connus:

Prim

Kruskal

62

Page 63: Institut National des Sciences Appliquées et de ...

Problèmes: Le problème de l’arbre couvrant minimum

Algorithme de Prim: Exploite la première caractéristique

Dans un arbre couvrant 𝑇𝑇, il existe nécessairement une arête qui relie l'un des sommets de 𝑇𝑇 avec un sommet en dehors de 𝑇𝑇

L'idée est de maintenir un sous-graphe partiel connexe, en le connectant à un nouveau sommet à chaque étape

Pour construire un arbre couvrant de poids minimum, il suffirait de choisir à chaque fois parmi les arêtes sortantes celle de poids le plus faible pour que l’augmentation soit la plus économique possible

63

Page 64: Institut National des Sciences Appliquées et de ...

Problèmes: Le problème de l’arbre couvrant minimum

Algorithme de Prim:Initialisations

𝐹𝐹 = 𝑉𝑉𝑉𝑉𝐷𝐷𝐸𝐸 /* F est l’ensemble des arêtes de l’arbre */marquer arbitrairement un sommet

Itérations

Tant Que il existe un sommet non marqué adjacent à un sommet marqué faireSélectionner un sommet 𝑦𝑦 non marqué adjacent à un sommet marqué 𝑒𝑒tel que (𝑒𝑒, 𝑦𝑦) est l'arête sortante de plus faible poids𝐹𝐹 = 𝐹𝐹 ∪ { 𝑒𝑒, 𝑦𝑦 }marquer 𝑦𝑦

64

Page 65: Institut National des Sciences Appliquées et de ...

Problèmes: Le problème de l’arbre couvrant minimum

Algorithme de Kruskal: Exploite la deuxième caractéristique

L’ajout d’une arête à un arbre 𝑇𝑇 crée un cycle

Construction de l’arbre couvrant en ne raisonnant que sur les arêtes

Construction par ajout à chaque fois d’une arête, si et seulement si le graphe reste acyclique

On a intérêt à ajouter les arêtes de poids le plus faible

Parcours d’une liste des arêtes triée dans l’ordre des poids croissants

65

Page 66: Institut National des Sciences Appliquées et de ...

Problèmes: Le problème de l’arbre couvrant minimum

Algorithme de Kruskal:Initialisations

trier 𝐿𝐿𝑈𝑈 dans l’ordre des poids croissants /* 𝐿𝐿𝑈𝑈 est l’ensemble des arêtes */𝐹𝐹 = 𝑉𝑉𝑉𝑉𝐷𝐷𝐸𝐸 et 𝐾𝐾 = 0 /* F est l’ensemble des arêtes de l’arbre */

Itérations

Tant Que 𝑘𝑘 < 𝑚𝑚 et 𝐹𝐹 < 𝑛𝑛 − 1 faire𝑘𝑘 = 𝑘𝑘 + 1Si 𝑖𝑖𝑖𝑖 ne forme pas de cycle avec 𝐹𝐹 alors

𝐹𝐹 = 𝐹𝐹 ∪ {𝑖𝑖𝑖𝑖}

66

Page 67: Institut National des Sciences Appliquées et de ...

Problèmes: Le problème de l’arbre couvrant minimum

67

Page 68: Institut National des Sciences Appliquées et de ...

Problèmes: Le problème de flot maximum

Un réseau de transport est un graphe, sans boucle, où chaque arc est associé à un nombre 𝑐𝑐(𝑢𝑢) ≥ 0, appelé "capacité" de l'arc 𝑢𝑢. En outre, un tel réseau vérifie les hypothèses suivantes

Il existe un seul nœud 𝑆𝑆 qui n'a pas de prédécesseurs, tous les autres en ont au moins un. Ce nœud est appelé l'entrée du réseau, ou la source

Il existe également un seul nœud 𝑃𝑃 qui n'a pas de successeurs, tous les autres en ont au moins un. Ce nœud est appelé la sortie du réseau, ou le puits

68

Page 69: Institut National des Sciences Appliquées et de ...

Problèmes: Le problème de flot maximum

𝑃𝑃𝑆𝑆

69

Page 70: Institut National des Sciences Appliquées et de ...

Problèmes: Le problème de flot maximum

Définition: Un flot dans un graphe 𝐺𝐺 = (𝑋𝑋, 𝑈𝑈) est un vecteur ϕ = [ϕ1,ϕ2, … ,ϕ𝑚𝑚]

Page 71: Institut National des Sciences Appliquées et de ...

Problèmes: Le problème de flot maximum

Le problème du flot maximal consiste à déterminer un flot dont la valeur en un certain lieu est maximale

Mais comment sait-on si un flot est maximal?

71

Page 72: Institut National des Sciences Appliquées et de ...

Problèmes: Le problème de flot maximum

Pour un flot ϕ dans un réseau de transport 𝐺𝐺, on dit qu’un arc 𝑢𝑢est saturé si l’on a 𝜑𝜑 𝑢𝑢 = 𝑐𝑐(𝑢𝑢)

Un flot est dit complet si tout chemin allant de 𝑆𝑆 à 𝑃𝑃 contient au moins un arc saturé

72

Page 73: Institut National des Sciences Appliquées et de ...

Problèmes: Le problème de flot maximum

Soit un réseau de transport 𝐺𝐺 = (𝑋𝑋, 𝑈𝑈, 𝐶𝐶) possédant un flot complet ϕ. On appelle graphe d’écart ou réseau résiduel, le réseau 𝐺𝐺′ ϕ = (𝑋𝑋, 𝑈𝑈′, 𝐶𝐶′) tel que: Si 𝑢𝑢 ∈ 𝑈𝑈 et ϕ(𝑢𝑢) < 𝐶𝐶(𝑢𝑢) alors 𝑢𝑢 ∈ 𝑈𝑈′ et 𝐶𝐶′ 𝑢𝑢 = 𝐶𝐶 𝑢𝑢 − ϕ(𝑢𝑢) Si 𝑢𝑢 ∈ 𝑈𝑈 et ϕ 𝑢𝑢 = 𝐶𝐶(𝑢𝑢) alors 𝑢𝑢 ∉ 𝑈𝑈′

Si 𝑢𝑢 = (𝑒𝑒, 𝑦𝑦) ∈ 𝑈𝑈 et ϕ(𝑢𝑢) > 0 alors 𝑢𝑢−1 = (𝑦𝑦, 𝑒𝑒) ∈ 𝑈𝑈′ et 𝐶𝐶′ 𝑢𝑢−1 = ϕ(𝑢𝑢)

73

Page 74: Institut National des Sciences Appliquées et de ...

Problèmes: Le problème de flot maximum

Le réseau résiduel indique le long de quels arcs on peut augmenter ou diminuer le flot.

Théorème: Soit ϕ un flot de 𝐺𝐺 (de 𝑆𝑆 à 𝑃𝑃) et 𝐺𝐺′(ϕ) le réseau résiduel associé à ϕ. Une condition nécessaire et suffisante pour que le flot ϕ soit maximal est qu’il n’existe pas de chemin de 𝑆𝑆 à 𝑃𝑃 dans 𝐺𝐺′(ϕ)

74

Page 75: Institut National des Sciences Appliquées et de ...

Problèmes: Le problème de flot maximum

Algorithme de Ford-Fulkerson:

Initialisations

Partir d’un flot initial 𝜑𝜑0 compatible avec les contraintes de capacitépar exemple 𝜑𝜑0 = (0,0,0, … , 0)𝑘𝑘 = 0

Itérations /* soit 𝜑𝜑𝑖𝑖 le flot courant */

Rechercher un chemin 𝜇𝜇𝑖𝑖 de 𝑆𝑆 à 𝑃𝑃 dans le graphe d’écart 𝐺𝐺′(𝜑𝜑𝑖𝑖)Si il n’en existe pas alors

FIN /* le flot 𝜑𝜑𝑖𝑖 est maximal */Soit 𝜀𝜀𝑖𝑖 la capacité résiduelle du chemin 𝜇𝜇𝑖𝑖 (minimum des capacités résiduelles)

75

Page 76: Institut National des Sciences Appliquées et de ...

Problèmes: Le problème de flot maximum

Algorithme de Ford-Fulkerson:

Définir le flot 𝜑𝜑𝑖𝑖+1 par:𝜑𝜑𝑢𝑢

𝑖𝑖+1 = 𝜑𝜑𝑢𝑢𝑖𝑖 + 𝜀𝜀𝑖𝑖 si 𝑢𝑢 ∈ 𝜇𝜇𝑖𝑖 et si 𝑢𝑢 est orientée dans le sens de 𝜇𝜇𝑖𝑖

𝜑𝜑𝑢𝑢𝑖𝑖+1 = 𝜑𝜑𝑢𝑢

𝑖𝑖 − 𝜀𝜀𝑖𝑖 si 𝑢𝑢 ∈ 𝜇𝜇𝑖𝑖 et si 𝑢𝑢 est orientée dans le sens contraire de 𝜇𝜇𝑖𝑖

𝑘𝑘 = 𝑘𝑘 + 1Jump To Début itération

76

Page 77: Institut National des Sciences Appliquées et de ...

Problèmes: Le problème de flot maximum

77

Page 78: Institut National des Sciences Appliquées et de ...

Complexité des problèmes, méthodes de résolution

Page 79: Institut National des Sciences Appliquées et de ...

Complexité des problèmes, méthodes de résolution

1. Introduction

2. Classification des problèmes3. Recherche opérationnelle et optimisation

4. Méthodes de résolution

79

Page 80: Institut National des Sciences Appliquées et de ...

Introduction

Malgré la révolution informatique de ces dernières années, certains problèmes d’intérêt pratique demeurent hors de portée de nos ordinateurs, même les plus rapides

Pour certains problèmes, la difficulté est telle qu’il faut des siècles pour que tous les ordinateurs modernes fonctionnant en parallèles aboutissent à la solution

80

Page 81: Institut National des Sciences Appliquées et de ...

Introduction

Ces problèmes sont-ils intrinsèquement difficiles ou y-a-t-il un raccourci pour les résoudre?

81

Page 82: Institut National des Sciences Appliquées et de ...

Classification des problèmes

La classe P

Un problème est dit polynomial (appartenant à la classe P) s’il peut être résolu par un algorithme déterministe de complexité temporelle polynomiale en la taille du problème

82

Page 83: Institut National des Sciences Appliquées et de ...

Classification des problèmes

La classe NP La classe NP possède une définition moins naturelle que celle de la classe P (nom trompeur) NP signifie polynomial non déterministe Extension de la classe P en autorisant des choix non déterministes

Pour ce type de problème il est possible de vérifier une solution efficacement (en temps polynomial)

83

Page 84: Institut National des Sciences Appliquées et de ...

Classification des problèmes

La classe NP-complet (NP-Complete) La théorie de la NP-complétude concerne la reconnaissance des problèmes les plus durs de la classe NP Un problème est dit NP-complet s’il vérifie les propriétés suivantes:

Il est possible de vérifier une solution en temps polynomial

Tout problème Q de NP lui est réductible; cela signifie que le problème est au moins aussi difficile que tous les autres problèmes de la classe NP

84

Page 85: Institut National des Sciences Appliquées et de ...

Classification des problèmes

La classe NP-difficile (NP-Hard) Cette classe contient les problème les plus dur à résoudre (en terme de complexité temporelle) Un problème est dit NP-difficile si tout problème Q de NP lui est réductible

Si on savait résoudre un quelconque de ces problèmes en temps polynomial, alors on saurait résoudre tous les problèmes NP en temps polynomial

85

Page 86: Institut National des Sciences Appliquées et de ...

Classification des problèmes

86

Page 87: Institut National des Sciences Appliquées et de ...

Recherche opérationnelle et optimisation

Un lien très étroit lie la recherche opérationnelle à l’optimisation

87

Page 88: Institut National des Sciences Appliquées et de ...

Recherche opérationnelle et optimisation

Très souvent, on ramène une aide à la décision à la résolution d’un problème d’optimisation

Définition: Soit 𝑛𝑛 un entier strictement positif et soient 𝐷𝐷 ⊂ ℝ𝑛𝑛 un sous ensemble non vide de ℝ𝑛𝑛 et 𝑓𝑓: 𝐷𝐷 ⟶ ℝ une application sur 𝐷𝐷 à valeurs réelles. Un problème d’optimisation (PO) consiste à déterminer, lorsqu’il existe, un extremum (minimum ou maximum) de 𝑓𝑓 sur 𝐷𝐷

88

Page 89: Institut National des Sciences Appliquées et de ...

Recherche opérationnelle et optimisation

Classification des PO selon la nature des variables de décision: Optimisation continue: 𝐷𝐷 est continu

Optimisation discrète ou optimisation combinatoire: 𝐷𝐷 est discret (𝐷𝐷 ⊂ ℤ𝑛𝑛, fini)

Classification des PO selon la nature des contraintes: Optimisation sans contraintes: Pas de contraintes ou contraintes faciles à satisfaire

Optimisation sous contraintes: il est difficile de trouver un point satisfaisant les contraintes

89

Page 90: Institut National des Sciences Appliquées et de ...

Méthodes de résolution

Le problème à résoudre est-il facile ou difficile?

Si le problème est « facile »: exhiber un algorithme efficace Si le problème est « difficile »:

Et de « petite taille »: chercher la solution optimale

Et de « grande taille »: chercher une solution approchée et essayer de garantir la valeur de cette solution

90

Page 91: Institut National des Sciences Appliquées et de ...

Méthodes de résolution

Exemples de PO faciles: Problème du plus court chemin Router un flot maximal entre 2 sommets sous des contraintes de capacités

Problème de recherche d’une chaîne eulérienne dans un graphe

Ordonnancer des tâches sous des contraintes de précédence

91

Page 92: Institut National des Sciences Appliquées et de ...

Méthodes de résolution

Exemples de PO difficiles: Problème du voyageur de commerce Router un flot maximal entre plusieurs paires de sommets sous des contraintes de capacités

Problème de recherche d’une chaîne hamiltonienne dans un graphe

92

Page 93: Institut National des Sciences Appliquées et de ...

Méthodes de résolution

Principales (classes de) méthodes de résolution: Algorithmes polynomiaux Programmation dynamique Certains problèmes ont de bonnes caractéristiques qui permettent de les

résoudre à l'aide d'une formule de récurrence. Les méthodes de programmation dynamique peuvent alors éventuellement permettre de résoudre le problème avec une complexité polynomiale ou pseudo-polynomiale

93

Page 94: Institut National des Sciences Appliquées et de ...

Méthodes de résolution

Principales (classes de) méthodes de résolution: Théorie des graphes Processus stochastiques Les processus stochastiques concernent tous les problèmes aléatoires, en

particulier des problèmes de fiabilité (de systèmes, de composants électroniques…) et des phénomènes d'attente

Simulation informatique

94

Page 95: Institut National des Sciences Appliquées et de ...

Méthodes de résolution

Principales (classes de) méthodes de résolution: Programmation linéaire Programmation non-linéaire Méthodes arborescentes Les méthodes de type « A* » ou « branch and bound » sont couramment

utilisées pour trouver la solution exacte d'un problème de RO. Pour une résolution efficace, un soin particulier est apporté au calcul de bornes supérieures ou inférieures pour la valeur de la solution

95

Page 96: Institut National des Sciences Appliquées et de ...

Méthodes de résolution

Principales (classes de) méthodes de résolution: Heuristiques et métaheuristiques Lorsque la solution optimale ne peut être obtenue en un temps raisonnable,

on a souvent recours à des méthodes approchées de type heuristique ou métaheuristique (Recuit simulé, Recherche locale, Algorithmes génétique, Colonie de fourmis,…)

96

Page 97: Institut National des Sciences Appliquées et de ...

Programmation linéaire

Page 98: Institut National des Sciences Appliquées et de ...

Programmation linéaireModélisation: En Recherche Opérationnelle (RO), modéliser un problème consiste à identifier: Les variables intrinsèques (inconnues) Les différentes contraintes auxquelles sont soumises ces variables L’objectif visé (optimisation)

Dans un problème de programmation linéaire (PL) les contraintes et l'objectif sont des fonctions linéaires des variables. On parle aussi de programme linéaire

98

Page 99: Institut National des Sciences Appliquées et de ...

Programmation linéaireModélisation: Exemple d’un problème de production: Une usine fabrique 2 produits P1 et P2 nécessitant des ressources d’équipement, de main d’œuvre et de matières premières disponibles en quantité limitée

P1 et P2 rapportent à la vente 6 euros et 4 euros par unité.

P1 P2 Disponibilité

Équipement 3 9 81

Main d’œuvre 4 5 55

Matière première 2 1 20

99

Page 100: Institut National des Sciences Appliquées et de ...

Programmation linéaireModélisation:

Quelles quantités (non entières) de produits P1 et P2 doit produire l’usine pour maximiser le bénéfice total venant de la vente des 2 produits???

100

Page 101: Institut National des Sciences Appliquées et de ...

Programmation linéaireModélisation:

Variables: x1 et x2 sont les quantités des produits P1 et P2 fabriqués (𝑒𝑒1, 𝑒𝑒2 ∈ ℝ)

Fonction objectif à maximiser: La fonction objectif F correspond au bénéfice total: 𝐹𝐹(𝑒𝑒1, 𝑒𝑒2) = 6𝑒𝑒1 + 4𝑒𝑒2. On cherche donc

max(𝑥𝑥1,𝑥𝑥2)

[𝐹𝐹(𝑒𝑒1, 𝑒𝑒2) = 6𝑒𝑒1 + 4𝑒𝑒2]

101

Page 102: Institut National des Sciences Appliquées et de ...

Programmation linéaireModélisation:

Contraintes: Disponibilité de chacune des ressources:

3𝑒𝑒1+ 9𝑒𝑒2 ≤ 814𝑒𝑒1+ 5𝑒𝑒2 ≤ 552𝑒𝑒1+ 𝑒𝑒2 ≤ 20

Positivité des variables: 𝑒𝑒1, 𝑒𝑒2 ≥ 0.

102

Page 103: Institut National des Sciences Appliquées et de ...

Programmation linéaireModélisation:

En résumé, le problème de production se modélise sous la forme d’un programme linéaire:

max(𝑥𝑥1,𝑥𝑥2)

[𝐹𝐹(𝑒𝑒1, 𝑒𝑒2) = 6𝑒𝑒1 + 4𝑒𝑒2]

�3𝑒𝑒1+ 9𝑒𝑒2 ≤ 814𝑒𝑒1+ 5𝑒𝑒2 ≤ 552𝑒𝑒1+ 𝑒𝑒2 ≤ 20𝑒𝑒1, 𝑒𝑒2 ≥ 0.

103

Page 104: Institut National des Sciences Appliquées et de ...

Programmation linéaireRésolution graphique: (PL à 2 variables)

Les contraintes où apparaissent des inégalités correspondent géométriquement à des demi-plans. Intersection de ces demi-plans = ensemble des variables satisfaisant à toutes les contraintes.

L’ensemble des contraintes est un polygone convexe.

104

Page 105: Institut National des Sciences Appliquées et de ...

Programmation linéaireRésolution graphique: (PL à 2 variables)

105

Page 106: Institut National des Sciences Appliquées et de ...

Programmation linéaireDétermination du maximum de F:

Fonction objectif 𝐹𝐹(𝑒𝑒1, 𝑒𝑒2) = 6𝑒𝑒1 + 4𝑒𝑒2 ⇒ droite de coefficient directeur −1, ⁄6 4 . Pour déterminer max F, on fait « glisser » la droite (translation parallèle à la direction de la droite) du haut vers le bas jusqu’à rencontrer l’ensemble des variables satisfaisant les contraintes ⇒solution optimale 𝑒𝑒1, 𝑒𝑒2 = ( ⁄15 2 , 5) avec max 𝐹𝐹 = 65.

106

Page 107: Institut National des Sciences Appliquées et de ...

Programmation linéaireDétermination du maximum de F:

Remarque: On remarque que le maximum de F est atteint en un sommet du polygone convexe des contraintes.

107

Page 108: Institut National des Sciences Appliquées et de ...

Programmation linéaireForme canonique mixte:

max(𝑥𝑥1,…,𝑥𝑥𝑛𝑛)

𝐹𝐹 𝑒𝑒1, … , 𝑒𝑒𝑛𝑛 = 𝑐𝑐1𝑒𝑒1 + ⋯ + 𝑐𝑐𝑛𝑛𝑒𝑒𝑛𝑛 = �𝑖𝑖=1

𝑛𝑛

𝑐𝑐𝑖𝑖𝑒𝑒𝑖𝑖

𝑐𝑐𝑠𝑠𝑛𝑛𝑠𝑠𝑟𝑟𝑐𝑐𝑖𝑖𝑛𝑛𝑠𝑠𝑒𝑒𝑠𝑠 𝑖𝑖𝑛𝑛𝑖𝑗𝑗𝑐𝑐𝑖𝑖𝑖𝑖𝑠𝑠𝑖𝑠𝑠: ∀𝑖𝑖 ∈ 𝑉𝑉1, �𝑖𝑖=1

𝑛𝑛

𝑐𝑐𝑖𝑖𝑖𝑖𝑒𝑒𝑖𝑖 = 𝑐𝑐𝑖𝑖1𝑒𝑒1 + ⋯ + 𝑐𝑐𝑖𝑖𝑛𝑛𝑒𝑒𝑛𝑛 ≤ 𝑏𝑏𝑖𝑖

𝑐𝑐𝑠𝑠𝑛𝑛𝑠𝑠𝑟𝑟𝑐𝑐𝑖𝑖𝑛𝑛𝑠𝑠𝑒𝑒𝑠𝑠 𝑖𝑗𝑗𝑐𝑐𝑖𝑖𝑖𝑖𝑠𝑠𝑖𝑠𝑠: ∀𝑖𝑖 ∈ 𝑉𝑉2, �𝑖𝑖=1

𝑛𝑛

𝑐𝑐𝑖𝑖𝑖𝑖𝑒𝑒𝑖𝑖 = 𝑏𝑏𝑖𝑖

𝑐𝑐𝑠𝑠𝑛𝑛𝑠𝑠𝑟𝑟𝑐𝑐𝑖𝑖𝑛𝑛𝑠𝑠𝑒𝑒𝑠𝑠 𝑑𝑑𝑒𝑒 𝑠𝑠𝑖𝑖𝑗𝑗𝑛𝑛𝑒𝑒𝑠𝑠: ∀𝑖𝑖 ∈ 𝐽𝐽1, 𝑒𝑒𝑖𝑖 ≥ 0∀𝑗𝑗 ∈ 𝐽𝐽2, 𝑒𝑒𝑖𝑖 𝑑𝑑𝑒𝑒 𝑠𝑠𝑖𝑖𝑗𝑗𝑛𝑛𝑒𝑒 𝑞𝑞𝑢𝑢𝑒𝑒𝑖𝑖𝑐𝑐𝑠𝑠𝑛𝑛𝑞𝑞𝑢𝑢𝑒𝑒

108

Page 109: Institut National des Sciences Appliquées et de ...

Programmation linéaireForme canonique mixte:

𝑉𝑉 = 𝑉𝑉1 ∪ 𝑉𝑉2: Ensemble des indices de contraintes 𝑐𝑐𝑐𝑐𝑟𝑟𝑑𝑑 𝑉𝑉 = 𝑚𝑚

𝐽𝐽 = 𝐽𝐽1 ∪ 𝐽𝐽2: Ensemble des indices des variables 𝑐𝑐𝑐𝑐𝑟𝑟𝑑𝑑 𝐽𝐽 = 𝑛𝑛

109

Page 110: Institut National des Sciences Appliquées et de ...

Programmation linéaireForme canonique mixte:Notations: Vecteurs:

𝒙𝒙 = (𝑒𝑒1, … , 𝑒𝑒𝑛𝑛)𝑇𝑇∈ ℝ𝑛𝑛

𝐜𝐜 = (𝑐𝑐1, … , 𝑐𝑐𝑛𝑛)𝑇𝑇∈ ℝ𝑛𝑛

𝒃𝒃 = (𝑏𝑏1, … , 𝑏𝑏𝑛𝑛)𝑇𝑇∈ ℝ𝑚𝑚

Matrice 𝐴𝐴 de taille 𝑚𝑚 × 𝑛𝑛:𝑐𝑐11 ⋯ 𝑐𝑐1𝑛𝑛

⋮ ⋱ ⋮𝑐𝑐𝑚𝑚1 ⋯ 𝑐𝑐𝑚𝑚𝑛𝑛

110

Page 111: Institut National des Sciences Appliquées et de ...

Programmation linéaireForme canonique pure:

Sous cette forme, pas de contraintes d’égalité 𝑉𝑉2 = ∅ et 𝐽𝐽2 = ∅ Un programme linéaire (PL) est dit sous forme canonique pure s’il s’écrit:

max𝑥𝑥

[𝐹𝐹(𝑒𝑒) = 𝑐𝑐 𝑒𝑒 = 𝑐𝑐1𝑒𝑒1 + ⋯ + 𝑐𝑐𝑛𝑛𝑒𝑒𝑛𝑛]

�𝐴𝐴𝑒𝑒 ≤ 𝑏𝑏𝑒𝑒 ≥ 0

111

Page 112: Institut National des Sciences Appliquées et de ...

Programmation linéaireForme standard:

Sous cette forme, 𝑉𝑉1 = ∅ et 𝐽𝐽2 = ∅ Un programme linéaire (PL) est dit sous forme standard s’il s’écrit:

max𝑥𝑥

[𝐹𝐹(𝑒𝑒) = 𝑐𝑐𝑇𝑇𝑒𝑒]

�𝐴𝐴𝑒𝑒 = 𝑏𝑏𝑒𝑒 ≥ 0

112

Page 113: Institut National des Sciences Appliquées et de ...

Programmation linéaireForme standard:

On dit de plus que le PL est sous forme standard simpliciale si A de taille 𝑚𝑚 × 𝑛𝑛 avec 𝑚𝑚 ≤ 𝑛𝑛, se d𝑖compose en:

𝐴𝐴 = (𝑉𝑉𝑚𝑚|𝐻𝐻) 𝑉𝑉𝑚𝑚 matrice identité de taille 𝑚𝑚 × 𝑚𝑚

𝐻𝐻 matrice de taille 𝑚𝑚 × (𝑛𝑛 − 𝑚𝑚)

113

Page 114: Institut National des Sciences Appliquées et de ...

Programmation linéaireVariables d’écarts:Proposition: Tout PL sous forme standard s’écrit de façon équivalente en un PL sous forme canonique pure et inversement.

Démonstration:

i. Soit PL sous forme canonique pure. On a𝐴𝐴𝑒𝑒 ≤ 𝑏𝑏 ⇔ 𝐴𝐴𝑒𝑒 + 𝑒𝑒 = 𝑏𝑏, 𝑒𝑒 ≥ 0

où 𝑒𝑒 = (𝑒𝑒1, … , 𝑒𝑒𝑚𝑚)𝑇𝑇 sont appel𝑖es variables d’𝑖cart.

114

Page 115: Institut National des Sciences Appliquées et de ...

Programmation linéaireVariables d’écarts:Proposition: Tout PL sous forme standard s’écrit de façon équivalente en un PL sous forme canonique pure et inversement.

Démonstration:

Ainsi �𝐴𝐴𝑒𝑒 ≤ 𝑏𝑏𝑒𝑒 ≥ 0 ⇔ �

𝐴𝐴�𝑉𝑉𝑚𝑚𝑒𝑒𝑒𝑒 = 𝑏𝑏

𝑒𝑒𝑒𝑒 ≥ 0

⇔ ��̃�𝐴 �𝑒𝑒 = 𝑏𝑏�𝑒𝑒 ≥ 0

avec �̃�𝐴 = 𝐴𝐴�𝑉𝑉𝑚𝑚 matrice de taille 𝑚𝑚 × (𝑛𝑛 + 𝑚𝑚).

115

Page 116: Institut National des Sciences Appliquées et de ...

Programmation linéaireVariables d’écarts:Proposition: Tout PL sous forme standard s’écrit de façon équivalente en un PL sous forme canonique pure et inversement.

Démonstration:

ii.(R𝑖ciproque) Soit PL sous forme standard. On a

𝐴𝐴𝑒𝑒 = 𝑏𝑏 ⇔ �𝐴𝐴𝑒𝑒 ≤ 𝑏𝑏𝐴𝐴𝑒𝑒 ≥ 𝑏𝑏 ⇔ � 𝐴𝐴𝑒𝑒 ≤ 𝑏𝑏

−𝐴𝐴𝑒𝑒 ≤ −𝑏𝑏 ⇔𝐴𝐴

−𝐴𝐴𝑒𝑒 ≤

𝑏𝑏−𝑏𝑏

⇔ ̃̃𝐴𝐴𝑒𝑒 ≤ �𝑏𝑏

où ̃̃𝐴𝐴 est une matrice de taille 2𝑚𝑚 × 𝑛𝑛 et �𝑏𝑏 ∈ ℝ2𝑚𝑚.

116

Page 117: Institut National des Sciences Appliquées et de ...

Programmation linéaireVariables d’écarts: Exemple: Problème de production de l’introduction.

PL sous forme standard. On introduit 3 variables d’écarts 𝑒𝑒1, 𝑒𝑒2, 𝑒𝑒3.max

(𝑥𝑥1,𝑥𝑥2)[𝐹𝐹(𝑒𝑒1, 𝑒𝑒2) = 6𝑒𝑒1 + 4𝑒𝑒2]

�3𝑒𝑒1+ 9𝑒𝑒2 + 𝑒𝑒1 = 814𝑒𝑒1+ 5𝑒𝑒2 + 𝑒𝑒2 = 552𝑒𝑒1+ 𝑒𝑒2 + 𝑒𝑒3 = 20

� 𝑒𝑒1, 𝑒𝑒2 ≥ 0𝑒𝑒1, 𝑒𝑒2, 𝑒𝑒3 ≥ 0

Les inconnues sont désormais 𝑒𝑒1, 𝑒𝑒2, 𝑒𝑒1, 𝑒𝑒2, 𝑒𝑒3.

117

Page 118: Institut National des Sciences Appliquées et de ...

Programmation linéaireSolutions de base réalisables:

PL sous forme standard 𝐴𝐴𝑒𝑒 = 𝑏𝑏 . Hypothèse de rang plein: On suppose que la matrice 𝐴𝐴 est de taille 𝑚𝑚 × 𝑛𝑛 avec 𝑟𝑟𝑐𝑐𝑛𝑛𝑗𝑗 𝐴𝐴 = 𝑚𝑚 ≤ 𝑛𝑛 .

Rappel: 𝑟𝑟𝑐𝑐𝑛𝑛𝑗𝑗 𝐴𝐴 = nombre maximal de lignes de 𝐴𝐴 linéairement indépendantes (= nombre max. de colonnes linéairement indépendantes).

118

Page 119: Institut National des Sciences Appliquées et de ...

Programmation linéaireSolutions de base réalisables: Remarques: Sous l’hypothèse de rang plein: Le système 𝐴𝐴𝑒𝑒 = 𝑏𝑏 admet toujours des solutions. Si 𝑚𝑚 < 𝑛𝑛, le système 𝐴𝐴𝑒𝑒 = 𝑏𝑏 admet une infinité de solution. Si 𝑚𝑚 = 𝑛𝑛, la solution est unique et vaut 𝑒𝑒 = 𝐴𝐴−1𝑏𝑏, dans ce cas, il n’y a rien à

maximiser….Quelques définitions: Définition: On appelle solution réalisable tout vecteur 𝑒𝑒 qui satisfait les contraintes du PL i.e tel que 𝐴𝐴𝑒𝑒 = 𝑏𝑏 et 𝑒𝑒 ≥ 0.

119

Page 120: Institut National des Sciences Appliquées et de ...

Programmation linéaireSolutions de base réalisables:

Définition: Soit 𝐵𝐵 ⊂ 1, … , 𝑛𝑛 un ensemble d’indices avec 𝑐𝑐𝑐𝑐𝑟𝑟𝑑𝑑 𝐵𝐵 = 𝑚𝑚tel que les colonnes 𝐴𝐴𝑖𝑖 , 𝑗𝑗 ∈ 𝐵𝐵, est inversible. On dit que l’ensemble 𝐵𝐵 des indices est une base. Les variables 𝑒𝑒𝐵𝐵 = (𝑒𝑒𝑖𝑖 , 𝑗𝑗 ∈ 𝐵𝐵) sont appelées variables de base. Les variables 𝑒𝑒𝐻𝐻 = (𝑒𝑒𝑖𝑖 , 𝑗𝑗 ∉ 𝐵𝐵) sont appelées variables hors-base.

Remarques: Sous l’hypothèse de rang plein, il existe toujours une base non vide.

120

Page 121: Institut National des Sciences Appliquées et de ...

Programmation linéaireSolutions de base réalisables: Quitte à renuméroter les indices, on peut toujours écrire les décompositions

par blocs:𝐴𝐴 = (𝐴𝐴𝐵𝐵|𝐴𝐴𝐻𝐻) où 𝐴𝐴𝐻𝐻 est la matrice formée des colonnes 𝐴𝐴𝑖𝑖, 𝑗𝑗 ∉ 𝐵𝐵

𝑒𝑒 =𝑒𝑒𝐵𝐵𝑒𝑒𝐻𝐻

.

Le système 𝐴𝐴𝑒𝑒 = 𝑏𝑏 est équivalent à 𝐴𝐴𝐵𝐵𝑒𝑒𝐵𝐵 + 𝐴𝐴𝐻𝐻𝑒𝑒𝐻𝐻 = 𝑏𝑏.

⟹ on peut fixer les variables hors-base et les variables de base sont alors complétement déterminées (la matrice 𝐴𝐴𝐵𝐵 est inversible)

121

Page 122: Institut National des Sciences Appliquées et de ...

Programmation linéaireSolutions de base réalisables:

Définition: On dit que 𝑒𝑒 =𝑒𝑒𝐵𝐵𝑒𝑒𝐻𝐻

est une solution de base associée à la base 𝐵𝐵 si 𝑒𝑒𝐻𝐻 = 0.

Propriétés des solutions de base réalisables: Si 𝑒𝑒 =𝑒𝑒𝐵𝐵𝑒𝑒𝐻𝐻

est une solution de base réalisable alors 𝑒𝑒𝐻𝐻 = 0 et 𝑒𝑒𝐵𝐵 = 𝐴𝐴𝐵𝐵

−1𝑏𝑏.

Remarque: Il y a au plus 𝐶𝐶𝑛𝑛𝑚𝑚 solutions de base (toutes ne sont pas

réalisables).

122

Page 123: Institut National des Sciences Appliquées et de ...

Programmation linéaireSolutions de base réalisables: Exemple: Problème de production de l’introduction.

PL sous forme standard.max

(𝑥𝑥1,𝑥𝑥2)[𝐹𝐹(𝑒𝑒1, 𝑒𝑒2) = 6𝑒𝑒1 + 4𝑒𝑒2]

�3𝑒𝑒1+ 9𝑒𝑒2 + 𝑒𝑒1 = 814𝑒𝑒1+ 5𝑒𝑒2 + 𝑒𝑒2 = 552𝑒𝑒1+ 𝑒𝑒2 + 𝑒𝑒3 = 20

� 𝑒𝑒1, 𝑒𝑒2 ≥ 0𝑒𝑒1, 𝑒𝑒2, 𝑒𝑒3 ≥ 0

123

Page 124: Institut National des Sciences Appliquées et de ...

Programmation linéaireSolutions de base réalisable:

On a 𝑚𝑚 = 3, 𝑛𝑛 = 5, 𝑟𝑟𝑐𝑐𝑛𝑛𝑗𝑗 𝐴𝐴 = 𝑚𝑚 = 3.

Une base est donnée par 𝐵𝐵 = 3,4,5 avec 𝐴𝐴𝐵𝐵 =1 0 00 1 00 0 1

.

La solution de base réalisable correspondante est:𝑒𝑒 = (𝑒𝑒1, 𝑒𝑒2, 𝑒𝑒1, 𝑒𝑒2, 𝑒𝑒3)𝑇𝑇= (0,0,81,55,20)𝑇𝑇.

𝑒𝑒𝐻𝐻 𝑒𝑒𝐵𝐵 = 𝐴𝐴𝐵𝐵−1𝑏𝑏

124

Page 125: Institut National des Sciences Appliquées et de ...

Programmation linéairePropriétés géométriques des solutions de base réalisables: On note

𝐷𝐷𝐴𝐴 = 𝑒𝑒 ∈ ℝ𝑛𝑛 | 𝐴𝐴𝑒𝑒 = 𝑏𝑏, 𝑒𝑒 ≥ 0L’ensemble des solutions réalisables d’un PL sous forme standard.

Définitions (rappels): Un polyèdre 𝑄𝑄 de ℝ𝑛𝑛 est défini par 𝑄𝑄 = 𝑒𝑒 ∈ ℝ𝑛𝑛 | 𝐴𝐴𝑒𝑒 = 𝑏𝑏 où 𝐴𝐴 est une

matrice 𝑚𝑚 × 𝑛𝑛. Un ensemble 𝐸𝐸 est dit convexe si ∀𝑒𝑒, 𝑦𝑦 ∈ 𝐸𝐸, 𝜆𝜆𝑒𝑒 + 1 − 𝜆𝜆 𝑦𝑦 ∈ 𝐸𝐸 pour

tout 0 ≤ 𝜆𝜆 ≤ 1. Proposition: L’ensemble 𝐷𝐷𝐴𝐴 est un polyèdre convexe, fermé.

125

Page 126: Institut National des Sciences Appliquées et de ...

Programmation linéairePropriétés géométriques des solutions de base réalisables: Exemple: 𝐷𝐷𝐴𝐴 = 𝑒𝑒 ∈ ℝ3 | 2𝑒𝑒1 + 3

2𝑒𝑒2 + 𝑒𝑒3 = 3, 𝑒𝑒1, 𝑒𝑒2, 𝑒𝑒3 ≥ 0

126

Page 127: Institut National des Sciences Appliquées et de ...

Programmation linéairePropriétés géométriques des solutions de base réalisables:Caractérisation de l’optimum: Définitions: Un point 𝑒𝑒 ∈ 𝐷𝐷𝐴𝐴 est un sommet (ou point extrême) si et seulement s’il n’existe pas 𝑦𝑦, 𝑧𝑧 ∈ 𝐷𝐷𝐴𝐴, 𝑦𝑦 ≠ 𝑧𝑧 tels que 𝑒𝑒 = 𝜆𝜆𝑦𝑦 + 1 − 𝜆𝜆 z avec 0 < 𝜆𝜆 < 1. Théorème: 𝑒𝑒 est une solution de base réalisable si et seulement si x est un sommet

de 𝐷𝐷𝐴𝐴. L’optimum de la fonction objectif F sur 𝐷𝐷𝐴𝐴, s’il existe, est atteint en au

moins un sommet de 𝐷𝐷𝐴𝐴.

127

Page 128: Institut National des Sciences Appliquées et de ...

Programmation linéairePropriétés géométriques des solutions de base réalisables: Tout se passe donc avec les solutions de base: pour résoudre un PL sous forme standard, il suffit de se restreindre aux solutions de base réalisables (les sommets de 𝐷𝐷𝐴𝐴) 3 situations possibles: 𝐷𝐷𝐴𝐴 = ∅: le PL n’a pas de solution. 𝐷𝐷𝐴𝐴 ≠ ∅ mais la fonction objectif 𝐹𝐹 n’est pas majorée sur 𝐷𝐷𝐴𝐴: le maximum de F

vaut +∞ (cas exclu si 𝐷𝐷𝐴𝐴 est borné) 𝐷𝐷𝐴𝐴 ≠ ∅ et 𝐹𝐹 est majorée sur 𝐷𝐷𝐴𝐴: le PL admet une solution optimale (non

nécessairement unique)

128

Page 129: Institut National des Sciences Appliquées et de ...

Programmation linéairePropriétés géométriques des solutions de base réalisables:

Remarques: Au plus 𝐶𝐶𝑛𝑛𝑚𝑚 solutions de base réalisables. Pour déterminer une

solution de base, on doit résoudre 𝐴𝐴𝐵𝐵𝑒𝑒𝐵𝐵 = 𝑏𝑏. Par une méthode directe detype Gauss/LU requière de l’ordre de 𝒪𝒪(𝑚𝑚3) opérations.

⟹ Exploration exhaustive de toutes les solutions de base (comparaisondes coûts correspondants): 𝒪𝒪(𝑚𝑚3𝐶𝐶𝑛𝑛

𝑚𝑚) opérations.Ce nombre est vite très grand avec n et m. par exemple, avec 𝑛𝑛 = 20 et𝑚𝑚 = 10, on a 3 × 108 opérations.

129

Page 130: Institut National des Sciences Appliquées et de ...

Programmation linéairePropriétés géométriques des solutions de base réalisables:

Méthode du simplexe: On explore seulement les sommets quipermettent d’augmenter la fonction objectif ⟹ on réduit le nombre desolution de base à explorer.

130

Page 131: Institut National des Sciences Appliquées et de ...

Algorithme du simplexe

On a vu que pour résoudre un PL, il suffit de se restreindre auxsolutions de bases réalisables. Méthode du simplexe due à Dantzig (1947).

Deux phases: Phase 1 – Initialisation: Trouver une solution de base réalisable (ou bien

détecter l’impossibilité). Phase 2 – Progression: On passe d’un sommet à un sommet voisin pour

augmenter la fonction objectif.

IntroductionPhase 2 – ProgressionMéthode des dictionnairesFinitude du simplexePhase 1 – Initialisation

131

Page 132: Institut National des Sciences Appliquées et de ...

Algorithme du simplexe PL sous forme standard:

max𝑥𝑥∈ℝ𝑛𝑛[𝐹𝐹(𝑒𝑒) = 𝑐𝑐𝑇𝑇𝑒𝑒]

�𝐴𝐴𝑒𝑒 = 𝑏𝑏𝑒𝑒 ≥ 0

On dispose d’une base 𝐵𝐵 et d’une solution de base réalisable 𝒙𝒙 avec(à une permutation près des colonnes de 𝐴𝐴)

𝐴𝐴 = 𝐴𝐴𝐵𝐵 𝐴𝐴𝐻𝐻) et 𝑒𝑒 =𝑒𝑒𝐵𝐵𝑒𝑒𝐻𝐻

Où 𝐴𝐴𝐵𝐵 matrice 𝑚𝑚 × 𝑛𝑛, inversible (variables de base)𝐴𝐴𝐻𝐻 matrice 𝑚𝑚 × (𝑛𝑛 − 𝑚𝑚) (variables hors base)

IntroductionPhase 2 – ProgressionMéthode des dictionnairesFinitude du simplexePhase 1 – Initialisation

132

Page 133: Institut National des Sciences Appliquées et de ...

Algorithme du simplexe

But: On veut trouver une autre base 𝐵𝐵∗ et une solution de base réalisable 𝒙𝒙∗ telles que 𝒙𝒙∗ est meilleure que 𝒙𝒙 c’est-à-dire:

𝐹𝐹(𝒙𝒙∗) > 𝐹𝐹(𝒙𝒙)

Principe de la méthode du simplexe: Faire rentrer une variable hors-base dans la nouvelle base (variable entrante) et faire sortir à la placeune variable de base (variable sortante).

IntroductionPhase 2 – ProgressionMéthode des dictionnairesFinitude du simplexePhase 1 – Initialisation

133

Page 134: Institut National des Sciences Appliquées et de ...

Algorithme du simplexe

Variable entrante - calcul des coûts réduits: Fonction objectif F exprimée en fonction des variables hors-base. Ensemble des solutions réalisables 𝐷𝐷𝐴𝐴 = 𝑒𝑒 ∈ ℝ𝑛𝑛 | 𝐴𝐴𝑒𝑒 = 𝑏𝑏, 𝑒𝑒 ≥ 0 .

Proposition (Coûts réduits): Pour tout 𝑒𝑒 ∈ 𝐷𝐷𝐴𝐴, on a

𝐹𝐹 𝑒𝑒 = 𝐹𝐹 𝑒𝑒 + 𝐿𝐿𝐻𝐻𝑇𝑇 𝑒𝑒𝐻𝐻

où 𝐿𝐿𝐻𝐻𝑇𝑇 = 𝑐𝑐𝐻𝐻

𝑇𝑇 − 𝑐𝑐𝐵𝐵𝑇𝑇𝐴𝐴𝐵𝐵

−1𝐴𝐴𝐻𝐻 est le vecteur des coûts réduits.

IntroductionPhase 2 – ProgressionMéthode des dictionnairesFinitude du simplexePhase 1 – Initialisation

134

Page 135: Institut National des Sciences Appliquées et de ...

Algorithme du simplexeDémonstration: On a 𝑏𝑏 = 𝐴𝐴𝑒𝑒 = 𝐴𝐴𝐵𝐵𝑒𝑒𝐵𝐵 + 𝐴𝐴𝐻𝐻𝑒𝑒𝐻𝐻 avec 𝐴𝐴𝐵𝐵 inversible, donc

𝑒𝑒𝐵𝐵 = 𝐴𝐴𝐵𝐵−1 𝑏𝑏 − 𝐴𝐴𝐻𝐻𝑒𝑒𝐻𝐻 . On obtient donc:

𝐹𝐹 𝑒𝑒 = 𝑐𝑐𝑇𝑇𝑒𝑒 = 𝑐𝑐𝐵𝐵𝑇𝑇𝑒𝑒𝐵𝐵 + 𝑐𝑐𝐻𝐻

𝑇𝑇𝑒𝑒𝐻𝐻 avec 𝑐𝑐 =𝑐𝑐𝐵𝐵𝑐𝑐𝐻𝐻

= 𝑐𝑐𝐵𝐵𝑇𝑇𝐴𝐴𝐵𝐵

−1 𝑏𝑏 − 𝐴𝐴𝐻𝐻𝑒𝑒𝐻𝐻 + 𝑐𝑐𝐻𝐻𝑇𝑇𝑒𝑒𝐻𝐻

= 𝑐𝑐𝐵𝐵𝑇𝑇𝐴𝐴𝐵𝐵

−1𝑏𝑏 + 𝑐𝑐𝐻𝐻𝑇𝑇 − 𝑐𝑐𝐵𝐵

𝑇𝑇𝐴𝐴𝐵𝐵−1𝐴𝐴𝐻𝐻 𝑒𝑒𝐻𝐻

Or 𝑒𝑒𝐵𝐵 = 𝐴𝐴𝐵𝐵−1𝑏𝑏 (car 𝑒𝑒𝐻𝐻 = 0) et 𝑐𝑐𝐵𝐵

𝑇𝑇𝐴𝐴𝐵𝐵−1𝑏𝑏 = 𝑐𝑐𝑇𝑇𝑒𝑒 = 𝐹𝐹(𝑒𝑒) donc

𝐹𝐹 𝑒𝑒 = 𝐹𝐹 𝑒𝑒 + 𝑐𝑐𝐻𝐻𝑇𝑇 − 𝑐𝑐𝐵𝐵

𝑇𝑇𝐴𝐴𝐵𝐵−1𝐴𝐴𝐻𝐻 𝑒𝑒𝐻𝐻

IntroductionPhase 2 – ProgressionMéthode des dictionnairesFinitude du simplexePhase 1 – Initialisation

135

Page 136: Institut National des Sciences Appliquées et de ...

Algorithme du simplexeVariable entrante: Si les coûts réduits sont tous négatifs i.e. 𝐿𝐿𝐻𝐻 ≤ 0, il n’est alors pas possibled’augmenter la fonction objectif 𝐹𝐹: l’algorithme se termine normalement c’est-à-dire qu’on a trouvé une solution de base réalisable 𝑒𝑒 optimale. Dans ce cas contraire (i.e. ∃ 𝐿𝐿𝐻𝐻 𝑖𝑖≥ 0), on a intérêt à faire entrer dans la base, lavariable hors-base qui a le coût réduit positif le plus grand possible. On note 𝑒𝑒 ∉ 𝐵𝐵 l’indice de la variable entrante. On choisit 𝑒𝑒 tel que:

𝐿𝐿𝐻𝐻 𝑒𝑒 = max𝑖𝑖

𝐿𝐿𝐻𝐻 𝑖𝑖 , 𝐿𝐿𝐻𝐻 𝑖𝑖 > 0

ce qu’on note par 𝑒𝑒 = 𝑐𝑐𝑟𝑟𝑗𝑗𝑚𝑚𝑐𝑐𝑒𝑒𝑖𝑖 𝐿𝐿𝐻𝐻 𝑖𝑖 , 𝐿𝐿𝐻𝐻 𝑖𝑖 > 0

IntroductionPhase 2 – ProgressionMéthode des dictionnairesFinitude du simplexePhase 1 – Initialisation

136

Page 137: Institut National des Sciences Appliquées et de ...

Algorithme du simplexe

Remarque:

Si on traite d’un problème de minimisation c’est-à-dire avecmin 𝐹𝐹(𝑒𝑒)

alors la variable entrante 𝑒𝑒𝑒𝑒 est déterminée par l’indice

𝑒𝑒 = 𝑐𝑐𝑟𝑟𝑗𝑗𝑚𝑚𝑖𝑖𝑛𝑛𝑖𝑖 𝐿𝐿𝐻𝐻 𝑖𝑖 , 𝐿𝐿𝐻𝐻 𝑖𝑖 < 0

IntroductionPhase 2 – ProgressionMéthode des dictionnairesFinitude du simplexePhase 1 – Initialisation

137

Page 138: Institut National des Sciences Appliquées et de ...

Algorithme du simplexeVariable sortante: Une fois l’indice 𝑒𝑒 choisi, il faut déterminer la variable qui doit quitterla base. En maintenant la relation 𝐴𝐴𝑒𝑒 = 𝑏𝑏 avec 𝑒𝑒 ≥ 0, on augmente lavariable entrante 𝑒𝑒𝑒𝑒 jusqu’à annuler une des variables de base. Cettevariable sera alors la variable sortante.

𝐴𝐴𝑒𝑒 = 𝑏𝑏 ⇔ 𝐴𝐴𝐵𝐵𝑒𝑒𝐵𝐵 + 𝐴𝐴𝑒𝑒𝑒𝑒𝑒𝑒 = 𝑏𝑏 où 𝐴𝐴𝑒𝑒 désigne la e-ième colonne de 𝐴𝐴⇔ 𝑒𝑒𝐵𝐵 = 𝐴𝐴𝐵𝐵

−1 𝑏𝑏 − 𝐴𝐴𝑒𝑒𝑒𝑒𝑒𝑒⇔ 𝑒𝑒𝐵𝐵 = 𝑒𝑒𝐵𝐵 − 𝐴𝐴𝐵𝐵

−1𝐴𝐴𝑒𝑒𝑒𝑒𝑒𝑒

⇔ 𝑒𝑒𝐵𝐵 = 𝑒𝑒𝐵𝐵 − 𝑧𝑧𝑒𝑒𝑒𝑒 avec 𝑧𝑧 = 𝐴𝐴𝐵𝐵−1𝐴𝐴𝑒𝑒 ∈ ℝ𝑚𝑚

IntroductionPhase 2 – ProgressionMéthode des dictionnairesFinitude du simplexePhase 1 – Initialisation

138

Page 139: Institut National des Sciences Appliquées et de ...

Algorithme du simplexe

On doit avoir 𝑒𝑒𝐵𝐵 = 𝑒𝑒𝐵𝐵 − 𝑧𝑧𝑒𝑒𝑒𝑒 ≥ 0

Si 𝑧𝑧 ≤ 0, on peut augmenter 𝑒𝑒𝑒𝑒 autant qu’on veut, on aura toujours lapositivité de la variable de base 𝑒𝑒𝐵𝐵. La fonction objectif n’est pas majorée sur𝐷𝐷𝐴𝐴 ma𝑒𝑒 𝐹𝐹 = +∞ ⟹ arrêt de l’algorithme.

Sinon (i.e. il existe 𝑧𝑧𝑖𝑖 > 0), pour avoir la positivité (𝑒𝑒𝐵𝐵)𝑖𝑖 − 𝑧𝑧𝑖𝑖𝑒𝑒𝑒𝑒 ≥ 0 pour tout𝑖𝑖, on choisit la variable sortante 𝑒𝑒𝑠𝑠 pour laquelle le rapport ⁄(𝑒𝑒𝐵𝐵)𝑖𝑖 𝑧𝑧𝑖𝑖 pour 𝑖𝑖 =1, … , 𝑚𝑚 avec 𝑧𝑧𝑖𝑖 > 0, est le plus petit possible:

IntroductionPhase 2 – ProgressionMéthode des dictionnairesFinitude du simplexePhase 1 – Initialisation

139

Page 140: Institut National des Sciences Appliquées et de ...

Algorithme du simplexeVariable sortante (indice):

𝑠𝑠 = argmin𝑖𝑖

(𝑒𝑒𝐵𝐵)𝑖𝑖

𝑧𝑧𝑖𝑖, 𝑧𝑧𝑖𝑖 > 0

On a, dans ce cas, 𝑒𝑒𝑠𝑠 = 0 et 𝑒𝑒𝐵𝐵 ≥ 0

Remarque: La valeur de la variable entrante est donnée par

𝑒𝑒𝑒𝑒 = min𝑖𝑖

(𝑒𝑒𝐵𝐵)𝑖𝑖

𝑧𝑧𝑖𝑖, 𝑧𝑧𝑖𝑖 > 0

IntroductionPhase 2 – ProgressionMéthode des dictionnairesFinitude du simplexePhase 1 – Initialisation

140

Page 141: Institut National des Sciences Appliquées et de ...

Algorithme du simplexeMéthode du simplexe – Phase 2 – Progression:1) - Calcul des variables de base réalisables:

Etant donné 𝐴𝐴 = 𝐴𝐴𝐵𝐵|𝐴𝐴𝐻𝐻 , on calcule 𝑒𝑒𝐵𝐵 = 𝐴𝐴𝐵𝐵−1𝑏𝑏 ≥ 0.

- Calcul des coût réduits:𝐿𝐿𝐻𝐻

𝑇𝑇 = 𝑐𝑐𝐻𝐻𝑇𝑇 − 𝑐𝑐𝐵𝐵

𝑇𝑇𝐴𝐴𝐵𝐵−1𝐴𝐴𝐻𝐻 𝐹𝐹 𝑒𝑒 = 𝐹𝐹 𝑒𝑒 + 𝐿𝐿𝐻𝐻

𝑇𝑇 𝑒𝑒𝐻𝐻- Si 𝐿𝐿𝐻𝐻 ≤ 0 alors 𝑒𝑒𝐵𝐵 est une solution optimale (→arrêt de l’algorithme).

2) variable entrante: 𝑒𝑒 = 𝑐𝑐𝑟𝑟𝑗𝑗𝑚𝑚𝑐𝑐𝑒𝑒𝑖𝑖 𝐿𝐿𝐻𝐻 𝑖𝑖 , 𝐿𝐿𝐻𝐻 𝑖𝑖 > 03) variable sortante: - Calcul de 𝑧𝑧 = 𝐴𝐴𝐵𝐵

−1𝐴𝐴𝑒𝑒 puis

- 𝑠𝑠 = argmin𝑖𝑖

(𝑥𝑥𝐵𝐵)𝑖𝑖𝑧𝑧𝑖𝑖

, 𝑧𝑧𝑖𝑖 > 0

4) On obtient une nouvelle base �𝐵𝐵 et une nouvelle matrice 𝐴𝐴 �𝐵𝐵 dans laquelle la colonne 𝐴𝐴𝑒𝑒

remplace la colonne 𝐴𝐴𝑠𝑠. Calcul de 𝐴𝐴 �𝐵𝐵−1 et retour en 1.

IntroductionPhase 2 – ProgressionMéthode des dictionnairesFinitude du simplexePhase 1 – Initialisation

141

Page 142: Institut National des Sciences Appliquées et de ...

Algorithme du simplexe PL sous forme standard: max

𝑥𝑥∈ℝ𝑛𝑛[𝐹𝐹(𝑒𝑒) = 𝑐𝑐𝑇𝑇𝑒𝑒]

�𝐴𝐴𝑒𝑒 = 𝑏𝑏𝑒𝑒 ≥ 0

Principe: On exprime les variables de base 𝑒𝑒𝐵𝐵 ainsi que 𝐹𝐹 en fonction desvariables hors-base 𝑒𝑒𝐻𝐻. On obtient un système linéaire qu’on appelle dictionnaire. Exemple du problème de production:

max(𝑥𝑥1,𝑥𝑥2)

[𝐹𝐹(𝑒𝑒1, 𝑒𝑒2) = 6𝑒𝑒1 + 4𝑒𝑒2]

3𝑒𝑒1+ 9𝑒𝑒2 + 𝑒𝑒1 = 814𝑒𝑒1+ 5𝑒𝑒2 + 𝑒𝑒2 = 552𝑒𝑒1+ 𝑒𝑒2 + 𝑒𝑒3 = 20𝑒𝑒1, 𝑒𝑒2 ≥ 0, 𝑒𝑒1, 𝑒𝑒2, 𝑒𝑒3 ≥ 0

IntroductionPhase 2 – ProgressionMéthode des dictionnairesFinitude du simplexePhase 1 – Initialisation

142

Page 143: Institut National des Sciences Appliquées et de ...

Algorithme du simplexeEtape 1:

Solution de base réalisable initiale: 𝑒𝑒1 = 0, 𝑒𝑒2 = 0, 𝑒𝑒1 = 81, 𝑒𝑒2 = 55, 𝑒𝑒3 = 20avec 𝐹𝐹 = 0. Dictionnaire: On exprime les variables de base 𝑒𝑒1, 𝑒𝑒2, 𝑒𝑒3 en fonction des variableshors-base 𝑒𝑒1, 𝑒𝑒2.

IntroductionPhase 2 – ProgressionMéthode des dictionnairesFinitude du simplexePhase 1 – Initialisation

143

Page 144: Institut National des Sciences Appliquées et de ...

Algorithme du simplexe

Variable entrante 𝑒𝑒𝑒𝑒: max>0

6,4 = 6 ⇒ 𝑒𝑒𝑒𝑒 = 𝑒𝑒1 .

Variable sortante 𝑒𝑒𝑠𝑠: On maintient 𝑒𝑒1 ≥ 0, 𝑒𝑒2 ≥ 0, 𝑒𝑒3 ≥ 0

min>0

813

, 554

, 202

= 10 ⇒ 𝑒𝑒𝑠𝑠 = 𝑒𝑒3

Nouvelle solution de base réalisable: 𝑒𝑒1 = 10, 𝑒𝑒2 = 0, 𝑒𝑒1 = 51,𝑒𝑒2 = 15, 𝑒𝑒3 = 0 avec 𝐹𝐹 = 60

IntroductionPhase 2 – ProgressionMéthode des dictionnairesFinitude du simplexePhase 1 – Initialisation

144

Page 145: Institut National des Sciences Appliquées et de ...

Algorithme du simplexeEtape 2:

Dictionnaire: On exprime la nouvelle variable de base 𝑒𝑒1 en fonction de 𝑒𝑒2 et 𝑒𝑒3(nouvelle variable hors-base). On utilise la 3ème équation du dictionnaire de l’étape1 et on substitue 𝑒𝑒1 dans les autres relations.

IntroductionPhase 2 – ProgressionMéthode des dictionnairesFinitude du simplexePhase 1 – Initialisation

145

Page 146: Institut National des Sciences Appliquées et de ...

Algorithme du simplexe

On obtient ainsi le dictionnaire (étape 2)

IntroductionPhase 2 – ProgressionMéthode des dictionnairesFinitude du simplexePhase 1 – Initialisation

146

Page 147: Institut National des Sciences Appliquées et de ...

Algorithme du simplexe

Variable entrante 𝑒𝑒𝑒𝑒: max>0

1, −3 = 1 ⇒ 𝑒𝑒𝑒𝑒 = 𝑒𝑒2 .

Variable sortante 𝑒𝑒𝑠𝑠: On maintient 𝑒𝑒1 ≥ 0, 𝑒𝑒1 ≥ 0, 𝑒𝑒2 ≥ 0

⇒ 𝑒𝑒2 = min>0

10⁄1 2

, 51⁄15 2

, 153

= 5 ⇒ 𝑒𝑒𝑠𝑠 = 𝑒𝑒2

Nouvelle solution de base réalisable (étape 2): 𝑒𝑒1 = 152

, 𝑒𝑒2 = 5,𝑒𝑒1 = 27

2, 𝑒𝑒2 = 0, 𝑒𝑒3 = 0 avec 𝐹𝐹 = 65.

IntroductionPhase 2 – ProgressionMéthode des dictionnairesFinitude du simplexePhase 1 – Initialisation

147

Page 148: Institut National des Sciences Appliquées et de ...

Algorithme du simplexeEtape 3:

Dictionnaire: On exprime la nouvelle variable de base 𝑒𝑒2 en fonction desvariables hors-base 𝑒𝑒2 et 𝑒𝑒3. On utilise la 3ème équation du dictionnaire de l’étape 2et on substitue 𝑒𝑒2 dans les autres relations.

IntroductionPhase 2 – ProgressionMéthode des dictionnairesFinitude du simplexePhase 1 – Initialisation

148

Page 149: Institut National des Sciences Appliquées et de ...

Algorithme du simplexe

Tous les coûts réduits sont ≤ 0 donc on ne peut plus augmenter F:l’optimum est atteint et la solution optimale est

𝑒𝑒1∗ = 15

2, 𝑒𝑒2

∗ = 5, 𝑒𝑒1∗ = 27

2, 𝑒𝑒2

∗ = 0, 𝑒𝑒3∗ = 0 avec 𝐹𝐹 = 65

IntroductionPhase 2 – ProgressionMéthode des dictionnairesFinitude du simplexePhase 1 – Initialisation

149

Page 150: Institut National des Sciences Appliquées et de ...

Algorithme du simplexe

À chaque étape de l’algorithme du simplexe (en phase 2), il y a des cas remarquables qui conduisent tous à l’arrêt de l’algorithme.

1. Si les coûts réduits 𝐿𝐿𝐻𝐻 < 0, alors la solution de base réalisable courante estl’unique optimum.

IntroductionPhase 2 – ProgressionMéthode des dictionnairesFinitude du simplexePhase 1 – Initialisation

150

Page 151: Institut National des Sciences Appliquées et de ...

Algorithme du simplexe2. Si les coûts réduits 𝐿𝐿𝐻𝐻 ≤ 0, alors il y a deux cas remarquables:

i. Si 𝐿𝐿𝐻𝐻 𝑒𝑒 = 0 et 𝑒𝑒𝑒𝑒 > 0, alors l’optimum n’est pas unique.

IntroductionPhase 2 – ProgressionMéthode des dictionnairesFinitude du simplexePhase 1 – Initialisation

151

Page 152: Institut National des Sciences Appliquées et de ...

Algorithme du simplexeii. Si 𝐿𝐿𝐻𝐻 𝑒𝑒 = 0 et 𝑒𝑒𝑒𝑒 = 0, alors l’optimum est unique (à priori). Dans ce

cas, la base est dite dégénérée c’est-à-dire qu’il existe une variable debase nulle.

3. Si 𝐿𝐿𝐻𝐻 𝑒𝑒 > 0 et 𝑒𝑒𝑒𝑒 est non borné alors la fonction 𝐹𝐹 n’est pas majorée.

IntroductionPhase 2 – ProgressionMéthode des dictionnairesFinitude du simplexePhase 1 – Initialisation

152

Page 153: Institut National des Sciences Appliquées et de ...

Algorithme du simplexe

Une solution de base réalisable est dite dégénérée si au moins une des variables de base est nulle. Théorème: Si au cours de l'algorithme du simplexe, aucune base rencontrée n'est dégénérée, alors l'algorithme se termine en un nombre fini d'itérations. Par conséquent, on ne rencontre jamais une base déjà rencontrée à une itération précédente. Le nombre de solution de base réalisable étant fini ≤ 𝐶𝐶𝑛𝑛

𝑚𝑚 , l’algorithme s’arrête nécessairement en un nombre fini d’itérations.

IntroductionPhase 2 – ProgressionMéthode des dictionnairesFinitude du simplexePhase 1 – Initialisation

153

Page 154: Institut National des Sciences Appliquées et de ...

Algorithme du simplexe

Remarque: S’il existe une base dégénérée, alors on peut rencontrer un éventuel cyclage de l'algorithme: on retrouve une base déjà rencontrée et on boucle indéfiniment. Pour traiter les cas de dégénérescence, on peut appliquer la règle de Bland (1977) qui assure l'arrêt de l'algorithme en un nombre fini d'itérations.

Règle de Bland: Lorsque plusieurs variables sont susceptibles d'entrer ou de sortir de la base, on choisit toujours celle qui a l'indice le plus petit.

IntroductionPhase 2 – ProgressionMéthode des dictionnairesFinitude du simplexePhase 1 – Initialisation

154

Page 155: Institut National des Sciences Appliquées et de ...

Algorithme du simplexe

Introduction:

PL sous forme canonique pure avec les contraintes: 𝐴𝐴𝑒𝑒 ≤ 𝑏𝑏, 𝑒𝑒 ≥ 0 On peut déterminer facilement une solution de base réalisable dans le cas où𝑏𝑏 ≥ 0. En effet, sous forme standard les contraintes deviennent 𝐴𝐴𝑒𝑒 + 𝑒𝑒 = 𝑏𝑏, avec𝑒𝑒, 𝑒𝑒 ≥ 0 où e sont les variables d’écarts. Une solution de base réalisable évidente dans ce cas, est 𝑒𝑒 = 0, 𝑒𝑒 = 𝑏𝑏 ≥ 0.

Mais pour un PL sous forme standard, il n’y a pas toujours de solution de baseréalisable évidente.

IntroductionPhase 2 – ProgressionMéthode des dictionnairesFinitude du simplexePhase 1 – Initialisation

155

Page 156: Institut National des Sciences Appliquées et de ...

Algorithme du simplexe

Variables auxiliaires: PL sous forme standard: max

𝑥𝑥∈ℝ𝑛𝑛[𝐹𝐹(𝑒𝑒) = 𝑐𝑐𝑇𝑇𝑒𝑒]

�𝐴𝐴𝑒𝑒 = 𝑏𝑏𝑒𝑒 ≥ 0

On ne suppose pas que la matrice 𝐴𝐴 ∈ ℳ𝑚𝑚×𝑛𝑛 est de rang plein, ni qu’il existebien des solutions réalisables. Pour obtenir une solution de base réalisable ou bien pour détecter l'impossibilité,on introduit un problème de programmation linéaire auxiliaire pour des variablessupplémentaires appelées variables artificielles.

IntroductionPhase 2 – ProgressionMéthode des dictionnairesFinitude du simplexePhase 1 – Initialisation

156

Page 157: Institut National des Sciences Appliquées et de ...

Algorithme du simplexe

Programme auxiliaire: Le programme auxiliaire associé à (PL) s’écrit:

𝑃𝑃𝐿𝐿𝐴𝐴min(𝑥𝑥,𝑎𝑎)

�𝑖𝑖=1

𝑚𝑚

𝑐𝑐𝑖𝑖

𝐴𝐴𝑒𝑒 + 𝑐𝑐 = 𝑏𝑏𝑒𝑒 ≥ 0𝑐𝑐 ≥ 0

où 𝑐𝑐 = 𝑐𝑐1, … , 𝑐𝑐𝑚𝑚 sont appelées variables artificielles.

IntroductionPhase 2 – ProgressionMéthode des dictionnairesFinitude du simplexePhase 1 – Initialisation

157

Page 158: Institut National des Sciences Appliquées et de ...

Algorithme du simplexe Proposition (évidente): Un (PL) admet une solution réalisable si et seulement si le problème auxiliaire (PLA) admet une solution de base optimale avec 𝑐𝑐 = 0. Détermination d’une solution de base réalisable via le problème auxiliaire: On applique l'algorithme du simplexe au problème auxiliaire (PLA). À la fin du simplexe, le coût minimal est nul sinon on a détecté l'impossibilité pour (PL) (i.e. 𝐷𝐷𝐴𝐴 = ∅). Si tout s’est déroulé normalement (coût nul), on cherche à éliminer de la base toutes les variables artificielles. Deux cas possibles: On a réussi à faire sortir toutes les variables artificielles. On passe à la phase 2.

S’il reste des variables artificielles dans la base (base dégénérée) alors les lignes associées à ces variables sont des contraintes redondantes qu’on élimine.

IntroductionPhase 2 – ProgressionMéthode des dictionnairesFinitude du simplexePhase 1 – Initialisation

158

Page 159: Institut National des Sciences Appliquées et de ...

Algorithme du simplexe

Phase d’initialisation du simplexe (phase 1): On note 𝐹𝐹𝑎𝑎𝑢𝑢𝑥𝑥 la valeur de la fonction objectif du problème auxiliaire (PLA) à la fin du simplexe, c’est-à-dire 𝐹𝐹𝑎𝑎𝑢𝑢𝑥𝑥 = min

(𝑥𝑥,𝑎𝑎)∑𝑖𝑖=1

𝑚𝑚 𝑐𝑐𝑖𝑖.

1. Si 𝐹𝐹𝑎𝑎𝑢𝑢𝑥𝑥 = 0 et ∄𝑐𝑐𝑖𝑖 ∈ 𝑋𝑋𝐵𝐵 où 𝑋𝑋𝐵𝐵 désigne l’ensemble des variables de base pour (PLA), alors fin normale de la phase 1. On passe à la phase 2 du simplexe.

2. Si 𝐹𝐹𝑎𝑎𝑢𝑢𝑥𝑥 = 0 et ∃𝑐𝑐𝑖𝑖∈ 𝑋𝑋𝐵𝐵 avec 𝑐𝑐𝑖𝑖 = 0, alors on supprime les lignes et colonnes associées aux 𝑐𝑐𝑖𝑖 et on passe à la phase 2.

3. Si 𝐹𝐹𝑎𝑎𝑢𝑢𝑥𝑥 > 0 alors pas de solution réalisable 𝐷𝐷𝐴𝐴 = ∅ .

IntroductionPhase 2 – ProgressionMéthode des dictionnairesFinitude du simplexePhase 1 – Initialisation

159

Page 160: Institut National des Sciences Appliquées et de ...

Algorithme du simplexeComplexité du simplexe: Complexité = nombre d’itération dans le simplexe (phase 2). On peut construire des exemples avec une complexité exponentielle en 𝒪𝒪 2𝑛𝑛

itérations (Klee-Minty, 1972).

Mais dans la pratique la complexité du simplexe croît peu avec le nombre 𝑛𝑛 de variables. En pratique, le nombre d'itérations est proportionnel au nombre 𝑚𝑚de contraintes (de 𝑚𝑚 à 3𝑚𝑚 itérations).

Si on tient compte de la résolution des systèmes linéaires avec une formule de mise à jour de l’inverse (Shermann-Morrison), on a 𝒪𝒪(𝑚𝑚2) opérations pour l’inverse.

IntroductionPhase 2 – ProgressionMéthode des dictionnairesFinitude du simplexePhase 1 – Initialisation

160