Vous êtes sur la page 1sur 131

C. Prins – MT14 – Recherche Opérationnelle – Slide #1

UV MT14 Recherche Opérationnelle

Prof. Christian PRINS

Directeur du Labo d'Optimisation des Systèmes Industriels Institut Charles Delaunay et STMR (UMR CNRS 6279)

christian.prins@utt.fr

C. Prins – MT14 – Recherche Opérationnelle – Slide #2

Avertissement

Les chapitres Programmation Linéaire et Programmation Linéaire en Nombres Entiers, ainsi que de nombreux exercices de TD sont tirés du livre :

Programmation linéaire de Christelle Guéret, Christian Prins et Marc Sevaux, Editions Eyrolles, Paris, 1 ère édition en 2002.

L’utilisation pour un usage personnel par les étudiants et intervenants de MT14 a été autorisée par les auteurs et l’éditeur. Tout autre usage ainsi que la reproduction et la diffusion à des tiers sont interdits par les lois en vigueur.

C. Prins – MT14 – Recherche Opérationnelle – Slide #3

Contenu prévisionnel de l’UV

1. Introduction à la Recherche Opérationnelle

2. Programmation linéaire (PL) :

résolution graphique puis algébrique, optimisation avec Excel cas spéciaux, dualité, analyse de sensibilité

3. Programmation linéaire en nombres entiers (PLNE) :

problèmes équivalents au PL relaxé, techniques de modélisation méthodes de Dakin (PLNE) et de Balas (PL en 0-1)

4. Notions de programmation dynamique

5. Notions de programmation non linéaire :

optimisation unidimensionnelle sans contraintes optimisation multidimensionnelle sans contraintes programmation non linéaire sensu stricto (avec contraintes)

C. Prins – MT14 – Recherche Opérationnelle – Slide #4

Evaluation

Devoir à rendre (optimisation avec Excel) : 30%

Examen médian :

35%

Examen final :

35%

Pas de note éliminatoire, pas de rattrapage :

absence injustifiée au médian = note zéro, si absence justifiée, le final compte pour 70%.

Absence justifiée = motif recevable + preuve. Me prévenir par e-mail + votre responsable de TD.

Conseils :

attention, UV demandant un travail soutenu ! suivre toujours le même groupe de TD (si possible).

C. Prins – MT14 – Recherche Opérationnelle – Slide #5

Chapitre 1 Introduction à la Recherche Opérationnelle

C. Prins – MT14 – Recherche Opérationnelle – Slide #6

Généralités

1. Définition

Recherche Opérationnelle ou RO Operational Research (UK), Operations Research (USA)

« Ensemble de méthodes et techniques pour prendre les meilleures décisions dans des problèmes quantitatifs complexes rencontrés dans les organisations : armées, entreprises, gouvernements etc. »

C. Prins – MT14 – Recherche Opérationnelle – Slide #7

Généralités

2. Historique

Kantorovich, ex-URSS, 1935 : planification des échanges agricoles entre républiques de l’URSS.

Domaine militaire :

Blackett, UK, 1941 : où placer les premiers radars anti- aériens (très chers) pour une couverture optimale de la côte anglaise?

Dantzig,

l’Atlantique Nord pour préparer le débarquement en Normandie.

dans

USA,

1943 :

organisation

de

convois

C. Prins – MT14 – Recherche Opérationnelle – Slide #8

Généralités

2. Historique (suite et fin)

Extension aux entreprises vers 1960. Le développement a suivi les progrès de l’informatique :

gestion de projet (méthodes PERT et des potentiels) planification et ordonnancement de la production placement optimal de relais de télévision, optimisation du transport, choix d’investissement etc.

La RO peut aussi s’appliquer au secteur primaire (mines, pêches, forêts, agriculture), aux services, aux hôpitaux, aux gouvernements etc.

C. Prins – MT14 – Recherche Opérationnelle – Slide #9

Généralités

3. Caractéristiques des problèmes réels traités

Macroscopiques, grands systèmes : l’optimisation d’un moteur relève de la mécanique, pas de la RO.

Quantitatifs : il faut des données numériques. Résoudre au mieux un conflit social n’est pas de la RO!

Complexité : aspect combinatoire (grand nombre de variables, de contraintes, de solutions différentes), données nombreuses, souvent incomplètes ou peu précises.

C. Prins – MT14 – Recherche Opérationnelle – Slide #10

Généralités

4. Deux types de problèmes

Optimisation – Exemple : livrer du fioul à 10 clients.

Quelle est la tournée de longueur minimale ? Le but est de trouver la meilleure solution pour un critère donné. On peut avoir de très nombreuses solutions, mais on sait calculer très vite le critère pour une solution donnée.

Evaluation de performance – Exemple : structure d’atelier.

Un atelier en ligne ou en U aura-t-il la meilleure productivité ? Le critère est long à calculer pour une solution donnée : il faut en général une méthode de simulation. On ne peut évaluer que quelques solutions et recommander la meilleure.

C. Prins – MT14 – Recherche Opérationnelle – Slide #11

Généralités

5. Les outils de la RO

Ils sont empruntés aux maths et à l’informatique :

programmation linéaire et non linéaire (MT14) graphes, réseaux de Petri, processus aléatoires (SY18) simulation (SY15) et statistiques (SY02) algorithmique.

Les calculs peuvent être faits par des logiciels d’optimisation (Cplex, solveur d’Excel) ou de simulation (Arena), mais souvent il faut concevoir des algorithmes!

C. Prins – MT14 – Recherche Opérationnelle – Slide #12

Déroulement d’une étude de RO

1. Analyser le problème

délimiter le périmètre de l’étude avec le décideur spécifier le problème (variables, contraintes, critère) recenser les données disponibles

Attention !

c’est au décideur de choisir le critère à optimiser ! si facteurs humains, problème vraiment quantitatif ? la collecte de données peut prendre 90% du temps. fuir les études à données trop floues ou incomplètes !

C. Prins – MT14 – Recherche Opérationnelle – Slide #13

Déroulement d’une étude de RO

2. Elaborer un modèle (= modéliser le problème)

On a souvent le choix entre différents modèles : graphes, réseaux de Petri, programmes linéaires etc.

3. Elaborer une méthode de résolution

Parfois inutile si on dispose d’un logiciel adapté.

4. Tester la méthode

Comparer les résultats à la réalité et les montrer au décideur. Raffiner si nécessaire le modèle (processus itératif).

5. Remise des conclusions au décideur, en clair.

C. Prins – MT14 – Recherche Opérationnelle – Slide #14

Chapitre 2 Programmation linéaire

C. Prins – MT14 – Recherche Opérationnelle – Slide #15

Notion de programme linéaire

1. Exemple et ordre de conception

Une usine produit 2 ciments, rapportant 50$ et 70$/t. Pour 1 tonne de ciment 1, il faut 40 minutes de four et 20 minutes de broyage. Pour 1 tonne de ciment 2, 30 minutes et 30 minutes. Four et broyeur sont disponibles 6h et 8h par jour. Quelles quantités faire chaque jour pour maximiser le bénéfice ?

a) On définit d’abord les variables :

x 1 et x 2 quantités de ciment 1 et 2 à fabriquer,

domaine : réel (quantités continûment divisibles),

On écrit donc : x 1 , x 2 0.

signe : positif.

C. Prins – MT14 – Recherche Opérationnelle – Slide #16

Notion de programme linéaire

1. Exemple et ordre de conception (suite)

b) Puis les contraintes :

Les contraintes viennent souvent de ressources limitées :

argent, capacité des stocks, personnel, temps-machine etc.

On a ici deux ressources, un four et un broyeur. Attention aux unités de temps mélangées : heures et minutes.

Capacités (disponibilités) : 360 et 480 minutes. Une tonne de ciment 1 prend 40 min et 20 min. Les x 1 et x 2 tonnes fabriquées vont prendre 40.x1 et 20.x2 Contrainte de disponibilité du four : 40.x 1 + 30.x 2 360.

Pour le broyeur, même raisonnement : 20.x 1 + 30.x 2 480.

C. Prins – MT14 – Recherche Opérationnelle – Slide #17

Notion de programme linéaire

1. Exemple et ordre de conception (suite et fin)

b) Enfin le critère ou fonction-objectif ou fonction économique

En dernier car unique. Ici c’est le profit total : 50.x 1 + 70.x 2 On ajoute Max car on veut le maximiser : Max 50.x 1 + 70.x 2

b) Programme linéaire complet (noter l’ordre de présentation)

Max

40.x 1 + 30.x 2 360 20.x 1 + 30.x 2 480

x 1 , x 2 0

50.x 1 + 70.x 2

fonction-objectif à maximiser en 1er contrainte de disponibilité du four contrainte de disponibilité du broyeur définition des variables en dernier

C. Prins – MT14 – Recherche Opérationnelle – Slide #18

Notion de programme linéaire

2. Forme générale et extensions

Programme mathématique : modèle d'optimisation d'une fonction de plusieurs variables sous contraintes. Programme linéaire (PL) si la fonction et les contraintes sont toutes des combinaisons linéaires de variables :

(1)

(2)

(3)

Max ou Min z

=

∀=

i

∀=

j

1

1

K

K

m

n

:

:

n

j = 1

a

x

j

n

j = 1

ij

x

0

j

c x

j

j

≤= ≥

,

ou

b

i

C. Prins – MT14 – Recherche Opérationnelle – Slide #19

Notion de programme linéaire

2. Forme générale et extensions (suite)

n

variables non négatives avec contraintes de signe (3),

m

contraintes d’égalité ou d’inégalité (2),

z

fonction objectif à optimiser (1).

c j coefficient de coût ou de profit de la variable x j a ij coefficient de x j dans la contrainte i b i second membre constant de la contrainte i.

Une solution réalisable (SR) ou faisable vérifie toutes les contraintes : x 1 =4 et x 2 =2 dans l’exemple des ciments.

Une SR est optimale (est un optimum) si aucune solution n’est meilleure. NB : l’optimum n’est pas la valeur optimale de z ! Il y a plusieurs optimums !

C. Prins – MT14 – Recherche Opérationnelle – Slide #20

Notion de programme linéaire

2. Forme générale et extensions (suite et fin)

Si variables entières : PL en nombres entiers (PLNE).

variables avec deux

valeurs 0 ou 1 (variables booléennes, binaires ou de décision).

PL mixte : on a à la fois des variables continues et entières.

Si au moins une contrainte ou la fonction-objectif n’est plus linéaire, on a un programme non linéaire (PNL).

Les PLNE et PL en 0-1 sont plus difficiles que les PL ordinaires.

Les PNL sont encore plus difficiles : les algorithmes actuels ne trouvent souvent qu’un optimum local.

PL

en

0-1 :

cas particulier de PLNE à

C. Prins – MT14 – Recherche Opérationnelle – Slide #21

Notion de programme linéaire

3. Formes matricielles et conversions

x

= (x 1 , x 2 ,

, x n )

vecteur-colonne des variables,

b

= (b 1 , b 2 ,

, b m )

vecteur-colonne des seconds membres,

c

= (c 1 , c 2 ,

, c n )

vecteur-ligne des coûts ou profits,

A

matrice m × n

matrice des coefficients a ij

Forme canonique Pour résolution graphique

Forme standard Résolution algébrique

Max ou Min c.x A.x b

x 0

Heureusement, les logiciels peuvent traiter des PL même s'ils ne sont pas dans ces deux formes!

Max ou Min c.x

A.x = b x 0

(souvent b 0)

C. Prins – MT14 – Recherche Opérationnelle – Slide #22

Notion de programme linéaire

3. Formes matricielles et conversions (suite)

Egalité deux inégalités :

n

j = 1

a

ij

x = b

j

i

n

j = 1

a

ij

x

j

b

i

n

a

j = 1

ij

x

j

≤−

b

i

Inégalité égalité grâce à une variable d’écart e i 0.

Si la contrainte est une consommation d’une ressource i, e i peut être vue comme la quantité inutilisée de la ressource.

n

j =1

a

ij

x

j

b

i

et e

i

0

n

j

=1

a

ij

x

j

+ e = b

i

i

C. Prins – MT14 – Recherche Opérationnelle – Slide #23

Notion de programme linéaire

3. Formes matricielles et conversions (suite et fin)

Maximisation minimisation :

Maximiser z revient à minimiser -z. Ne pas oublier de multiplier par -1 le coût minimal trouvé!

Variables de signe quelconque :

Si une variable x j peut être négative, on la remplace par une différence x' j - x" j de deux variables 0.

C. Prins – MT14 – Recherche Opérationnelle – Slide #24

Notion de programme linéaire

4. Interprétation économique de la PL

Soit un acteur économique qui exerce n activités avec des intensités x j à déterminer, à l'aide de m ressources.

On connaît la quantité a ij de ressource i nécessaire pour exercer l’activité j avec une intensité 1.

On connaît aussi le profit (en maximisation) ou le coût (en minimisation) c j correspondant à une intensité 1 de l’activité j.

On veut trouver les intensités des activités, compatibles avec les ressources, pour maximiser le profit ou minimiser le coût.

Ce problème correspond à un PL général en forme canonique!

C. Prins – MT14 – Recherche Opérationnelle – Slide #25

Notion de programme linéaire

4. Interprétation économique de la PL (suite et fin)

Un problème peut se modéliser par un PL sous 2 conditions :

proportionnalité des coûts et consommations de ressources aux intensités d’activités, additivité des consommations de ressources (pas d’interactions entre activités).

Sinon, on peut souvent "linéariser" le problème.

Ainsi, le prix de revient d'un article diminue avec la quantité produite (économie d'échelle) : pas de proportionnalité.

Pourtant, on peut linéariser facilement ce genre de fonction, moyennant des variables supplémentaires.

C. Prins – MT14 – Recherche Opérationnelle – Slide #26

Résolution graphique

1. Contexte

Possible si PL en forme canonique avec n=2 ou 3 variables.

Max

z

=

x

x

x

1

1

1

,

+

+

2

x

x

x

x

2

2

2

2

6

3

0

On a ici m = 2, n = 2, c = (1,2), x = (x 1 , x 2 ) T , b = (6,3) T et :

1

0

A = ⎜

1

1

C. Prins – MT14 – Recherche Opérationnelle – Slide #27

Résolution graphique

2. Méthode

On trace 2 axes pour x 1 et x 2 . Puis les droites d'équations x 1 +x 2 = 6 et x 2 = 3. Les flèches donnent le demi-plan conservé. On obtient le domaine des SR, le polygone OIJK.

x 2

J I z = 9 c K O z = 0
J
I
z = 9
c
K
O
z = 0

x 1

C. Prins – MT14 – Recherche Opérationnelle – Slide #28

Résolution graphique

2. Méthode (suite)

Une droite d'équation z = x 1 + 2.x 2 = k donne par intersection avec le domaine un ensemble de solutions de profit k.

Pour z = 0, on a seulement le point O, solution triviale où on ne produit rien, ce qui ne rapporte rien.

Pour k = 9, on a le point J : x 1 = 3, x 2 = 3. Cette solution est optimale car si on augmente encore k, on sort du domaine. On note avec des * la solution optimale et son coût :

x* = (3,3), z* = 9.

En remplaçant dans le PL les variables par leurs valeurs, on peut vérifier le coût et le respect des contraintes.

C. Prins – MT14 – Recherche Opérationnelle – Slide #29

Résolution graphique

3. Remarques valables en général (n quelconque):

Les contraintes de positivité confinent les solutions dans le quart de plan positif. Chaque autre contrainte définit un demi-espace (demi-plan si n=2).

L’intersection de ces espaces forme un polyèdre convexe non vide ( polygone si n=2). Un ensemble S de IR n est convexe si pour deux points quelconques A et B dans S, le segment [A,B] est contenu dans S.

Pour k croissant, les droites z=k sont parallèles. z augmente le plus vite dans la direction du vecteur c de la fonction objectif. L’optimum x* est atteint en un sommet du polyèdre.

C. Prins – MT14 – Recherche Opérationnelle – Slide #30

Résolution graphique

4. Cas spéciaux possibles

En supprimant x 1 + x 2 6, le domaine des solutions serait non borné, ainsi que l’optimum.

L’optimum peut être fini même si le domaine est non borné :

ce serait le cas pour c = (-1,2), qui donnerait le point I.

Si on ajoutait la contrainte x 1 - x 2 -4, le polyèdre serait vide et il n’y aurait aucune solution réalisable.

Enfin, si on maximisait z = x 1 +x 2 , il y aurait plusieurs optima :

tous les points de l’arête JK.

Remarquons cependant que l’ensemble des points optimaux, s’il est non vide, inclut toujours un sommet du polyèdre.

C. Prins – MT14 – Recherche Opérationnelle – Slide #31

Résolution graphique

4. Cas spéciaux possibles (suite et fin)

Pour un problème réel (plan de production), un domaine vide est anormal car il y a au moins une solution : le plan actuel de l’entreprise. De plus, l’optimum est borné en pratique à cause des ressources limitées.

L’infaisabilité vient souvent d'un problème trop contraint. L’oubli d’une contrainte peut donner un optimum non borné.

Une erreur de saisie du modèle dans un logiciel peut aussi produire ces phénomènes. Il faut alors revoir la formulation.

Au-delà de 3 variables, la résolution graphique devient impossible et il faut passer à la résolution algébrique.

C. Prins – MT14 – Recherche Opérationnelle – Slide #32

Résolution algébrique

1. Bases et solutions de base

Soit un PL en forme standard avec un système A.x = b. Rappel. A : matrice m×n, c : vecteur 1xn, x : n×1, b : m×1.

On suppose qu’il n’y a pas de contrainte redondante : le rang de A vaut m et m n. Une base de A, ou matrice de base est une sous-matrice carrée inversible m × m de A.

Pour une base B, on peut partitionner A et x, en renumérotant éventuellement les colonnes : A=(B|N) et x=(x B |x N ). Avec :

N : la matrice hors-base m×(n-m) des colonnes hors-base.

x B : les m variables de base, associées aux colonnes de B. x N : les n-m autres variables, appelées variables hors-base.

C. Prins – MT14 – Recherche Opérationnelle – Slide #33

Résolution algébrique

1. Bases et solutions de base (fin)

Pour une base B choisie, on peut réécrire le PL en exprimant les variables de base en fonction des variables hors-base :

A

z

x

=

c

=

b

x

⇔

=

c

B

B

x

x

B

B

+

+

c

N

N

x

N

x

N

b

= ⇔

=

c

B

B

x

B

1

=

b

B

+

1

(

c

N

b

c

B

B

1

B

N

1

x

N

N

)

x

N

Solution évidente si x N = 0 : on a x B = B -1 .b et z = c B .B -1 .b. C'est la solution de base (SB) associée à la base B.

Cependant, elle peut violer des contraintes de positivité :

la SB est une solution de base réalisable (SBR) si x B 0.

C. Prins – MT14 – Recherche Opérationnelle – Slide #34

Résolution algébrique

2. Exemple d'énumération des bases

Mettons en forme standard le PL de la résolution géométrique, avec des variables d’écart x 3 et x 4 (une par contrainte) :

Max

z

=

x

x

x

1

1

1

,

+

+

2

x

x

x

2

2

2

x

2

,

+

x

x

3

3

,

=

+ x =

4

x

4

6

3

0

En notant a i la colonne i de A, la matrice 2 × 4 du PL est :

(

a

1

,

a

2

,

a

3

,

a

4

)

=

⎛ ⎜ 1

0

1

1

1

0

0

1

C. Prins – MT14 – Recherche Opérationnelle – Slide #35

Résolution algébrique

2. Exemple d'énumération des bases (suite et fin)

Toutes les sous-matrices 2 × 2 sont inversibles, sauf (a 1 , a 3 ). Les solutions de base associées sont réalisables, sauf B 4 .

B

B

B

B

B

1

2

3

4

5

=

=

=

=

=

( ,

a

1

a

2

)

(

(

(

a

a

a

1

2

2

,

,

,

a

4

a

a

3

4

)

)

)

( ,

a

3

a

4

)

=

=

=

=

=

1

0

⎛ ⎜ 1

0

⎛ ⎜ 1

1

⎛ ⎜ 1

1

1

0

1 ⎞ ⎟ ⇒

0

1

1

⎟ ⇒

1

0

⎟ ⇒

0

1

⎟ ⇒

x B

x B

x

B

x

B

0 ⎟ ⎞ ⇒

1

x B

= ⎛ ⎜ x ⎞ ⎟ =

x

1

2

B

1

b

=

1

0

1 ⎞ ⎛ 6 ⎞ ⎛ 3

⎜ ⎜

3

⎝ ⎠

⎟ ⎟

1

×

⎜ ⎜

⎟ ⎟

=

3

⎝ ⎠

= ⎛ ⎜ x

x

1

4

⎟ =

= ⎜

x

2

=

x

x

x

= ⎛ ⎜ x

3

= ⎜

2

4

=

x

3

4

⎟ =

B

1

b

B

B

1

1

b

b

B

1

b

=

=

=

=

1 0 ⎞ ⎛ 6 ⎞ ⎛ 6

⎟ ⎟

⎝ ⎠

1

⎟ ⎠

⎟ ⎜

×

⎟ ⎟

=

⎜ ⎜

0

3

⎝ ⎠

3

⎛ ⎜ 0

1

1

1

⎛ ⎜

1 ⎞ ⎛ 6 ⎞ ⎛ 3 ⎞ ⎟ ⎟

⎝ ⎠

×

⎜ ⎜

⎟ ⎟

=

⎜ ⎜

3

1

3

⎝ ⎠

0 ⎞ ⎛ 6 ⎞ ⎝ ⎟ ⎟ ⎠

1

×

⎜ ⎜

3

=

⎜ ⎜ ⎝

6

3

⎛ ⎜ 1 0 ⎞ ⎛ ⎜ 6 ⎞ ⎟ ⎛ ⎜ 6 ⎞ ⎟

⎝ ⎠

⎠ ⎟

×

=

0

1

3

⎝ ⎠

3

C. Prins – MT14 – Recherche Opérationnelle – Slide #36

Résolution algébrique

3. Bases, sommets du polyèdre et pivotage

La forme standard a un polyèdre à 4 dimensions mais celui de la forme canonique (résolution graphique) est une projection à 2 dimensions, sans les variables d’écart. On constate que les SBR correspondent aux sommets J, K, I et O du polyèdre.

x 2

J I z = 9 c K O z = 0
J
I
z = 9
c
K
O
z = 0

x 1

C. Prins – MT14 – Recherche Opérationnelle – Slide #37

Résolution algébrique

3. Bases, sommets du polyèdre et pivotage (suite)

On peut manipuler le système Ax=b sans notation matricielle. Par exemple, pour la base B 1 =(a 1 ,a 2 ) associée au point J :

x

x

1

2

+

x

2

+ x

4

+

x

3

= 6

= 3

On exprime les variables de base x 1 , x 2 en fonction des autres

x

2

=

3

x

4

= −

6

x 1 2

x

x

3

= −

6

(3

x

4

)

x

3

= −

3

x

3

+

x

4

En mettant les variables hors-base x 3 et x 4 à 0, on retrouve la SBR x 1 =3 et x 2 =3 du point J. En fait, on a mis le système sous la forme vue slide 33, sans calculer explicitement B -1 .

C. Prins – MT14 – Recherche Opérationnelle – Slide #38

Résolution algébrique

3. Bases, sommets du polyèdre et pivotage (suite)

Les bases pour 2 sommets adjacents du polyèdre ont m-1 variables communes. On peut passer d'une base à l'autre sans inversion de matrice : opération appelée pivotage.

Pivotage de B 5 (x 3 et x 4 , point O) à B 3 (x 2 et x 3 , point I).

On doit remplacer x 4 par x 2 dans la base :

a) x 2 passe dans le 1 er membre de l'équation 2 pour x 4 . b) on élimine x 2 dans les autres équations.

x

x

= −

6

3 1

x

4

=

3

x

2

x

2

x

x

3

2

6

= −

3

=

x

x

1

4

(3

x

4

)

x

x

3

2

= 3 − +

= −

3

x

x

1

4

x

4

On obtient bien x 2 et x 3 en fonction de x 1 et x 4 .

C. Prins – MT14 – Recherche Opérationnelle – Slide #39

Résolution algébrique

4. Propriétés fondamentales

Les méthodes de résolution algébriques reposent sur deux propriétés, vues intuitivement dans la résolution graphique :

Si une fonction linéaire a un optimum fini sur le polyèdre X des contraintes, cet optimum a lieu en un sommet de X. Si X est non vide (pour avoir au moins un sommet), l’ensemble des sommets correspond aux SBR.

Ainsi, bien qu’un polyèdre non vide contienne une infinité de SR, il suffit de consulter uniquement les sommets du polyèdre, en nombre fini, pour trouver l’optimum.

C. Prins – MT14 – Recherche Opérationnelle – Slide #40

Résolution algébrique

5. Algorithme du simplexe (Dantzig, 1947) sans tableau

Il visite des SBR de profits croissants (en maximisation), jusqu’à ce qu’il n’y ait plus de gain possible.

Géométriquement, on visite une suite de sommets adjacents du polyèdre, jusqu’à un sommet optimal.

Le passage d’une base à l’autre se fait par pivotage.

Souvent, on part d'un PL à contraintes de ressources (, b 0. En ajoutant les variables d'écart, on obtient une base initiale évidente (matrice identité), associée au point O (x=0).

Il s’agit de la solution évidente où on ne fait rien !

C. Prins – MT14 – Recherche Opérationnelle – Slide #41

Résolution algébrique

5. Algorithme du simplexe sans tableau (suite)

Max

z

=

x

x

1

1

+

+

2

x

x

x

2

2

2

x x

1

,

2

,

+

x

x

3

3

,

= + x =

4

x

4

6

3

0

On exprime x 3 et x 4 en fonction de x 1 et x 2 , y compris dans z :

x

x

3

4

z

=

=

=

6

3

0

+

x

x

x

1

2

1

+

x

2

2

x

2

Vérification. SBR initiale associée : on met

les variables hors-base à 0 : x = (0,0,6,3)

et z = 0.

Point O de la résolution géométrique.

C. Prins – MT14 – Recherche Opérationnelle – Slide #42

Résolution algébrique

5. Algorithme du simplexe sans tableau (suite)

Pour changer de SBR, on inspecte les coefficients des variables hors-base (profits marginaux ou profits réduits) dans z. Ici, en maximisation, on gagne 1 ou 2 si on augmente x 1 ou x 2 (nuls dans la SBR actuelle) de une unité.

Critère heuristique : la variable hors-base x e choisie pour entrer en base (variable entrante) est celle de profit réduit > 0 maximum (en maximisation).

On augmente x e jusqu’à ce qu'une variable de base x s s'annule. On élimine x s de la base (variable sortante). Géométriquement, on passe à un sommet adjacent.

C. Prins – MT14 – Recherche Opérationnelle – Slide #43

Résolution algébrique

5. Algorithme du simplexe sans tableau (suite)

x

x

3

4

z

=

=

=

6

3

0

+

x

x

x

1

2

1

+

x

2

2

x

2

x e est ici la variable hors-base de profit réduit maximal : x 2 .

Contrainte 1: x 2 peut augmenter jusqu'à 6 et x 3 s'annule. Contrainte 2: x 2 peut augmenter jusqu’à 3 et x 4 s’annule.

x s est la variable qui s'annule en premier : x 4 .

C. Prins – MT14 – Recherche Opérationnelle – Slide #44

Résolution algébrique

5. Algorithme du simplexe sans tableau (suite)

Les nouvelles variables de base sont donc x 3 et x 2 , et on doit les écrire, ainsi que z, uniquement en fonction des nouvelles variables hors-base x 1 et x 4 . On obtient :

x

x

2

3

z

= −

3

6

0

= +

=

x

x

x

4

1

1

+

x

2

2

6

= −

x

(3

x

1

4

)

(3

x

= +

6

x

1

4

)

= −

3

2

x

4

x

1

+

x

4

La nouvelle SBR se lit en mettant à 0 les variables hors base :

x 2 = 3, x 3 = 3, x 1 = x 4 = 0, avec un profit z = 6 (point I).

C. Prins – MT14 – Recherche Opérationnelle – Slide #45

Résolution algébrique

5. Algorithme du simplexe sans tableau (suite et fin)

Pour augmenter le profit, on peut seulement augmenter x 1 , seule variable hors-base de profit réduit > 0.

x 1 peut augmenter jusqu’à 3 et remplace dans la base x 3 , qui

s’annule. On écrit donc

x

1

x

2

z

=

= −

3

3

= +

6

x

x

3

4

(3

+

x

4

x

3

+

x

4

)

2

x

4

x 1 , x 2 et z en fonction de x 3 et x 4 :

= −

9

x

3

x

4

La SBR associée est x = (3,3,0,0), de profit 9 (point J). Optimum, car les variables hors-base ont un profit réduit < 0.

C. Prins – MT14 – Recherche Opérationnelle – Slide #46

Algorithme forme tableau

1. Système équivalent pour une base B (cf. slide 33)

x

z

B

=

=

c

B

B

1

B

b

1

b

B

+

1

(

c

N

N

x

N

c

B

B

1

N

)

x

N

La forme tableau qui facilite les calculs est à peine différente :

x

0

B

+

B

1

N

x

(c

+

B N

x

N

c

B

=

B

B

1

1

N

b

)

x

N

c

=− ⋅

B

B

1

b

Ou, si T=(I | B -1 .N), b'=B -1 .b et Δ vecteur des profits réduits:

T

Δ⋅ =−

x

x

b

'

=

z

B

C. Prins – MT14 – Recherche Opérationnelle – Slide #47

Algorithme forme tableau

2. Tableau initial

PL vu pour la résolution géométrique, en forme standard.

Max

z

=

x

x

+

+

2

1

x

x

2

1 2

x

2

x x

1

,

2

,

+

x

x

3

3

,

=

+ x =

4

x

4

6

3

0

Les variables d'écart forment une base évidente (point O). Dans ce cas, voici le tableau initial, avec 4 sous-tableaux.

C. Prins – MT14 – Recherche Opérationnelle – Slide #48

Algorithme forme tableau

2. Tableau initial (suite)

T

: initialisé avec la matrice A du PL.

b'

: initialisé avec le vecteur b des seconds membres.

Δ

: initialisé avec le vecteur c de la fonction-objectif.

Base

: indices des variables de base actuelles, x 3 et x 4 .

Base 3 4
Base
3
4

T

1

2

3

4

b'

b' i /T ie : T ie > 0

1

1

1

1

0

6 3
6
3

6

       

2

0

1

0

1

3 s

Δ

1

2

0

0

0
0
 

-z B

e

C. Prins – MT14 – Recherche Opérationnelle – Slide #49

Algorithme forme tableau

2. Tableau initial (suite et fin)

On peut utiliser un tableau condensé : objectif ligne 0, indices des variables de base colonne 0, seconds membres en colonne n+1=5, coût –z B dans la case (0,n+1)=(0,5). Mais risques d’erreur (confondre la fonction-objectif avec une contrainte).

 

0

1

2

3

4

5

0

1

2

0

0

0

1

3

1

1

1

0

6

2

4

0

1

0

1

3

Attention ! Les variables de base ont des profits réduits nuls, mais c’est parfois le cas pour des variables hors-base !

C. Prins – MT14 – Recherche Opérationnelle – Slide #50

Algorithme forme tableau

3. Première itération

On prépare un tableau vide, puis :

Variable entrante (profit réduit > 0 maximal sur la ligne Δ) :

x e = x 2 . On note sa colonne (colonne-pivot) avec un e.

Variable sortante x s : celle s’annulant en 1 er si x e augmente, c'est celle qui minimise les b' i /T ie tels que T ie > 0. Ceci se produit à la ligne s = 2, dite ligne-pivot. Base[s] donne l’indice de la variable de base correspondante : x 4 .

On entoure le pivot T se . Pour exprimer x 2 en fonction des variables hors-base, on range dans le tableau suivant la ligne du pivot, divisée par le pivot, pour avoir un 1 à la place du pivot. Ici, on recopie directement car T se = 1.

C. Prins – MT14 – Recherche Opérationnelle – Slide #51

Algorithme forme tableau

3. Première itération (suite)

On fait apparaître des 0 dans les T ie des lignes i s : on multiplie la nouvelle ligne du pivot (mise dans le tableau suivant) par T ie , puis on la soustrait à la ligne i. Les lignes obtenues sont rangées dans le tableau suivant. Ceci élimine x e des équations autres que la ligne s. Ici, le traitement revient à soustraire la ligne 2 à la ligne 1.

On fait de même pour la ligne Δ, y compris pour -z B : la ligne du pivot est multipliée par Δ e et soustraite à la ligne Δ pour obtenir la nouvelle ligne Δ du tableau suivant. Ici, on multiplie la ligne 2 par 2 et on la soustrait à la ligne Δ.

On met à jour l’indice de la variable de base correspondant désormais à la ligne s dans Base : 2 au lieu de 3.

C. Prins – MT14 – Recherche Opérationnelle – Slide #52

Algorithme forme tableau

3. Première itération (suite et fin)

On obtient le tableau suivant. On est au point I de la méthode géométrique.

Base

T

1

2

3

4

b'

b' i /T ie :

T ie > 0

         
3
3
 

3

1

1

0

1

-1

3 s

2

2

0

1

0

1

3
3

Δ

1

0

0

-2

-6
-6
 

-z B

e

Les colonnes de base définissent toujours une matrice identité. Elles peuvent être dans le désordre ou non contiguës.

C. Prins – MT14 – Recherche Opérationnelle – Slide #53

Algorithme forme tableau

4. Une petite pause

En fait, les calculs sur ce tableau sont strictement équivalents à ceux sans tableau qui ont donné la 2 ème solution slide 44 !

Lecture du tableau :

x

1

x

x

2

1

+

x

3

x

4

= 3

+ x = 3 x

2

4

4

=−

6

Slide 44 :

x

x

2

3

z

=

=

=

3

3

6

+

x

x

4

1

x

1

+

x

2

4

x

4

Dans la méthode sans tableau, on met les variables de base dans les premiers membres. Dans l’algorithme du simplexe, c’est le tableau Base qui les indique. Donc attention : la 1 ère ligne du tableau (x 3 ) correspond à la 2 ème ligne slide 44 !

C. Prins – MT14 – Recherche Opérationnelle – Slide #54

Algorithme forme tableau

4. Une petite pause (suite et fin)

D’où vient la règle pour choisir la variable sortante ? Soit le système suivant, les variables de base sont x 1 , x 2 , x 3 . On veut faire entrer x 4 (actuellement nulle) en base.

x

1

x

2

x

3

+

2

+

x

x

x

4

4

4

=

3

= 1

= 2

(1)

(2)

(3)

(1) : x 4 peut augmenter jusqu’à b1 /T 14 = 3/2. (2) : x 2 ne s’annule pas si x 4 augmente car T 24 < 0. (3) : x 2 peut augmenter jusqu’à b3 /T 34 = 2/1 = 2. x s est donc bien sur la ligne minimisant les b' i /T ie avec T ie > 0.

C. Prins – MT14 – Recherche Opérationnelle – Slide #55

Algorithme forme tableau

5. Seconde itération

On peut encore accroître le profit en augmentant x 1 .

On trouve e = 1, s = 1, Base[s] = 3. Le pivotage sur T se = T 11 revient à soustraire la ligne du pivot à la ligne Δ pour faire apparaître un 0 dans Δ(1). On obtient le tableau suivant :

Base

T

1

2

3

4

b'

1

1

1

0

1

-1

3
3

2

2

0

1

0

1

3
3

Δ

0

0

-1

-1

-9
-9

-z B

C. Prins – MT14 – Recherche Opérationnelle – Slide #56

Algorithme forme tableau

5. Seconde itération (suite et fin)

C’est la fin car les profits réduits sont négatifs ou nuls. Résultats en clair : x 1 = 3, x 2 = 3, autres = 0, profit= 9.

Système équivalent :

x

1

x

2

+

x

3

x

4

=

+ x =

4

3

3

− − =− 9

x

3

x

4

ou, comme dans la méthode manuelle :

x

1

x

z

2

=