Vous êtes sur la page 1sur 53

Recherche oprationnelle et applications

Bernard Fortz
2012-2013
Table des matires
I Introduction la recherche oprationnelle 3
1 Quelques exemples de modles mathmatiques 3
2 Tour dhorizon des techniques de recherche oprationnelle 4
II Applications de la programmation linaire 6
3 Dnition, exemples et mthode de rsolution 6
3.1 Notions de bases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.2 Exemples de modles linaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.3 Forme standard et forme canonique dun programme linaire . . . . . . . . . . . . . . . . . . . . 8
3.4 Rsolution de programmes linaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.4.1 Rsolution graphique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.4.2 La mthode du simplexe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.4.3 La mthode des deux phases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.4.4 Cas particuliers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4 Dualit 19
4.1 Le problme dual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.2 Relations primal/dual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.3 Interprtation conomique de la dualit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
5 Solveurs et langages de modlisation 23
III Programmation en nombres entiers et optimisation combinatoire 27
6 Dnitions et exemples 27
7 Complexit des problmes et efcacit des algorithmes 30
8 Problmes polynomiaux 31
8.1 Le problme daffectation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
8.2 Modle de transport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
9 Mthodes de Branch-and-Bound 39
9.1 Branch-and-Bound pour les problmes en nombres entiers . . . . . . . . . . . . . . . . . . . . . 39
9.2 Branch-and-bound pour le voyageur de commerce . . . . . . . . . . . . . . . . . . . . . . . . . . 41
9.3 Branch-and-bound pour les contraintes disjonctives . . . . . . . . . . . . . . . . . . . . . . . . . 42
1
10 Mthodes heuristiques 47
10.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
10.2 Heuristiques de construction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
10.3 Recherche locale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
10.4 Mta-heuristiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
10.5 Algorithmes gntiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Rfrences
Hamdy A. Taha, Operations Research, an introduction, Prentice-Hall
Marc Pirlot, Mtaheuristiques pour loptimisation combinatoire : un aperu gnral, Chapitre 1, dans Opti-
misation approche en recherche oprationnelle, sous la direction de Jacques Teghem et Marc Pirlot, Hermes
Science.
2
Premire partie
Introduction la recherche oprationnelle
1 Quelques exemples de modles mathmatiques
Un premier problme
Exemple 1 (Achat de billets davion).
Un homme daffaires doit effectuer 5 voyages entre Fayetteville (FYV) Denver (DEN), en partant le lundi de
FYV et revenant le mercredi de DEN FYV.
Billet aller-retour : $400.
Rduction de 20 % si un weekend est inclus.
Aller simple : 75 % du prix aller-retour.
Question
Comment acheter les billets pour les 5 semaines ( prix minimum) ?
Aide la dcision
Problme daide la dcision
1. Quelles sont les alternatives possibles ?
2. Quelles sont les restrictions cette dcision ?
3. Quel est lobjectif utilis pour valuer les alternatives ?
Restrictions
FYV-DEN le lundi et DEN-FYV le mercredi de la mme semaine.
Evaluation des alternatives
Alternatives
Acheter 5 FYV-DEN-FYV normaux. 5 x $400 = $2000
Acheter un FYV-DEN, 4 DEN-FYV-DEN comprenant un weekend et un DEN-FYV. 0.75 x $400 + 4 x 0.8 x
$400 + 0.75 x $400 = $1880
Acheter un FYV-DEN-FYV pour le lundi de la premire semaine et le mercredi de la dernire semaine, et 4
DEN-FYV-DEN comprenant un weekend pour les autres voyages. 5 x 0.8 x 400 =1600
La troisime alternative est la meilleure.
Modle de recherche oprationnelle
Ingrdients principaux
Alternatives (variables, inconnues du problme).
Restrictions (contraintes).
Fonction objectif optimiser (minimiser ou maximiser).
Dnition 1 (Solution admissible). Une solution admissible est un ensemble de valeurs donnes aux variables qui
satisfait toutes les contraintes.
Dnition 2 (Solution optimale). Une solution optimale est une solution admissible qui optimise la fonction
objectif.
Dnition 3 (Modle de recherche oprationnelle). Maximiser ou minimiser (fonction objectif) Sujet { contraintes
}
Variables : continues (relles), entires, boolennes (0/1), . . .
Objectif : linaire / non-linaire, concave / convexe, . . .
3
Contraintes : linaire / non-linaire, concave / convexe, galits / ingalits, . . .
Paramtres : connus avec certitude (modles dterministes) / incertains (modles stochastiques)
Exemple 2 (Maximisation de la surface dun rectangle). Supposons que lon veut plier un l de fer de longueur L
en rectangle de manire maximiser la surface du rectangle.
l
w
Formulation
max A = lw
s.t. l +w =
L
2
Solution
A =
_
L
2
w
_
w =
Lw
2
w
2

dA
dw
=
L
2
2w = 0
Solution optimale : w = l =
L
4
Mthodes de rsolution
Dans lexemple, solution analytique au problme.
La plupart des problmes pratiques sont trop grands ou trop complexes pour tre rsolus analytiquement.
Mthodes itratives
Dplacement de solution en solution pour atteindre loptimum (mthodes exactes) ou une "bonne" solution
(heuristiques).
Importance des algorithmes et des solutions informatiques.
2 Tour dhorizon des techniques de recherche oprationnelle
Recherche oprationnelle
La recherche oprationnelle est une technique daide la dcision.
Etapes pratiques
1. Dnition du problme
2. Construction dun modle
3. Solution du modle
4. Validation du modle
5. Implmentation de la solution
Mthodologie
Les tapes les plus importantes sont la dnition du problme (suppose un dialogue avec le dcideur) et la
construction du modle (prendre conscience des hypothses simplicatrices et de leur impact).
La phase de validation doit permettre de remettre en cause la validit du modle.
Une approche globale ncessite donc un aller-retour constant entre le modle et les attentes du dcideur.
Techniques principales
Programmation linaire
Programmation en nombres entiers
Optimisation dans les rseaux
4
Programmation non linaire
"Optimisation" multi-critres
Programmation dynamique
Modles stochastiques
Simulation
5
Deuxime partie
Applications de la programmation linaire
3 Dnition, exemples et mthode de rsolution
3.1 Notions de bases
Programmation linaire
Dnition 4 (Programme linaire). Modle mathmatique dans lequel la fonction objectif et les contraintes sont
linaires en les variables.
Applications
Optimisation de lusage de ressources limites dans les domaines militaire, industriel, agricole, conomique, ...
Existence dalgorithmes trs efcaces pour rsoudre des problmes de trs grande taille (simplexe, points int-
rieurs)
3.2 Exemples de modles linaires
Exemple 3 (Production de peinture). Une socit produit de la peinture dintrieur et dextrieur partir de deux
produits de base M1 et M2.
Donnes
Quantit utilise
par tonne
Quantit disponible
par jour
Extrieure Intrieure
M1 6 4 24
M2 1 2 6
Prot par tonne 5 4
Contraintes supplmentaires
Demande maximum en peinture dintrieur : 2 tonnes / jour.
La production en peinture dintrieur ne dpasser que dune tonne celle dextrieur.
Formulation (Production de peinture)
Alternatives (variables, inconnues du problme)
x
1
= tonnes de peinture dextrieur
produites par jour
x
2
= tonnes de peinture
dintrieur produites par jour
Fonction objectif optimiser
max z = 5x
1
+ 4x
2
Restrictions (contraintes)
6
6x
1
+ 4x
2
24
x
1
+ 2x
2
6
x
2
2
x
2
x
1
1
x
1
, x
2
0
Solutions et mthodes de rsolution
Solution admissible : satisfait toutes les contraintes.
x
1
= 3, x
2
= 1 (z = 19)
Nous voulons trouver la solution (admissible) optimale.
Innit de solutions admissibles !
Mthodes pour trouver loptimum
Mthode graphique
Simplexe
( Ellipsoide, points intrieurs )
Exemple 4 (Diet problem). On dsire dterminer la composition, cot minimal, dun aliment pour btail qui
est obtenu en mlangeant au plus trois produits bruts : orge et arachide.
La quantit ncessaire par portion est de 400g.
Laliment ainsi fabriqu devra comporter au moins 30% de protines et au plus 5% de bres.
Donnes
Quantit par gramme daliment Cot
Aliment Protines Fibres (EUR / kg)
Orge 0.09 0.02 1.5
Arachide 0.60 0.06 4.5
Formulation (Diet problem)
Variables
x
1
= grammes dorge par portion
x
2
= grammes darachide par portion
Objectif
min z = 0.0015x
1
+ 0.0045x
2
Contraintes
Quantit totale : x
1
+x
2
400
Protines : 0.09x
1
+ 0.6x
2
0.3(x
1
+x
2
)
Fibres : 0.02x
1
+ 0.06x
2
0.05(x
1
+x
2
)
Non-ngativit : x
1
, x
2
0
7
3.3 Forme standard et forme canonique dun programme linaire
Forme standard
Dnition 5 (Forme standard). Un programme linaire est sous forme standard lorsque toutes ses contraintes sont
des galits et toutes ses variables sont non-ngatives.
Reprsentation matricielle
max c
T
x
s.c. Ax = b
x 0
n variables, m contraintes, m < n, c, x R
n
, b R
m
, A R
mn
.
Forme canonique
Dnition 6 (Forme canonique). Un programme linaire est sous forme canonique lorsque toutes ses contraintes
sont des ingalits et toutes ses variables sont non-ngatives.
Reprsentation matricielle
max c
T
x
s.t. Ax b
x 0
n variables, m contraintes, c, x R
n
, b R
m
, A R
mn
.
Thorme 1 (Equivalence des formes standard et canonique). Tout programme linaire peut scrire sous forme
standard et sous forme canonique.
Dmonstration.
Une containte dingalit a
T
x b peut tre transforme en galit par lintroduction dune variable dcart :
a
T
x +s = b,
s 0.
Une contrainte dgalit a
T
x = b peut tre remplace par deux ingalits :
a
T
x b
a
T
x b
a
T
x b a
T
x b.
min c
T
x = max c
T
x.
Variable x non restreinte : substitution par deux variables (partie positive et ngative)
x = x
+
x

x
+
, x

0.
Il existe toujours une solution optimale telle que x
+
= 0 ou x

= 0.
8
Forme standard du problme de production de peinture
max z = 5x
1
+ 4x
2
s.c.6x
1
+ 4x
2
24
x
1
+ 2x
2
6
x
2
2
x
2
x
1
1
x
1
, x
2
0
Forme standard
max z = 5x
1
+4x
2
s.c. 6x
1
+4x
2
+s
1
= 24
x
1
+2x
2
+s
2
= 6
x
2
+s
3
= 2
x
1
+x
2
+s
4
= 1
x
1
, x
2
, s
1
, s
2
, s
3
, s
4
0
Forme matricielle
max c
T
x
s.t. Ax = b
x 0
c =
_
_
_
_
_
_
_
_
5
4
0
0
0
0
_
_
_
_
_
_
_
_
, x =
_
_
_
_
_
_
_
_
x
1
x
2
s
1
s
2
s
3
s
4
_
_
_
_
_
_
_
_
, A =
_
_
_
_
6 4 1 0 0 0
1 2 0 1 0 0
0 1 0 0 1 0
1 1 0 0 0 1
_
_
_
_
, b =
_
_
_
_
24
6
2
1
_
_
_
_
Variables pouvant prendre des valeurs ngatives
Exemple 5 (Vente de hamburgers).
Un fast-food vend des hamburgers et des cheeseburgers. Un hamburger utilise 125 g. de viande alors quun
cheeseburger nen utilise que 100 g.
Le fast-food dmarre chaque journe avec 10 kg de viande mais peut commander de la viande supplmentaire
avec un cot additionnel de 2 EUR par kg pour la livraison.
Le prot est de 0.02 EUR pour un hamburger et 0.015 EUR pour un cheeseburger.
La demande ne dpasse pas 900 sandwiches / jour, et les surplus de viande sont donns au Restos du Coeur.
Combien le fast-food doit-il produire de sandwiches de chaque type par jour ?
Variables
x
1
= nombre de hamburgers / jour x
2
= nombre de cheeseburgers / jour
Contraintes
Commande de viande supplmentaire :
125x
1
+ 100x
2
+x
3
= 10000, x
3
non restreint
Le cot pour la viande supplmentaire apparat seulement si x
3
< 0.
9
Substitution de x3 par 2 variables non-ngatives :
x
3
= x
+
3
x

3
, x
+
3
, x

3
0
125x
1
+ 100x
2
+x
+
3
x

3
= 10000
Borne suprieure sur les ventes : x
1
+x
2
900.
Modle complet
max z = 0.02x
1
+ 0.015x
2
0.002x

3
s.c. 125x
1
+ 100x
2
+x
+
3
x

3
= 10000
x
1
+x
2
900
x
1
, x
2
, x
+
3
, x

3
0
Remarque : Il existe une solution optimale telle que x
+
3
= 0 ou x

3
= 0.
3.4 Rsolution de programmes linaires
3.4.1 Rsolution graphique
Reprsentation graphique
(5)
(1)
(2)
(6)
(4)
(3)
Production de peinture
max z = 5x
1
+ 4x
2
sous les contraintes :
6x
1
+ 4x
2
24 (1)
x
1
+ 2x
2
6 (2)
x
2
2 (3)
x
2
x
1
1 (4)
x
1
0 (5)
x
2
0 (6)
10
Gomtrie des solutions
A
B
C D
E
F
z=10
Ensemble des solutions admissibles
Polydre (ABCDEF)
Courbes de niveaux de lobjectif
Ensemble de solutions ayant un prot (valeur de lobjectif) donn : intersection entre une droite et le polydre.
Amlioration de la solution
Recherche dune direction dans laquelle le prot z augmente.
Rsolution graphique (Production de peinture)
A
B
C D
E
F
z=21
Recherche de la solution optimale
La droite mobile doit garder une intersection avec lensemble des solutions admissibles.
Solution optimale : x
1
= 3, x
2
= 1.5 (E)
La solution optimale est un sommet du polydre.
Cette observation est la base de lalgorithme du simplexe.
11
Rsolution graphique (Diet problem)
Diet problem
min z = 0.0015x
1
+ 0.0045x
2
sous les contraintes
x
1
+x
2
400
0.21x
1
0.30x
2
0
0.03x
1
0.01x
2
0
x
1
0
x
2
0
Solution optimale
x
1
=
4000
17
235.3 x
2
=
2800
17
164.7 z =
186
170
1.094
3.4.2 La mthode du simplexe
Ides de base
Solution optimale : sommet (point extrme).
Ide fondamentale du simplexe : dplacement de sommet en sommet adjacent de manire amliorer la fonction
objectif.
Transformation des ingalits en galits : forme standard du programme linaire - systme de m quations
n inconnues (m < n).
Identication algbrique des sommets : correspondance avec les bases dun systme dquations.
Solutions de base
Systme de m quations linaires n inconnues (m < n) : innit de solutions.
Si on xe zro n m variables : systme de m quations m inconnues possdant une solution unique (si la
matrice est inversible). Cest une solution de base.
Dnition 7 (Solution de base). Une solution de base dun programme linaire est la solution unique du systme
de m quations m inconnues obtenu en xant zro n m variables (pourvu que la matrice du systme soit
inversible).
Les variables xes zro sont appeles variables hors base et les autres variables en base.
12
Exemple 6 (Production de peinture). Prenons B = s
1
, s
2
, s
3
, s
4
.
z = 0 +5x
1
+4x
2
s
1
= 24 6x
1
4x
2
s
2
= 6 x
1
2x
2
s
3
= 2 x
2
s
4
= 1 +x
1
x
2
Si x
1
= x
2
= 0, alors s
1
= 24, s
2
= 6, s
3
= 2, s
4
= 1. Toutes ces valeurs sont non-ngatives et la solution est
ralisable.
Dnition 8 (Solution de base ralisable). Une solution de base telle que toutes les variables prennent des valeurs
non-ngatives est appele solution de base ralisable.
Gomtrie des solutions de base
A
B
C D
E
F
Prenons B = s
1
, s
2
, s
3
, s
4
x
1
= x
2
= 0, s
1
= 24, s
2
= 6, s
3
= 2, s
4
= 1.
Cette solution de base ralisable correspond au sommet (0, 0).
Base Solution Objectif Sommet
s
1
, s
2
, s
3
, s
4
(0, 0) 0 A
x
1
, s
2
, s
3
, s
4
(4, 0) 20 F
s
1
, x
1
, s
3
, s
4
(6, 0) Non ralisable
x
1
, x
2
, s
3
, s
4
(3, 1.5) 21 E
Thorme 2. Toute solution de base ralisable correspond un sommet du polydre.
Dtermination de la solution de base optimale
Nombre maximum de solutions de base :
n!
m!(nm)!
Algorithme "bte et mchant" : numration de toutes les bases.
Mthode du simplexe : partir dune solution de base admissible et passer une solution de base voisine qui
amliore la valeur de lobjectif.
Solution voisine : changement dune variable en base.
3 etapes :
1. Dtermination de la variable entrante.
2. Dtermination de la variable sortante.
3. Pivotage.
Lalgorithme du simplexe
Variable entrante
z = 0 +5x
1
+4x
2
s
1
= 24 6x
1
4x
2
s
2
= 6 x
1
2x
2
s
3
= 2 x
2
s
4
= 1 +x
1
x
2
Si x
1
(ou x
2
) augmente (entre en base), la valeur de la fonction objectif z augmente.
Quelle est la valeur maximale de x
1
?
13
Contraintes : les autres variables doivent rester positives.
Variable sortante
s
1
= 24 6x
1
0 x
1
4
s
2
= 6 x
1
0 x
1
6
s
3
= 2 0 2 0 toujours!
s
4
= 1 +x
1
0 x
1
1 toujours!
x
1
4
Pivotage
Si x
1
= 4, alors s
1
= 0.
x
1
entre en base, s
1
sort de la base.
Substitution :
x
1
= 4
1
6
s
1

2
3
x
2
Nouveau systme :
z = 20
5
6
s
1
+
2
3
x
2
x
1
= 4
1
6
s
1

2
3
x
2
s
2
= 2 +
1
6
s
1

4
3
x
2
s
3
= 2 x
2
s
4
= 5
1
6
s
1

5
3
x
2
Equations du simplexe
B = indices des variables en base, N = indices des variables hors base.
Notation :
z = z +

kN
c
k
x
k
x
l
= b
l

kN
a
lk
x
k
l B
c
k
: prot marginal ou cot rduit.
Rgles de pivotage
Variable entrante
Choisir la variable k hors base avec le prot marginal maximum (max z) ou le cot rduit minimum (min z).
max z k = arg max
iN
c
i
min z k = arg min
iN
c
i
Si c
k
0 (max) ou c
k
0 (min) pour tout k N, solution optimale, STOP.
z = 0 +5x
1
+4x
2
s
1
= 24 6x
1
4x
2
s
2
= 6 x
1
2x
2
s
3
= 2 x
2
s
4
= 1 +x
1
x
2
Variable sortante
Choisir la variable l en base telle que
l = arg min
jB:a
jk
>0
b
j
a
jk
Si a
lk
0 pour tout l B, problme non born, STOP.
14
z = 0 +5x
1
+4x
2
s
1
= 24 6x
1
4x
2
s
2
= 6 x
1
2x
2
s
3
= 2 x
2
s
4
= 1 +x
1
x
2
Pivotage
a
ij

=
_

_
a
lj
a
lk
i = l
a
ij

a
ik
a
lj
a
lk
i ,= l
b
i

=
_

_
b
l
a
lk
i = l
b
i

a
ik
b
l
a
lk
i ,= l
z = 0 +5x
1
+4x
2
s
1
= 24 6x
1
4x
2
s
2
= 6 x
1
2x
2
s
3
= 2 x
2
s
4
= 1 +x
1
x
2
z = 20
5
6
s
1
+
2
3
x
2
x
1
= 4
1
6
s
1

2
3
x
2
s
2
= 2 +
1
6
s
1

4
3
x
2
s
3
= 2 x
2
s
4
= 5
1
6
s
1

5
3
x
2
z = 21
3
4
s
1

1
2
s
2
x
1
= 3
1
4
s
1
+
1
2
s
2
x
2
=
3
2
+
1
8
s
1

3
4
s
2
s
3
=
1
2

1
8
s
1
+
3
4
s
2
s
4
=
5
2

3
8
s
1
+
5
4
s
2
15
Prsentation en tableau
Prsentation compacte pour effectuer les calculs sans rpter les systmes dquations.
Itration 1
Var. en base z x
1
x
2
s
1
s
2
s
3
s
4
Solution
z 1 5 4 0 0 0 0 0
s
1
0 6 4 1 0 0 0 24
s
2
0 1 2 0 1 0 0 6
s
3
0 0 1 0 0 1 0 2
s
4
0 1 1 0 0 0 1 1
Itration 2
Var. en base z x
1
x
2
s
1
s
2
s
3
s
4
Solution
z 1 0
2
3

5
6
0 0 0 20
x
1
0 1
2
3
1
6
0 0 0 4
s
2
0 0
4
3

1
6
1 0 0 2
s
3
0 0 1 0 0 1 0 2
s
4
0 0
5
3
1
6
0 0 1 5
Itration 3
Var. en base z x
1
x
2
s
1
s
2
s
3
s
4
Solution
z 1 0 0
3
4

1
2
0 0 21
x
1
0 1 0
1
4

1
2
0 0 3
x
2
0 0 1
1
8
3
4
0 0
3
2
s
3
0 0 0
1
8

3
4
1 0
1
2
s
4
0 0 0
3
8

5
4
0 1
5
2
3.4.3 La mthode des deux phases
Solution initiale articielle
Une solution de base admissible nest pas toujours connue a priori.
Certains problmes nadmettent pas de solution admissible, donc il est impossible de trouver une base de dpart.
La mthode des deux phases va permettre de dterminer une base admissible ou prouver que le problme est
impossible.
Exemple 7 (Mthode des 2 phases).
min z = 4x
1
+x
2
s.c. 3x
1
+x
2
= 3
4x
1
+3x
2
6
x
1
+2x
2
4
x
1
, x
2
0
Introduction des variables dcart
min z = 4x
1
+x
2
s.c. 3x
1
+x
2
= 3
4x
1
+3x
2
x
3
= 6
x
1
+2x
2
+x
4
= 4
x
1
, x
2
, x
3
, x
4
0
16
Pas de base admissible "triviale".
On voudrait voir apparatre une matrice identit.
Introduction de variables articielles.
Introduction des variables articielles
min z = 4x
1
+x
2
min r = R
1
+R
2
min r = 7x
1
4x
2
+x
3
+9
s.c. 3x
1
+x
2
+R
1
= 3
4x
1
+3x
2
x
3
+R
2
= 6
x
1
+2x
2
+x
4
= 4
x
1
, x
2
, x
3
, R
1
, R
2
, x
4
0
R
1
, R
2
et x
4
peuvent tre utilises comme base de dpart admissible.
Base pour le systme de dpart si R
1
= R
2
= 0 (hors base).
Rcrire lobjectif en fonction des variables hors base !
3.4.4 Cas particuliers
Solutions optimales multiples
Si la fonction objectif est parallle une contrainte active pour la solution optimale, la mme valeur de lobjectif
peut tre prise par plusieurs solutions admissibles.
Il y a une innit de solutions optimales dans ce cas (toutes les combinaisons convexes de sommets optimaux).
Cela se traduit par un prot marginal nul pour une ou plusieurs variables hors base.
Exemple 8 (Solutions optimales multiples).
max z = 2x
1
+4x
2
s.c. x
1
+2x
2
5
x
1
+x
2
4
x
1
, x
2
0
Var. en base z x
1
x
2
s
1
s
2
Solution
z 1 2 4 0 0 0
s
1
0 1 2 1 0 5
s
2
0 1 1 0 1 4
z 1 0 0 2 0 10
x
2
0
1
2
1
1
2
0
5
2
s
2
0
1
2
0
1
2
1
3
2
z 1 0 0 2 0 10
x
2
0 0 1 1 1 1
x
1
0 1 0 1 2 3
Solution optimale :
x
1
= 0 + 3(1 ) = 3 3
x
2
=
5
2
+ 1(1 ) = 1 +
3
2
(0 1)
Problmes non borns
Certains problmes sont non borns dans une direction donne.
Si cette direction est une direction damlioration de la fonction objectif, celle-ci peut prendre une valeur arbi-
trairement grande !
17
Exemple 9 (Problmes non borns).
max z = 2x
1
+x
2
s.c. x
1
x
2
1
2x
1
4
x
1
, x
2
0
Var. en base z x
1
x
2
s
1
s
2
Solution
z 1 2 1 0 0 0
s
1
0 1 1 1 0 1
s
2
0 2 0 0 1 4
Tous les coefcients (sauf le prot maginal) dans la colonne de x
2
sont ngatifs ou nuls.
Cela signie que toutes les contraintes de non-ngativit sont satisfaites quelle que soit la valeur de x
2
.
Lobjectif peut donc augmenter indniment.
Problmes impossibles
Le systme de contraintes peut navoir aucune solution.
Gnralement, provient dune mauvaise formulation du problme.
Exemple 10 (Problmes impossibles).
max z = 3x
1
+2x
2
s.c. 2x
1
+x
2
2
3x
1
+4x
2
12
x
1
, x
2
0
18
4 Dualit
4.1 Le problme dual
Problme primal et problme dual
Problme primal
max c
T
x
s.c. Ax = b
x 0
n variables, m contraintes, m < n, c, x R
n
, b R
m
, A R
mn
.
Problme dual
min b
T
y
s.c. A
T
y c
(y non restreint)
m variables, n contraintes, m < n, c R
n
, b, y R
m
, A R
mn
.
Exemple 11 (Problme primal et dual - forme standard).
Problme primal :
max z = x
1
+x
2
s.c. 2x
1
+x
2
= 5 (y
1
)
3x
1
x
2
= 6 (y
2
)
x
1
, x
2
0
Problme dual :
min w = 5y
1
+6y
2
s.c 2y
1
+3y
2
1 (x
1
)
y
1
y
2
1 (x
2
)
Proprits et rgles de construction du dual
Thorme 3. Le problme dual du problme dual est le problme primal.
Rgles de construction
Problme max Problme min
Contrainte Variable
0
= non restreinte
Variable Contrainte
0
non restreinte =
Exemple 12 (Problme primal et dual - forme gnrale).
Problme primal :
max z = 5x
1
+12x
2
+4x
3
s.c. x
1
+2x
2
+x
3
10 (y
1
)
2x
1
x
2
+3x
3
= 8 (y
2
)
x
1
, x
2
, x
3
0
19
Problme dual :
min w = 10y
1
+8y
2
s.c y
1
+2y
2
5 (x
1
)
2y
1
y
2
12 (x
2
)
y
1
+3y
2
4 (x
3
)
y
1
0
4.2 Relations primal/dual
Thorme 4 (Dualit faible). Considrons la paire primale-duale :
max c
T
x
s.c. Ax = b
x 0
min b
T
y
s.c. A
T
y c
Si x est une solution admissible du primal et y une solution admissible du dual, alors
c
T
x b
T
y
Sil y a galit, alors x est une solution optimale du primal et y une solution optimale du dual.
Thorme 5 (Dualit forte). Considrons la paire primale-duale :
max c
T
x
s.c. Ax = b
x 0
min b
T
y
s.c. A
T
y c
Si le primal et le dual admettent tous les deux une solution admissible, ils ont tous deux une solution optimale
nie et la mme valeur objectif optimale.
Si le primal (dual) est non born, le dual (primal) nadmet pas de solution admissible.
Thorme 6 (Complmentarit). Considrons la paire primale-duale :
max c
T
x
s.c. Ax = b
x 0
min b
T
y
s.c. A
T
y c
20
Si x est une solution optimale du primal et y une solution optimale du dual, alors
x
i
(a
T
i
y c
i
) = 0.
o a
i
est la i-me colonne de A.
En dautres termes :
x
i
> 0 a
T
i
y = c
i
,
a
T
i
y > c
i
x
i
= 0.
Exemple 13 (Rsolution du dual par les rgles de complmentarit).
Primal (P) :
max z = 5x
1
+12x
2
+4x
3
s.c. x
1
+2x
2
+x
3
10 (y
1
)
2x
1
x
2
+3x
3
= 8 (y
2
)
x
1
, x
2
, x
3
0
Dual (D) :
min w = 10y
1
+8y
2
s.c y
1
+2y
2
5 (x
1
)
2y
1
y
2
12 (x
2
)
y
1
+3y
2
4 (x
3
)
y
1
0
Solution optimale de (P) :
(x
1
, x
2
, x
3
) =
_
26
5
,
12
5
, 0
_
z =
274
5
x
1
> 0 y
1
+ 2y
2
= 5
x
2
> 0 2y
1
y
2
= 12
Solution optimale de (D) :
(y
1
, y
2
) =
_
29
5
,
2
5
_
w =
274
5
4.3 Interprtation conomique de la dualit
La forme canonique dun programme linaire peut tre interprte comme un problme dallocation de res-
sources.
Paire primale-duale :
max c
T
x
s.c. Ax b
x 0
min b
T
y
s.c. A
T
y c
y 0
21
Donnes :
c
j
: prot par unit dactivit j.
b
i
: disponibilit de la ressource i.
a
ij
: consommation de la ressource i par unit dactivit j.
Variables :
x
j
: niveau de lactivit j.
y
i
: valeur dune unit de la ressource i.
Interprtation de la dualit faible
z w : prot valeur des ressources
Interprtation de la dualit forte
Le prot maximal est atteint si les ressources ont t exploites compltement, i.e. jusqu puisement de leur
valeur.
Exemple 14 (Dualit dans le problme de production de peinture).
max z = 5x
1
+4x
2
s.c 6x
1
+4x
2
24
x
1
+2x
2
6
x
2
2
x
1
+x
2
1
x
1
, x
2
0
min w = 24y
1
+6y
2
+2y
3
+y
4
6y
1
+y
2
y
4
5
4y
1
+2y
2
+y
3
+y
4
4
y
1
, y
2
, y
3
, y
4
0
x
1
= 3, x
2
= 1.5, z = 21
y
1
= 0.75, y
2
= 0.5, y
3
= y
4
= 0, w = 21
Le prot augmente de 0.75 par augmentation dune tonne de M1 et de 0.5 par tonne de M2. (Localement. Dans
quelles limites ? Voir analyse de sensibilit)
Les "ressources" 3 et 4 sont abondantes, augmenter ces ressources napporte aucun prot supplmentaire.
22
5 Solveurs et langages de modlisation
Exemple 15 (Production de jouets).
Une socit de jouets produit des trains, des camions et des voitures, en utilisant 3 machines.
Les disponibilits quotidiennes des 3 machines sont 430, 460 et 420 minutes, et les prots par train, camion et
voiture sont respectivement EUR 3, EUR 2 et EUR 5.
Les temps ncessaires sur chaque machine sont :
Machine Train Camion Voiture
1 1 2 1
2 3 0 2
3 1 4 0
Primal
max z = 3x
1
+2x
2
+5x
3
s.c. x
1
+2x
2
+x
3
430
3x
1
+2x
3
460
x
1
+4x
2
420
x
1
, x
2
, x
3
0
x
1
= 0
x
2
= 100
x
3
= 230
z = 1350
Dual
min w = 430y
1
+460y
2
+420y
3
s.c. y
1
+3y
2
+y
3
3
2y
1
+4y
3
2
y
1
+2y
2
5
y
1
, y
2
, y
3
0
y
1
= 1
y
2
= 2
y
3
= 0
Var. en base z x
1
x
2
x
3
s
1
s
2
s
3
Solution
z 1 4 0 0 1 2 0 1350
x
2
0
1
4
1 0
1
2

1
4
0 100
x
3
0
3
2
0 1 0
1
2
0 230
s
3
0 2 0 0 2 1 1 20
Base : B = x
2
, x
3
, s
3
.
Solveurs
Logiciels pour rsoudre des programmes linaires :
Indpendants :
Commerciaux : CPLEX (www.ilog.com), XPRESS-MP (www.dash.co.uk), . . .
Gratuits : PCx, lpsolve, glpk, . . .
Tableurs : La plupart des tableurs intgrent un outil de rsolution de programmes linaires (Excel, Gnumeric,
. . .)
Langages de modlisation (ampl, GNU MathProg, mpl, OPL studio, mosel, . . .) : langages de haut niveau
permettant la sparation modle/donnes, se chargeant de linterface avec un solveur.
23
NAME toys
ROWS
L R0001
L R0002
L R0003
N R0004
COLUMNS
C0001 R0001 1
C0001 R0002 3
C0001 R0003 1
C0001 R0004 3
C0002 R0001 2
C0002 R0003 4
C0002 R0004 2
C0003 R0001 1
C0003 R0002 2
C0003 R0004 5
RHS
B R0001 430
B R0002 460
B R0003 420
ENDATA
FIGURE 1 Exemple de production de jouets au format MPS
Solveurs indpendants
Avantages
Puissance, efcacit
Intgrables dans des applications via des librairies
Dsavantages
Formats de chiers (MPS)
Pas de sparation modle / donnes
R-utilisation difcile des modles
Solveurs intgrs aux tableurs
Avantages
Disponibles sur (quasi) tous les ordinateurs
Interface facile dutilisation
Prsentation des donnes / rsultats
Dsavantages
Difcult dimplmenter de grands modles
Sparation modle / donnes difcile
Solveurs moins efcaces (en gnral)
Langages de modlisation
Avantages
Sparation modle / donnes
R-utilisabilit des modles
Indpendance modle / solveur
24
#
# Data definition
#
set Toys;
param nMachines;
set Machines := 1..nMachines;
param profit {Toys};
param time {Machines,Toys};
param avail {Machines};
#
# Variables
#
var prod {Toys} >= 0;
#
# Objective
#
maximize total_profit:
sum{t in Toys} profit[t]
*
prod[t];
#
# Constraints
#
subject to machine_usage {m in Machines}:
sum{t in Toys} time[m,t]
*
prod[t] <= avail[m];
FIGURE 2 Exemple de production de jouets au format AMPL (modle)
Dsavantages
Apprentissage du langage
Prix des versions commerciales
Limitation en taille des versions dessai gratuites
Moindre efcacit (actuellement) des solveurs gratuits
25
#
# Data
#
data;
set Toys := Trains, Trucks, Cars ;
param nMachines := 3;
param profit :=
Trains 3
Trucks 2
Cars 5 ;
param time : Trains Trucks Cars :=
1 1 2 1
2 3 0 2
3 1 4 0 ;
param avail :=
1 430
2 460
3 420 ;
end;
FIGURE 3 Exemple de production de jouets au format AMPL (donnes)
26
Troisime partie
Programmation en nombres entiers et optimisation
combinatoire
6 Dnitions et exemples
Programmation en nombres entiers
Programmes linaires dans lesquels certaines (ou toutes les) variables sont restreintes des valeurs entires.
Si seulement une partie des variables doivent tre entires, on parle de programme mixte (MILP).
Optimisation combinatoire : choix dune solution optimale parmi un ensemble ni dalternatives. Peuvent g-
nralement se formuler comme des programmes en nombres entiers.
Problmes trs difciles en pratique, mais solveurs de plus en plus performants.
Exemple 16 (Slection de projets). 5 projets doivent tre valus sur 3 ans. Etant donn le cot de chaque projet
pour chaque anne et le prot obtenu par lxcution dun projet, dcider quels projets xcuter sans dpasser le
budget disponible pour chaque anne.
Cot par anne Prot
Projet 1 2 3
1 5 1 8 20
2 4 7 10 40
3 3 9 2 20
4 7 4 1 15
5 8 6 10 30
Budget 25 25 25
Variables
x
j
=
_
1 si le projet j est slectionn,
0 sinon.
Formulation
max z = 20x
1
+40x
2
+20x
3
+15x
4
+30x
5
s.c. 5x
1
+4x
2
+3x
3
+7x
4
+8x
5
25
x
1
+7x
2
+9x
3
+4x
4
+6x
5
25
8x
1
+10x
2
+2x
3
+x
4
+10x
5
25
x
1
, x
2
, x
3
, x
4
, x
5
0, 1
Exemple 17 (Problme avec cots xes).
3 compagnies de tlphone offrent des tarifs diffrents pour les communications longue distance.
Compagnie Abonnement Prix / minute
1 16 0.25
2 25 0.21
3 18 0.22
Trouver le plan dabonnement optimal pour 200 minutes de communication / mois.
Variables
x
i
: minutes de communication avec la compagnie i.
y
i
=
_
1 si un abonnement est pris auprs de la compagnie i,
0 sinon.
Formulation
27
min z = 0.25x
1
+0.21x
2
+0.22x
3
+16y
1
+ 25y
2
+ 18y
3
s.c. x
1
+x
2
+x
3
= 200
x
1
200y
1
x
2
200y
2
x
3
200y
3
x
1
, x
2
, x
3
0
y
1
, y
2
, y
3
0, 1
Exemple 18 (Voyageur de commerce).
Un reprsentant doit visiter n villes une et une seule fois, et revenir sa ville de dpart, en minimisant le cot
total du trajet.
Le problme revient trouver un tour de cot minimum passant une et une seule fois par chacun des noeuds
dun graphe. Le cot dutilisation de larc (i, j) est c
ij
.
Variables
x
ij
=
_
_
_
1 si larc (i, j) appartient
au tour optimal,
0 sinon.
Contraintes
n

j=1
x
ij
= 1 i = 1, . . . , n
n

i=1
x
ij
= 1 j = 1, . . . , n
Problme : apparition possible de sous-tours
S

i,jS
x
ij
[S[ 1, , = S ,= 1, . . . , n.
Formulation
min z =
n

i=1
n

j=1
c
ij
x
ij
s.c.
n

j=1
x
ij
= 1 i = 1, . . . , n
n

i=1
x
ij
= 1 j = 1, . . . , n

i,jS
x
ij
[S[ 1 , = S ,= 1, . . . , n
x
ij
0, 1 i = 1, . . . , n, j = 1, . . . , n
28
Exemple 19 (Problme de couverture). Le dpartement de scurit dun campus veut installer des tlphones
durgence. Chaque rue doit tre servie par un tlphone, le but tant de minimiser le nombre de tlphones
installer (installation aux carrefours).
1 2 3
4 5
8 7 6
Formulation
min z = x
1
+x
2
+x
3
+x
4
+x
5
+x
6
+x
7
+x
8
s.c. x
1
+x
2
1
x
2
+x
3
1
x
4
+x
5
1
x
6
+x
7
1
x
7
+x
8
1
x
1
+x
6
1
x
2
+x
6
1
x
2
+x
4
1
x
4
+x
7
1
x
3
+x
5
1
x
5
+x
8
1
x
1
, x
2
, x
3
, x
4
, x
5
, x
6
, x
7
, x
8
0, 1
Contraintes disjonctives
Dans un programme linaire, toutes les contraintes doivent tre satisfaites simultanment.
Parfois, il est ncessaire de modliser le fait quune contrainte parmi un ensemble doit tre satisfaite. Si les
contraintes de lensemble sont mutuellement incompatibles, on parle de contraintes disjonctives.
Exemple 20 (Contraintes disjonctives).
Une machine est utilise pour 3 tches diffrentes. Pour chaque tches i, une dure p
i
et une date limite d
i
sont
donnes, ainsi quune pnalit par jour de retard.
Tche Dure Limite Pnalit
1 5 25 19
2 20 22 12
3 15 35 34
Comment arranger les tches sur la machine pour minimiser la pnalit totale ?
Variables : x
i
: temps de n de la tche i (x
i
p
i
).
Deux tches i et j ne peuvent tre xcutes simultanment, donc
x
i
x
j
+p
i
ou x
j
x
i
+p
j
.
Pour introduire ces contraintes disjonctives, nous faisons appel des variables binaires auxiliaires :
y
ij
=
_
1 si i prcde j
0 si j prcde i
29
x
i
x
j
+My
ij
p
i
x
j
x
i
+M(1 y
ij
) p
j
Contrainte de date limite : introduction dune variable dcart non restreinte x
i
+s
i
= d
i
.
Une pnalit apparat uniquement si s
i
< 0.
Remplacement par deux variables non ngatives reprsentant les parties positive et ngative.
x
i
+s
+
i
s

i
= d
i
s
+
i
, s

i
0
Objectif : min z = 19s

1
+ 12s

2
+ 34s

3
Formulation
min z = 19s

1
+12s

2
+34s

3
s.c. x
1
x
2
+My
12
5
x
1
+x
2
My
12
20 M
x
1
x
3
+My
13
5
x
1
+x
3
My
13
15 M
x
2
x
3
+My
23
20
x
2
+x
3
My
23
15 M
x
1
+s
+
1
s

1
= 25
x
2
+s
+
2
s

2
= 22
x
3
+s
+
3
s

3
= 35
x
1
, x
2
, x
3
, s
+
1
, s

1
, s
+
2
, s

2
, s
+
3
, s

3
0
x
1
5
x
2
20
x
3
15
y
12
, y
13
, y
23
0, 1
7 Complexit des problmes et efcacit des algorithmes
Problmes faciles et difciles
La thorie de la complexit sattache classier les problmes selon leur difcult.
Un problme est facile sil existe un algorithme efcace pour le rsoudre.
Exemples de problmes faciles : programmation linaire, affectation, plus courts chemins, . . .
Un problme est difcile sil appartient la classe des problmes NP-complets, pour lesquels il est peu probable
de trouver un jour un algorithme efcace.
Exemple de problmes difciles : programmes en nombres entiers, voyageur de commerce, . . .
Algorithmes efcaces et explosion combinatoire
Lefcacit dun algorithme est mesure par lordre de grandeur du nombre doprations lmentaires quil
effectue en fonction de la taille des donnes.
Un algorithme sera efcace si le nombre doprations lmentaires est polynomial (i.e. born suprieurement
par un polynme) en la taille de problme.
n ln n + 1 n n
2
n
3
2
n
1 1.000 1 1 1 2
2 1.301 2 4 8 4
3 1.477 3 9 27 8
5 1.699 5 25 125 32
10 2.000 10 100 1000 1024
20 2.301 20 400 8000 1048576
50 2.699 50 2500 125000 1.12 10
15
100 3.000 100 10000 1000000 1.27 10
30
30
Autre perspective : supposons que trois ordinateurs M
1
, M
2
et M
3
effectuent respectivement 10000, 20000 et
40000 oprations par seconde. oprations par seconde.
Quelle taille maximum de problme n peut on rsoudre en une minute par des algorithmes effectuant respecti-
vemet n, n
2
, n
3
et 2
n
oprations ?
Ordinateur n n
2
n
3
2
n
M
1
600000 775 84 19
M
2
1200000 1095 106 20
M
3
2400000 1549 134 21
8 Problmes polynomiaux
8.1 Le problme daffectation
Le problme daffectation
Exemple de problme combinatoire pour lequel il existe un algorithme efcace.
La meilleure personne pour chaque tche.
n personnes doivent effectuer n tches.
Un cot c
ij
est associ laffectation de la personne i la tche j.
Formulation du problme daffectation
min z =
n

i=1
n

j=1
c
ij
x
ij
s.c.
n

j=1
x
ij
= 1 i = 1, . . . , n
n

i=1
x
ij
= 1 j = 1, . . . , n
x
ij
0, 1 i = 1, . . . , n, j = 1, . . . , n
Proprit : la relaxation linaire du problme est toujours entire.
Algorithme : mthode hongroise.
Exemple 21 (Problme daffectation). Un pre propose 3 travaux ses enfants : tondre la pelouse, peindre le
garage et laver la voiture. Il demande chaque enfant combien il voudrait tre pay pour chaque travail.
Tondre Peindre Laver
John 15 10 9
Karen 9 15 10
Terri 10 12 8
Mthode hongroise
Slectionner le prix minimum dans chaque ligne.
Tondre Peindre Laver
John 15 10 9 9
Karen 9 15 10 9
Terri 10 12 8 8
Soustraire ce prix de chaque ligne et slectionner le prix minimum dans chaque colonne.
Tondre Peindre Laver
John 6 1 0 9
Karen 0 6 1 9
Terri 2 4 0 8
0 1 0
Soustraire ce prix de chaque colonne.
31
Tondre Peindre Laver
John 6 0 0 9
Karen 0 5 1 9
Terri 2 3 0 8
0 1 0
Les "0" en bleu donnent une affectation admissible optimale.
Loptimalit est assure par la valeur des variables duales (en rouge).
Nombre doprations : O(n
2
).
Il arrive que les valeurs nulles du tableau ne permettent pas de trouver de solution admissible.
1 4 6 3
9 7 10 9
4 5 11 7
8 7 8 5
0 3 2 2 1
2 0 0 2 7
0 1 4 3 4
3 2 0 0 5
0 0 3 0
Slectionner un nombre minimum de lignes et colonnes couvrant tous les 0.
0 3 2 2 1
2 0 0 2 7
0 1 4 3 4
3 2 0 0 5
0 0 3 0
Slectionner le plus petit lment non couvert, le soustraire tous les lments non couverts et lajouter aux
intersections.
0 2 1 1 2
3 0 0 2 7
0 0 3 2 5
4 2 0 0 5
-1 0 3 0
Rpter jusqu trouver une solution admissible.
8.2 Modle de transport
Un produit doit tre transport de sources (usines) vers des destinations (dpts, clients).
Objectif : dterminer la quantit envoye de chaque source chaque destination en minimisant les cots de
transport. Les cots sont proportionnels aux quantits transportes.
Contraintes doffre limite aux sources et de demande satisfaire au destinations.
Sources Destinations
1
2
1
2
m n
a
1
a
2
a
m
b
1
b
2
b
n
c
m n
x
m n
Exemple 22 (Modle de transport).
32
Une rme automobile a trois usines Los Angeles, Detroit et New Orleans, et deux centres de distribution
Denver et Miami.
Les capacits des trois usines sont de 1000, 1500 et 1200 respectivement, et les demandes aux centres de
distribution sont de 2300 et 1400 voitures.
Cots :
Denver Miami
Los Angeles 80 215
Detroit 100 108
New Orleans 102 68
Formulation
min z = 80x
11
+215x
12
+100x
21
+108x
22
+102x
31
+68x
32
s.c.
(Los Angeles) x
11
+x
12
= 1000
(Detroit) x
21
+x
22
= 1500
(New Orleans) x
31
+x
32
= 1200
(Denver) x
11
+x
21
+x
31
= 2300
(Miami) x
12
+x
22
+x
32
= 1400
x
11
, x
12
, x
21
, x
22
, x
31
, x
32
0
Reprsentation tableau
Denver Miami Offre
Los Angeles 80 215 1000
1000
Detroit 100 108 1500
1300 200
New Orleans 102 68 1200
1200
Demande 2300 1400
Problmes non balancs
Si loffre nest pas gale la demande : modle non balanc.
Introduction dune source ou destination articielle.
Denver Miami Offre
Los Angeles 80 215 1000
1000
Detroit 100 108 1300
1300
New Orleans 102 68 1200
1200
Artif. 0 0 200
200
Demande 2300 1400
Variantes
Le modle de transport nest pas limit au transport de produits entre des sources et destinations gographiques.
Exemple 23 (Modle de production).
Une socit fabrique des sacs dos, pour lesquels la demande arrive de mars juin et est de 100, 200, 180 et
300 units, respectivement.
La production pour ces mois est de 50, 180, 280 et 270, respectivement.
La demande peut tre satisfaite
1. par la production du mois courant ($40 / sac) ;
33
2. par la production dun mois prcdent (+ $0.5 / sac / mois pour le stockage) ;
3. par la production dun mois suivant (+ $2 / sac / mois de pnalit de retard).
Correspondances avec le modle de transport
Transport Production - stocks
Source i Priode de production i
Destination j Priode de demande j
Offre la source i Capacit de production la priode i
Demande la destination j Demande pour la priode j
Cot de transport de i j Cot unitaire (production + stock + pnalit)
pour une production en priode i pour la priode j
Exemple 24 (Maintenance dquipements).
Une scierie prpare diffrents types de bois sur base dun plan hebdomadaire.
Pour satisfaire la demande, dpendant du type de bois, la scierie utilise un nombre donn de lames.
Pour satisfaire la demande, deux possibilits :
acheter une lame ($12) ;
faire aiguiser la lame (service express : $6 en une nuit, sinon $3 en 2 jours).
Demande :
Lun Mar Mer Jeu Ven Sam Dim
24 12 14 20 18 14 22
Modle de transport
8 sources : achat de nouvelles lames (offre = demande totale), 7 jours de la semaine (offre = nombre de lames
utilises).
8 destinations : 7 jours de la semaine (demande = nombre de lames utilises) + surplus de lames non achetes /
aiguises (demande = nombre total de lames).
Lun Mar Mer Jeu Ven Sam Dim Surplus Offre
Achat 12 12 12 12 12 12 12 0 124
Lun 10000 6 6 3 3 3 3 0 24
Mar 10000 10000 6 6 3 3 3 0 12
Mer 10000 10000 10000 6 6 3 3 0 14
Jeu 10000 10000 10000 10000 6 6 3 0 20
Ven 10000 10000 10000 10000 10000 6 6 0 18
Sam 10000 10000 10000 10000 10000 10000 6 0 14
Dim 10000 10000 10000 10000 10000 10000 10000 0 22
Demande 24 12 14 20 18 14 22 124
Algorithme pour le problme de transport
Bas sur lalgorithme du simplexe en tenant compte de la structure du problme.
1. Dtermination dune solution de base admissible.
2. Dtermination de la variable entrant en base.
3. Dtermination de la variable sortant de base.
Exemple 25 (Algorithme pour le problme de transport).
34
1 2 3 4 Offre
1 10 2 20 11 15
2 12 7 9 20 25
3 4 14 16 18 10
Demande 5 15 15 15
Dtermination dune solution de base admissible
Heuristiques "gloutonnes", pas besoin de mthode des deux phases.
Variantes :
1. Coin Nord-Ouest
2. Mthode des moindres cots
3. Approximation de Vogel (VAM)
Coin Nord-Ouest
Partir du coin suprieur gauche du tableau.
1. allouer le plus possible la cellule courante et ajuster loffre et la demande ;
2. se dplacer dune cellule vers la droite (demande nulle) ou le bas (offre nulle) ;
3. rpter jusquau moment o toute loffre est alloue.
Exemple 26 (Coin Nord-Ouest).
1 2 3 4 Offre
1 10 2 20 11 15
5 10
2 12 7 9 20 25
5 15 5
3 4 14 16 18 10
10
Demande 5 15 15 15
Cot : 520
Moindres cots
Slectionner la cellule de cot minimum.
1. allouer le plus possible la cellule courante et ajuster loffre et la demande ;
2. slectionner la cellule de cot minimum ayant une demande et une offre non nulles ;
3. rpter jusquau moment o toute loffre est alloue.
Exemple 27 (Moindres cots).
1 2 3 4 Offre
1 10 2 20 11 15
15
2 12 7 9 20 25
15 10
3 4 14 16 18 10
5 5
Demande 5 15 15 15
Cot : 475
Approximation de Vogel (VAM)
35
1. pour chaque ligne (colonne) avec une offre (demande) non-nulle, calculer une pnalit gale la diffrence
entre les deux cots les plus petits dans la ligne (colonne) ;
2. slectionner la ligne ou colonne avec la pnalit maximale et slectionner la cellule de cot minimum dans
la ligne ou colonne ;
3. allouer le plus possible la cellule courante ;
4. lorsquil ne reste quune ligne ou colonne : moindre cots.
Exemple 28 (VAM).
1 2 3 4 Offre
1 10 2 20 11 15
15
2 12 7 9 20 25
15 10
3 4 14 16 18 10
5 5
Demande 5 15 15 15
Cot : 475
Formulation
min z =
m

i=1
n

j=1
c
ij
x
ij
s.c. (u
i
)
n

j=1
x
ij
= a
i
i = 1, . . . , m
(v
j
)
m

i=1
x
ij
= b
j
j = 1, . . . , n
x
ij
0 i = 1, . . . , m, j = 1, . . . , n
Problme dual
max w =
m

i=1
a
i
u
i
+
n

j=1
b
j
v
j
s.c. u
i
+v
j
c
ij
i = 1, . . . , m, j = 1, . . . , n
Adaptation du simplexe
Critre doptimalit :
u
i
+v
j
c
ij
0
Complmentarit :
x
ij
> 0 u
i
+v
j
c
ij
= 0
Trois tapes : 1. dtermination des variables duales (multiplicateurs) ;
2. vrication du critre doptimalit et dtermination de la variable entrante ;
3. dtermination de la variable sortante pour prserver ladmissibilit et pivotage.
Dtermination des variables duales
1. m+n 1 quations m+n inconnues : xer u
1
= 0.
36
2. Rsoudre rcursivement le systme
u
i
+v
j
c
ij
= 0 pour tout x
ij
> 0.
Exemple 29 (Dtermination des variables duales).
1 2 3 4 Offre
1 10 2 20 11 15
5 10
2 12 7 9 20 25
5 15 5
3 4 14 16 18 10
10
Demande 5 15 15 15
u
1
= 0
u
1
+v
1
= 10 v
1
= 10
u
1
+v
2
= 2 v
2
= 2
u
2
+v
2
= 7 u
2
= 5
u
2
+v
3
= 9 v
3
= 4
u
2
+v
4
= 20 v
4
= 15
u
3
+v
4
= 18 u
3
= 3
Vrication du critre doptimalit et dtermination de la variable entrante
1 10 2 2 3 4 4 15 Offre
1 10 2 20 11 15
0 5 10 -16 4
2 12 7 9 20 25
5 3 5 15 5
3 4 14 16 18 10
3 9 -9 -9 10
Demande 5 15 15 15
Dtermination de la variable sortante pour prserver ladmissibilit et pivotage
Objectifs : 1. loffre et la demande doivent continuer tre satisfaites ;
2. les quantits transportes doivent rester positives.
Mthode : 1. construction dun cycle parcourant des variables en base en partant de et revenant la variable
entrante ;
2. dplacement le long de lignes et colonnes en alternant ajout et retrait dune mme quantit.
1 10 2 2 3 4 4 15 Offre
1 10 2 + 20 11 15
0 5 10 -16 4
2 12 7 9 20 + 25
5 3 5 15 5
3 4 + 14 16 18 10
3 9 -9 -9 10
Demande 5 15 15 15
= 5
37
1 1 2 2 3 4 4 15 Offre
1 10 2 20 11 + 15
0 -9 15 -16 4
2 12 7 + 9 20 25
5 -6 0 15 10
3 4 14 16 18 10
3 5 -9 -9 5
Demande 5 15 15 15
= 10
1 -3 2 2 3 4 4 11 Offre
1 10 2 20 11 15
0 -13 5 -16 10
2 12 7 9 20 25
5 -10 10 15 -4
3 4 14 16 18 10
7 5 -5 -5 5
Demande 5 15 15 15
Extension du modle de transport : il est parfois ncessaire (ou moins cher) dutiliser des noeuds intermdiaires
pour le transport.
Deux usines P1 et P2 servent 3 vendeurs D1, D2 et D3, via deux centres de transit T1 et T2.
1000
1200
P1
P2
D1
D2
D3
800
900
500
3
5
8
6
4
9
2
4
T1
T2
7
5
3
Transformation en problme de transport
3 types de noeuds :
Noeuds doffre purs : arcs sortants uniquement. offre = offre originale
Noeuds de demande purs : arcs entrants uniquement. demande = demande originale
Noeuds de transbordement : arcs entrants et sortants. offre/demande = offre/demande originale + buffer
Les noeuds de transbordement sont la fois sources et destinations pour le problme de transport.
Buffer : quantit ncessaire pour transporter toute la demande travers le noeud de transbordement.
Dans notre exemple : B = 2200.
T1 T2 D1 D2 D3 Offre
P1 3 4 M M M 1000
P2 2 5 M M M 1200
T1 0 7 8 6 M 2200
T2 M 0 M 4 9 2200
D1 M M 0 5 M 2200
D2 M M M 0 3 2200
Demande 2200 2200 3000 3100 500
38
9 Mthodes de Branch-and-Bound
9.1 Branch-and-Bound pour les problmes en nombres entiers
Les mthodes de branch-and-bound sont des mthodes bases sur une numration "intelligente" des solutions
admissibles dun problme doptimisation combinatoire.
Ide : prouver loptimalit dune solution en partitionant lespace des solutions.
"Diviser pour rgner"
Application la programmation linaire en nombres entiers : utilise toute la puissance de la programmation
linaire pour dterminer de bonnes bornes.
On appelle relaxation linaire dun programme linaire en nombres entiers le programme linaire obtenu en
supprimant les contraintes dintgralit sur les variables.
Programme en nombres entiers
(P) max c
T
x
s.c. Ax b
x 0, entier.
Relaxation linaire
(LP) max c
T
x
s.c. Ax b
x 0.
Proprits de la relaxation linaire
La valeur de la solution optimale de LP est une borne suprieure sur la valeur de la solution optimale de P.
La valeur dune solution admissible de P fournit une borne infrieure sur la valeur de la solution optimale de
P.
Si la solution optimale de LP est entire (donc admissible pour P), elle est galement la solution optimale de
P.
Branchement
Si la solution de LP nest pas entire, soit x
i
une variable prenant une valeur fractionnaire x

i
dans la solution
optimale de LP.
Le problme peut tre divis en deux sous-problmes en imposant
x
i
x

i
| ou x
i
x

i
| + 1
o x

i
| est le plus grand entier infrieur x

i
.
La solution optimale de P est la meilleure des solutions optimales des deux problmes
(P
1
) max c
T
x
s.c. Ax b
x
i
x

i
|
x 0, entier.
(P
2
) max c
T
x
s.c. Ax b
x
i
x

i
| + 1
x 0, entier.
Exemple 30 (Branch-and-Bound).
max z = 5x
1
+4x
2
s.c. x
1
+x
2
5
10x
1
+6x
2
45
x
1
, x
2
0, entiers.
(LP) x
1
= 3.75, x
2
= 1.25
z = 23.75
39
(LP) x
1
= 3.75, x
2
= 1.25
z = 23.75
x
1
4
(LP
1
) x
1
= 3, x
2
= 2
z = 23
(LP
2
) . . .
x
1
3
La solution de LP
1
est une solution admissible de P et donc z = 23 est une borne infrieure sur la valeur de la
solution optimale de P.
Le noeud correspondant peut tre limin vu quune solution entire optimale satisfaisant x
1
3 a t trouve
(solution de P
1
).
La valeur de la solution de LP, z = 23.75 est une borne suprieure sur la valeur de la solution optimale de P.
40
Vu que tout les coefcients sont entiers, on peut en dduire que la valeur de la solution optimale de P est
infrieure ou gale 23.
La solution de P
1
est donc optimale pour P.
Rgles de branchement
Il ny a pas de rgle gnrale pour le choix de la variable de branchement et de la branche examiner en premier.
Ce choix peut avoir un impact important sur le nombre de noeuds examiner dans larbre de branch-and-bound.
Exemple : branchement dabord du ct .
(LP) x
1
= 3.75, x
2
= 1.25
z = 23.75
x
1
4
(LP
1
) x
1
= 3, x
2
= 2
z = 23
(LP
2
) x
1
= 4, x
2
= 0.83
z = 23.33
x
1
3
(LP
4
) Pas de solution
x
2
1 x
2
0
(LP
3
) x
1
= 4.5, x
2
= 0
z = 22.5
x
1
4 x
1
5
(LP
5
) x
1
= 4, x
2
= 0
z = 20
(LP
6
) Pas de solution
9.2 Branch-and-bound pour le voyageur de commerce
Formulation (rappel)
min z =
n

i=1
n

j=1
c
ij
x
ij
s.c.
n

j=1
x
ij
= 1 i = 1, . . . , n
n

i=1
x
ij
= 1 j = 1, . . . , n

i,jS
x
ij
[S[ 1 , = S ,= 1, . . . , n
x
ij
0, 1 i = 1, . . . , n, j = 1, . . . , n
Si on retire les contraintes dlimination de sous-tours, on obtient le problme daffectation.
Cette relaxation a une solution entire qui peut tre obtenue par exemple avec la mthode hongroise.
Le branchement est effectu de manire liminer les sous-tours.
La valeur de la solution optimale du problme daffectation (AP) est une borne infrieure sur la valeur de la
solution optimale du TSP.
Le cot dun tour fournit une borne suprieure sur la valeur de la solution optimale.
Si la solution optimale de AP est un tour (i.e. sans sous-tour), elle est galement la solution optimale du TSP.
Si un sous-tour apparat :
x
i
1
i
2
= x
i
2
i
3
= x
i
3
i
4
= = x
i
k1
i
k
= x
i
k
i
1
= 1.
Dans une solution admissible, un de ces arcs doit tre absent, donc
x
i
1
i
2
= 0 ou x
i
2
i
3
= 0 ou . . . ou x
i
k1
i
k
= 0 ou x
i
k
i
1
= 0.
Chacune de ces conditions va correspondre une branche de larbre de branch-and-bound.
41
Exemple 31 (Voyageur de commerce).
1 2 3 4 5
1 8 2 10 3
2 9 20 9 7
3 6 40 7 5
4 8 4 2 5
5 9 10 6 9
Solution du problme daffectation
3
5
1 2
4
[153][24] z = 28
[15342] z = 29 [13][254] z = 28 [13][254] z = 28
[15342] z = 29
[15243] z = 30
x
31
= 0
[135][24] z = 29
x
31
= 0
[12543] z = 32
x
13
= 0
x
13
= 0
[153][24] z = 28
x
15
= 0
x
31
= 0
x
53
= 0
9.3 Branch-and-bound pour les contraintes disjonctives
On peut utiliser une approche classique pour les problmes en nombres entiers en introduisant des variables
supplmentaires (voir formulation en dbut de partie).
On peut galement prendre comme relaxation le problme sans les contraintes disjonctives, et brancher sur les
contraintes non satisfaites.
Exemple 32 (Contraintes disjonctives).
Une machine est utilise pour 3 tches diffrentes. Pour chaque tches i, une dure p
i
et une date limite d
i
sont
donnes, ainsi quune pnalit par jour de retard.
Tche Dure Limite Pnalit
1 5 25 19
2 20 22 12
3 15 35 34
Comment arranger les tches sur la machine pour minimiser la pnalit totale ?
Relaxation du problme
42
min z = 19s

1
+12s

2
+34s

3
s.c. x
1
+s
+
1
s

1
= 25
x
2
+s
+
2
s

2
= 22
x
3
+s
+
3
s

3
= 35
x
1
, x
2
, x
3
, s
+
1
, s

1
, s
+
2
, s

2
, s
+
3
, s

3
0
x
1
5
x
2
20
x
3
15
Branchement sur x
i
x
j
+p
i
ou x
j
x
i
+p
j
.
Solution de la relaxation : ordonnancement au plus tt.
Noeud 0
z = 0 0 22 25 35
Relaxation : 0 Borne sup. : +.
Noeuds examiner :
1 : x
1
x
2
5
2 : x
2
x
1
20
Noeud 1
1 : x
1
x
2
5
z = 0 0 22 25 35
Noeud 1 :
Relaxation : 0 Borne sup. : +.
Noeuds examiner :
2 : x
2
x
1
20
3 : x
1
x
2
5
x
2
x
3
20
4 : x
1
x
2
5
x
3
x
2
15
Noeud 3
3 : x
1
x
2
5
x
2
x
3
20
0 22 25 35
Noeud 3 :
z = 441
Relaxation : 441 Borne sup. : 441
43
Noeuds examiner :
2 : x
2
x
1
20
4 : x
1
x
2
5
x
3
x
2
15
Noeud 4
4 : x
1
x
2
5
x
3
x
2
15
0 22 25 35
Noeud 4 :
z = 0
Relaxation : 0 Borne sup. : 441
Noeuds examiner :
2 : x
2
x
1
20
5 : x
1
x
2
5
x
3
x
2
15
x
1
x
3
5
6 : x
1
x
2
5
x
3
x
2
15
x
3
x
1
15
Noeud 5
5 : x
1
x
2
5
x
3
x
2
15
x
1
x
3
5
0 22 25 35
Noeud 5 :
z = 285
Relaxation : 285 Borne sup. : 285
Noeuds examiner :
2 : x
2
x
1
20
6 : x
1
x
2
5
x
3
x
2
15
x
3
x
1
15
Noeud 6
6 : x
1
x
2
5
x
3
x
2
15
x
3
x
1
15
44
0 22 25 35
Noeud 6 :
z = 170
Relaxation : 170 Borne sup. : 170
Noeuds examiner :
2 : x
2
x
1
20
Noeud 2
2 : x
2
x
1
20
0 22 25 35
Noeud 2 :
z = 36
Relaxation : 36 Borne sup. : 170
Noeuds examiner :
7 : x
2
x
1
20
x
2
x
3
20
8 : x
2
x
1
20
x
3
x
2
15
Noeud 7
7 : x
2
x
1
20
x
2
x
3
20
0 22 25 35
Noeud 7 :
z = 156
Relaxation : 156 Borne sup. : 170
Noeuds examiner :
8 : x
2
x
1
20
x
3
x
2
15
9 : x
2
x
1
20
x
2
x
3
20
x
1
x
3
5
10 : x
2
x
1
20
x
2
x
3
20
x
3
x
1
15
Noeud 9
45
9 : x
2
x
1
20
x
2
x
3
20
x
1
x
3
5
0 22 25 35
Noeud 9 :
z = 216
Relaxation : 216 Borne sup. : 170
Noeuds examiner :
8 : x
2
x
1
20
x
3
x
2
15
10 : x
2
x
1
20
x
2
x
3
20
x
3
x
1
15
Noeud 10
10 : x
2
x
1
20
x
2
x
3
20
x
3
x
1
15
0 22 25 35 z = 216
Noeud 10 :
Relaxation : 216 Borne sup. : 170
Noeuds examiner :
8 : x
2
x
1
20
x
3
x
2
15
Noeud 8
8 : x
2
x
1
20
x
3
x
2
15
0 22 25 35
Noeud 8 :
z = 206
Relaxation : 206 Borne sup. : 170
Solution optimale : 170 Ordre des tches : 2, 1, 3 (noeud 6)
46
10 Mthodes heuristiques
10.1 Introduction
La plupart des problmes pratiques sont NP-complets.
Ncessit de trouver des bonnes solutions rapidement.
Heuristiques ou algorithmes dapproximation.
Raisons de choisir une heuristique
Une solution doit tre trouve rapidement (secondes / minutes).
Instance trop grande ou complique : impossible formuler comme un problme en nombre entiers de taille
raisonnable.
Impossibilit pour le Branch-and-Bound de trouver une (bonne) solution admissible.
Pour certaines classes de problmes : trouver des solutions admissibles est facile (structure du problme) mais
une approche gnraliste de programmation en nombres entiers nest pas efcace.
Questions se poser...
Doit-on accepter nimporte quelle solution, ou doit-on se demander a posteriori quelle distance de loptimalit
on se trouve ?
Peut-on garantir a priori que lheuristique va produire une solution (ou %) de loptimal ?
Peut-on dire a priori que, pour la classe de problmes considre, lheuristique va produire en moyenne une
solution % de loptimal ?
Contexte gnral
Problme doptimisation combinatoire
min F(x)
s.c. x X.
avec F une fonction valeur relles dnie sur X,
X lensemble des solutions admissibles.
Hypothse
X de trop grande taille pour permettre lnumration.
10.2 Heuristiques de construction
Objectif : construire une (bonne) solution admissible.
Se basent sur la structure du problme pour gnrer une solution.
Gnralement : mthodes gloutonnes. Construisent la solution en ajoutant lment par lment, choix dnitifs
(pas de retour en arrire).
Dfaut : mthodes aveugles, un mauvais choix fait en cours de construction ne peut pas tre dfait.
Exemples :
problme de transport (coin nord-ouest, moindre cots, VAM)
voyageur de commerce (plus proche voisin, meilleure insertion)
heuristique gloutonne pour le problme de sac--dos.
Voyageur de commerce : plus proche voisin
partir dun sommet quelconque, par exemple le sommet 1
tant quil reste des sommets libres faire :
connecter le dernier sommet atteint au sommet libre le plus proche
relier le dernier sommet au sommet 1
Exemple 33 (Voyageur de commerce).
47
1 2 3 4 5
1 8 2 10 3
2 9 20 9 7
3 6 40 7 5
4 8 4 2 5
5 9 10 6 9
Tour : 1 3 5 4 2 1
Cot : 29
Remarque : si dmarrage du noeud 2 :
Tour : 2 5 3 1 4 2
Cot : 33
Voyageur de commerce : meilleure insertion
partir dun cycle rduit une boucle sur le sommet 1 (par exemple)
tant quil y a des sommets libres faire :
pour tous les sommets libres j, chercher la position dinsertion entre 2 sommets i, k du cycle minimisant
M = c
ij
+c
jk
c
ik
insrer le sommet qui minimise laccroissement du cot
Exemple 34 (Voyageur de commerce).
1 2 3 4 5
1 8 2 10 3
2 9 20 9 7
3 6 40 7 5
4 8 4 2 5
5 9 10 6 9
1. 1 1, k = 3, M = 8
2. 1 3 1, k = 5, M = 7
3. 1 5 3 1, k = 4, M = 5
4. 1 5 4 3 1, k = 2, M = 10
5. 1 5 2 4 3 1, cot : 30.
Le problme de sac--dos
Le problme de sac--dos revient dcider quels objets mettre dans un contenant ayant une capacit donne W
de manire maximiser le prot total des objets choisis.
Chaque objet a un prot p
i
0 et un poids w
i
0.
Problme de sac--dos
z = max
n

j=1
p
j
x
j
s.c.
n

j=1
w
j
x
j
W
x
j
0, 1 j = 1, . . . , n
Heuristique gloutonne pour le problme de sac--dos
Ide de base : Les objets les plus intressants sont ceux qui ont un petit poids pour un grand prot, i.e. un rapport
p
i
w
i
grand.
Heuristique gloutonne pour le problme de sac--dos
1. Ordonner les objets par ordre dcroissant de
p
i
w
i
ordre i
1
, . . . , i
n
.
2. S = .
48
3. Pour t = 1, . . . , n faire :
Si w(S) +w
i
t
W, alors S := S i
t
.
1
Analyse de lheuristique
Rsolution de la relaxation linaire
1. Ordonner les objets par ordre dcroissant de
p
i
w
i
ordre i
1
, . . . , i
n
.
2. S = , t = 1.
3. Tant que w(S) +w
i
t
W :
S := S i
t
.
4. Complter la capacit avec la fraction ncessaire de lobjet i
t
.
Soit S la solution de lheuristique gloutonne, z
LP
la valeur de la relaxation linaire et p
0
= max
i=1,...,n
p
i
.
Considrons z = maxp(S), p
0
.

z = maxp(S), p
0

p(S) +p
0
2

z
LP
2

z
OPT
2
10.3 Recherche locale
Heuristiques de construction : utiles pour trouver une premire solution admissible, mais souvent de mauvaise
qualit.
Ide : essayer damliorer cette solution en tenant compte de la structure du problme.
Etant donn une solution, dnition dune notion de voisinage de cette solution.
Mthode de descente : recherche du meilleur voisin jusquau moment o aucune amlioration nest possible.
Pour toute solution x X, on dnit V (x) X comme tant lensemble des solutions voisines de x (x /
V (x)).
Algorithme de descente
Initialisation : x
0
X solution initiale.
Etape n : soit x
n
X la solution courante ;
slectionner x

V (x
n
) ;
si F(x

) F(x
n
) :
x
n+1
:= x

; passer ltape n + 1.
sinon x
n
meilleure solution trouve ; stop.
En gnral (si pas trop long), choix du meilleur lment du voisinage.
Voyageur de commerce : k-opt
Voisins dun tour : tous les tours qui peuvent sobtenir en retirant k artes et en reconnectant de la meilleurs
manire possible.
Exemple 35 (2-opt).
1. Notation : w(S) :=

iS
w
i
49
10.4 Mta-heuristiques
Inconvnient principal des algorithmes de descente : sarrte, le plus souvent, dans un optimum local et non
dans un optimum global.
Ide gnrale des mta-heuristiques : autoriser une dtrioration temporaire de lobjectif, permettant ainsi de
quitter des minimums locaux tout en maintenant en gnral une pression favorisant les solutions qui am-
liorent l objectif.
Caractristiques des mta-heuristiques
plus simples et plus rapides mettre en oeuvre quand lexigence de qualit de la solution nest pas trop impor-
tante ;
plus souples dans les problmes rels (contraintes non formules ds le dpart) ;
sadaptent plus facilement des contraintes additionnelles venant du terrain ;
fournissent des solutions et des bornes qui peuvent tre utiles dans des mthodes exactes.
Le recuit simul (simulated annealing)
Ide de base provient de lopration de recuit (annealing), courante en sidrurgie et dans lindustrie du verre.
Recuit en sidrurgie
Aprs avoir fait subir des dformations au mtal, on rchauffe celui-ci une certaine temprature, de manire
faire disparatre les tensions internes causes par les dformations, puis on laisse refroidir lentement.
Lnergie fournie par le rchauffement permet aux atomes de se dplacer lgrement et le refroidissement lent ge
peu peu le systme dans une structure dnergie minimale.
Application du recuit simul loptimisation
Modication de lheuristique de descente :
au lieu de ne permettre que des mouvements (des changements de solution courante) qui diminuent lnergie
(la fonction objectif), on autorise des augmentations, mme importantes, de lnergie au dbut de lexcution
de lalgorithme ;
puis, mesure que le temps passe, on autorise ces augmentations de plus en plus rarement (la temprature
baisse).
Finalement, le systme gle dans un tat dnergie minimale.
Recuit simul
Initialisation : x
0
X solution initiale,

F := F(x
0
).
Etape n : soit x
n
X la solution courante ;
tirer au sort une solution x

V (x
n
) ;
si F(x

) F(x
n
) : x
n+1
:= x

;
si F(x

) <

F :

F := F(x

)
sinon, tirer un nombre q au hasard entre O et 1 ;
si q p : x
n+1
:= x

;
sinon : x
n+1
:= x
n
;
si la rgle darrt nest pas satisfaite,
passer ltape n + 1 ;
sinon, stop.
Paramtres du recuit simul
La probabilit p est gnralement une fonction p(T, F) dpendant dun paramtre T (temprature), et de la
dgradation de lobjectif F = F(x

) F(x
n
) rsultant du remplacement de x
n
par x

comme solution
courante.
Analogie avec les systmes physiques (distribution de Boltzmann) :
p(T, F) = e

F
T
Evolution de la temprature : diminue toutes les L itrations.
T
k
= T
k1
=
k
T
0
.
50
T
0
choisi par simulation de sorte quau dbut de lexcution de lalgorithme, des solutions moins bonnes que
la solution courante soient aisment acceptes. En gnral, on xe un taux dacceptation initial moyen des
solutions plus mauvaises que la solution courante.
Exemple : taux x 50%, valuer par simulation la dtrioration moyenne < F > de F (en partant dune
solution initiale xe).
T
O
=
< F >
ln 2
(p = 0.5)
La longueur L du palier de temprature doit tre dtermine en tenant compte de la taille des voisinages ; elle
devrait augmenter avec la taille du problme.
En pratique, la dtermination de L est exprimentale.
Le paramtre de dcroissance gomtrique de la temprature est x, le plus souvent, aux alentours de 0.9 ou
0.95.
Critre darrt : nombre maximal ditrations ou systme est gel : e.g. si la fonction F a diminu de moins
de 0.1 % pendant cent paliers conscutifs.
Quelques observations sur le recuit simul
Voyageur de commerce : pas concurrentiel par rapport dautres approches.
En gnral : amliore les solutions dune descente pure, mais trs coteux en temps calcul.
Rsultat thorique : sous certaines conditions, converge avec probabilit 1 vers une solution optimale.
Rsultat asymptotique (nombre ditrations tendant linni), peu de pertinence en pratique.
Recherche tabou
Emprunte certains de ses concepts lintelligence articielle (notion et utilisation de mmoire).
Variante de la recherche locale.
Partant de la solution courante x
n
ltape n, on calcule la meilleure solution x

dans un sous-voisinage V

de
V (x
n
). Cette solution devient la nouvelle solution courante x
n+1
, quelle soit meilleure ou moins bonne que la
prcdente.
Caractre non monotone pour viter de rester coinc dans des minimums locaux.
MAIS ncessit dun mcanisme qui vite le cyclage.
Listes tabou
Pour viter le cyclage, on dnit une ou plusieurs listes, les listes tabou, qui gardent en mmoire les dernires
solutions rencontres ou des caractristiques de celles-ci.
Le sous-voisinage V

de V (x
n
) exclut ds lors les solutions rencontres rcemment ou les solutions ayant des
caractristiques communes avec celles-ci.
Exemple 36 (Voyageur de commerce).
Villes : A, B, C, D, E
Voisinage : 2-change (change de deux villes dans lordre des visites)
Liste tabou : positions changes dans le cycle.
Solutions visites :
x
n
= (A, B, C, D, E)
x
n+1
= (A, D, C, B, E) ((2, 4) devient tabou)
x
n+2
= (B, D, C, A, E) ((1, 4) devient tabou)
x
n+3
= (B, C, D, A, E) ((2, 3) devient tabou)
x
n+4
= (B, C, D, E, A) ((4, 5) devient tabou)
x
n+4
x
n
mais OK si x
n+5
peut tre ,= x
n+1
.
Si la liste est de longueur 4, les solutions
(B, E, D, C, A), (E, C, D, B, A), (B, D, C, E, A), (B, C, D, A, E)
sont exclues pour x
n+5
.
51
Critres daspiration
Puisque les listes tabou cartent des solutions non rencontres, on peut envisager de ngliger le statut tabou de
certaines solutions si un avantage sufsant en rsulte.
Ceci est implment laide de critres daspiration. Par exemple, on acceptera pour x
n+1
une solution x

tabou
si x

donne la fonction objectif F une valeur meilleure que toutes celles obtenues jusqu prsent.
Recherche tabou
Initialisation : x
0
X solution initiale,

F := F(x
0
), k = longueur de la liste tabou..
Etape n : soit x
n
X la solution courante ;
slectionner, dans un sous-voisinage V

de V (x
n
), la meilleure solution x

qui soit :
non tabou ou
tabou, mais satisfaisant un critre daspiration ;
x
n+1
:= x

;
si F(x

) <

F :

F := F(x

)
mettre jour la liste tabou ;
si la rgle darrt nest pas satisfaite,
passer ltape n + 1 ;
sinon, stop.
Stratgies avances de la recherche tabou
Succession de phases dintensication et de phases de diversication de la recherche.
Pnalits ou bonications introduites dans la fonction objectif pour favoriser ou dfavoriser certains types de
solutions.
Adaptation de lensemble des solutions candidates V

.
Oscillation stratgique.
10.5 Algorithmes gntiques
Conus par Holland (1975) comme un modle de systme adaptatif complexe capable de simuler, notamment,
lvolution des espces.
Presque immdiatement aprs, appliqus loptimisation de fonctions de variables relles. Par la suite, de trs
nombreux problmes doptimisation combinatoire ont t traits.
Se distinguent du recuit et de la recherche tabou par le fait quils traitent et font voluer une population de
solutions.
Au cours dune itration, les solutions de la population courante interagissent pour fournir la gnration suivante
(mtaphore de la reproduction sexue).
Description dun algorithme gntique de base
Les solutions sont codes de manire approprie. Un codage lmentaire pour un problme de programmation
mathmatique en variables binaires est un vecteur x de 0 et de 1, o chaque composante x
j
, j = 1, . . . , N
reprsente la valeur prise par une variable.
Pour le problme du voyageur de commerce, un codage plus usuel sera une liste ordonne des noms (ou labels)
des N villes.
Un vecteur codant une solution est souvent appel chromosome et ses coordonnes ou sites sont appels gnes.
Le choix dun codage appropri est trs important pour lefcacit des oprateurs qui seront appliqus pour
faire voluer les solutions.
Population initiale de solutions X
(0)
(taille constante au cours de lvolution).
Fonction dvaluation des solutions : en gnral, croissante avec la qualit de la solution (tness function,
mesurant la sant de lindividu solution).
Dans un problme de maximisation (respectivement, de minimisation), ce peut tre la fonction objectif (respec-
tivement, loppos de la fonction objectif).
Pour des raisons defcacit de lalgorithme, on peut tre amen choisir la fonction dvaluation de manire
plus sophistique, mais elle sera toujours croissante (respectivement, dcroissante) en la valeur de lobjectif
dans un problme de maximisation (respectivement, de minimisation).
52
Algorithme gntique
Initialisation : X
(0)
X, population initiale.
Etape n : X
(n)
X, population courante ;
slectionner dans X
(n)
un ensemble de paires de solutions de haute qualit ;
appliquer chacune des paires de solutions slectionnes un oprateur de croisement qui produit une ou
plusieurs solutions enfants ;
remplacer une partie de X
(n)
forme de solutions de basse qualit par des solutions enfants de haute
qualit ;
appliquer un oprateur de mutation aux solutions ainsi obtenues ; les solutions ventuellement mutes
constituent la population X
(n+1)
;
si la rgle darrt nest pas satisfaite,
passer ltape n + 1 ;
sinon, stop.
Slection
La slection - aussi bien celle des individus de haute qualit que celle des individus de basse qualit -
comporte gnralement un aspect alatoire.
Chaque individu x
i
se voit attribuer une probabilit p
i
dtre choisi dautant plus grande que son valuation est
haute (basse, dans le cas dune slection de mauvais individus).
On tire un nombre r au hasard (uniformment) entre 0 et 1. Lindividu k est choisi tel que :
k1

i=1
p
i
< r
k

i=1
p
i
La procdure est itre jusqu ce que lon ait choisi un nombre x dindividus.
Croisement
Soit deux solutions x et y slectionnes parmi les solutions de haute qualit. Un oprateur de croisement (crossover)
fabrique une ou deux nouvelles solutions x

, y

en combinant x et y.
Exemple 37 (Two-point crossover).
x et y vecteurs 0-1 ;
slectionner alatoirement deux positions dans les vecteurs et permuter les squences de 0 et de l gurant entre
ces deux positions dans les deux vecteurs.
Pour les vecteurs :
x = 0 1 1 0 1 1 0 0
y = 1 1 0 0 1 0 1 O
si les positions aprs 2 et aprs 5 sont choisies, on obtient :
x

= 0 1 0 0 1 1 0 0
y

= 1 1 1 0 1 0 1 O
Mutation
Une mutation est une perturbation introduite pour modier une solution individuelle, par exemple la transfor-
mation dun 0 en un 1 ou inversment dans un vecteur binaire.
En gnral, loprateur de mutation est appliqu parcimonieusement : on dcide de muter une solution avec
une probabilit assez faible (de lordre de quelques centimes, tout au plus).
Un but possible de la mutation est dintroduire un lment de diversication, dinnovation comme dans la
thorie darwinienne de lvolution des espces.
Remarques nales
La recherche tabou peut tre trs efcace, mais implmentation et ajustement des paramtres difciles, forts
dpendants de la structure du problme.
Les algorithmes gntiques sont efcaces si la structure du problme est bien exploite.
Mthodes hybrides trs efcaces (exemple : recherche locale utilise comme oprateur de mutation).
53