Programmation Lineaire RO

of 53/53
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 6 3.1 Notions de bases ........................................... 6 3.2 Exemples de modèles linéaires .................................... 6 3.3 Forme standard et forme canonique d’un programme linéaire .................... 8 3.4 Résolution de programmes linéaires ................................. 10 3.4.1 Résolution graphique ..................................... 10 3.4.2 La méthode du simplexe ................................... 12 3.4.3 Cas particuliers ........................................ 16 4 Dualité 19 4.1 Le problème dual ........................................... 19 4.2 Relations primal/dual ......................................... 20 4.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 31 8.1 Le problème d’affectation ....................................... 31 8.2 Modèle de transport .......................................... 32 9 Méthodes de Branch-and-Bound 39 9.1 Branch-and-Bound pour les problèmes 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
  • date post

    13-Nov-2015
  • Category

    Documents

  • view

    34
  • download

    4

Embed Size (px)

description

Programmation Lineaire RO

Transcript of Programmation Lineaire RO

  • 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 Dfinition, exemples et mthode de rsolution 63.1 Notions de bases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63.2 Exemples de modles linaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63.3 Forme standard et forme canonique dun programme linaire . . . . . . . . . . . . . . . . . . . . 83.4 Rsolution de programmes linaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    3.4.1 Rsolution graphique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103.4.2 La mthode du simplexe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123.4.3 Cas particuliers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

    4 Dualit 194.1 Le problme dual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194.2 Relations primal/dual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204.3 Interprtation conomique de la dualit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

    5 Solveurs et langages de modlisation 23

    III Programmation en nombres entiers et optimisation combinatoire 27

    6 Dfinitions et exemples 27

    7 Complexit des problmes et efficacit des algorithmes 30

    8 Problmes polynomiaux 318.1 Le problme daffectation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318.2 Modle de transport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

    9 Mthodes de Branch-and-Bound 399.1 Branch-and-Bound pour les problmes 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 Mthodes heuristiques 4710.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4710.2 Heuristiques de construction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4710.3 Recherche locale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4910.4 Mta-heuristiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5010.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, HermesScience.

    2

  • Premire partie

    Introduction la recherche oprationnelle1 Quelques exemples de modles mathmatiquesUn premier problmeExemple 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.

    QuestionComment 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 ?

    RestrictionsFYV-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).

    Dfinition 1 (Solution admissible). Une solution admissible est un ensemble de valeurs donnes aux variables quisatisfait toutes les contraintes.

    Dfinition 2 (Solution optimale). Une solution optimale est une solution admissible qui optimise la fonctionobjectif.

    Dfinition 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 fil de fer de longueur Len rectangle de manire maximiser la surface du rectangle.

    l

    w

    Formulationmax A = lws.t. l + w = L2

    Solution A =

    (L2 w

    )w = Lw2 w2

    dAdw =L2 2w = 0

    Solution optimale : w = l = L4

    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 itrativesDplacement 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 oprationnelleRecherche oprationnelleLa recherche oprationnelle est une technique daide la dcision.

    Etapes pratiques1. Dfinition 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 dfinition du problme (suppose un dialogue avec le dcideur) et la

    construction du modle (prendre conscience des hypothses simplificatrices 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 linaire3 Dfinition, exemples et mthode de rsolution

    3.1 Notions de basesProgrammation linaireDfinition 4 (Programme linaire). Modle mathmatique dans lequel la fonction objectif et les contraintes sontlinaires en les variables.

    ApplicationsOptimisation de lusage de ressources limites dans les domaines militaire, industriel, agricole, conomique, ...

    Existence dalgorithmes trs efficaces pour rsoudre des problmes de trs grande taille (simplexe, points int-rieurs)

    3.2 Exemples de modles linairesExemple 3 (Production de peinture). Une socit produit de la peinture dintrieur et dextrieur partir de deuxproduits de base M1 et M2.

    DonnesQuantit utilise

    par tonneQuantit disponible

    par jourExtrieure Intrieure

    M1 6 4 24M2 1 2 6Profit 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)

    x1 = tonnes de peinture dextrieur

    produites par jour

    x2 = tonnes de peinture

    dintrieur produites par jour

    Fonction objectif optimisermax z = 5x1 + 4x2

    Restrictions (contraintes)

    6

  • 6x1 + 4x2 24x1 + 2x2 6

    x2 2x2 x1 1x1, x2 0

    Solutions et mthodes de rsolution Solution admissible : satisfait toutes les contraintes.

    x1 = 3, x2 = 1 ( z = 19)

    Nous voulons trouver la solution (admissible) optimale. Infinit 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 quiest 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 fibres.

    Donnes

    Quantit par gramme daliment CotAliment Protines Fibres (EUR / kg)Orge 0.09 0.02 1.5Arachide 0.60 0.06 4.5

    Formulation (Diet problem)

    Variables

    x1 = grammes dorge par portion

    x2 = grammes darachide par portion

    Objectifmin z = 0.0015x1 + 0.0045x2

    ContraintesQuantit totale : x1 + x2 400Protines : 0.09x1 + 0.6x2 0.3(x1 + x2)Fibres : 0.02x1 + 0.06x2 0.05(x1 + x2)Non-ngativit : x1, x2 0

    7

  • 3.3 Forme standard et forme canonique dun programme linaireForme standardDfinition 5 (Forme standard). Un programme linaire est sous forme standard lorsque toutes ses contraintes sontdes galits et toutes ses variables sont non-ngatives.

    Reprsentation matricielle

    max cTx

    s.c. Ax = bx 0

    n variables, m contraintes, m < n, c, x Rn, b Rm, A Rmn.

    Forme canoniqueDfinition 6 (Forme canonique). Un programme linaire est sous forme canonique lorsque toutes ses contraintessont des ingalits et toutes ses variables sont non-ngatives.

    Reprsentation matricielle

    max cTx

    s.t. Ax bx 0

    n variables, m contraintes, c, x Rn, b Rm, A Rmn.Thorme 1 (Equivalence des formes standard et canonique). Tout programme linaire peut scrire sous formestandard et sous forme canonique.

    Dmonstration. Une containte dingalit aTx b peut tre transforme en galit par lintroduction dune variable dcart :

    aTx+ s = b,

    s 0.

    Une contrainte dgalit aTx = b peut tre remplace par deux ingalits :

    aTx baTx b

    aTx b aTx b. min cTx = maxcTx. Variable x non restreinte : substitution par deux variables (partie positive et ngative)

    x = x+ xx+, 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 = 5x1 + 4x2

    s.c.6x1 + 4x2 24x1 + 2x2 6

    x2 2x2 x1 1x1, x2 0

    Forme standardmax z = 5x1 +4x2

    s.c. 6x1 +4x2 +s1 = 24x1 +2x2 +s2 = 6

    x2 +s3 = 2x1 +x2 +s4 = 1x1, x2, s1, s2, s3, s4 0

    Forme matricielle

    max cTx

    s.t. Ax = bx 0

    c =

    540000

    , x =

    x1x2s1s2s3s4

    , A =

    6 4 1 0 0 01 2 0 1 0 00 1 0 0 1 01 1 0 0 0 1

    , b =

    24621

    Variables pouvant prendre des valeurs ngativesExemple 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 profit 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 ?

    Variablesx1 = nombre de hamburgers / jour x2 = nombre de cheeseburgers / jour

    Contraintes Commande de viande supplmentaire :

    125x1 + 100x2 + x3 = 10000, x3non restreint

    Le cot pour la viande supplmentaire apparat seulement si x3 < 0.

    9

  • Substitution de x3 par 2 variables non-ngatives :

    x3 = x+3 x3 , x+3 , x3 0

    125x1 + 100x2 + x+3 x3 = 10000

    Borne suprieure sur les ventes : x1 + x2 900.

    Modle complet

    max z = 0.02x1 + 0.015x2 0.002x3s.c. 125x1 + 100x2 + x+3 x3 = 10000

    x1 + x2 900x1, x2, x

    +3 , x

    3 0

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

    3.4 Rsolution de programmes linaires3.4.1 Rsolution graphique

    Reprsentation 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

  • Gomtrie des solutions

    AB

    C DE

    Fz=10

    Ensemble des solutions admissiblesPolydre (ABCDEF)

    Courbes de niveaux de lobjectifEnsemble de solutions ayant un profit (valeur de lobjectif) donn : intersection entre une droite et le polydre.

    Amlioration de la solutionRecherche dune direction dans laquelle le profit z augmente.

    Rsolution graphique (Production de peinture)

    AB

    C DE

    F

    z=21

    Recherche de la solution optimale La droite mobile doit garder une intersection avec lensemble des solutions admissibles. Solution optimale : x1 = 3, x2 = 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.0015x1 + 0.0045x2

    sous les contraintes

    x1 + x2 4000.21x1 0.30x2 00.03x1 0.01x2 0

    x1 0x2 0

    Solution optimale

    x1 =4000

    17' 235.3 x2 = 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).

    Identification algbrique des sommets : correspondance avec les bases dun systme dquations.

    Solutions de base Systme de m quations linaires n inconnues (m < n) : infinit de solutions. Si on fixe zro nm variables : systme de m quations m inconnues possdant une solution unique (si la

    matrice est inversible). Cest une solution de base.

    Dfinition 7 (Solution de base). Une solution de base dun programme linaire est la solution unique du systmede m quations m inconnues obtenu en fixant zro n m variables (pourvu que la matrice du systme soitinversible).Les variables fixes zro sont appeles 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-ngatives et la solution estralisable.

    Dfinition 8 (Solution de base ralisable). Une solution de base telle que toutes les variables prennent des valeursnon-ngatives est appele solution de base ralisable.

    Gomtrie des solutions de base

    AB

    C DE

    F

    Prenons B = {s1, s2, s3, s4} x1 = x2 = 0, s1 = 24, s2 = 6, s3 = 2, s4 = 1. Cette solution de base ralisable 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 ralisable{x1, x2, s3, s4} (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 +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 16s1 2

    3x2

    Nouveau systme :z = 20 56s1 + 23x2x1 = 4 16s1 23x2s2 = 2 +

    16s1 43x2

    s3 = 2 x2s4 = 5 16s1 53x2

    Equations du simplexe B = indices des variables en base, N = indices des variables hors base. Notation :

    z = z +kN

    ckxk

    xl = bl kN

    alkxk l B

    ck : profit marginal ou cot rduit.

    Rgles de pivotage

    Variable entranteChoisir la variable k hors base avec le profit marginal maximum (max z) ou le cot rduit minimum (min z).

    max z k = arg maxiN

    ci

    min z k = arg miniN

    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 minjB:ajk>0

    bjajk

    Si alk 0 pour tout l B, problme 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 4x2s2 = 6 x1 2x2s3 = 2 x2s4 = 1 +x1 x2

    z = 20 56s1 + 23x2x1 = 4 16s1 23x2s2 = 2 +

    16s1

    4

    3x2

    s3 = 2 x2s4 = 5 16s1 53x2

    z = 21 34s1 12s2x1 = 3 14s1 + 12s2x2 =

    32 +

    18s1 34s2

    s3 =12 18s1 + 34s2

    s4 =52 38s1 + 54s2

    15

  • Prsentation en tableauPrsentation compacte pour effectuer les calculs sans rpter les systmes dquations.

    Itration 1

    Var. en base z x1 x2 s1 s2 s3 s4 Solutionz 1 5 4 0 0 0 0 0s1 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

    Itration 2

    Var. en base z x1 x2 s1 s2 s3 s4 Solutionz 1 0 23 56 0 0 0 20x1 0 1

    23

    16 0 0 0 4

    s2 0 043 16 1 0 0 2

    s3 0 0 1 0 0 1 0 2

    s4 0 053

    16 0 0 1 5

    Itration 3

    Var. en base z x1 x2 s1 s2 s3 s4 Solutionz 1 0 0 34 12 0 0 21x1 0 1 0

    14 12 0 0 3

    x2 0 0 1 18 34 0 0 32s3 0 0 0

    18 34 1 0 12

    s4 0 0 038 54 0 1 52

    3.4.3 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 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 7 (Solutions optimales multiples).

    max z = 2x1 +4x2s.c. x1 +2x2 5

    x1 +x2 4x1, x2 0

    16

  • Var. en base z x1 x2 s1 s2 Solution

    z 1 2 4 0 0 0s1 0 1 2 1 0 5

    s2 0 1 1 0 1 4

    z 1 0 0 2 0 10x2 0

    12 1

    12 0

    52

    s2 012 0 12 1 32

    z 1 0 0 2 0 10x2 0 0 1 1 1 1x1 0 1 0 1 2 3

    Solution optimale :

    x1 = 0+ 3(1 ) = 3 3x2 =

    52+ 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 !

    Exemple 8 (Problmes non borns).

    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 0s1 0 1 1 1 0 1s2 0 2 0 0 1 4

    Tous les coefficients (sauf le profit maginal) dans la colonne de x2 sont ngatifs ou nuls. Cela signifie que toutes les contraintes de non-ngativit sont satisfaites quelle que soit la valeur de x2. Lobjectif peut donc augmenter indfiniment.

    17

  • Problmes impossibles Le systme de contraintes peut navoir aucune solution. Gnralement, provient dune mauvaise formulation du problme.

    Exemple 9 (Problmes impossibles).

    max z = 3x1 +2x2s.c. 2x1 +x2 2

    3x1 +4x2 12x1, x2 0

    18

  • 4 Dualit

    4.1 Le problme dualProblme primal et problme dual

    Problme primal

    max cTx

    s.c. Ax = bx 0

    n variables, m contraintes, m < n, c, x Rn, b Rm, A Rmn.Problme dual

    min bT y

    s.c. AT y c(y non restreint)

    m variables, n contraintes, m < n, c Rn, b, y Rm, A Rmn.Exemple 10 (Problme primal et dual - forme standard).

    Problme primal :max z = x1 +x2

    s.c. 2x1 +x2 = 5 (y1)3x1 x2 = 6 (y2)x1, x2 0

    Problme dual :min w = 5y1 +6y2

    s.c 2y1 +3y2 1 (x1)y1 y2 1 (x2)

    Proprits et rgles de construction du dualThorme 3. Le problme dual du problme dual est le problme primal.

    Rgles de construction

    Problme max Problme minContrainte Variable 0= non restreinte

    Variable Contrainte 0

    non restreinte =

    Exemple 11 (Problme primal et dual - forme gnrale).

    Problme primal :max z = 5x1 +12x2 +4x3

    s.c. x1 +2x2 +x3 10 (y1)2x1 x2 +3x3 = 8 (y2)x1, x2, x3 0

    19

  • Problme 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/dualThorme 4 (Dualit faible). Considrons la paire primale-duale :

    max cTx

    s.c. Ax = bx 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 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 cTx

    s.c. Ax = bx 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 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 cTx

    s.c. Ax = bx 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 dautres termes :

    xi > 0 aTi y = ci,aTi y > ci xi = 0.

    Exemple 12 (Rsolution du dual par les rgles de complmentarit).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 = 5x2 > 0 2y1 y2 = 12

    Solution optimale de (D) :

    (y1, y2) =

    (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 cTx

    s.c. Ax bx 0

    min bT y

    s.c. AT y cy 0

    21

  • Donnes :

    cj : profit par unit dactivit j.bi : disponibilit de la ressource i.aij : consommation de la ressource i par unit dactivit j.

    Variables :

    xj : niveau de lactivit j.yi : valeur dune unit de la ressource i.

    Interprtation de la dualit faiblez w : profit valeur des ressources

    Interprtation de la dualit forteLe profit maximal est atteint si les ressources ont t exploites compltement, i.e. jusqu puisement de leurvaleur.

    Exemple 13 (Dualit dans le problme 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 dune 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 napporte aucun profit supplmentaire.

    22

  • 5 Solveurs et langages de modlisationExemple 14 (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 profits par train, camion et

    voiture sont respectivement EUR 3, EUR 2 et EUR 5. Les temps ncessaires 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 1350x2 0 14 1 0 12 14 0 100x3 0

    32 0 1 0

    12 0 230

    s3 0 2 0 0 2 1 1 20Base : B = {x2, x3, s3}.

    SolveursLogiciels 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 niveaupermettant la sparation modle/donnes, se chargeant de linterface 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 indpendants

    Avantages Puissance, efficacit Intgrables dans des applications via des librairies

    Dsavantages Formats de fichiers (MPS) Pas de sparation modle / donnes R-utilisation difficile des modles

    Solveurs intgrs aux tableurs

    Avantages Disponibles sur (quasi) tous les ordinateurs Interface facile dutilisation Prsentation des donnes / rsultats

    Dsavantages Difficult dimplmenter de grands modles Sparation modle / donnes difficile Solveurs moins efficaces (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]

  • ## 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 (donnes)

    26

  • Troisime partie

    Programmation en nombres entiers et optimisationcombinatoire6 Dfinitions et exemplesProgrammation 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 fini dalternatives. Peuvent g-

    nralement se formuler comme des programmes en nombres entiers. Problmes trs difficiles en pratique, mais solveurs de plus en plus performants.

    Exemple 15 (Slection de projets). 5 projets doivent tre valus sur 3 ans. Etant donn le cot de chaque projetpour chaque anne et le profit obtenu par lxcution dun projet, dcider quels projets xcuter sans dpasser lebudget disponible pour chaque anne.

    Cot par anne 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 slectionn,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 16 (Problme avec cots fixes). 3 compagnies de tlphone offrent des tarifs diffrents pour les communications longue distance.

    Compagnie Abonnement Prix / minute1 16 0.252 25 0.213 18 0.22

    Trouver le plan dabonnement optimal pour 200 minutes de communication / mois.

    Variablesxi : minutes de communication avec la compagnie i.

    yi =

    {1 si un abonnement est pris auprs 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 17 (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 cij .

    Variables

    xij =

    1 si larc (i, j) appartientau tour optimal,0 sinon.

    Contraintesnj=1

    xij = 1 i = 1, . . . , n

    ni=1

    xij = 1 j = 1, . . . , n

    Problme : apparition possible de sous-tours

    S

    i,jS

    xij |S| 1, 6= S 6= {1, . . . , n}.

    Formulation

    min z =

    ni=1

    nj=1

    cijxij

    s.c.nj=1

    xij = 1 i = 1, . . . , n

    ni=1

    xij = 1 j = 1, . . . , ni,jS

    xij |S| 1 6= S 6= {1, . . . , n}

    xij {0, 1} i = 1, . . . , n, j = 1, . . . , n

    28

  • Exemple 18 (Problme de couverture). Le dpartement de scurit dun campus veut installer des tlphonesdurgence. 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

    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 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 19 (Contraintes disjonctives). Une machine est utilise pour 3 tches diffrentes. Pour chaque tches i, une dure pi et une date limite di sont

    donnes, ainsi quune pnalit par jour de retard.Tche Dure Limite Pnalit

    1 5 25 192 20 22 123 15 35 34

    Comment arranger les tches sur la machine pour minimiser la pnalit totale ?

    Variables : xi : temps de fin de la tche i (xi pi). Deux tches i et j ne peuvent tre xcutes simultanment, donc

    xi xj + pi ou xj xi + pj .

    Pour introduire ces contraintes disjonctives, nous faisons appel des variables binaires auxiliaires :

    yij =

    {1 si i prcde j0 si j prcde i

    29

  • xi xj +Myij pixj xi +M(1 yij) pj

    Contrainte de date limite : introduction dune variable dcart non restreinte xi + si = di. Une pnalit apparat uniquement si si < 0. Remplacement par deux variables non ngatives reprsentant les parties positive et ngative.

    xi + s+i si = di

    s+i , si 0

    Objectif : min z = 19s1 + 12s2 + 34s

    3

    Formulationmin z = 19s1 +12s

    2 +34s

    3

    s.c. x1 x2 +My12 5x1 +x2 My12 20Mx1 x3 +My13 5x1 +x3 My13 15M

    x2 x3 +My23 20x2 +x3 My23 15M

    x1 +s+1 s1 = 25

    x2 +s+2 s2 = 22

    x3 +s+3 s3 = 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 problmes et efficacit des algorithmesProblmes faciles et difficiles La thorie de la complexit sattache classifier les problmes selon leur difficult. Un problme est facile sil existe un algorithme efficace pour le rsoudre. Exemples de problmes faciles : programmation linaire, affectation, plus courts chemins, . . . Un problme est difficile sil appartient la classe des problmes NP-complets, pour lesquels il est peu probable

    de trouver un jour un algorithme efficace. Exemple de problmes difficiles : programmes en nombres entiers, voyageur de commerce, . . .

    Algorithmes efficaces et explosion combinatoire Lefficacit dun algorithme est mesure par lordre de grandeur du nombre doprations lmentaires quil

    effectue en fonction de la taille des donnes. Un algorithme sera efficace si le nombre doprations lmentaires est polynomial (i.e. born suprieurement

    par un polynme) en la taille de problme.

    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 1015100 3.000 100 10000 1000000 1.27 1030

    30

  • Autre perspective : supposons que trois ordinateurs M1, M2 et M3 effectuent respectivement 10000, 20000 et40000 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, n2, n3 et 2n oprations ?

    Ordinateur n n2 n3 2n

    M1 600000 775 84 19M2 1200000 1095 106 20M3 2400000 1549 134 21

    8 Problmes polynomiaux

    8.1 Le problme daffectationLe problme daffectation Exemple de problme combinatoire pour lequel il existe un algorithme efficace. La meilleure personne pour chaque tche. n personnes doivent effectuer n tches. Un cot cij est associ laffectation de la personne i la tche j.

    Formulation du problme daffectation

    min z =

    ni=1

    nj=1

    cijxij

    s.c.nj=1

    xij = 1 i = 1, . . . , n

    ni=1

    xij = 1 j = 1, . . . , n

    xij {0, 1} i = 1, . . . , n, j = 1, . . . , n

    Proprit : la relaxation linaire du problme est toujours entire. Algorithme : mthode hongroise.

    Exemple 20 (Problme daffectation). Un pre 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

    Mthode hongroise Slectionner 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 slectionner 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. Loptimalit est assure par la valeur des variables duales (en rouge). Nombre doprations : 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

    Slectionner 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

    Slectionner le plus petit lment non couvert, le soustraire tous les lments non couverts et lajouter auxintersections.

    0 2 1 1 23 0 0 2 70 0 3 2 54 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 Destinations1

    2

    1

    2

    m n

    a1

    a2

    am

    b1

    b2

    bncm n xm n

    Exemple 21 (Modle de transport).

    32

  • Une firme 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 dedistribution sont de 2300 et 1400 voitures.

    Cots :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

    Reprsentation tableau

    Denver Miami OffreLos Angeles 80 215 1000

    1000Detroit 100 108 1500

    1300 200New Orleans 102 68 1200

    1200Demande 2300 1400

    Problmes non balancs Si loffre nest pas gale la demande : modle non balanc. Introduction dune 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 modle de transport nest pas limit au transport de produits entre des sources et destinations gographiques.

    Exemple 22 (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 - stocksSource i Priode de production i

    Destination j Priode de demande jOffre la source i Capacit de production la priode i

    Demande la destination j Demande pour la priode jCot de transport de i j Cot unitaire (production + stock + pnalit)

    pour une production en priode i pour la priode j

    Exemple 23 (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 Dim24 12 14 20 18 14 22

    Modle de transport8 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 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 problme de transportBas 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 24 (Algorithme pour le problme 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

    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-OuestPartir 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 25 (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

    Cot : 520

    Moindres cotsSlectionner 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 26 (Moindres cots).

    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

    Cot : 475

    Approximation de Vogel (VAM)

    35

  • 1. pour chaque ligne (colonne) avec une offre (demande) non-nulle, calculer une pnalit gale la diffrenceentre 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 dansla ligne ou colonne ;

    3. allouer le plus possible la cellule courante ;

    4. lorsquil ne reste quune ligne ou colonne : moindre cots.

    Exemple 27 (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

    Cot : 475

    Formulation

    min z =

    mi=1

    nj=1

    cijxij

    s.c. (ui)nj=1

    xij = ai i = 1, . . . ,m

    (vj)

    mi=1

    xij = bj j = 1, . . . , n

    xij 0 i = 1, . . . ,m, j = 1, . . . , n

    Problme dual

    max w =

    mi=1

    aiui +

    nj=1

    bjvj

    s.c. ui + vj cij i = 1, . . . ,m, j = 1, . . . , n

    Adaptation du simplexe

    Critre doptimalit :ui + vj cij 0

    Complmentarit :xij > 0 ui + vj cij = 0

    Trois tapes : 1. dtermination des variables duales (multiplicateurs) ;2. vrification du critre doptimalit et dtermination de la variable entrante ;

    3. dtermination de la variable sortante pour prserver ladmissibilit et pivotage.

    Dtermination des variables duales1. m+ n 1 quations m+ n inconnues : fixer u1 = 0.

    36

  • 2. Rsoudre rcursivement le systme

    ui + vj cij = 0 pour tout xij > 0.

    Exemple 28 (Dtermination 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

    Vrification du critre doptimalit et dtermination 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

    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 variableentrante ;

    2. dplacement le long de lignes et colonnes en alternant ajout et retrait dune mme 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 modle de transport : il est parfois ncessaire (ou moins cher) dutiliser des noeuds intermdiairespour 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 originaleNoeuds de demande purs : arcs entrants uniquement. demande = demande originaleNoeuds 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 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 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 cTx

    s.c. Ax bx 0, entier.

    Relaxation linaire(LP ) max cTx

    s.c. Ax bx 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 deP .

    Si la solution optimale de LP est entire (donc admissible pour P ), elle est galement la solution optimale deP .

    Branchement Si la solution de LP nest pas entire, soit xi une variable prenant une valeur fractionnaire xi dans la solution

    optimale de LP . Le problme peut tre divis en deux sous-problmes en imposant

    xi bxi c ou xi bxi c+ 1

    o bxi c est le plus grand entier infrieur xi . La solution optimale de P est la meilleure des solutions optimales des deux problmes

    (P1) max cTx

    s.c. Ax bxi bxi cx 0, entier.

    (P2) max cTx

    s.c. Ax bxi bxi c+ 1x 0, entier.

    Exemple 29 (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 infrieure sur la valeur de lasolution optimale de P .

    Le noeud correspondant peut tre limin vu quune solution entire optimale satisfaisant x1 3 a t trouve(solution de P1).

    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 coefficients sont entiers, on peut en dduire que la valeur de la solution optimale de P estinfrieure ou gale 23.

    La solution de P1 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 ) 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 =

    ni=1

    nj=1

    cijxij

    s.c.nj=1

    xij = 1 i = 1, . . . , n

    ni=1

    xij = 1 j = 1, . . . , ni,jS

    xij |S| 1 6= S 6= {1, . . . , n}

    xij {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 :

    xi1i2 = xi2i3 = xi3i4 = = xik1ik = xiki1 = 1.

    Dans une solution admissible, un de ces arcs doit tre absent, donc

    xi1i2 = 0 ou xi2i3 = 0 ou . . . ou xik1ik = 0 ou xiki1 = 0.

    Chacune de ces conditions va correspondre une branche de larbre de branch-and-bound.

    41

  • Exemple 30 (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 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

    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 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 31 (Contraintes disjonctives). Une machine est utilise pour 3 tches diffrentes. Pour chaque tches i, une dure pi et une date limite di sont

    donnes, ainsi quune pnalit par jour de retard.Tche Dure Limite Pnalit

    1 5 25 192 20 22 123 15 35 34

    Comment arranger les tches sur la machine pour minimiser la pnalit totale ?

    Relaxation du problme

    42

  • min z = 19s1 +12s2 +34s

    3

    s.c. x1 +s+1 s1 = 25x2 +s

    +2 s2 = 22

    x3 +s+3 s3 = 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 tt.

    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 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 efficace.

    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 gnralProblme doptimisation combinatoire

    min F (x)

    s.c. x X.

    avec F une fonction valeur relles dfinie sur X ,X lensemble des solutions admissibles.

    HypothseX 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 dfinitifs

    (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 32 (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 1Cot : 29Remarque : si dmarrage du noeud 2 :Tour : 2 5 3 1 4 2Cot : 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 minimisantM = cij + cjk cik

    insrer le sommet qui minimise laccroissement du cot

    Exemple 33 (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 = 82. 1 3 1, k = 5, M = 73. 1 5 3 1, k = 4, M = 54. 1 5 4 3 1, k = 2, M = 105. 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 profit total des objets choisis. Chaque objet a un profit pi 0 et un poids wi 0.Problme de sac--dos

    z = maxnj=1

    pjxj

    s.c.nj=1

    wjxj W

    xj {0, 1} j = 1, . . . , n

    Heuristique gloutonne pour le problme de sac--dosIde de base : Les objets les plus intressants sont ceux qui ont un petit poids pour un grand profit, i.e. un rapportpiwi

    grand.

    Heuristique gloutonne pour le problme de sac--dos1. Ordonner les objets par ordre dcroissant de piwi ordre i1, . . . , in.2. S = .

    48

  • 3. Pour t = 1, . . . , n faire :Si w(S) + wit W , alors S := S {it}. 1

    Analyse de lheuristique

    Rsolution de la relaxation linaire1. Ordonner les objets par ordre dcroissant de piwi ordre i1, . . . , in.2. S = , t = 1.3. Tant que w(S) + wit W :

    S := S {it}.4. Complter la capacit avec la fraction ncessaire de lobjet it.

    Soit S la solution de lheuristique gloutonne, zLP la valeur de la relaxation linaire et p0 = maxi=1,...,n pi. Considrons z = max{p(S), p0}.

    z = max{p(S), p0} p(S) + p02

    zLP2 zOPT

    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, dfinition 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 dfinit V (x) X comme tant lensemble des solutions voisines de x (x /V (x)).

    Algorithme de descenteInitialisation : x0 X solution initiale.Etape n : soit xn X la solution courante ;

    slectionner x V (xn) ;si F (x) F (xn) :

    xn+1 := x ; passer ltape n+ 1.

    sinon xn meilleure solution trouve ; stop.

    En gnral (si pas trop long), choix du meilleur lment du voisinage.

    Voyageur de commerce : k-optVoisins dun tour : tous les tours qui peuvent sobtenir en retirant k artes et en reconnectant de la meilleursmanire possible.

    Exemple 34 (2-opt).

    1. Notation : w(S) :=

    iS wi

    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 sidrurgieAprs 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 figepeu peu le systme dans une structure dnergie minimale.

    Application du recuit simul loptimisation Modification 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 lexcutionde lalgorithme ;

    puis, mesure que le temps passe, on autorise ces augmentations de plus en plus rarement (la tempraturebaisse).

    Finalement, le systme gle dans un tat dnergie minimale.

    Recuit simulInitialisation : 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 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 (xn) rsultant du remplacement de xn par x comme solutioncourante.

    Analogie avec les systmes physiques (distribution de Boltzmann) :

    p(T,F ) = eFT

    Evolution de la temprature : diminue toutes les L itrations.

    Tk = Tk1 = kT0.

    50

  • T0 choisi par simulation de sorte quau dbut de lexcution de lalgorithme, des solutions moins bonnes quela solution courante soient aisment acceptes. En gnral, on fixe un taux dacceptation initial moyen dessolutions plus mauvaises que la solution courante.

    Exemple : taux fix 50%, valuer par simulation la dtrioration moyenne < F > de F (en partant dunesolution initiale fixe).

    TO =< F >

    ln 2( p = 0.5)

    La longueur L du palier de temprature doit tre dtermine en tenant compte de la taille des voisinages ; elledevrait augmenter avec la taille du problme.

    En pratique, la dtermination de L est exprimentale. Le paramtre de dcroissance gomtrique de la temprature est fix, 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 linfini), peu de pertinence en pratique.

    Recherche tabou Emprunte certains de ses concepts lintelligence artificielle (notion et utilisation de mmoire). Variante de la recherche locale. Partant de la solution courante xn ltape n, on calcule la meilleure solution x dans un sous-voisinage V deV (xn). Cette solution devient la nouvelle solution courante xn+1, quelle soit meilleure ou moins bonne que laprcdente.

    Caractre non monotone pour viter de rester coinc dans des minimums locaux. MAIS ncessit dun mcanisme qui vite le cyclage.

    Listes tabouPour viter le cyclage, on dfinit une ou plusieurs listes, les listes tabou, qui gardent en mmoire les derniressolutions rencontres ou des caractristiques de celles-ci.Le sous-voisinage V de V (xn) exclut ds lors les solutions rencontres rcemment ou les solutions ayant descaractristiques communes avec celles-ci.

    Exemple 35 (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 :

    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

  • Critres daspirationPuisque les listes tabou cartent des solutions non rencontres, on peut envisager de ngliger le statut tabou decertaines solutions si un avantage suffisant en rsulte.Ceci est implment laide de critres daspiration. 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 prsent.

    Recherche tabouInitialisation : x0 X solution initiale, F := F (x0), k = longueur de la liste tabou..Etape n : soit xn X la solution courante ;

    slectionner, dans un sous-voisinage V de V (xn), la meilleure solution x qui soit :non tabou outabou, mais satisfaisant un critre daspiration ;

    xn+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 dintensification et de phases de diversification de la recherche. Pnalits ou bonifications 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 xj , j = 1, . . . , Nreprsente 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 lefficacit 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 (fitness 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 defficacit 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 lobjectifdans un problme de maximisation (respectivement, de minimisation).

    52

  • Algorithme gntiqueInitialisation : 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 xi se voit attribuer une probabilit pi 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 :

    k1i=1

    pi < r ki=1

    pi

    La procdure est itre jusqu ce que lon ait choisi un nombre fix dindividus.

    CroisementSoit 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 36 (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 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 aprs 2 et aprs 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 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 diversification, dinnovation comme dans la

    thorie darwinienne de lvolution des espces.

    Remarques finales La recherche tabou peut tre trs efficace, mais implmentation et ajustement des paramtres difficiles, forts

    dpendants de la structure du problme. Les algorithmes gntiques sont efficaces si la structure du problme est bien exploite. Mthodes hybrides trs efficaces (exemple : recherche locale utilise comme oprateur de mutation).

    53