Recherche opérationnelle et applications
Bernard Fortz
2012-2013
Table des matiĂšres
I Introduction à la recherche opérationnelle 3
1 Quelques exemples de modÚles mathématiques 3
2 Tour dâhorizon des techniques de recherche opĂ©rationnelle 4
II Applications de la programmation linéaire 6
3 DĂ©finition, exemples et mĂ©thode de rĂ©solution 63.1 Notions de bases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63.2 Exemples de modĂšles linĂ©aires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63.3 Forme standard et forme canonique dâun programme linĂ©aire . . . . . . . . . . . . . . . . . . . . 83.4 RĂ©solution de programmes linĂ©aires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.4.1 Résolution graphique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103.4.2 La méthode du simplexe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123.4.3 La méthode des deux phases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.4.4 Cas particuliers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4 Dualité 194.1 Le problÚme dual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194.2 Relations primal/dual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204.3 Interprétation économique de la dualité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
5 Solveurs et langages de modélisation 23
III Programmation en nombres entiers et optimisation combinatoire 27
6 DĂ©finitions et exemples 27
7 Complexité des problÚmes et efficacité des algorithmes 30
8 ProblĂšmes polynomiaux 318.1 Le problĂšme dâaffectation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318.2 ModĂšle de transport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
9 MĂ©thodes de Branch-and-Bound 399.1 Branch-and-Bound pour les problĂšmes en nombres entiers . . . . . . . . . . . . . . . . . . . . . 399.2 Branch-and-bound pour le voyageur de commerce . . . . . . . . . . . . . . . . . . . . . . . . . . 419.3 Branch-and-bound pour les contraintes disjonctives . . . . . . . . . . . . . . . . . . . . . . . . . 42
1
10 Méthodes heuristiques 4710.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4710.2 Heuristiques de construction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4710.3 Recherche locale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4910.4 Méta-heuristiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5010.5 Algorithmes génétiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
RĂ©fĂ©rencesâ Hamdy A. Taha, Operations Research, an introduction, Prentice-Hallâ Marc Pirlot, MĂ©taheuristiques pour lâoptimisation combinatoire : un aperçu gĂ©nĂ©ral, Chapitre 1, dans âOpti-
misation approchĂ©e en recherche opĂ©rationnelleâ, sous la direction de Jacques Teghem et Marc Pirlot, HermesScience.
2
PremiĂšre partie
Introduction Ă la recherche opĂ©rationnelle1 Quelques exemples de modĂšles mathĂ©matiquesUn premier problĂšmeExemple 1 (Achat de billets dâavion).â Un homme dâaffaires 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.â RĂ©duction de 20 % si un weekend est inclus.â Aller simple : 75 % du prix aller-retour.
QuestionComment acheter les billets pour les 5 semaines (Ă prix minimum) ?
Aide à la décision
ProblĂšme dâaide Ă la dĂ©cision
1. Quelles sont les alternatives possibles ?
2. Quelles sont les restrictions à cette décision ?
3. Quel est lâobjectif utilisĂ© pour Ă©valuer les alternatives ?
RestrictionsFYV-DEN le lundi et DEN-FYV le mercredi de la mĂȘme 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 premiĂšre semaine et le mercredi de la derniĂšre semaine, et 4
DEN-FYV-DEN comprenant un weekend pour les autres voyages. 5 x 0.8 x 400 =1600
La troisiĂšme alternative est la meilleure.
ModÚle de recherche opérationnelle
IngrĂ©dients principauxâ Alternatives (variables, inconnues du problĂšme).â Restrictions (contraintes).â Fonction objectif Ă optimiser (minimiser ou maximiser).
Définition 1 (Solution admissible). Une solution admissible est un ensemble de valeurs données aux variables quisatisfait toutes les contraintes.
DĂ©finition 2 (Solution optimale). Une solution optimale est une solution admissible qui optimise la fonctionobjectif.
Définition 3 (ModÚle de recherche opérationnelle). Maximiser ou minimiser (fonction objectif) Sujet à { contraintes}
Variables : continues (réelles), entiÚres, booléennes (0/1), . . .
Objectif : linéaire / non-linéaire, concave / convexe, . . .
3
Contraintes : linéaire / non-linéaire, concave / convexe, égalités / inégalités, . . .
ParamÚtres : connus avec certitude (modÚles déterministes) / incertains (modÚles stochastiques)
Exemple 2 (Maximisation de la surface dâun rectangle). Supposons que lâon veut plier un fil de fer de longueur Len rectangle de maniĂšre Ă maximiser la surface du rectangle.
l
w
Formulationmax A = lws.t. l + w = L
2
Solutionâ A =
(L2 â w
)w = Lw
2 â w2
â dAdw = L
2 â 2w = 0
â Solution optimale : w = l = L4
MĂ©thodes de rĂ©solutionâ Dans lâexemple, solution analytique au problĂšme.â La plupart des problĂšmes pratiques sont trop grands ou trop complexes pour ĂȘtre rĂ©solus analytiquement.
MĂ©thodes itĂ©rativesDĂ©placement de solution en solution pour atteindre lâoptimum (mĂ©thodes exactes) ou une "bonne" solution(heuristiques).
â Importance des algorithmes et des solutions informatiques.
2 Tour dâhorizon des techniques de recherche opĂ©rationnelleRecherche opĂ©rationnelleLa recherche opĂ©rationnelle est une technique dâaide Ă la dĂ©cision.
Etapes pratiques1. DĂ©finition du problĂšme
2. Construction dâun modĂšle
3. Solution du modĂšle
4. Validation du modĂšle
5. Implémentation de la solution
MĂ©thodologieâ Les Ă©tapes les plus importantes sont la dĂ©finition du problĂšme (suppose un dialogue avec le dĂ©cideur) et la
construction du modĂšle (prendre conscience des hypothĂšses simplificatrices et de leur impact).â La phase de validation doit permettre de remettre en cause la validitĂ© du modĂšle.â Une approche globale nĂ©cessite donc un aller-retour constant entre le modĂšle et les attentes du dĂ©cideur.
Techniques principalesâ Programmation linĂ©aireâ Programmation en nombres entiersâ Optimisation dans les rĂ©seaux
4
â Programmation non linĂ©aireâ "Optimisation" multi-critĂšresâ Programmation dynamiqueâ ModĂšles stochastiquesâ Simulation
5
DeuxiĂšme partie
Applications de la programmation linéaire3 Définition, exemples et méthode de résolution
3.1 Notions de basesProgrammation linéaireDéfinition 4 (Programme linéaire). ModÚle mathématique dans lequel la fonction objectif et les contraintes sontlinéaires en les variables.
ApplicationsOptimisation de lâusage de ressources limitĂ©es dans les domaines militaire, industriel, agricole, Ă©conomique, ...
Existence dâalgorithmes trĂšs efficaces pour rĂ©soudre des problĂšmes de trĂšs grande taille (simplexe, points intĂ©-rieurs)
3.2 Exemples de modĂšles linĂ©airesExemple 3 (Production de peinture). Une sociĂ©tĂ© produit de la peinture dâintĂ©rieur et dâextĂ©rieur Ă partir de deuxproduits de base M1 et M2.
DonnéesQuantité utilisée
par tonneQuantité disponible
par jourExtérieure Intérieure
M1 6 4 24M2 1 2 6Profit par tonne 5 4
Contraintes supplĂ©mentairesâ Demande maximum en peinture dâintĂ©rieur : 2 tonnes / jour.â La production en peinture dâintĂ©rieur ne dĂ©passer que dâune tonne celle dâextĂ©rieur.
Formulation (Production de peinture)
Alternatives (variables, inconnues du problĂšme)
x1 = tonnes de peinture dâextĂ©rieur
produites par jour
x2 = tonnes de peinture
dâintĂ©rieur produites par jour
Fonction objectif Ă optimisermax z = 5x1 + 4x2
Restrictions (contraintes)
6
6x1 + 4x2 †24
x1 + 2x2 †6
x2 †2
x2 â x1 †1
x1, x2 â„ 0
Solutions et mĂ©thodes de rĂ©solutionâ Solution admissible : satisfait toutes les contraintes.
x1 = 3, x2 = 1 (â z = 19)
â Nous voulons trouver la solution (admissible) optimale.â InfinitĂ© de solutions admissibles !
MĂ©thodes pour trouver lâoptimumâ MĂ©thode graphiqueâ Simplexeâ ( Ellipsoide, points intĂ©rieurs )
Exemple 4 (Diet problem). â On dĂ©sire dĂ©terminer la composition, Ă coĂ»t minimal, dâun aliment pour bĂ©tail quiest obtenu en mĂ©langeant au plus trois produits bruts : orge et arachide.
â La quantitĂ© nĂ©cessaire par portion est de 400g.â Lâaliment ainsi fabriquĂ© devra comporter au moins 30% de protĂ©ines et au plus 5% de fibres.
Données
QuantitĂ© par gramme dâaliment CoĂ»tAliment ProtĂ©ines Fibres (EUR / kg)Orge 0.09 0.02 1.5Arachide 0.60 0.06 4.5
Formulation (Diet problem)
Variables
x1 = grammes dâorge par portion
x2 = grammes dâarachide par portion
Objectifmin z = 0.0015x1 + 0.0045x2
ContraintesQuantité totale : x1 + x2 ℠400
Protéines : 0.09x1 + 0.6x2 ℠0.3(x1 + x2)
Fibres : 0.02x1 + 0.06x2 †0.05(x1 + x2)
Non-négativité : x1, x2 ℠0
7
3.3 Forme standard et forme canonique dâun programme linĂ©aireForme standardDĂ©finition 5 (Forme standard). Un programme linĂ©aire est sous forme standard lorsque toutes ses contraintes sontdes Ă©galitĂ©s et toutes ses variables sont non-nĂ©gatives.
Représentation matricielle
max cTx
s.c. Ax = b
x â„ 0
n variables, m contraintes, m < n, c, x â Rn, b â Rm, A â RmĂn.
Forme canoniqueDéfinition 6 (Forme canonique). Un programme linéaire est sous forme canonique lorsque toutes ses contraintessont des inégalités et toutes ses variables sont non-négatives.
Représentation matricielle
max cTx
s.t. Ax †bx ℠0
n variables, m contraintes, c, x â Rn, b â Rm, A â RmĂn.
ThĂ©orĂšme 1 (Equivalence des formes standard et canonique). Tout programme linĂ©aire peut sâĂ©crire sous formestandard et sous forme canonique.
DĂ©monstration.â Une containte dâinĂ©galitĂ© aTx †b peut ĂȘtre transformĂ©e en Ă©galitĂ© par lâintroduction dâune variable dâĂ©cart :
aTx+ s = b,
s â„ 0.
â Une contrainte dâĂ©galitĂ© aTx = b peut ĂȘtre remplacĂ©e par deux inĂ©galitĂ©s :
aTx †bâaTx †âb
â aTx â„ bâ âaTx †âb.â min cTx = âmaxâcTx.â Variable x non restreinte : substitution par deux variables (partie positive et nĂ©gative)
x = x+ â xâ
x+, xâ â„ 0.
Il existe toujours une solution optimale telle que x+ = 0 ou xâ = 0.
8
Forme standard du problĂšme de production de peinture
max z = 5x1 + 4x2
s.c.6x1 + 4x2 †24
x1 + 2x2 †6
x2 †2
x2 â x1 †1
x1, x2 â„ 0
Forme standardmax z = 5x1 +4x2
s.c. 6x1 +4x2 +s1 = 24x1 +2x2 +s2 = 6
x2 +s3 = 2âx1 +x2 +s4 = 1x1, x2, s1, s2, s3, s4 â„ 0
Forme matricielle
max cTx
s.t. Ax = b
x â„ 0
c =
540000
, x =
x1x2s1s2s3s4
, A =
6 4 1 0 0 01 2 0 1 0 00 1 0 0 1 0â1 1 0 0 0 1
, b =
24621
Variables pouvant prendre des valeurs nĂ©gativesExemple 5 (Vente de hamburgers).â Un fast-food vend des hamburgers et des cheeseburgers. Un hamburger utilise 125 g. de viande alors quâun
cheeseburger nâen utilise que 100 g.â Le fast-food dĂ©marre chaque journĂ©e avec 10 kg de viande mais peut commander de la viande supplĂ©mentaire
avec un coĂ»t additionnel de 2 EUR par kg pour la livraison.â Le profit est de 0.02 EUR pour un hamburger et 0.015 EUR pour un cheeseburger.â La demande ne dĂ©passe pas 900 sandwiches / jour, et les surplus de viande sont donnĂ©s au Restos du Coeur.
Combien le fast-food doit-il produire de sandwiches de chaque type par jour ?
Variablesx1 = nombre de hamburgers / jour x2 = nombre de cheeseburgers / jour
Contraintesâ Commande de viande supplĂ©mentaire :
125x1 + 100x2 + x3 = 10000, x3non restreint
â Le coĂ»t pour la viande supplĂ©mentaire apparaĂźt seulement si x3 < 0.
9
â Substitution de x3 par 2 variables non-nĂ©gatives :
x3 = x+3 â xâ3 , x
+3 , x
â3 â„ 0
125x1 + 100x2 + x+3 â xâ3 = 10000
â Borne supĂ©rieure sur les ventes : x1 + x2 †900.
ModĂšle complet
max z = 0.02x1 + 0.015x2 â 0.002xâ3s.c. 125x1 + 100x2 + x+3 â x
â3 = 10000
x1 + x2 †900
x1, x2, x+3 , x
â3 â„ 0
Remarque : Il existe une solution optimale telle que x+3 = 0 ou xâ3 = 0.
3.4 Résolution de programmes linéaires3.4.1 Résolution graphique
Représentation graphique
(5)
(1)
(2)
(6)
(4)
(3)
Production de peinturemax z = 5x1 + 4x2
sous les contraintes :
6x1 + 4x2 †24 (1)x1 + 2x2 †6 (2)
x2 †2 (3)x2 â x1 †1 (4)
x1 â„ 0 (5)x2 â„ 0 (6)
10
Géométrie des solutions
A
B
C DE
Fz=10
Ensemble des solutions admissiblesPolyĂšdre (ABCDEF)
Courbes de niveaux de lâobjectifEnsemble de solutions ayant un profit (valeur de lâobjectif) donnĂ© : intersection entre une droite et le polyĂšdre.
AmĂ©lioration de la solutionRecherche dâune direction dans laquelle le profit z augmente.
RĂ©solution graphique (Production de peinture)
A
B
C DE
F
z=21
Recherche de la solution optimaleâ La droite mobile doit garder une intersection avec lâensemble des solutions admissibles.â Solution optimale : x1 = 3, x2 = 1.5 (E)â La solution optimale est un sommet du polyĂšdre.â Cette observation est la base de lâalgorithme du simplexe.
11
RĂ©solution graphique (Diet problem)
Diet problem
min z = 0.0015x1 + 0.0045x2
sous les contraintes
x1 + x2 â„ 400
0.21x1 â 0.30x2 †0
0.03x1 â 0.01x2 â„ 0
x1 â„ 0
x2 â„ 0
Solution optimale
x1 =4000
17' 235.3 x2 =
2800
17' 164.7 z =
186
170' 1.094
3.4.2 La méthode du simplexe
IdĂ©es de baseâ Solution optimale : sommet (point extrĂȘme).â IdĂ©e fondamentale du simplexe : dĂ©placement de sommet en sommet adjacent de maniĂšre Ă amĂ©liorer la fonction
objectif.â Transformation des inĂ©galitĂ©s en Ă©galitĂ©s : forme standard du programme linĂ©aire - systĂšme de m Ă©quations Ă n inconnues (m < n).
â Identification algĂ©brique des sommets : correspondance avec les bases dâun systĂšme dâĂ©quations.
Solutions de baseâ SystĂšme de m Ă©quations linĂ©aires Ă n inconnues (m < n) : infinitĂ© de solutions.â Si on fixe Ă zĂ©ro nâm variables : systĂšme de m Ă©quations Ă m inconnues possĂ©dant une solution unique (si la
matrice est inversible). Câest une solution de base.
DĂ©finition 7 (Solution de base). Une solution de base dâun programme linĂ©aire est la solution unique du systĂšmede m Ă©quations Ă m inconnues obtenu en fixant Ă zĂ©ro n âm variables (pourvu que la matrice du systĂšme soitinversible).Les variables fixĂ©es Ă zĂ©ro sont appelĂ©es variables hors base et les autres variables en base.
12
Exemple 6 (Production de peinture). Prenons B = {s1, s2, s3, s4}.
z = 0 +5x1 +4x2s1 = 24 â6x1 â4x2s2 = 6 âx1 â2x2s3 = 2 âx2s4 = 1 +x1 âx2
Si x1 = x2 = 0, alors s1 = 24, s2 = 6, s3 = 2, s4 = 1. Toutes ces valeurs sont non-négatives et la solution estréalisable.
Définition 8 (Solution de base réalisable). Une solution de base telle que toutes les variables prennent des valeursnon-négatives est appelée solution de base réalisable.
Géométrie des solutions de base
A
B
C DE
F
â Prenons B = {s1, s2, s3, s4} â x1 = x2 = 0, s1 = 24, s2 = 6, s3 = 2, s4 = 1.â Cette solution de base rĂ©alisable correspond au sommet (0, 0).
Base Solution Objectif Sommet{s1, s2, s3, s4} (0, 0) 0 A{x1, s2, s3, s4} (4, 0) 20 F{s1, x1, s3, s4} (6, 0) â Non rĂ©alisable{x1, x2, s3, s4} (3, 1.5) 21 E
ThéorÚme 2. Toute solution de base réalisable correspond à un sommet du polyÚdre.
DĂ©termination de la solution de base optimaleâ Nombre maximum de solutions de base : n!
m!(nâm)!â Algorithme "bĂȘte et mĂ©chant" : Ă©numĂ©ration de toutes les bases.â MĂ©thode du simplexe : partir dâune solution de base admissible et passer Ă une solution de base voisine qui
amĂ©liore la valeur de lâobjectif.â Solution voisine : changement dâune variable en base.â 3 etapes :
1. DĂ©termination de la variable entrante.
2. DĂ©termination de la variable sortante.
3. Pivotage.
Lâalgorithme du simplexe
Variable entrante
z = 0 +5x1 +4x2s1 = 24 â6x1 â4x2s2 = 6 âx1 â2x2s3 = 2 âx2s4 = 1 +x1 âx2
â Si x1 (ou x2) augmente (entre en base), la valeur de la fonction objectif z augmente.â Quelle est la valeur maximale de x1 ?
13
â Contraintes : les autres variables doivent rester positives.
Variable sortantes1 = 24 â6x1 â„ 0 â x1 †4s2 = 6 âx1 â„ 0 â x1 †6s3 = 2 â„ 0 â 2 â„ 0 toujours!s4 = 1 +x1 â„ 0 â x1 â„ â1 toujours!
â x1 †4
Pivotageâ Si x1 = 4, alors s1 = 0.â x1 entre en base, s1 sort de la base.â Substitution :
x1 = 4â 1
6s1 â
2
3x2
â Nouveau systĂšme :z = 20 â 5
6s1 + 23x2
x1 = 4 â 16s1 â 2
3x2
s2 = 2 + 16s1 â 4
3x2
s3 = 2 âx2s4 = 5 â 1
6s1 â 53x2
Equations du simplexeâ B = indices des variables en base, N = indices des variables hors base.â Notation :
z = z +âkâN
ckxk
xl = bl ââkâN
alkxk l â B
â ck : profit marginal ou coĂ»t rĂ©duit.
RĂšgles de pivotage
Variable entranteChoisir la variable k hors base avec le profit marginal maximum (max z) ou le coût réduit minimum (min z).
max z â k = arg maxiâN
ci
min z â k = arg miniâN
ci
Si ck †0 (max) ou ck â„ 0 (min) pour tout k â N , solution optimale, STOP.
z = 0 +5x1 +4x2s1 = 24 â6x1 â4x2s2 = 6 âx1 â2x2s3 = 2 âx2s4 = 1 +x1 âx2
Variable sortanteChoisir la variable l en base telle que
l = arg minjâB:ajk>0
bjajk
Si alk †0 pour tout l â B, problĂšme non bornĂ©, STOP.
14
z = 0 +5x1 +4x2s1 = 24 â6x1 â4x2s2 = 6 âx1 â2x2s3 = 2 âx2s4 = 1 +x1 âx2
Pivotage
aijâČ =
aljalk
i = l
aij âaikaljalk
i 6= l
biâČ
=
blalk
i = l
bi âaikblalk
i 6= l
z = 0 +5x1 +4x2
s1 = 24 â6x1 â4x2
s2 = 6 âx1 â2x2
s3 = 2 âx2s4 = 1 +x1 âx2
z = 20 â 56s1 + 2
3x2
x1 = 4 â 16s1 â
23x2
s2 = 2 + 16s1 â
4
3x2
s3 = 2 âx2s4 = 5 â 1
6s1 â53x2
z = 21 â 34s1 â
12s2
x1 = 3 â 14s1 + 1
2s2
x2 = 32 + 1
8s1 â34s2
s3 = 12 â
18s1 + 3
4s2
s4 = 52 â
38s1 + 5
4s2
15
PrĂ©sentation en tableauPrĂ©sentation compacte pour effectuer les calculs sans rĂ©pĂ©ter les systĂšmes dâĂ©quations.
Itération 1
Var. en base z x1 x2 s1 s2 s3 s4 Solutionz â1 5 4 0 0 0 0 0
s1 0 6 4 1 0 0 0 24
s2 0 1 2 0 1 0 0 6
s3 0 0 1 0 0 1 0 2
s4 0 â1 1 0 0 0 1 1
Itération 2
Var. en base z x1 x2 s1 s2 s3 s4 Solutionz â1 0 2
3 â 56 0 0 0 â20
x1 0 1 23
16 0 0 0 4
s2 0 0 43 â 1
6 1 0 0 2
s3 0 0 1 0 0 1 0 2
s4 0 0 53
16 0 0 1 5
Itération 3
Var. en base z x1 x2 s1 s2 s3 s4 Solutionz â1 0 0 â 3
4 â 12 0 0 â21
x1 0 1 0 14 â 1
2 0 0 3
x2 0 0 1 â 18
34 0 0 3
2
s3 0 0 0 18 â 3
4 1 0 12
s4 0 0 0 38 â 5
4 0 1 52
3.4.3 La méthode des deux phases
Solution initiale artificielleâ Une solution de base admissible nâest pas toujours connue a priori.â Certains problĂšmes nâadmettent pas de solution admissible, donc il est impossible de trouver une base de dĂ©part.â La mĂ©thode des deux phases va permettre de dĂ©terminer une base admissible ou prouver que le problĂšme est
impossible.
Exemple 7 (MĂ©thode des 2 phases).
min z = 4x1 +x2s.c. 3x1 +x2 = 3
4x1 +3x2 ℠6x1 +2x2 †4x1, x2 ℠0
Introduction des variables dâĂ©cartmin z = 4x1 +x2s.c. 3x1 +x2 = 3
4x1 +3x2 âx3 = 6x1 +2x2 +x4 = 4x1, x2, x3, x4 â„ 0
16
â Pas de base admissible "triviale".â On voudrait voir apparaĂźtre une matrice identitĂ©.â Introduction de variables artificielles.
Introduction des variables artificiellesmin z = 4x1 +x2min r = R1 +R2
min r = â7x1 â4x2 +x3 +9s.c. 3x1 +x2 +R1 = 3
4x1 +3x2 âx3 +R2 = 6x1 +2x2 +x4 = 4x1, x2, x3, R1, R2, x4 â„ 0
â R1, R2 et x4 peuvent ĂȘtre utilisĂ©es comme base de dĂ©part admissible.â Base pour le systĂšme de dĂ©part si R1 = R2 = 0 (hors base).â RĂ©Ă©crire lâobjectif en fonction des variables hors base !
3.4.4 Cas particuliers
Solutions optimales multiplesâ Si la fonction objectif est parallĂšle Ă une contrainte active pour la solution optimale, la mĂȘme valeur de lâobjectif
peut ĂȘtre prise par plusieurs solutions admissibles.â Il y a une infinitĂ© de solutions optimales dans ce cas (toutes les combinaisons convexes de sommets optimaux).â Cela se traduit par un profit marginal nul pour une ou plusieurs variables hors base.
Exemple 8 (Solutions optimales multiples).
max z = 2x1 +4x2s.c. x1 +2x2 †5
x1 +x2 †4x1, x2 ℠0
Var. en base z x1 x2 s1 s2 Solution
z â1 2 4 0 0 0
s1 0 1 2 1 0 5
s2 0 1 1 0 1 4
z â1 0 0 â2 0 â10
x2 0 12 1 1
2 0 52
s2 0 12 0 â 1
2 1 32
z â1 0 0 â2 0 â10
x2 0 0 1 1 â1 1
x1 0 1 0 â1 2 3
Solution optimale :
x1 = 0α+ 3(1â α) = 3â 3α
x2 = 52α+ 1(1â α) = 1 +
3
2α (0 †α †1)
ProblĂšmes non bornĂ©sâ Certains problĂšmes sont non bornĂ©s dans une direction donnĂ©e.â Si cette direction est une direction dâamĂ©lioration de la fonction objectif, celle-ci peut prendre une valeur arbi-
trairement grande !
17
Exemple 9 (ProblÚmes non bornés).
max z = 2x1 +x2s.c. x1 âx2 †1
2x1 †4x1, x2 ℠0
Var. en base z x1 x2 s1 s2 Solution
z â1 2 1 0 0 0
s1 0 1 â1 1 0 1
s2 0 2 0 0 1 4
â Tous les coefficients (sauf le profit maginal) dans la colonne de x2 sont nĂ©gatifs ou nuls.â Cela signifie que toutes les contraintes de non-nĂ©gativitĂ© sont satisfaites quelle que soit la valeur de x2.â Lâobjectif peut donc augmenter indĂ©finiment.
ProblĂšmes impossiblesâ Le systĂšme de contraintes peut nâavoir aucune solution.â GĂ©nĂ©ralement, provient dâune mauvaise formulation du problĂšme.
Exemple 10 (ProblĂšmes impossibles).
max z = 3x1 +2x2s.c. 2x1 +x2 †2
3x1 +4x2 â„ 12x1, x2 â„ 0
18
4 Dualité
4.1 Le problĂšme dualProblĂšme primal et problĂšme dual
ProblĂšme primal
max cTx
s.c. Ax = b
x â„ 0
n variables, m contraintes, m < n, c, x â Rn, b â Rm, A â RmĂn.
ProblĂšme dual
min bT y
s.c. AT y â„ c(y non restreint)
m variables, n contraintes, m < n, c â Rn, b, y â Rm, A â RmĂn.
Exemple 11 (ProblĂšme primal et dual - forme standard).
ProblĂšme primal :max z = x1 +x2
s.c. 2x1 +x2 = 5 (y1)3x1 âx2 = 6 (y2)x1, x2 â„ 0
ProblĂšme dual :min w = 5y1 +6y2
s.c 2y1 +3y2 â„ 1 (x1)y1 ây2 â„ 1 (x2)
Propriétés et rÚgles de construction du dualThéorÚme 3. Le problÚme dual du problÚme dual est le problÚme primal.
RĂšgles de construction
ProblÚme max ProblÚme minContrainte Variable†℠0= non restreinte
Variable Contrainteâ„ 0 â„
non restreinte =
Exemple 12 (ProblÚme primal et dual - forme générale).
ProblĂšme primal :max z = 5x1 +12x2 +4x3
s.c. x1 +2x2 +x3 †10 (y1)2x1 âx2 +3x3 = 8 (y2)x1, x2, x3 â„ 0
19
ProblĂšme dual :min w = 10y1 +8y2
s.c y1 +2y2 â„ 5 (x1)2y1 ây2 â„ 12 (x2)y1 +3y2 â„ 4 (x3)y1 â„ 0
4.2 Relations primal/dualThéorÚme 4 (Dualité faible). Considérons la paire primale-duale :
max cTx
s.c. Ax = b
x â„ 0
min bT y
s.c. AT y â„ c
â Si x est une solution admissible du primal et y une solution admissible du dual, alors
cTx †bT y
â Sâil y a Ă©galitĂ©, alors x est une solution optimale du primal et y une solution optimale du dual.
ThéorÚme 5 (Dualité forte). Considérons la paire primale-duale :
max cTx
s.c. Ax = b
x â„ 0
min bT y
s.c. AT y â„ c
â Si le primal et le dual admettent tous les deux une solution admissible, ils ont tous deux une solution optimalefinie et la mĂȘme valeur objectif optimale.
â Si le primal (dual) est non bornĂ©, le dual (primal) nâadmet pas de solution admissible.
ThéorÚme 6 (Complémentarité). Considérons la paire primale-duale :
max cTx
s.c. Ax = b
x â„ 0
min bT y
s.c. AT y â„ c
20
Si x est une solution optimale du primal et y une solution optimale du dual, alors
xi(aTi y â ci) = 0.
oĂč ai est la i-Ăšme colonne de A.En dâautres termes :
xi > 0 â aTi y = ci,
aTi y > ci â xi = 0.
Exemple 13 (Résolution du dual par les rÚgles de complémentarité).Primal (P ) :
max z = 5x1 +12x2 +4x3s.c. x1 +2x2 +x3 †10 (y1)
2x1 âx2 +3x3 = 8 (y2)x1, x2, x3 â„ 0
Dual (D) :min w = 10y1 +8y2
s.c y1 +2y2 â„ 5 (x1)2y1 ây2 â„ 12 (x2)y1 +3y2 â„ 4 (x3)y1 â„ 0
Solution optimale de (P ) :
(x1, x2, x3) =
(26
5,
12
5, 0
)z =
274
5
x1 > 0 â y1 + 2y2 = 5
x2 > 0 â 2y1 â y2 = 12
Solution optimale de (D) :
(y1, y2) =
(29
5,â2
5
)w =
274
5
4.3 InterprĂ©tation Ă©conomique de la dualitĂ©â La forme canonique dâun programme linĂ©aire peut ĂȘtre interprĂ©tĂ©e comme un problĂšme dâallocation de res-
sources.â Paire primale-duale :
max cTx
s.c. Ax †bx ℠0
min bT y
s.c. AT y â„ cy â„ 0
21
â DonnĂ©es :
cj : profit par unitĂ© dâactivitĂ© j.
bi : disponibilité de la ressource i.
aij : consommation de la ressource i par unitĂ© dâactivitĂ© j.
â Variables :
xj : niveau de lâactivitĂ© j.
yi : valeur dâune unitĂ© de la ressource i.
Interprétation de la dualité faiblez †w : profit †valeur des ressources
InterprĂ©tation de la dualitĂ© forteLe profit maximal est atteint si les ressources ont Ă©tĂ© exploitĂ©es complĂštement, i.e. jusquâĂ Ă©puisement de leurvaleur.
Exemple 14 (Dualité dans le problÚme de production de peinture).
max z = 5x1 +4x2s.c 6x1 +4x2 †24
x1 +2x2 †6x2 †2
âx1 +x2 †1x1, x2 â„ 0
minw = 24y1 +6y2 +2y3 +y46y1 +y2 ây4 â„ 54y1 +2y2 +y3 +y4 â„ 4y1, y2, y3, y4 â„ 0
x1 = 3, x2 = 1.5, z = 21
y1 = 0.75, y2 = 0.5, y3 = y4 = 0, w = 21
â Le profit augmente de 0.75 par augmentation dâune tonne de M1 et de 0.5 par tonne de M2. (Localement. Dansquelles limites ? Voir analyse de sensibilitĂ©)
â Les "ressources" 3 et 4 sont abondantes, augmenter ces ressources nâapporte aucun profit supplĂ©mentaire.
22
5 Solveurs et langages de modĂ©lisationExemple 15 (Production de jouets).â Une sociĂ©tĂ© de jouets produit des trains, des camions et des voitures, en utilisant 3 machines.â Les disponibilitĂ©s quotidiennes des 3 machines sont 430, 460 et 420 minutes, et les profits par train, camion et
voiture sont respectivement EUR 3, EUR 2 et EUR 5.â Les temps nĂ©cessaires sur chaque machine sont :
Machine Train Camion Voiture1 1 2 12 3 0 23 1 4 0
Primalmax z = 3x1 +2x2 +5x3
s.c. x1 +2x2 +x3 †4303x1 +2x3 †460x1 +4x2 †420x1, x2, x3 ℠0
x1 = 0
x2 = 100
x3 = 230
z = 1350
Dualminw = 430y1 +460y2 +420y3
s.c. y1 +3y2 +y3 â„ 32y1 +4y3 â„ 2y1 +2y2 â„ 5y1, y2, y3 â„ 0
y1 = 1
y2 = 2
y3 = 0
Var. en base z x1 x2 x3 s1 s2 s3 Solutionz â1 â4 0 0 â1 â2 0 â1350
x2 0 â 14 1 0 1
2 â 14 0 100
x3 0 32 0 1 0 1
2 0 230
s3 0 2 0 0 â2 1 1 20
Base : B = {x2, x3, s3}.
SolveursLogiciels pour rĂ©soudre des programmes linĂ©aires :â IndĂ©pendants :
â Commerciaux : CPLEX (www.ilog.com), XPRESS-MP (www.dash.co.uk), . . .â Gratuits : PCx, lpsolve, glpk, . . .
â Tableurs : La plupart des tableurs intĂšgrent un outil de rĂ©solution de programmes linĂ©aires (Excel, Gnumeric,. . .)
â Langages de modĂ©lisation (ampl, GNU MathProg, mpl, OPL studio, mosel, . . .) : langages de haut niveaupermettant la sĂ©paration modĂšle/donnĂ©es, se chargeant de lâinterface avec un solveur.
23
NAME toysROWSL R0001L R0002L R0003N R0004
COLUMNSC0001 R0001 1C0001 R0002 3C0001 R0003 1C0001 R0004 3C0002 R0001 2C0002 R0003 4C0002 R0004 2C0003 R0001 1C0003 R0002 2C0003 R0004 5
RHSB R0001 430B R0002 460B R0003 420
ENDATA
FIGURE 1 â Exemple de production de jouets au format MPS
Solveurs indépendants
Avantagesâ Puissance, efficacitĂ©â IntĂ©grables dans des applications via des librairies
DĂ©savantagesâ Formats de fichiers (MPS)â Pas de sĂ©paration modĂšle / donnĂ©esâ RĂ©-utilisation difficile des modĂšles
Solveurs intégrés aux tableurs
Avantagesâ Disponibles sur (quasi) tous les ordinateursâ Interface facile dâutilisationâ PrĂ©sentation des donnĂ©es / rĂ©sultats
DĂ©savantagesâ DifficultĂ© dâimplĂ©menter de grands modĂšlesâ SĂ©paration modĂšle / donnĂ©es difficileâ Solveurs moins efficaces (en gĂ©nĂ©ral)
Langages de modélisation
Avantagesâ SĂ©paration modĂšle / donnĂ©esâ RĂ©-utilisabilitĂ© des modĂšlesâ IndĂ©pendance modĂšle / 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 (modĂšle)
DĂ©savantagesâ Apprentissage du langageâ Prix des versions commercialesâ Limitation en taille des versions dâessai gratuitesâ Moindre efficacitĂ© (actuellement) des solveurs gratuits
25
## Data#
data;
set Toys := Trains, Trucks, Cars ;param nMachines := 3;
param profit :=Trains 3Trucks 2Cars 5 ;
param time : Trains Trucks Cars :=1 1 2 12 3 0 23 1 4 0 ;
param avail :=1 4302 4603 420 ;
end;
FIGURE 3 â Exemple de production de jouets au format AMPL (donnĂ©es)
26
TroisiĂšme partie
Programmation en nombres entiers et optimisationcombinatoire6 DĂ©finitions et exemplesProgrammation en nombres entiersâ Programmes linĂ©aires dans lesquels certaines (ou toutes les) variables sont restreintes Ă des valeurs entiĂšres.â Si seulement une partie des variables doivent ĂȘtre entiĂšres, on parle de programme mixte (MILP).â Optimisation combinatoire : choix dâune solution optimale parmi un ensemble fini dâalternatives. Peuvent gĂ©-
nĂ©ralement se formuler comme des programmes en nombres entiers.â ProblĂšmes trĂšs difficiles en pratique, mais solveurs de plus en plus performants.
Exemple 16 (SĂ©lection de projets). 5 projets doivent ĂȘtre Ă©valuĂ©s sur 3 ans. Etant donnĂ© le coĂ»t de chaque projetpour chaque annĂ©e et le profit obtenu par lâĂ©xĂ©cution dâun projet, dĂ©cider quels projets Ă©xĂ©cuter sans dĂ©passer lebudget disponible pour chaque annĂ©e.
Coût par année ProfitProjet 1 2 3
1 5 1 8 202 4 7 10 403 3 9 2 204 7 4 1 155 8 6 10 30
Budget 25 25 25
Variablesxj =
{1 si le projet j est sélectionné,0 sinon.
Formulationmax z = 20x1 +40x2 +20x3 +15x4 +30x5
s.c. 5x1 +4x2 +3x3 +7x4 +8x5 †25x1 +7x2 +9x3 +4x4 +6x5 †258x1 +10x2 +2x3 +x4 +10x5 †25x1, x2, x3, x4, x5 â {0, 1}
Exemple 17 (ProblĂšme avec coĂ»ts fixes).â 3 compagnies de tĂ©lĂ©phone offrent des tarifs diffĂ©rents pour les communications longue distance.
Compagnie Abonnement Prix / minute1 16 0.252 25 0.213 18 0.22
â Trouver le plan dâabonnement optimal pour 200 minutes de communication / mois.
Variablesxi : minutes de communication avec la compagnie i.
yi =
{1 si un abonnement est pris auprĂšs de la compagnie i,0 sinon.
Formulation
27
min z = 0.25x1 +0.21x2 +0.22x3 +16y1 + 25y2 + 18y3s.c. x1 +x2 +x3 = 200
x1 †200y1x2 †200y2
x3 †200y3x1, x2, x3 â„ 0y1, y2, y3 â {0, 1}
Exemple 18 (Voyageur de commerce).â Un reprĂ©sentant doit visiter n villes une et une seule fois, et revenir Ă sa ville de dĂ©part, en minimisant le coĂ»t
total du trajet.â Le problĂšme revient Ă trouver un tour de coĂ»t minimum passant une et une seule fois par chacun des noeuds
dâun graphe. Le coĂ»t dâutilisation de lâarc (i, j) est cij .
Variables
xij =
1 si lâarc (i, j) appartientau tour optimal,
0 sinon.
Contraintesnâ
j=1
xij = 1 i = 1, . . . , n
nâi=1
xij = 1 j = 1, . . . , n
ProblĂšme : apparition possible de sous-tours
S
âi,jâS
xij †|S| â 1, â 6= S 6= {1, . . . , n}.
Formulation
min z =
nâi=1
nâj=1
cijxij
s.c.nâ
j=1
xij = 1 i = 1, . . . , n
nâi=1
xij = 1 j = 1, . . . , nâi,jâS
xij †|S| â 1 â 6= S 6= {1, . . . , n}
xij â {0, 1} i = 1, . . . , n, j = 1, . . . , n
28
Exemple 19 (ProblĂšme de couverture). Le dĂ©partement de sĂ©curitĂ© dâun campus veut installer des tĂ©lĂ©phonesdâurgence. Chaque rue doit ĂȘtre servie par un tĂ©lĂ©phone, le but Ă©tant de minimiser le nombre de tĂ©lĂ©phones Ă installer (installation aux carrefours).
1 2 3
4 5
876
Formulationmin z = x1 +x2 +x3 +x4 +x5 +x6 +x7 +x8
s.c. x1 +x2 â„ 1x2 +x3 â„ 1
x4 +x5 â„ 1x6 +x7 â„ 1
x7 +x8 â„ 1x1 +x6 â„ 1
x2 +x6 â„ 1x2 +x4 â„ 1
x4 +x7 â„ 1x3 +x5 â„ 1
x5 +x8 â„ 1x1, x2, x3, x4, x5, x6, x7, x8 â {0, 1}
Contraintes disjonctivesâ Dans un programme linĂ©aire, toutes les contraintes doivent ĂȘtre satisfaites simultanĂ©ment.â Parfois, il est nĂ©cessaire de modĂ©liser le fait quâune contrainte parmi un ensemble doit ĂȘtre satisfaite. Si les
contraintes de lâensemble sont mutuellement incompatibles, on parle de contraintes disjonctives.
Exemple 20 (Contraintes disjonctives).â Une machine est utilisĂ©e pour 3 tĂąches diffĂ©rentes. Pour chaque tĂąches i, une durĂ©e pi et une date limite di sont
donnĂ©es, ainsi quâune pĂ©nalitĂ© par jour de retard.TĂąche DurĂ©e Limite PĂ©nalitĂ©
1 5 25 192 20 22 123 15 35 34
â Comment arranger les tĂąches sur la machine pour minimiser la pĂ©nalitĂ© totale ?
â Variables : xi : temps de fin de la tĂąche i (xi â„ pi).â Deux tĂąches i et j ne peuvent ĂȘtre Ă©xĂ©cutĂ©es simultanĂ©ment, donc
xi â„ xj + pi ou xj â„ xi + pj .
â Pour introduire ces contraintes disjonctives, nous faisons appel Ă des variables binaires auxiliaires :
yij =
{1 si i précÚde j0 si j précÚde i
29
xi â xj +Myij â„ pixj â xi +M(1â yij) â„ pj
â Contrainte de date limite : introduction dâune variable dâĂ©cart non restreinte xi + si = di.â Une pĂ©nalitĂ© apparaĂźt uniquement si si < 0.â Remplacement par deux variables non nĂ©gatives reprĂ©sentant les parties positive et nĂ©gative.
xi + s+i â sâi = di
s+i , sâi â„ 0
Objectif : min z = 19sâ1 + 12sâ2 + 34sâ3
Formulationmin z = 19sâ1 +12sâ2 +34sâ3
s.c. x1 âx2 +My12 â„ 5âx1 +x2 âMy12 â„ 20âMx1 âx3 +My13 â„ 5âx1 +x3 âMy13 â„ 15âM
x2 âx3 +My23 â„ 20âx2 +x3 âMy23 â„ 15âM
x1 +s+1 â sâ1 = 25
x2 +s+2 â sâ2 = 22
x3 +s+3 â sâ3 = 35
x1, x2, x3, s+1 , sâ1 , s+2 , s
â2 , s+3 , s
â3 â„ 0
x1 â„ 5x2 â„ 20
x3 â„ 15y12, y13, y23 â {0, 1}
7 ComplexitĂ© des problĂšmes et efficacitĂ© des algorithmesProblĂšmes faciles et difficilesâ La thĂ©orie de la complexitĂ© sâattache Ă classifier les problĂšmes selon leur difficultĂ©.â Un problĂšme est facile sâil existe un algorithme efficace pour le rĂ©soudre.â Exemples de problĂšmes âfacilesâ : programmation linĂ©aire, affectation, plus courts chemins, . . .â Un problĂšme est difficile sâil appartient Ă la classe des problĂšmes NP-complets, pour lesquels il est peu probable
de trouver un jour un algorithme efficace.â Exemple de problĂšmes âdifficilesâ : programmes en nombres entiers, voyageur de commerce, . . .
Algorithmes efficaces et explosion combinatoireâ LâefficacitĂ© dâun algorithme est mesurĂ©e par lâordre de grandeur du nombre dâopĂ©rations Ă©lĂ©mentaires quâil
effectue en fonction de la taille des donnĂ©es.â Un algorithme sera efficace si le nombre dâopĂ©rations Ă©lĂ©mentaires est polynomial (i.e. bornĂ© supĂ©rieurement
par un polynĂŽme) en la taille de problĂšme.
n lnn+ 1 n n2 n3 2n
1 1.000 1 1 1 22 1.301 2 4 8 43 1.477 3 9 27 85 1.699 5 25 125 3210 2.000 10 100 1000 102420 2.301 20 400 8000 104857650 2.699 50 2500 125000 1.12Ă 1015
100 3.000 100 10000 1000000 1.27Ă 1030
30
â Autre perspective : supposons que trois ordinateurs M1, M2 et M3 effectuent respectivement 10000, 20000 et40000 opĂ©rations par seconde. opĂ©rations par seconde.
â Quelle taille maximum de problĂšme n peut on rĂ©soudre en une minute par des algorithmes effectuant respecti-vemet n, n2, n3 et 2n opĂ©rations ?
Ordinateur n n2 n3 2n
M1 600000 775 84 19M2 1200000 1095 106 20M3 2400000 1549 134 21
8 ProblĂšmes polynomiaux
8.1 Le problĂšme dâaffectationLe problĂšme dâaffectationâ Exemple de problĂšme combinatoire pour lequel il existe un algorithme efficace.â La meilleure personne pour chaque tĂąche.â n personnes doivent effectuer n tĂąches.â Un coĂ»t cij est associĂ© Ă lâaffectation de la personne i Ă la tĂąche j.
Formulation du problĂšme dâaffectation
min z =
nâi=1
nâj=1
cijxij
s.c.nâ
j=1
xij = 1 i = 1, . . . , n
nâi=1
xij = 1 j = 1, . . . , n
xij â {0, 1} i = 1, . . . , n, j = 1, . . . , n
â PropriĂ©tĂ© : la relaxation linĂ©aire du problĂšme est toujours entiĂšre.â Algorithme : mĂ©thode hongroise.
Exemple 21 (ProblĂšme dâaffectation). Un pĂšre propose 3 travaux Ă ses enfants : tondre la pelouse, peindre legarage et laver la voiture. Il demande Ă chaque enfant combien il voudrait ĂȘtre payĂ© pour chaque travail.
Tondre Peindre LaverJohn 15 10 9
Karen 9 15 10Terri 10 12 8
MĂ©thode hongroiseâ SĂ©lectionner le prix minimum dans chaque ligne.
Tondre Peindre LaverJohn 15 10 9 9
Karen 9 15 10 9Terri 10 12 8 8
â Soustraire ce prix de chaque ligne et sĂ©lectionner le prix minimum dans chaque colonne.Tondre Peindre Laver
John 6 1 0 9Karen 0 6 1 9
Terri 2 4 0 80 1 0
â Soustraire ce prix de chaque colonne.
31
Tondre Peindre LaverJohn 6 0 0 9
Karen 0 5 1 9Terri 2 3 0 8
0 1 0â Les "0" en bleu donnent une affectation admissible optimale.â LâoptimalitĂ© est assurĂ©e par la valeur des variables duales (en rouge).â Nombre dâopĂ©rations : O(n2).â Il arrive que les valeurs nulles du tableau ne permettent pas de trouver de solution admissible.
1 4 6 39 7 10 94 5 11 78 7 8 5
0 3 2 2 12 0 0 2 70 1 4 3 43 2 0 0 50 0 3 0
â SĂ©lectionner un nombre minimum de lignes et colonnes couvrant tous les 0.0 3 2 2 12 0 0 2 70 1 4 3 43 2 0 0 50 0 3 0
â SĂ©lectionner le plus petit Ă©lĂ©ment non couvert, le soustraire Ă tous les Ă©lĂ©ments non couverts et lâajouter auxintersections.
0 2 1 1 23 0 0 2 70 0 3 2 54 2 0 0 5-1 0 3 0
â RĂ©pĂ©ter jusquâĂ trouver une solution admissible.
8.2 ModĂšle de transportâ Un produit doit ĂȘtre transportĂ© de sources (usines) vers des destinations (dĂ©pĂŽts, clients).â Objectif : dĂ©terminer la quantitĂ© envoyĂ©e de chaque source Ă chaque destination en minimisant les coĂ»ts de
transport. Les coĂ»ts sont proportionnels aux quantitĂ©s transportĂ©es.â Contraintes dâoffre limitĂ©e aux sources et de demande Ă satisfaire au destinations.
Sources Destinations
1
2
1
2
m n
a1
a2
am
b1
b2
bnc
m n x
m n
Exemple 22 (ModĂšle de transport).
32
â Une firme automobile a trois usines Ă Los Angeles, Detroit et New Orleans, et deux centres de distribution Ă Denver et Miami.
â Les capacitĂ©s des trois usines sont de 1000, 1500 et 1200 respectivement, et les demandes aux centres dedistribution sont de 2300 et 1400 voitures.
â CoĂ»ts :Denver Miami
Los Angeles 80 215Detroit 100 108
New Orleans 102 68
Formulation
min z = 80x11 +215x12 +100x21 +108x22 +102x31 +68x32s.c.
(Los Angeles) x11 +x12 = 1000(Detroit) x21 +x22 = 1500
(New Orleans) x31 +x32 = 1200(Denver) x11 +x21 +x31 = 2300(Miami) x12 +x22 +x32 = 1400
x11, x12, x21, x22, x31, x32 â„ 0
Représentation tableau
Denver Miami OffreLos Angeles 80 215 1000
1000Detroit 100 108 1500
1300 200New Orleans 102 68 1200
1200Demande 2300 1400
ProblĂšmes non balancĂ©sâ Si lâoffre nâest pas Ă©gale Ă la demande : modĂšle non balancĂ©.â Introduction dâune source ou destination artificielle.
Denver Miami OffreLos Angeles 80 215 1000
1000Detroit 100 108 1300
1300New Orleans 102 68 1200
1200Artif. 0 0 200
200Demande 2300 1400
VariantesLe modĂšle de transport nâest pas limitĂ© au transport de produits entre des sources et destinations gĂ©ographiques.
Exemple 23 (ModĂšle de production).â Une sociĂ©tĂ© fabrique des sacs Ă dos, pour lesquels la demande arrive de mars Ă juin et est de 100, 200, 180 et
300 unitĂ©s, 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 dâun mois prĂ©cĂ©dent (+ $0.5 / sac / mois pour le stockage) ;
3. par la production dâun mois suivant (+ $2 / sac / mois de pĂ©nalitĂ© de retard).
Correspondances avec le modĂšle de transport
Transport Production - stocksSource i PĂ©riode de production i
Destination j Période de demande jOffre à la source i Capacité de production à la période i
Demande à la destination j Demande pour la période jCoût de transport de i à j Coût unitaire (production + stock + pénalité)
pour une production en période i pour la période j
Exemple 24 (Maintenance dâĂ©quipements).â Une scierie prĂ©pare diffĂ©rents types de bois sur base dâun plan hebdomadaire.â Pour satisfaire la demande, dĂ©pendant du type de bois, la scierie utilise un nombre donnĂ© de lames.â Pour satisfaire la demande, deux possibilitĂ©s :
â 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 Dim24 12 14 20 18 14 22
ModĂšle de transport8 sources : achat de nouvelles lames (offre = demande totale), 7 jours de la semaine (offre = nombre de lames
utilisées).
8 destinations : 7 jours de la semaine (demande = nombre de lames utilisées) + surplus de lames non achetées /aiguisées (demande = nombre total de lames).
Lun Mar Mer Jeu Ven Sam Dim Surplus OffreAchat 12 12 12 12 12 12 12 0 124Lun 10000 6 6 3 3 3 3 0 24Mar 10000 10000 6 6 3 3 3 0 12Mer 10000 10000 10000 6 6 3 3 0 14Jeu 10000 10000 10000 10000 6 6 3 0 20Ven 10000 10000 10000 10000 10000 6 6 0 18Sam 10000 10000 10000 10000 10000 10000 6 0 14Dim 10000 10000 10000 10000 10000 10000 10000 0 22
Demande 24 12 14 20 18 14 22 124
Algorithme pour le problĂšme de transportBasĂ© sur lâalgorithme du simplexe en tenant compte de la structure du problĂšme.
1. DĂ©termination dâune solution de base admissible.
2. DĂ©termination de la variable entrant en base.
3. DĂ©termination de la variable sortant de base.
Exemple 25 (Algorithme pour le problĂšme de transport).
34
1 2 3 4 Offre1 10 2 20 11 15
2 12 7 9 20 25
3 4 14 16 18 10
Demande 5 15 15 15
DĂ©termination dâune solution de base admissibleâ Heuristiques "gloutonnes", pas besoin de mĂ©thode des deux phases.â Variantes :
1. Coin Nord-Ouest
2. Méthode des moindres coûts
3. Approximation de Vogel (VAM)
Coin Nord-OuestPartir du coin supérieur gauche du tableau.
1. allouer le plus possible Ă la cellule courante et ajuster lâoffre et la demande ;
2. se dĂ©placer dâune cellule vers la droite (demande nulle) ou le bas (offre nulle) ;
3. rĂ©pĂ©ter jusquâau moment oĂč toute lâoffre est allouĂ©e.
Exemple 26 (Coin Nord-Ouest).
1 2 3 4 Offre1 10 2 20 11 15
5 102 12 7 9 20 25
5 15 53 4 14 16 18 10
10Demande 5 15 15 15
Coût : 520
Moindres coûtsSélectionner la cellule de coût minimum.
1. allouer le plus possible Ă la cellule courante et ajuster lâoffre et la demande ;
2. sélectionner la cellule de coût minimum ayant une demande et une offre non nulles ;
3. rĂ©pĂ©ter jusquâau moment oĂč toute lâoffre est allouĂ©e.
Exemple 27 (Moindres coûts).
1 2 3 4 Offre1 10 2 20 11 15
152 12 7 9 20 25
15 103 4 14 16 18 10
5 5Demande 5 15 15 15
Coût : 475
Approximation de Vogel (VAM)
35
1. pour chaque ligne (colonne) avec une offre (demande) non-nulle, calculer une pénalité égale à la différenceentre les deux coûts les plus petits dans la ligne (colonne) ;
2. sélectionner la ligne ou colonne avec la pénalité maximale et sélectionner la cellule de coût minimum dansla ligne ou colonne ;
3. allouer le plus possible Ă la cellule courante ;
4. lorsquâil ne reste quâune ligne ou colonne : moindre coĂ»ts.
Exemple 28 (VAM).
1 2 3 4 Offre1 10 2 20 11 15
152 12 7 9 20 25
15 103 4 14 16 18 10
5 5Demande 5 15 15 15
Coût : 475
Formulation
min z =
mâi=1
nâj=1
cijxij
s.c. (ui)
nâj=1
xij = ai i = 1, . . . ,m
(vj)
mâi=1
xij = bj j = 1, . . . , n
xij â„ 0 i = 1, . . . ,m, j = 1, . . . , n
ProblĂšme dual
max w =
mâi=1
aiui +
nâj=1
bjvj
s.c. ui + vj †cij i = 1, . . . ,m, j = 1, . . . , n
Adaptation du simplexe
CritĂšre dâoptimalitĂ© :ui + vj â cij †0
ComplĂ©mentaritĂ© :xij > 0â ui + vj â cij = 0
Trois étapes : 1. détermination des variables duales (multiplicateurs) ;
2. vĂ©rification du critĂšre dâoptimalitĂ© et dĂ©termination de la variable entrante ;
3. dĂ©termination de la variable sortante pour prĂ©server lâadmissibilitĂ© et pivotage.
DĂ©termination des variables duales1. m+ nâ 1 Ă©quations Ă m+ n inconnues : fixer u1 = 0.
36
2. Résoudre récursivement le systÚme
ui + vj â cij = 0 pour tout xij > 0.
Exemple 29 (DĂ©termination des variables duales).
1 2 3 4 Offre1 10 2 20 11 15
5 102 12 7 9 20 25
5 15 53 4 14 16 18 10
10Demande 5 15 15 15
u1 = 0u1 + v1 = 10 â v1 = 10u1 + v2 = 2 â v2 = 2u2 + v2 = 7 â u2 = 5u2 + v3 = 9 â v3 = 4u2 + v4 = 20 â v4 = 15u3 + v4 = 18 â u3 = 3
VĂ©rification du critĂšre dâoptimalitĂ© et dĂ©termination de la variable entrante
1 10 2 2 3 4 4 15 Offre1 10 2 20 11 150 5 10 -16 42 12 7 9 20 255 3 5 15 53 4 14 16 18 103 9 -9 -9 10
Demande 5 15 15 15
DĂ©termination de la variable sortante pour prĂ©server lâadmissibilitĂ© et pivotage
Objectifs : 1. lâoffre et la demande doivent continuer Ă ĂȘtre satisfaites ;
2. les quantités transportées doivent rester positives.
MĂ©thode : 1. construction dâun cycle parcourant des variables en base en partant de et revenant Ă la variableentrante ;
2. dĂ©placement le long de lignes et colonnes en alternant ajout et retrait dâune mĂȘme quantitĂ©.
1 10 2 2 3 4 4 15 Offre1 10 âΞ 2 +Ξ 20 11 150 5 10 -16 42 12 7 âΞ 9 20 +Ξ 255 3 5 15 53 4 +Ξ 14 16 18 âΞ 103 9 -9 -9 10
Demande 5 15 15 15
Ξ = 5
37
1 1 2 2 3 4 4 15 Offre1 10 2 âΞ 20 11 +Ξ 150 -9 15 -16 42 12 7 +Ξ 9 20 âΞ 255 -6 0 15 103 4 14 16 18 103 5 -9 -9 5
Demande 5 15 15 15
Ξ = 10
1 -3 2 2 3 4 4 11 Offre1 10 2 20 11 150 -13 5 -16 102 12 7 9 20 255 -10 10 15 -43 4 14 16 18 107 5 -5 -5 5
Demande 5 15 15 15
â Extension du modĂšle de transport : il est parfois nĂ©cessaire (ou moins cher) dâutiliser des noeuds intermĂ©diairespour 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 problĂšme de transportâ 3 types de noeuds :
Noeuds dâoffre 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 problĂšme de transport.â Buffer : quantitĂ© nĂ©cessaire pour transporter toute la demande Ă travers le noeud de transbordement.â Dans notre exemple : B = 2200.
T1 T2 D1 D2 D3 OffreP1 3 4 M M M 1000P2 2 5 M M M 1200T1 0 7 8 6 M 2200T2 M 0 M 4 9 2200D1 M M 0 5 M 2200D2 M M M 0 3 2200
Demande 2200 2200 3000 3100 500
38
9 MĂ©thodes de Branch-and-Bound
9.1 Branch-and-Bound pour les problĂšmes en nombres entiersâ Les mĂ©thodes de branch-and-bound sont des mĂ©thodes basĂ©es sur une Ă©numĂ©ration "intelligente" des solutions
admissibles dâun problĂšme dâoptimisation combinatoire.â IdĂ©e : prouver lâoptimalitĂ© dâune solution en partitionant lâespace des solutions.â "Diviser pour rĂ©gner"â Application Ă la programmation linĂ©aire en nombres entiers : utilise toute la puissance de la programmation
linĂ©aire pour dĂ©terminer de bonnes bornes.â On appelle relaxation linĂ©aire dâun programme linĂ©aire en nombres entiers le programme linĂ©aire obtenu en
supprimant les contraintes dâintĂ©gralitĂ© sur les variables.
Programme en nombres entiers(P ) max cTx
s.c. Ax †bx ℠0, entier.
Relaxation linéaire(LP ) max cTx
s.c. Ax †bx ℠0.
PropriĂ©tĂ©s de la relaxation linĂ©aireâ La valeur de la solution optimale de LP est une borne supĂ©rieure sur la valeur de la solution optimale de P .â La valeur dâune solution admissible de P fournit une borne infĂ©rieure sur la valeur de la solution optimale deP .
â Si la solution optimale de LP est entiĂšre (donc admissible pour P ), elle est Ă©galement la solution optimale deP .
Branchementâ Si la solution de LP nâest pas entiĂšre, soit xi une variable prenant une valeur fractionnaire xâi dans la solution
optimale de LP .â Le problĂšme peut ĂȘtre divisĂ© en deux sous-problĂšmes en imposant
xi †bxâi c ou xi â„ bxâi c+ 1
oĂč bxâi c est le plus grand entier infĂ©rieur Ă xâi .â La solution optimale de P est la meilleure des solutions optimales des deux problĂšmes
(P1) max cTxs.c. Ax †b
xi †bxâi cx â„ 0, entier.
(P2) max cTxs.c. Ax †b
xi â„ bxâi c+ 1x â„ 0, entier.
Exemple 30 (Branch-and-Bound).
max z = 5x1 +4x2s.c. x1 +x2 †5
10x1 +6x2 †45x1, x2 ℠0, entiers.
(LP ) x1 = 3.75, x2 = 1.25
z = 23.75
39
(LP ) x1 = 3.75, x2 = 1.25
z = 23.75
x1 â„ 4
(LP1) x1 = 3, x2 = 2
z = 23
(LP2) . . .
x1 †3
â La solution de LP1 est une solution admissible de P et donc z = 23 est une borne infĂ©rieure sur la valeur de lasolution optimale de P .
â Le noeud correspondant peut ĂȘtre Ă©liminĂ© vu quâune solution entiĂšre optimale satisfaisant x1 †3 a Ă©tĂ© trouvĂ©e(solution de P1).
â La valeur de la solution de LP , z = 23.75 est une borne supĂ©rieure sur la valeur de la solution optimale de P .
40
â Vu que tout les coefficients sont entiers, on peut en dĂ©duire que la valeur de la solution optimale de P estinfĂ©rieure ou Ă©gale Ă 23.
â La solution de P1 est donc optimale pour P .
RĂšgles de branchementâ Il nây a pas de rĂšgle gĂ©nĂ©rale 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 lâarbre de branch-and-bound.â Exemple : branchement dâabord du cĂŽtĂ© â„.
(LP ) x1 = 3.75, x2 = 1.25
z = 23.75
x1 â„ 4
(LP1) x1 = 3, x2 = 2
z = 23
(LP2) x1 = 4, x2 = 0.83
z = 23.33
x1 †3
(LP4) Pas de solution
x2 ℠1x2 †0
(LP3) x1 = 4.5, x2 = 0
z = 22.5
x1 †4 x1 ℠5
(LP5) x1 = 4, x2 = 0
z = 20
(LP6) Pas de solution
9.2 Branch-and-bound pour le voyageur de commerce
Formulation (rappel)
min z =
nâi=1
nâj=1
cijxij
s.c.nâ
j=1
xij = 1 i = 1, . . . , n
nâi=1
xij = 1 j = 1, . . . , nâi,jâS
xij †|S| â 1 â 6= S 6= {1, . . . , n}
xij â {0, 1} i = 1, . . . , n, j = 1, . . . , n
â Si on retire les contraintes dâĂ©limination de sous-tours, on obtient le problĂšme dâaffectation.â Cette relaxation a une solution entiĂšre qui peut ĂȘtre obtenue par exemple avec la mĂ©thode hongroise.â Le branchement est effectuĂ© de maniĂšre Ă Ă©liminer les sous-tours.â La valeur de la solution optimale du problĂšme dâaffectation (AP) est une borne infĂ©rieure sur la valeur de la
solution optimale du TSP.â Le coĂ»t dâun tour fournit une borne supĂ©rieure 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 apparaĂźt :
xi1i2 = xi2i3 = xi3i4 = · · · = xikâ1ik = xiki1 = 1.
â Dans une solution admissible, un de ces arcs doit ĂȘtre absent, donc
xi1i2 = 0 ou xi2i3 = 0 ou . . . ou xikâ1ik = 0 ou xiki1 = 0.
â Chacune de ces conditions va correspondre Ă une branche de lâarbre de branch-and-bound.
41
Exemple 31 (Voyageur de commerce).
1 2 3 4 51 â 8 2 10 32 9 â 20 9 73 6 40 â 7 54 8 4 2 â 55 9 10 6 9 â
Solution du problĂšme dâaffectation
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
x31 = 0
[135][24] z = 29
x31 = 0
[12543] z = 32
x13 = 0x13 = 0
[153][24] z = 28
x15 = 0x31 = 0
x53 = 0
9.3 Branch-and-bound pour les contraintes disjonctivesâ On peut utiliser une approche classique pour les problĂšmes en nombres entiers en introduisant des variables
supplĂ©mentaires (voir formulation en dĂ©but de partie).â On peut Ă©galement prendre comme relaxation le problĂšme sans les contraintes disjonctives, et brancher sur les
contraintes non satisfaites.
Exemple 32 (Contraintes disjonctives).â Une machine est utilisĂ©e pour 3 tĂąches diffĂ©rentes. Pour chaque tĂąches i, une durĂ©e pi et une date limite di sont
donnĂ©es, ainsi quâune pĂ©nalitĂ© par jour de retard.TĂąche DurĂ©e Limite PĂ©nalitĂ©
1 5 25 192 20 22 123 15 35 34
â Comment arranger les tĂąches sur la machine pour minimiser la pĂ©nalitĂ© totale ?
Relaxation du problĂšme
42
min z = 19sâ1 +12sâ2 +34sâ3s.c. x1 +s+1 â s
â1 = 25
x2 +s+2 â sâ2 = 22
x3 +s+3 â sâ3 = 35
x1, x2, x3, s+1 , sâ1 , s+2 , s
â2 , s+3 , s
â3 â„ 0
x1 â„ 5x2 â„ 20
x3 â„ 15
â Branchement sur xi â„ xj + pi ou xj â„ xi + pj .â Solution de la relaxation : ordonnancement âau plus tĂŽtâ.
Noeud 0
z = 00 22 25 35
Relaxation : 0 Borne sup. : +â.
Noeuds Ă examiner :1 : x1 â x2 â„ 52 : x2 â x1 â„ 20
Noeud 1
1 : x1 â x2 â„ 5
z = 00 22 25 35
Noeud 1 :
Relaxation : 0 Borne sup. : +â.
Noeuds Ă examiner :2 : x2 â x1 â„ 203 : x1 â x2 â„ 5
x2 â x3 â„ 204 : x1 â x2 â„ 5
x3 â x2 â„ 15
Noeud 3
3 : x1 â x2 â„ 5x2 â x3 â„ 20
0 22 25 35
Noeud 3 :
z = 441
Relaxation : 441 Borne sup. : 441
43
Noeuds Ă examiner :2 : x2 â x1 â„ 204 : x1 â x2 â„ 5
x3 â x2 â„ 15
Noeud 4
4 : x1 â x2 â„ 5x3 â x2 â„ 15
0 22 25 35
Noeud 4 :
z = 0
Relaxation : 0 Borne sup. : 441
Noeuds Ă examiner :2 : x2 â x1 â„ 205 : x1 â x2 â„ 5
x3 â x2 â„ 15x1 â x3 â„ 5
6 : x1 â x2 â„ 5x3 â x2 â„ 15x3 â x1 â„ 15
Noeud 5
5 : x1 â x2 â„ 5x3 â x2 â„ 15x1 â x3 â„ 5
0 22 25 35
Noeud 5 :
z = 285
Relaxation : 285 Borne sup. : 285
Noeuds Ă examiner :2 : x2 â x1 â„ 206 : x1 â x2 â„ 5
x3 â x2 â„ 15x3 â x1 â„ 15
Noeud 6
6 : x1 â x2 â„ 5x3 â x2 â„ 15x3 â x1 â„ 15
44
0 22 25 35
Noeud 6 :
z = 170
Relaxation : 170 Borne sup. : 170
Noeuds Ă examiner :2 : x2 â x1 â„ 20
Noeud 2
2 : x2 â x1 â„ 20
0 22 25 35
Noeud 2 :
z = 36
Relaxation : 36 Borne sup. : 170
Noeuds Ă examiner :7 : x2 â x1 â„ 20
x2 â x3 â„ 208 : x2 â x1 â„ 20
x3 â x2 â„ 15
Noeud 7
7 : x2 â x1 â„ 20x2 â x3 â„ 20
0 22 25 35
Noeud 7 :
z = 156
Relaxation : 156 Borne sup. : 170
Noeuds Ă examiner :8 : x2 â x1 â„ 20
x3 â x2 â„ 159 : x2 â x1 â„ 20
x2 â x3 â„ 20x1 â x3 â„ 5
10 : x2 â x1 â„ 20x2 â x3 â„ 20x3 â x1 â„ 15
Noeud 9
45
9 : x2 â x1 â„ 20x2 â x3 â„ 20x1 â x3 â„ 5
0 22 25 35
Noeud 9 :
z = 216
Relaxation : 216 Borne sup. : 170
Noeuds Ă examiner :8 : x2 â x1 â„ 20
x3 â x2 â„ 1510 : x2 â x1 â„ 20
x2 â x3 â„ 20x3 â x1 â„ 15
Noeud 10
10 : x2 â x1 â„ 20x2 â x3 â„ 20x3 â x1 â„ 15
0 22 25 35z = 216
Noeud 10 :
Relaxation : 216 Borne sup. : 170
Noeuds Ă examiner :8 : x2 â x1 â„ 20
x3 â x2 â„ 15
Noeud 8
8 : x2 â x1 â„ 20x3 â x2 â„ 15
0 22 25 35
Noeud 8 :
z = 206
Relaxation : 206 Borne sup. : 170
Solution optimale : 170 Ordre des tĂąches : 2, 1, 3 (noeud 6)
46
10 MĂ©thodes heuristiques
10.1 Introductionâ La plupart des problĂšmes pratiques sont NP-complets.â NĂ©cessitĂ© de trouver des âbonnesâ solutions rapidement.â Heuristiques ou algorithmes dâapproximation.
Raisons de choisir une heuristiqueâ Une solution doit ĂȘtre trouvĂ©e rapidement (secondes / minutes).â Instance trop grande ou compliquĂ©e : impossible Ă formuler comme un problĂšme en nombre entiers de taille
raisonnable.â ImpossibilitĂ© pour le Branch-and-Bound de trouver une (bonne) solution admissible.â Pour certaines classes de problĂšmes : trouver des solutions admissibles est facile (structure du problĂšme) mais
une approche gĂ©nĂ©raliste de programmation en nombres entiers nâest pas efficace.
Questions Ă se poser...â Doit-on accepter nâimporte quelle solution, ou doit-on se demander a posteriori Ă quelle distance de lâoptimalitĂ©
on se trouve ?â Peut-on garantir a priori que lâheuristique va produire une solution à Δ (ou α%) de lâoptimal ?â Peut-on dire a priori que, pour la classe de problĂšmes considĂ©rĂ©e, lâheuristique va produire en moyenne une
solution à α% de lâoptimal ?
Contexte gĂ©nĂ©ralProblĂšme dâoptimisation combinatoire
min F (x)
s.c. x â X.
avec F une fonction Ă valeur rĂ©elles dĂ©finie sur X ,X lâensemble des solutions admissibles.
HypothĂšseX de trop grande taille pour permettre lâĂ©numĂ©ration.
10.2 Heuristiques de constructionâ Objectif : construire une (bonne) solution admissible.â Se basent sur la structure du problĂšme pour gĂ©nĂ©rer une solution.â GĂ©nĂ©ralement : mĂ©thodes gloutonnes. Construisent la solution en ajoutant Ă©lĂ©ment par Ă©lĂ©ment, choix dĂ©finitifs
(pas de retour en arriĂšre).â DĂ©faut : mĂ©thodes âaveuglesâ, un mauvais choix fait en cours de construction ne peut pas ĂȘtre âdĂ©faitâ.â Exemples :
â problĂšme de transport (coin nord-ouest, moindre coĂ»ts, VAM)â voyageur de commerce (plus proche voisin, meilleure insertion)â heuristique gloutonne pour le problĂšme de sac-Ă -dos.
Voyageur de commerce : plus proche voisinâ partir dâun sommet quelconque, par exemple le sommet 1â tant quâil 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 51 â 8 2 10 32 9 â 20 9 73 6 40 â 7 54 8 4 2 â 55 9 10 6 9 â
Tour : 1â 3â 5â 4â 2â 1CoĂ»t : 29Remarque : si dĂ©marrage du noeud 2 :Tour : 2â 5â 3â 1â 4â 2CoĂ»t : 33
Voyageur de commerce : meilleure insertionâ partir dâun cycle ” rĂ©duit Ă une boucle sur le sommet 1 (par exemple)â tant quâil y a des sommets libres faire :
â pour tous les sommets libres j, chercher la position dâinsertion entre 2 sommets i, k du cycle ” minimisantM = cij + cjk â cik
â insĂ©rer le sommet qui minimise lâaccroissement du coĂ»t
Exemple 34 (Voyageur de commerce).
1 2 3 4 51 â 8 2 10 32 9 â 20 9 73 6 40 â 7 54 8 4 2 â 55 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, coĂ»t : 30.
Le problĂšme de sac-Ă -dosâ Le problĂšme de sac-Ă -dos revient Ă dĂ©cider quels objets mettre dans un contenant ayant une capacitĂ© donnĂ©e W
de maniĂšre Ă maximiser le profit total des objets choisis.â Chaque objet a un profit pi â„ 0 et un poids wi â„ 0.
ProblĂšme de sac-Ă -dos
z = maxnâ
j=1
pjxj
s.c.nâ
j=1
wjxj â€W
xj â {0, 1} j = 1, . . . , n
Heuristique gloutonne pour le problÚme de sac-à -dosIdée de base : Les objets les plus intéressants sont ceux qui ont un petit poids pour un grand profit, i.e. un rapportpi
wigrand.
Heuristique gloutonne pour le problÚme de sac-à -dos1. Ordonner les objets par ordre décroissant de pi
wiâ ordre i1, . . . , in.
2. S = â .
48
3. Pour t = 1, . . . , n faire :Si w(S) + wit â€W , alors S := S âȘ {it}. 1
Analyse de lâheuristique
Résolution de la relaxation linéaire1. Ordonner les objets par ordre décroissant de pi
wiâ ordre i1, . . . , in.
2. S = â , t = 1.
3. Tant que w(S) + wit â€W :S := S âȘ {it}.
4. ComplĂ©ter la capacitĂ© avec la fraction nĂ©cessaire de lâobjet it.
â Soit S la solution de lâheuristique gloutonne, zLP la valeur de la relaxation linĂ©aire et p0 = maxi=1,...,n pi.â ConsidĂ©rons z = max{p(S), p0}.â
z = max{p(S), p0} â„p(S) + p0
2â„ zLP
2â„ zOPT
2
10.3 Recherche localeâ Heuristiques de construction : utiles pour trouver une premiĂšre solution admissible, mais souvent de mauvaise
qualitĂ©.â IdĂ©e : essayer dâamĂ©liorer cette solution en tenant compte de la structure du problĂšme.â Etant donnĂ© une solution, dĂ©finition dâune notion de voisinage de cette solution.â MĂ©thode de descente : recherche du meilleur voisin jusquâau moment oĂč aucune amĂ©lioration nâest possible.â Pour toute solution x â X , on dĂ©finit V (x) â X comme Ă©tant lâensemble des solutions voisines de x (x /âV (x)).
Algorithme de descenteInitialisation : x0 â X solution initiale.
Etape n : soit xn â X la solution courante ;sĂ©lectionner xâ â V (xn) ;si F (xâ) †F (xn) :
xn+1 := xâ ; passer Ă lâĂ©tape n+ 1.sinon xn meilleure solution trouvĂ©e ; stop.
En général (si pas trop long), choix du meilleur élément du voisinage.
Voyageur de commerce : k-optVoisins dâun tour : tous les tours qui peuvent sâobtenir en retirant k arĂȘtes et en reconnectant de la meilleursmaniĂšre possible.
Exemple 35 (2-opt).
1. Notation : w(S) :=â
iâS wi
49
10.4 MĂ©ta-heuristiquesâ InconvĂ©nient principal des algorithmes de descente : sâarrĂȘte, le plus souvent, dans un optimum local et non
dans un optimum global.â IdĂ©e gĂ©nĂ©rale des mĂ©ta-heuristiques : autoriser une dĂ©tĂ©rioration temporaire de lâobjectif, permettant ainsi de
quitter des minimums locaux tout en maintenant en gĂ©nĂ©ral une âpressionâ favorisant les solutions qui amĂ©-liorent lâ objectif.
CaractĂ©ristiques des mĂ©ta-heuristiquesâ plus simples et plus rapides Ă mettre en oeuvre quand lâexigence de qualitĂ© de la solution nâest pas trop impor-
tante ;â plus souples dans les problĂšmes rĂ©els (contraintes non formulĂ©es dĂšs le dĂ©part) ;â sâadaptent plus facilement Ă des contraintes additionnelles venant du terrain ;â fournissent des solutions et des bornes qui peuvent ĂȘtre utiles dans des mĂ©thodes exactes.
Le recuit simulĂ© (simulated annealing)IdĂ©e de base provient de lâopĂ©ration de recuit (annealing), courante en sidĂ©rurgie et dans lâindustrie du verre.
Recuit en sidĂ©rurgieAprĂšs avoir fait subir des dĂ©formations au mĂ©tal, on rĂ©chauffe celui-ci Ă une certaine tempĂ©rature, de maniĂšre Ă faire disparaĂźtre les tensions internes causĂ©es par les dĂ©formations, puis on laisse refroidir lentement.LâĂ©nergie fournie par le rĂ©chauffement permet aux atomes de se dĂ©placer lĂ©gĂšrement et le refroidissement lent figepeu Ă peu le systĂšme dans une structure dâĂ©nergie minimale.
Application du recuit simulĂ© Ă lâoptimisationâ Modification de lâheuristique de descente :â au lieu de ne permettre que des mouvements (des changements de solution courante) qui diminuent lâĂ©nergie
(la fonction objectif), on autorise des augmentations, mĂȘme importantes, de lâĂ©nergie au dĂ©but de lâexĂ©cutionde lâalgorithme ;
â puis, Ă mesure que le temps passe, on autorise ces augmentations de plus en plus rarement (la tempĂ©raturebaisse).
â Finalement, le systĂšme âgĂšleâ dans un Ă©tat dâĂ©nergie minimale.
Recuit simulĂ©Initialisation : x0 â X solution initiale, FÌ := F (x0).
Etape n : soit xn â X la solution courante ;tirer au sort une solution xâ â V (xn) ;si F (xâ) †F (xn) : xn+1 := xâ ;
si F (xâ) < FÌ : FÌ := F (xâ)sinon, tirer un nombre q au hasard entre O et 1 ;
si q †p : xn+1 := xâ ;sinon : xn+1 := xn ;
si la rĂšgle dâarrĂȘt nâest pas satisfaite,passer Ă lâĂ©tape n+ 1 ;
sinon, stop.
ParamĂštres du recuit simulĂ©â La probabilitĂ© p est gĂ©nĂ©ralement une fonction p(T,âF ) dĂ©pendant dâun paramĂštre T (tempĂ©rature), et de la
dĂ©gradation de lâobjectif âF = F (xâ) â F (xn) rĂ©sultant du remplacement de xn par xâ comme solutioncourante.
â Analogie avec les systĂšmes physiques (distribution de Boltzmann) :
p(T,âF ) = eââFT
â Evolution de la tempĂ©rature : diminue toutes les L itĂ©rations.
Tk = αTkâ1 = αkT0.
50
â T0 choisi par simulation de sorte quâau dĂ©but de lâexĂ©cution de lâalgorithme, des solutions moins bonnes quela solution courante soient aisĂ©ment acceptĂ©es. En gĂ©nĂ©ral, on fixe un taux dâacceptation initial moyen dessolutions plus mauvaises que la solution courante.
â Exemple : taux fixĂ© Ă 50%, Ă©valuer par simulation la dĂ©tĂ©rioration moyenne < âF > de F (en partant dâunesolution initiale fixe).
TO =< âF >
ln 2(â p = 0.5)
â La longueur L du palier de tempĂ©rature doit ĂȘtre dĂ©terminĂ©e en tenant compte de la taille des voisinages ; elledevrait augmenter avec la taille du problĂšme.
â En pratique, la dĂ©termination de L est expĂ©rimentale.â Le paramĂštre de dĂ©croissance gĂ©omĂ©trique de la tempĂ©rature α est fixĂ©, le plus souvent, aux alentours de 0.9 ou
0.95.â CritĂšre dâarrĂȘt : nombre maximal dâitĂ©rations ou systĂšme est âgelĂ©â : e.g. si la fonction F a diminuĂ© de moins
de 0.1 % pendant cent paliers consécutifs.
Quelques observations sur le recuit simulĂ©â Voyageur de commerce : pas concurrentiel par rapport Ă dâautres approches.â En gĂ©nĂ©ral : amĂ©liore les solutions dâune descente pure, mais trĂšs coĂ»teux en temps calcul.â RĂ©sultat thĂ©orique : sous certaines conditions, converge avec probabilitĂ© 1 vers une solution optimale.â RĂ©sultat asymptotique (nombre dâitĂ©rations tendant Ă lâinfini), peu de pertinence en pratique.
Recherche tabouâ Emprunte certains de ses concepts Ă lâintelligence artificielle (notion et utilisation de mĂ©moire).â Variante de la recherche locale.â Partant de la solution courante xn Ă lâĂ©tape n, on calcule la meilleure solution xâ dans un sous-voisinage V â deV (xn). Cette solution devient la nouvelle solution courante xn+1, quâelle soit meilleure ou moins bonne que laprĂ©cĂ©dente.
â CaractĂšre non monotone pour Ă©viter de rester coincĂ© dans des minimums locaux.â MAIS nĂ©cessitĂ© dâun mĂ©canisme qui Ă©vite le cyclage.
Listes tabouPour Ă©viter le cyclage, on dĂ©finit une ou plusieurs listes, les listes tabou, qui gardent en mĂ©moire les derniĂšressolutions rencontrĂ©es ou des caractĂ©ristiques de celles-ci.Le sous-voisinage V â de V (xn) exclut dĂšs lors les solutions rencontrĂ©es rĂ©cemment ou les solutions ayant descaractĂ©ristiques communes avec celles-ci.
Exemple 36 (Voyageur de commerce).â Villes : {A,B,C,D,E}â Voisinage : 2-Ă©change (Ă©change de deux villes dans lâordre des visites)â Liste tabou : positions Ă©changĂ©es dans le cycle.â Solutions visitĂ©es :
xn = (A,B,C,D,E)
xn+1 = (A,D,C,B,E) ((2, 4) devient tabou)xn+2 = (B,D,C,A,E) ((1, 4) devient tabou)xn+3 = (B,C,D,A,E) ((2, 3) devient tabou)xn+4 = (B,C,D,E,A) ((4, 5) devient tabou)
â xn+4 ⥠xn mais OK si xn+5 peut ĂȘtre 6= xn+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 xn+5.
51
CritĂšres dâaspirationPuisque les listes tabou Ă©cartent des solutions non rencontrĂ©es, on peut envisager de nĂ©gliger le statut tabou decertaines solutions si un avantage suffisant en rĂ©sulte.Ceci est implĂ©mentĂ© Ă lâaide de critĂšres dâaspiration. Par exemple, on acceptera pour xn+1 une solution xâ tabousi xâ donne Ă la fonction objectif F une valeur meilleure que toutes celles obtenues jusquâĂ prĂ©sent.
Recherche tabouInitialisation : x0 â X solution initiale, FÌ := F (x0), k = longueur de la liste tabou..
Etape n : soit xn â X la solution courante ;sĂ©lectionner, dans un sous-voisinage V â de V (xn), la meilleure solution xâ â qui soit :
non tabou outabou, mais satisfaisant un critĂšre dâaspiration ;
xn+1 := xâ ;si F (xâ) < FÌ : FÌ := F (xâ)mettre Ă jour la liste tabou ;si la rĂšgle dâarrĂȘt nâest pas satisfaite,
passer Ă lâĂ©tape n+ 1 ;sinon, stop.
StratĂ©gies avancĂ©es de la recherche tabouâ Succession de phases dâintensification et de phases de diversification de la recherche.â PĂ©nalitĂ©s ou bonifications introduites dans la fonction objectif pour favoriser ou dĂ©favoriser certains types de
solutions.â Adaptation de lâensemble des solutions candidates V â.â Oscillation stratĂ©gique.
10.5 Algorithmes gĂ©nĂ©tiquesâ Conçus par Holland (1975) comme un modĂšle de systĂšme adaptatif complexe capable de simuler, notamment,
lâĂ©volution des espĂšces.â Presque immĂ©diatement aprĂšs, appliquĂ©s Ă lâoptimisation de fonctions de variables rĂ©elles. Par la suite, de trĂšs
nombreux problĂšmes dâoptimisation combinatoire ont Ă©tĂ© traitĂ©s.â Se distinguent du recuit et de la recherche tabou par le fait quâils traitent et font Ă©voluer une population de
solutions.â Au cours dâune itĂ©ration, les solutions de la population courante interagissent pour fournir la gĂ©nĂ©ration suivante
(métaphore de la reproduction sexuée).
Description dâun algorithme gĂ©nĂ©tique de baseâ Les solutions sont codĂ©es de maniĂšre appropriĂ©e. Un codage Ă©lĂ©mentaire pour un problĂšme de programmation
mathĂ©matique en variables binaires est un vecteur x de 0 et de 1, oĂč chaque composante xj , j = 1, . . . , NreprĂ©sente la valeur prise par une variable.
â Pour le problĂšme du voyageur de commerce, un codage plus usuel sera une liste ordonnĂ©e des noms (ou labels)des N villes.
â Un vecteur codant une solution est souvent appelĂ© chromosome et ses coordonnĂ©es ou sites sont appelĂ©s gĂšnes.â Le choix dâun codage appropriĂ© est trĂšs important pour lâefficacitĂ© des opĂ©rateurs qui seront appliquĂ©s pour
faire Ă©voluer les solutions.â Population initiale de solutions X(0) (taille constante au cours de lâĂ©volution).â Fonction dâĂ©valuation des solutions : en gĂ©nĂ©ral, croissante avec la qualitĂ© de la solution (fitness function,
mesurant la âsantĂ©â de lâindividu solution).â Dans un problĂšme de maximisation (respectivement, de minimisation), ce peut ĂȘtre la fonction objectif (respec-
tivement, lâopposĂ© de la fonction objectif).â Pour des raisons dâefficacitĂ© de lâalgorithme, on peut ĂȘtre amenĂ© Ă choisir la fonction dâĂ©valuation de maniĂšre
plus sophistiquĂ©e, mais elle sera toujours croissante (respectivement, dĂ©croissante) en la valeur de lâobjectifdans un problĂšme de maximisation (respectivement, de minimisation).
52
Algorithme gĂ©nĂ©tiqueInitialisation : X(0) â X , population initiale.Etape n : X(n) â X , population courante ;
â sĂ©lectionner dans X(n) un ensemble de paires de solutions de haute qualitĂ© ;â appliquer Ă chacune des paires de solutions sĂ©lectionnĂ©es un opĂ©rateur de croisement qui produit une ou
plusieurs solutions enfants ;â remplacer une partie de X(n) formĂ©e de solutions de basse qualitĂ© par des solutions âenfantsâ de haute
qualitĂ© ;â appliquer un opĂ©rateur de mutation aux solutions ainsi obtenues ; les solutions Ă©ventuellement mutĂ©es
constituent la population X(n+1) ;si la rĂšgle dâarrĂȘt nâest pas satisfaite,
passer Ă lâĂ©tape n+ 1 ;sinon, stop.
SĂ©lectionâ La sĂ©lection - aussi bien celle des individus de âhaute qualitĂ©â que celle des individus de âbasse qualitĂ©â -
comporte gĂ©nĂ©ralement un aspect alĂ©atoire.â Chaque individu xi se voit attribuer une probabilitĂ© pi dâĂȘtre choisi dâautant plus grande que son Ă©valuation est
haute (basse, dans le cas dâune sĂ©lection de âmauvaisâ individus).â On tire un nombre r au hasard (uniformĂ©ment) entre 0 et 1. Lâindividu k est choisi tel que :
kâ1âi=1
pi < r â€kâ
i=1
pi
â La procĂ©dure est itĂ©rĂ©e jusquâĂ ce que lâon ait choisi un nombre fixĂ© dâindividus.
CroisementSoit deux solutions x et y sĂ©lectionnĂ©es parmi les solutions de haute qualitĂ©. Un opĂ©rateur 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 ;â sĂ©lectionner alĂ©atoirement deux positions dans les vecteurs et permuter les sĂ©quences de 0 et de l figurant entre
ces deux positions dans les deux vecteurs.â Pour les vecteurs :
x = 0 1 1 0 1 1 0 0y = 1 1 0 0 1 0 1 O
si les positions âaprĂšs 2â et âaprĂšs 5â sont choisies, on obtient :
xâČ = 0 1 0 0 1 1 0 0yâČ = 1 1 1 0 1 0 1 O
Mutationâ Une mutation est une perturbation introduite pour modifier une solution individuelle, par exemple la transfor-
mation dâun 0 en un 1 ou inversĂ©ment dans un vecteur binaire.â En gĂ©nĂ©ral, lâopĂ©rateur de mutation est appliquĂ© parcimonieusement : on dĂ©cide de âmuterâ une solution avec
une probabilitĂ© assez faible (de lâordre de quelques centiĂšmes, tout au plus).â Un but possible de la mutation est dâintroduire un Ă©lĂ©ment de diversification, dâinnovation comme dans la
thĂ©orie darwinienne de lâĂ©volution des espĂšces.
Remarques finalesâ La recherche tabou peut ĂȘtre trĂšs efficace, mais implĂ©mentation et ajustement des paramĂštres difficiles, forts
dĂ©pendants de la structure du problĂšme.â Les algorithmes gĂ©nĂ©tiques sont efficaces si la structure du problĂšme est bien exploitĂ©e.â MĂ©thodes hybrides trĂšs efficaces (exemple : recherche locale utilisĂ©e comme opĂ©rateur de mutation).
53