Recherche Operationnelle

download Recherche Operationnelle

of 59

Transcript of Recherche Operationnelle

Recherche OperationnellePaulFeautrier20mai20042DistribuesouslicenseOpen-Content: http://opencontent.org/opl.shtmlTabledesmati`eres1 Optimisationsanscontraintes 51.1 Principaux concepts . . . . . . . . . . . . . . . . . . . . . . . . . 51.2 Optimisation continue sans contrainte . . . . . . . . . . . . . . . 101.3 Programmation lineaire . . . . . . . . . . . . . . . . . . . . . . . 152 Optimisationsouscontraintes 272.1 Conditions de Kuhn et Tucker . . . . . . . . . . . . . . . . . . . . 272.2 Une methode directe . . . . . . . . . . . . . . . . . . . . . . . . . 292.3 Methodes duales . . . . . . . . . . . . . . . . . . . . . . . . . . . 302.4 Fonction de Lagrange, point-col . . . . . . . . . . . . . . . . . . . 322.5 Optimisation combinatoire . . . . . . . . . . . . . . . . . . . . . . 362.5.1 coque enti`ere . . . . . . . . . . . . . . . . . . . . . . . . . 382.5.2 Algorithme de Gomory . . . . . . . . . . . . . . . . . . . 392.5.3 Techniques de codage . . . . . . . . . . . . . . . . . . . . 413 Meta-heuristiques 433.1 Separation et evaluation ou Branch-and-Bound . . . . . . . . . . 433.1.1 Algorithme . . . . . . . . . . . . . . . . . . . . . . . . . . 433.1.2Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . 453.1.3 Strategie et Tactiques . . . . . . . . . . . . . . . . . . . . 463.2 Programmation Dynamique . . . . . . . . . . . . . . . . . . . . . 483.3 Exploration aleatoire. . . . . . . . . . . . . . . . . . . . . . . . . 533.3.1 Amelioration iterative . . . . . . . . . . . . . . . . . . . . 533.3.2 Recuit simule . . . . . . . . . . . . . . . . . . . . . . . . . 543.3.3 La methode Tabou. . . . . . . . . . . . . . . . . . . . . . 573.3.4 Algorithmes genetiques . . . . . . . . . . . . . . . . . . . 583.4 Conclusion generale . . . . . . . . . . . . . . . . . . . . . . . . . 594 Tabledesmati`eresDistribuesouslicenseOpen-Content: http://opencontent.org/opl.shtmlChapitre1OptimisationsanscontraintesPlanIntroduction et principaux conceptsOptimisation continue sans contrainteProgrammation lineaireOptimisation continue sous contrainteOptimisation combinatoireProgrammation lineaire en nombres entiers.ExplorationMetaheuristiquesProgrammation dynamiqueElements de Complexite1.1 PrincipauxconceptsQuestcequelarechercheoperationnelle ?Vocabulaire:Rechercheoperationnelle=programmationmathematique= optimisation (mais pas optimisation de programme).Recherche operationnelle = modelisation mathematique des processus deprise de decision.Inconnues : les variables de decision.Evaluation de la decision = fonction economique ou fonction objectif.Trouver les valeurs des variables de decision qui minimisent (ou maxi-misent) la fonction objectif.Rechercheoperationnellemodlisationoptimisation action6 OptimisationsanscontraintesLa modelisation est un art, loptimisation est une science.Applications : planication du debarquement de Normandie, optimisationdun programme de calcul intensif, investissement en bourse.Investissementenbourse=optimisationavecinformationincompl`eteou aleatoire.Planication dune operation militaire = il y a un adversaire = theoriedes jeux.Optimisation dun programme = en principe, on a une information com-pl`ete.Le cours est essentiellement consacre `a loptimisation avec informationcompl`ete.Informatiqueoumathematique ?Mathmatique InformatiqueRecherche OprationelleComplexitThormes dexistenceConvergenceAlgorithmesPreuves de terminaison ArtificielleIntelligenceVocabulaireDistribuesouslicenseOpen-Content: http://opencontent.org/opl.shtml1.1Principauxconcepts 7courbes de niveau dela fonction objectifoptimumcontraintesForme canonique :trouver x D qui mi-nimisef.min f(x)x DOptimumlocal,globalMinimum local : a est un minimum local defsil existe un voisinageVdea tel que :x V f(x)f(a).Minimum global :a est un minimum global defdansDsi et seulementsi :x D f(x)f(a).localglobalConvexiteUn ensemble S est convexe si, pour toute paire de points a, b de S, S contientaussi le segmentab.a, b S (01 a + (1 )b S.DistribuesouslicenseOpen-Content: http://opencontent.org/opl.shtml8 Optimisationsanscontraintesconvexeconvexe convexenon convexeFonctionconvexe fest convexe dans un ensemble convexeSsi et seulement si :x, y S, 01 f(x + (1 )y)f(x) + (1 )f(y)SfxyInteretdelaconvexiteTheor`eme1.1. Si festconvexedansunensembleconvexeS,alorstoutmi-nimum local defest un minimum global.Demonstration. Soit a un minimum local, et Vlouvert contenant a dans lequel :x V f(x)f(a).Si on suppose quil existe un pointb Stel quef(b) < f(a) alors on a :f(a + (1 )b)f(a) + (1 )f(b).Il est possibledetrouver unsusamment prochede1pour que x=a + (1 )b soit dansV . Contradiction en ce point :f(x)f(a) + (1 )f(b)f(a),

ClassicationSelon la nature des variables de decision :Optimisation continue.Optimisation discr`ete ou optimisation combinatoire.Selon la nature des contraintes :Pas de contraintes ou contraintes faciles `a satisfaire (un segment de ladroite reelle) : optimisation sans contraintes.Optimisation sous contraintes : il est dicile de trouver un point satis-faisant les contraintes.Proprietes speciales des elements du probl`eme : linearite, convexite.DistribuesouslicenseOpen-Content: http://opencontent.org/opl.shtml1.1Principauxconcepts 9Optimisationmulticrit`ereForme canonique : trouverx D qui minimisef1, f2, . . .min f1(x)min f2(x). . .x DLe probl`eme est evidemment mal pose. Quel sens peut on lui donner ?Exemple : on doit concevoir un equipement electronique qui doit executerun algorithme donne le plus vite possible et pour le moindre prix. f1est le temps dexecution de lalgorithme. f2est le prix de lequipement.DominationOn se place dans le casn = 2.La solutionx domine la solutiony si et seulement sif1(x)f1(y), f2(x)f2(y).La relation de domination est un ordre partiel. On ne peut donc pas prou-ver lunicite dun minimum sil existe.Loptimum de Pareto (ou le Pareto) du probl`eme est lensemble des solu-tions non dominees.ParetoprixlatencedominationQue faire avec un Pareto ?PonderationOn attribue un poids `a chaque objectif et on minimise lobjectif pondere.DistribuesouslicenseOpen-Content: http://opencontent.org/opl.shtml10 OptimisationsanscontraintesprixlatenceoptimumpondrTransformationobjectif/contrainteOn xe la valeur de lune des fonctions objectif et on optimise lautre. Parexemple, le marketing decide du prix maximum de lequipement.prixlatenceborne du prixoptimum1.2 OptimisationcontinuesanscontrainteOptimisationcontinuesanscontrainteOn consid`ere une seule variablemin f(x)x RSi on connat la derivee f

de f, le probl`eme se ram`ene `a trouver les racinesdef

, puis `a les tester une par une pour savoir si elles sont un minimum,un maximum ou un point dinexion.DistribuesouslicenseOpen-Content: http://opencontent.org/opl.shtml1.2Optimisationcontinuesanscontrainte 11On peut utiliser pour cela des methodes classiques : iteration de Newton(si on peut calculer la derivee seconde), dichotomie, methode de la secante.Si on ne connat pas la derivee, la premi`ere chose `a faire est de trouver unencadrement du minimum. Il ny a pas de methode generale, on utilise lesrenseignements que lon peut avoir surf.FonctionsunimodalesUnefonctionf estunimodaledanslintervalle[a, b] sil existeunpointa c btelquesi x y calorsf(x) f(y)etsi c x yalorsf(x)f(y).Il est evident que si fest unimodale dans [a, b], alorsc est un minimumglobal.Theor`eme1.2. Sifest continue convexe dans [a, b], alorsfest unimodale.Demonstration. Soit c leminimumde f, et xet y qui violent laconditiondunimodalite, par exemplecxy etf(c) < f(y) < f(x). Soit 01 telquex = c + (1 )y. Par convexite on doit avoirf(x)f(c) + (1 )f(y)mais aussif(c) + (1 )f(y)f(y) < f(x) une contradiction. Methodepartrichotomiea cdba cd bOndiviselintervalle[a, b]entroisparties egales`alaidedespointsa 0 et en additionnant.ComplexiteOn evaluedabordunebornedunombredecontraintes`aletapep, mp,soitmp = x0 +x+ x+.Comme x0+x++x = mp1, mp prend sa valeur maximum pour x0 = 0etx+ = x = mp1, `a condition quemp1> 4.Pour le cas le pire, on a donc la recurrence mp = (mp12)2dont la solutionestmn = (m2 )2n. Cest aussi une borne du travail `a eectuer.Lacomplexiteest doncenormesauf pour les petits syst`emes. Mais laredondance est egalement enorme, surtout si le syst`eme est creux (a beau-coup de coecients nuls).Enn, il est possible que lalgorithme se termine prematurement.LalgorithmedeFourier-Motzkinesttr`essimple`aprogrammer, maisildoit etre reserve `a de petits probl`emes.UnexempleSoit le code :for(j=i+1; j 0, le vecteur colonnejreste lexicopositif.Il reste `a garantir que le vecteur colonne reste lexicopositif.ChoixdupivotSiSiest negatif, il ny a pas de probl`eme.Sinon le nouveau vecteur colonne est egal, `a un coecient positif pr`es, `a :S/Si Sj/Sij.Il faut donc choisirjpour queSij> 0 et que le vecteur reduitSj/Sijsoit le plus petit possible.Un tel choix est toujours possible sauf si on est dans le cas dun syst`emeinfaisable.DistribuesouslicenseOpen-Content: http://opencontent.org/opl.shtml24 OptimisationsanscontraintesConvergenceObserverqueletatdelalgorithmeestenti`erementdeterminequandonsaitquellessontlescomposantesdeyqui sontdansz(lesvariablesenbase).Or y est de taille m+n et z de taille n, il ny a donc que Cnm+n combinaisonspossibles.Lalgorithme ne peut pas boucler, car t crot dans lordre lexicographique.CommeCnm+nnestpasunpolynomeennetm, lalgorithmenestpaspolynomial.On peut construire des cas pathologiques qui demandent un temps expo-nentiel.Mais en pratique (et en probabilite) le nombre doperations est en O(n2(n+m)).QuestionsnumeriquesDupointdevuenumerique, lalgorithmeduSimplexeestanalogue`alamethode de Gauss, avec une r`egle particuli`ere pour le choix du pivot.Si lon connat la matrice des inconnues de base, lalgorithme ne fait quin-versercelle-ci,toutenappliquantlesmemestransformationsauxincon-nues hors base.Les resultats sont donc donnes par des formules de Cramer.On peut faire les calculs en virgule ottante. Il y a alors accumulation der-reurs darrondi, qui peuvent faire que la solution nale nest pas faisable(en particulier pour les contraintes saturees).Il faut alors developper des methodes de correction. En general la solutionest faisable, mais loptimalite nest pas garantie.On peut rendre la matrice des contraintes enti`eres, et essayer de mener lescalculs exactement (algorithmes tout entiers).Les nombres `a manipuler sont des determinants de Cramer. On peut doncles borner `a laide de linegalite de Hadamard :[det(A)[[A1[ . . . [An[,o` u lesAisont les vecteurs colonnes (ou les vecteurs lignes) deA.Il en resulte que la taille des nombres `a manipuler est bornee par n fois lataille du plus grand element deA. Cette borne est rarement atteinte.Ilfaututiliserdesarithmetiquesenprecisionarbitraire,tellelalibrairieGMP.AlgorithmeprimalOn prend le probl`eme sous la forme equivalente suivante :min f(x) = c.xAx = bx0OnpeutsupposerqueleslignesdelamatricedescontraintesAsontli-neairement independantes : on peut eliminer les lignes redondantes. A est de dimensionmn avec necessairementm < n.Danslecascontraire, lesyst`emeAx=bauraitauplusunesolution et le probl`eme serait trivial.DistribuesouslicenseOpen-Content: http://opencontent.org/opl.shtml1.3Programmationlineaire 25BaseUnebaseestunematricecarree n nextraitede Ainversible. OnpartitionneAendeuxblocsB,labase,etNlerestedelamatrice.Onpartitionne de memex enxB, xNetc encB, cN.Lasolutionassociee`aunebaseBestlevecteur(B1b, 0)T. Il satisfaitevidemment `a la contrainteAx = b.La base B est realisable si et seulement si la solution correspondante sa-tisfait egalement `a la contraintex0, cest-`a-dire six = B1b0.A une base realisable correspond une valeur de lobjectif,cB.B1b.Est-il possible dameliorer cet objectif en faisant varierxN?RecherchedeloptimumSixNnest plus nul, on a :xB= B1(b Nxn)f(x) = cB.B1b + (cNcB.B1N)xnLe vecteurc = cNcB.B1Nest le vecteur des co uts reduits.Sixi fait partie dexn, comme il est nul on ne peut que laugmenter pourquelasolutionrestefaisable. Ceci fait decrotre f(x) `aconditionqueci< 0.Si tous les co uts reduits sont positifs, on a trouve loptimum.Sinon, on choisit unxidont le co ut reduit est negatif (par exemple celuidont le co ut reduit est minimum).PuisqueonfaitcrotrexietquelesautrescomposantesdexNrestentnulles, la seule contrainte sur la valeur dexiestB1(b Nxn)0. Il ya deux cas possibles :Toutes les composantes de la colonne i de B = B1N sont negatives. Alorsxinest pas borne, et le minimum est .Sinon,`achaquecomposanteBik>0correspondlabornexi xk/Bik.Soitjlindice de la plus petite de ces bornes.Le point correspondant `a xk= 0 sauf pour k = j : xj = xj/Bij est faisableet la valeur def(x) est inferieure `a celle du point de depart.La base qui correspond au nouveau point courant sobtient en remplacantdansb le colonnei par la colonnej.On poursuit lalgorithme en inversant la nouvelle base et en calculant lanouvelle solution et les nouveaux co uts reduits.Lalgorithmeseterminesi `achaquepas lavaleur delobjectif decrotstrictement.En eet il ny a queCmnbases possibles et la condition de de-croissance stricte empeche tout bouclage.Cependant lalgorithme peut boucler en cas de degenerescence (il sembleque ce soit tr`es rare).Comme pour lalgorithme dual, on peut mener les calculs de facon incre-mentale (il sut dun seul pivot de Gauss pour inverser la nouvelle base).RecherchedupointfaisableinitialIl sagitdetrouverunpointdanslepoly`edreP= x [x0, Axb.Soit 1 le vecteur dont tous les elements sont egaux `a 1, et soit y un nouveauDistribuesouslicenseOpen-Content: http://opencontent.org/opl.shtml26 Optimisationsanscontraintesvecteur de meme taille quex. On consid`ere le probl`eme :min 1.yx0y0Ax +ybIl est facile de voir que le pointx = 0, y = max(b, 0) est faisable. On peutdonc appliquer lalgorithme precedent.Siy = 0, il est facile de voir que le pointx P.Reciproquement, si xP, alors(0, x)estfaisablepourleprobl`emeaugmente, donc le minimum est nul. Si inversement le minimum nest pasnul,Pest vide.DistribuesouslicenseOpen-Content: http://opencontent.org/opl.shtmlChapitre2OptimisationsouscontraintesOptimisationsouscontraintescourbes de niveau dela fonction objectifoptimumcontraintesResoudre :min f(x),gi(x)0, i = 1, . . . , nx RnLensemble des points faisables estx Rn[gi(x)0, i = 1, . . . n. Les fonctionsgsont les contraintes.Laprogrammationlineaireestlecasparticuliero` ufet lesgisont lineaires. On obtient des pro-bl`emesplusoumoinsdicilessuivantquelunoulautreoulesdeuxdeceselementssontnonlineaires (resp. non convexes).GeneralisationCertaines contraintes peuvent etre diciles `a mettre sous la formegi(x)0.Exemple : on veut quex soit entier (i.e. `a coordonnees enti`eres).On remplace la derni`ere contrainte par :x S Rn.2.1 ConditionsdeKuhnetTuckerCaracterisationdeloptimumOn suppose les fonctionsfetgicontinues et `a derivees continues.Loptimumxpeut etre `a linterieur deF. Dans ce cas f(x) = 0 .Loptimum peut etre sur les fronti`eres de F. Dans ce cas gi(x) = 0 pour uncertain nombres de contraintes (les contraintes saturees) et f(x) nestpas necessairement nul. On noteI 1, . . . , n lensemble des indices descontraintes saturees.28 OptimisationsouscontraintesEn particulier, si les contraintes sont toutes des contraintes degalite, lin-terieurdeFestvideetlonesttoujoursdanslederniercas(ditdeLa-grange).En programmation lineaire,f(x) = c.x, f= c nest jamais nul (ou bienle probl`eme est trivial), donc loptimum est sur la fronti`ere deF.Une direction d est admissible en un point x Fsi il existe > 0 tel que < x +d F. xest un minimum si, pour toute direction admissibled, < f(x +d)f(x).La condition dadmissibilite peut secrire :gi(x +d) = gi(x) +d.gi(x)0, i I,soit encored.gi(x)0, i I.Les directions admissibles enxappartiennent au coneC = d [d.gi(x)0, i I ,avecI = i [gi(x) = 0.La reciproque est fausse, sauf dans quelques cas particuliers :Les fonctionsgisont lineaires ou convexes ;Les gradients sont lineairement independants.SiCest lensemble des directions admissibles, alors une condition neces-saire doptimalite est :d C f(x +d) f(x)0,d C d.f(x)0.ConditionsdeKuhnetTuckerDapr`es le lemme de Farkas, il existe desi0, i Itels que :d : d.

iIi.gi(x) = d.f(x),f(x)

iIigi(x) = 0.Si onposei=0pourlescontraintesnonsaturees, onpeut etendrelasommation `a toutes les valeurs de i. Une condition necessaire pour que xsoit un minimum est donc :i0 , i = 1, . . . , nf(x) n

i=1gi(x) = 0,i.gi(x) = 0.Lesisont les multiplicateurs de Kuhn-Tucker.DistribuesouslicenseOpen-Content: http://opencontent.org/opl.shtml2.2Unemethodedirecte 29ConditionsdeLagrangeUncontraintedegalitegi=0peutserepresenterpardeuxcontraintesdinegalitegi0 etgi0.Il lui correspond deux multiplicateurs de Kuhn-Tucker,+ietipositifs.Onpeutlesregrouperenunseul dontlesigneestquelconque.`Aunecontrainte degalite correspond un multiplicateur non contraint en signe.Si toutes les contraintes sont des egalites, les multiplicateurs peuvent etrede signe arbitraire. Ils prennent le nom de multiplicateurs de Lagrange.Dans ce cas particulier, toutes les contraintes doivent etre saturees.2.2 UnemethodedirecteMethodedesplanssecantsSoit `a calculer :min f(x),gi(x)0, i = 1, . . . , nx Rno` u on suppose que les fonctionsfetgisont convexes.On remarque que lon peut supposerflineaire. Sinon, on peut remplacerle probl`eme ci-dessus par le probl`eme equivalent :min z,z f(x)0,gi(x)0, i = 1, . . . , nx RnOnproc`ededefaconiterative.Aletapek,onsupposequelonconnatun poly`edre convexeQ(k)tel que :Q(k) F= x [g(x)0 .On resout le programme lineaire :min f(x),x Q(k).Soitx(k)le point obtenu.Si x(k) F, cest le minimum cherche. Sinon, il existe i tel que gi(x(k)) < 0.On forme :Q(k+1)= Q(k)

_xgi(x(k)) +gi(x(k))T.(x x(k))0_,et on recommence.Lemme2.1. Sifest convexe, alorsf(x)f(a) +f(a)T.(x a).Demonstration. Poursimplieronvasupposerquexestunscalaire.Soitparexemple b > a. Par denition, f(x)f(a)(xa)f(b)f(a)ba. En faisant tendre xversa on en deduitf

(a) f(b)f(a)ba, ce qui nest autre que le resultat cherche.La demonstration est analogue pourb < a. DistribuesouslicenseOpen-Content: http://opencontent.org/opl.shtml30 OptimisationsouscontraintesLemme2.2. Q(k+1) F.Demonstration. Soiteneet xunpointdeF. Puisquegiestconvexe, onagi(x)gi(x(k)) +gi(x(k))T.(x x(k)). Orgi(x)0, doncx Q(k+1). Lemme2.3. x(k), Q(k

), k

> kDemonstration. Il sut dobserver que x(k)ne satisfait pas la contrainte gi(x(k))+gi(x(k))T.(x x(k))0. Lemme2.4. Six(k) F, cest le minimum cherche.Demonstration. En eet, dune partx(k) F, et dautre part,x F x Q(k) f(x)f(x(k)).

Theor`eme2.5. SiFest borne, tout point daccumulation de la suitex(k)estun optimum.Demonstration. Soity un point daccumulation, et soity(k)une suite extraitede x et convergeant vers y. Montrons dabord que y F. On supposera pourxer les idees que `a chaque pas, la contrainte utilisee pour construire une coupeest celle qui est la moins satisfaite, cest `a dire celle pour laquellegi(x(k))> 0estmaximum. Supposonsqueynesoitpasdans F, etsoit gilacontraintelamoinssatisfaite. Puisquey(k)convergeversyil existeunksusammentgrandpourquegisoitlacontraintelamoinssatisfaiteeny(k). Onajoutelacontrainte :gi(y(k)) +gi(y(k))T.(x y(k))0.

Demonstration. Il est facile de voir que la distance [[y[k

)y(k)[[, k

> k ne peutetre inferieure `a|gi(y[k)||gi(y[k)|, ce qui contredit le fait queyest limite desy(k).Supposons maintenant quil existe dansFun autre pointy

tel quef(y

) f(xk+1) + SkH(xk+1)parcequeSk+1>Sketf(xk+1) + SkH(xk+1) f(xk) + SkH(xk) puisquexkest lasolution dePk.De plus,kf(x) +SkH(x). Mais commex est faisable, la penalite estnulle. On a donc lencadrementf(xk)kf(x).

Lemme2.8. LesH(xk) forment une suite decroissante.Demonstration. Comme chaquexkest la solution dun probl`eme de minimum,on a :f(xk) +SkH(xk)f(xk+1) +SkH(xk+1),f(xk+1) +Sk+1 f(xk) +Sk+1H(xk).En additionnant et simpliant :(Sk Sk+1)(H(xk+1) H(xk))0.Comme le premier terme est negatif, lautre lest aussi. DistribuesouslicenseOpen-Content: http://opencontent.org/opl.shtml32 OptimisationsouscontraintesLesxkappartiennent `a un ensemble borne, soit parce quef(xk)f(x)et queftend vers linni `a linni, soit parce queH(xk) H(1) et queHtend vers linni `a linni. On peut donc extraire dexkune sous-suitex

, L qui converge vers x.Parcontinuite, f(x

)tendversf( x), etcommef(xk) f(x), f( x) f(x).Commekf(x),ka une limitephif(x).limS

H(x

) = f( x). Donc H(x

) tend vers 0, et par continuite H( x) =0.Donc x est un point faisable, doncf( x)f(x), doncf( x) = f(x) et xest un optimum.MethodesinterieuresOnprendcommefonctiondepenaliteunefonctionquitendverslinniau voisinage de 0, par exempleh(x) = 1/x.On minimisef(x) +R

ni=1h(gi(x)).Danslesmemesconditionsqueci-dessus, onmontrequeloptimumduprobl`emePRtend vers loptimum dePquandR tend vers 0.Toutes les solutions intermediaires sont faisables, mais il faut disposer dunpoint faisable pour commencer les calculs.ExempleLe probl`eme du cas le pire de Fourier-Motzkin :max xy +z,x +y +z = nOn eliminez`a laide de la derni`ere contrainte et on applique la methodedes penalites :max xy +n x y +S(n x y)2.On utilise un syst`eme de calcul algebrique pour achever les calculs.2.4 FonctiondeLagrange,point-colFonctiondeLagrange,point-colSoit `a resoudre :min f(x),gi(x)0, i = 1, . . . , nx S RnLa fonction de Lagrange associee est :L(x, ) = f(x) +.g(x), 0. g est le vecteur dont les composantes sont lesgi.DistribuesouslicenseOpen-Content: http://opencontent.org/opl.shtml2.4FonctiondeLagrange,point-col 33Point-col(x, ) est un point-col si et seulement si :x S, 0.x S : L(x, )L(x, ),0 : L(x, )L(x, ).Caracterisation dun point-col :L(x, ) = minxSL(x, ),g(x)0,.g(x) = 0.PreuveSoit (x, ) un point-col. La premi`ere propriete est une consequence directede la denition.La deuxi`eme propriete entrane :f(x) +.g(x)f(x) +.g(x),( ).g(x)0.Sil existait un gi(x) positif, il surait de prendre le i correspondant susam-ment grand pour violer cette inegalite. Donc i : gi(x)0.Pour = 0 on trouve :.g(x)0.Mais les deux termes du produit sont non negatifs, donc le produit est nul.Preuve,reciproqueLapremi`erecaracteristiqueentranedirectementlapremi`ereproprietedupoint-col.On deduit de la troisi`eme caracteristique queL(x, ) = f(x).Enn :L(x, ) = f(x) +.g(x)f(x) = L(x, ),puisqueg(x)0.InteretTheor`eme2.9. Si (x, ) est un point-col, alorsxest un minimum global.Demonstration. Dapr`es la denition, x S et g(x)0, donc x est faisable.Dautre part :x S, g(x)0 : f(x) = L(x, )L(x, ) = f(x) +g(x)f(x).puisque0 etg(x)0.xest donc bien minimum global. Mais il existe des probl`emes qui nont pas de point-col.DistribuesouslicenseOpen-Content: http://opencontent.org/opl.shtml34 OptimisationsouscontraintesFonctiondeLagrangeetpenalitesLa fonction de Lagrange est une fonction de penalite.L(x, ) = f(x) +.g(x), 0.En eet, dans la region infaisable, g(x) > 0, donc le second terme augmentela valeur deL, alors quon recherche un minimum.Toutefois,cetermeestnegatifdanslaregionfaisable,cequidiminueraiarticiellement lavaleur duminimum, si lonnavait pas lacontraintei : i.gi(x) = 0.Commeles methodes depenalite, lemploi delafonctiondeLagrangepermet de remplacer un probl`eme avec contraintes par un probl`eme sanscontrainte.UnemauvaiseideeMaximiserL(x, ) par rapport `a0 pourx xe. Soitg(x) le resultat.Minimiser ensuiteg(x) sans contraintes.Il est facile de trouver le maximum.Si gi(x) > 0, il sut de faire tendre i pour obtenir un maximuminni.Sinon, le maximum est egal `af(x).Ceci revient donc `a etendrefen une fonction discontinue non derivable,ce qui ne se prete pas `a loptimisation.UnebonneideeMinimiser w()=min L(x, )sanscontrainte. Maximiser w()souslacontrainte0.Lemme2.10. w() est une fonction concave.Demonstration. Soit 1, 2 deux valeurs de , et deux nombres positifs telsque + = 1, etx un point arbitraire. Par denition des minima :f(x) +1g(x)w(1),f(x) +2g(x)w(2),f(x) + (1 +2)g(x)w(1) +w(2).et cette propriete vraie partout setend au minimumw(1 +2). Application`alaprogrammationlineaireIl ne faut cependant pas croire que loptimisation dewest toujours sanscontrainte. Soit par exemple le programme lineaire :min c.x,Ax b0,x0.La fonction de Lagrange associee est :L(x, ) = c.x (Ax b) x = (c A).x +b.DistribuesouslicenseOpen-Content: http://opencontent.org/opl.shtml2.4FonctiondeLagrange,point-col 35Il est facile de voir que si cA nest pas nul, la valeur du minimum est. Sinon, cestb. Commec A = 0 est equivalent `ac A0,on voit que lon est amene `a resoudre :max .b,c A0,0.Cest le dual du probl`eme original!Etsilnyapasdepointcol ?Theor`eme 2.11. Soit xlasolutionduprobl`emeaveccontraintes. Ona:max0w()f(x).Demonstration. Commexest faisable,g(x)0. DoncL(x, ) = f(x) +g(x)f(x),w() = minxL(x, )L(x, )f(x).Cette propriete vraie pour tout setend au maximum. La solution du probl`eme dual fournit une borne inferieure de la solutiondu primal.Il y a saut de dualite quand les deux solutions ne sont pas egales. w est derivable `a loptimum, si et seulement si le saut de dualite est nul.GenerationdecolonnesSi lensembleS = x1, . . . , xn est ni, le probl`eme secrit :max0nmini=1f(xi) +g(xi)se ram`ene `a un probl`eme de programmation lineaire :P(n) : max zzf(xi) +g(xi), i = 1, . . . , n0.Soitxn, nla solution deP(n).Si S est inni, on suppose que lon a dej`a construit les points x1, . . . , xn.On resout le probl`eme lineaire ci-dessus.On determine le pointxn+1comme solution de :minxSL(x, n) = f(x) +ng(x)par une methode doptimisation sans contraintes.Soitw(n) le minimum obtenu.On recommence avecn + 1 points, jusqu`a convergence.Lemme 2.12. Soit x la solution du probl`eme avec contrainte : w(n)f(x).DistribuesouslicenseOpen-Content: http://opencontent.org/opl.shtml36 OptimisationsouscontraintesDemonstration. Puisquex S,w(n)f(x) + g(x)f(x) puisque quexest faisable. Lemme2.13. f(x)zn.Demonstration. Il est evident que f(x), n) est un point faisable pourP(n).

Lemme2.14. zn+1 zn.Demonstration. Tout point faisable pourP(n + 1) est faisable pourP(n). ConvergenceOn a lencadrementw(n)f(x)zn.Comme la suiteznest decroissante, elle converge.Mais la convergence de w(n) vers f(x) impliquerait que le saut de dualiteest nul, ce qui nest pas toujours le cas.2.5 OptimisationcombinatoireOptimisationcombinatoireProbl`emedoptimisationsous contraintes o` ulensembledes points fai-sables est non pas continu mais discret.Forme du probl`eme :min f(x)x SLes inconnues sont les n composantes du vecteur x. S est lensemble discretdes points faisables.En general, S est produit cartesien densembles plus petits, et sa taille estle produit des tailles de ces petits ensembles (do` u le nom : optimisationcombinatoire).Chaque composant deScorrespond `a un choix ; il faut trouver la bonnesuite de choix, sachant que ceux-ci ne sont pas independants en general.ExempleOn consid`ere un ordinateur sur lequel on doit executert algorithmes en-chanesAi, i=1, . . . , t. Chaquealgorithmeapourdonneeslesresultatsde lalgorithme precedent.Pourimplementerchaquealgorithme,ondoitchoisirunestructurepourses donnees. On suppose quil y as structures possibles, Sk, k = 1, . . . , set que le temps dexecution de lalgorithme depend de la structure choisie.Par exemple, une matrice peut etre rangee par ligne ou par colonne, et, parsuite des eets de cache, le temps dexecution du produit matriciel variesuivantlastructurechoisie. Onsupposeraquunalgorithmenemodiepaslastructuredessesdonnees. Onnote Tikletempsdexecutiondelalgorithmei quand les donnees on la structureSk.Onsupposequil estpossibledemodierlesstructurededonnees(parexemple, de transposer une matrice). On note k le temps necessaire pourpasser de la structureSk`a la structureS

. Remarquer quekk = 0.DistribuesouslicenseOpen-Content: http://opencontent.org/opl.shtml2.5Optimisationcombinatoire 37La structure du programme est alors :Sk0R0Sk1A1Sk1 . . . AtSktRtSkt+1On suppose quek0etkt+1sont xes par le cahier des charges.Trouver la sequence de restructurations donnant le temps total minimum.QuelquesmethodesdesolutionUne heuristique gloutonne.Onremarquequesouventkl Tik.Pourlexemplematriciel,letempsde transposition estO(n2) alors que le temps du produit estO(n3).OnchoisitdoncSkjdefaconqueTikjsoitminimum, etonrajoutedesredistributions si necessaire.Programmation dynamique. On remarque que le probl`eme a une structureanalogue `a celle dun probl`eme de plus court chemin.OnnotePn(k)leprobl`emedoptimiserleprogrammeanalogueaupro-gramme initial, mais ou on sarrete juste apr`es la redistributionRnavecune structure de donneesSk. Le probl`eme initial estPt(kt+1). Soit n(k)le meilleur temps dexecution dePn(k). On a la relation de recurrence :n(k) = min

n1() +Tn +k,0(k) = k0k.On peut calculer toutes les valeurs de nk `a laide de cette recurrence, lirela valeur de t(kt+1) et reconstituer le chemin `a suivre par retour arri`ere.Codage en variables 0-1. On pose Xik = 1 si la distribution des donnees `aletapei est la distributionSk, et 0 sinon.A chaque etape, il y a une et une seule distribution :s

k=1Xik = 1. (2.1)Le temps de calcul total est :Tc =

ti=1

sk=1TikXik.Le temps de redistribution de letapei `ai + 1 est donne parktel queXik = 1 etX(i+1) = 1, ce qui peut secrire :Tr=t

i=0s

k=1s

=1XikX(i+1)k.Il sagit de minimiser la somme Tc +Tr sous les contraintes (2.1) et Xik 0, 1. Cest un probl`eme de programmation quadratique en nombres en-tiers.ProgrammationlineaireenentiersDenition.min

x,Ax +b0,x N.DistribuesouslicenseOpen-Content: http://opencontent.org/opl.shtml38 OptimisationsouscontraintesNoterquex Nimpliquex 0. Il sagitdoncdelanalogueexactduprobl`eme resolu par lalgorithme dual, `a ceci pr`es quil y a une contraintedintegrite en plus.On suppose en general queA etb ont des coecients entiers.2.5.1 coqueenti`ereCoqueenti`ereSoitSunensemblede Rn.Lacoqueenti`eredeS,noteeSestlacoqueconvexe de lensemble des points entiers deS.x Zn S x S,x, y S, , 0, + = 1 x +y S.Proprietesdelacoqueenti`ereLemme2.15. SiA est convexe,A A.Lemme2.16. A B A B.Lemme2.17. Si Zn P Sconvexe, alorsP S.Demonstration. Un point dePest combinaison convexe dun certains nombresde points de ZnP, qui appartiennent par hypoth`ese `a S. Or S contient toutesles combinaisons convexes de ses points. Caracterisationdelasolutionenti`ereTheor`eme 2.18. La coque enti`ere dun poly`edre deni parAx +b0, avecAenti`ere, est un poly`edre.Demonstration. SoitP= Q+Cun poly`edre, o` uQ est borne etCun cone. Onpeut supposer que les vecteurs generateursvideCsont entiers, et il est facilede voir queC = C.SoitB=

iivi[ 0i1.IlestclairqueBestunpoly`edreborneinclusdansC. AdmettonsqueP=

Q+B + C(ceseramontreparlesdeuxlemmes suivants). OrQ + Best borne, et pour un poly`edre borne le theor`emeest evident, puisque la conque enti`ere est enveloppe convexe de ses points entiersqui sont en nombre nis. Lemme2.19.P

Q+B +C.Demonstration. Dapr`esunlemmeci-dessus,ilsutdeconsidererunpointxentier de P. On peut lecrire x = q+c, q Q, c C. Il en resulte c =

iivi. Onpose c

=

ii| vi et b = c c

. Il est clair que b B, donc que q +b Q+B,que c

C est entier, et que q+b = xc

est entier, donc que q+b

Q+B. Lemme2.20.

Q+B +C P.Demonstration. PuisqueQ+B P,

Q+B +C P +C =P +C =

P +C =P. DistribuesouslicenseOpen-Content: http://opencontent.org/opl.shtml2.5Optimisationcombinatoire 39MinimumentierLemme2.21. Leminimumentierdunpoly`edreestleminimumrationneldesa coque enti`ere.Demonstration. Le minimum entier x appartient `a la coque enti`ere. Supposonsquil existe dans la coque enti`ere un point x

x. Ce point est necessairement`acoordonneesnonenti`eres(puisquelacoqueenti`ereestcontenuedanslepo-ly`edre). x

est donccombinaisonconvexedepointsentiersqui lui sont toussuperieurs dans lordre lexicographique, ce qui est impossible. Le probl`eme sera resolu si on sait construire la coque enti`ere.Mais la complexite de la coque enti`ere peut etre enorme (Chvatal).Heureusement, on peut se contenter de construire quelques coupes (et nontoute la coque) : des contraintes anes qui excluent une partie de Pmaisaucun point deP.2.5.2 AlgorithmedeGomoryCoupedeGomoryConstruction dune coupe : soita/D.x +b/D0une des contraintes du probl`eme.D est le denominateur commun des co-ecients dex et du terme constant.Parconstructiondelalgorithmedual, lavaleurdecettecontrainteestlune des variables decart du probl`eme initial, qui doit etre enti`ere. Commelesx sont entiers :ax +b mod D = 0,(a mod D)x (b mod D)(modD),(a mod D)x = (b mod D) +kD, k est necessairement positif, do` u :(a mod D)x (b mod D)0.AlgorithmedeGomoryOn a mis le probl`eme sous la forme :min

xy = Sz +t0z0o` u la matrice S et le vecteur t sont entiers, ainsi que les variables y et z. zest un extrait dey, et lesn premi`eres composantes dey sont les variablesoriginales.On proc`ede comme dans lalgorithme du Simplexe jusqu`a obtenirt0.Si lalgorithme echoue, il ny a pas de solution enti`ere.Si les composantes 1 `an det sont enti`eres, cest la solution.Sinon, on choisit le premiertinon entier, on construit une coupe commeci-dessus `a laide de la contrainteSiz +ti0, et on lajoute au tableau.Le nouveau tableau nest pas faisable : le terme constant de la coupe estnegatif. On reprend lalgorithme jusqu`a terminaison.DistribuesouslicenseOpen-Content: http://opencontent.org/opl.shtml40 OptimisationsouscontraintesPreuveTheor`eme2.22. Si lalgorithmesetermine, oubienonatrouvelasolutionenti`ere, ou bien le probl`eme na pas de solution.Demonstration. Soit Pn le poly`edre obtenu apr`es la necoupe. Par construction,touslespointsentiersde P =P0sontdans Pn. Si donc Pnestvide, Pnecontient aucun point entier. Sinon, soitxle minimum lexicographique dePn,et supposons quil est entier. SiPcontenait un point entier plus petit, il seraitdansPnce qui serait une contradiction. Lemme2.23. On peut toujours supposer quil existe une solution.Demonstration. On consid`ere le probl`eme etendumin

u, xu +Ax +b0,u0,x0Il est clair que ce probl`eme a toujours une solution : il sut de prendre x nul etu tr`es grand. Si le probl`eme initial a un minimum x, alors 0, x est le minimumdu probl`eme etendu. Inversement, si le probl`eme initial na pas de solution, alorsu ne peut etre nul dans la solution du probl`eme etendu. Les deux probl`emes sontdonc equivalents. Lemme 2.24. Les minimasuccessifs xnforment unesuitecroissantedanslordre lexicographique.Demonstration.Evident, puisquePn+1 Pn. Aunecertaine etapedelalgorithme,soit jsjDxj +tD 0lalignequiva fournir la coupe.A letape qui suit, lalgorithme du Simplexe execute un pivot. Soitxjlavariable eliminee.Soit : js

jDxj +t

D0 la ligne apr`es lexecution du pivot.Lemme2.25. Il existe un nombre entierQ tel quetD< Q t

D.Demonstration. La coupe est : jsjmodDDxj tmodDD 0Les formules de changement de base donnent :t

D=tD +sjDt mod DDDsj mod D tD + t mod DD.Soitq le quotient entier par defaut det parD :t = qD +t mod D.t

Dq +t mod D + (t mod D)D.Ledeuxi`emetermeest egal `a1,il sutdoncdeprendreQ=q + 1. Dautrepartt/D = (q + 1) (D t mod D)/D< q + 1. Linegalite est stricte puisquet nest pas entier. DistribuesouslicenseOpen-Content: http://opencontent.org/opl.shtml2.5Optimisationcombinatoire 41A un instant donne du deroulement de lalgorithme, on dit quune ligne estactive si lors dune operation ulterieure, la valeur de son second membrechangera.Lemme2.26. La premi`ere ligne ne peut etre active quun nombre ni de fois.Demonstration. Soit 1 = t1|. On a lencadrement 11 < t11. Consideronslevolution de1apr`es une coupe.Si la source de la coupe est la ligne 1, apr`es le changement de base qui suit,1augmenteaumoinsduneunite. Si lasourceestuneautreligne, cestquet1est entier. Une autre ligne est source de la coupe, et si la premi`ere ligne estactive, cest queS1jest non nul. La valeur det1augmente. Quelle prenne unevaleur enti`ere ou fractionnaire, la valeur de1augmente au moins dune unite.Ort1donc1sont bornes par la solution optimalex1. Theor`eme2.27. Lalgorithme des coupes de Gomory converge.Demonstration. Nous avons vu que la premi`ere ligne ne peut etre active quunnombrenidefois.Apr`esladerni`eremodication,toutsepassecommesileprobl`eme`aresoudreavaitunecontrainteetuneinconnuedemoins(methodededeation). Onpeutdoncprouverqueladeuxi`emelignenestactivequunnombre ni de fois. De proche en proche, on voit que lalgorithme se termine. ComplexiteComme il faut pouvoir distinguer entre nombres entiers et nombres frac-tionnaires, les calculs doivent etre menes en arithmetique exacte.Les nombres `a manipuler sont des determinants de sous-matrices nn delamatricedescontraintes. Leurtaille(nombredebits)estdoncborneeparn fois le nombre de bits du plus grand coecient.Lenombremaximumdecoupesestborneparlenombredecoupesne-cessairespourcaracteriserlacoqueenti`eredelensembledessolutions.Resultat de Chvatal.2.5.3 TechniquesdecodageVariablesbooleennesOnpeutcoderunchoixentrenpossibilites`alaidedenvariables0-1,X1, . . . , Xn.Chaque variable enti`ere ne peut prendre que les valeurs 0 ou 1 : 0x1.Les choix sont exclusifs : ni=1Xi = 1.Si `a chaque choix est associe une quantite ai, la quantite associee `a un jeude variables est ni=1Xiti.On peut considerer lesXicomme des booleens et coder les operateurs :Z X Y:: ZX, ZY, ZX +Y,Z X Y:: ZX, ZY, ZX +Y 1,Z X :: Z = 1 X.DistribuesouslicenseOpen-Content: http://opencontent.org/opl.shtml42 OptimisationsouscontraintesProbl`emesdegrapheOn peut representer un graphe de nombreuses facons : matrice dincidence,matrice de connexion,Zij = 1 si et seulement si il existe un arci j.Chemin: Xij=1si etseulementsi lecheminempruntelarc i j.Contrainte :XijZij.Loi de Kircho : iXij =

k Xjk, pour toutjexcepte le debut et la ndu chemin.Chemin simple : ne passe quune fois par chaque sommet. iXij1.Pour le debut, j Xij = 1, et pour la n iXij = 1.Minimiser lasomme ij Xijassurequelecheminnapas debouclesisolees.TechniquesdegrandsnombresSoit P= x [Ax +b0 et Q = x [Cx +d0 deux poly`edres donton doit explorer les points entiers. Soitz une nouvelle variable 0-1.SiPetQ sont bornes, alors pourMsusamment grand, le poly`edre :P Q = z, x [Ax +b +Mz0, Cx +d +M(1 z)0est lunion disjointe dePetQ.On peut mener lexploration surP Q en une seule fois. Mdoit etre choisi de telle facon quex PentraneCx + d + M0 etreciproquement.DistribuesouslicenseOpen-Content: http://opencontent.org/opl.shtmlChapitre3Meta-heuristiques3.1 Separation et evaluation ou Branch-and-Bound3.1.1 AlgorithmeSeparationet evaluationPluscommunementappeleebranchandbound. Soitunprobl`emedelaforme :min f(x)gi(x)0, i = 1, . . . , nPrincipe. On construit une arbre de probl`emes. Le probl`eme initial est laracine.On sarrange pour diviser le probl`eme en deux (ou plus) sous-probl`emes,par exemple en introduisant une contrainte supplementaire, qui peut etresatisfaite ou non.Le minimum peut appartenir `a lun quelconque des sous-probl`emes.Si lon peut prouver que lun des sous probl`emes est infaisable, on lelimine.Si lun des sous-probl`emes est tellement contraint que sa solution est evi-dente, on note la valeur de sa solution.On cherche `a obtenir une borne inferieure de la solution dun sous-probl`eme.Si elleestsuperieure`alameilleuresolutiondej`aobtenue, oneliminelesous-probl`eme.Dans le cas restant, on subdivise de nouveau le sous-probl`eme.VariablesbivalentesLa methode est particuli`erement bien adaptee `a la resolution de probl`emeslineaires en variables bivalentes : les inconnues ne peuvent prendre que lesvaleurs 0 ou 1.Pourseparerunprobl`emeendeux, onchoisitlunedesinconnues, parexemplex1, et on impose les contraintesx1 = 0 oux1 = 1.Pour obtenir une borne superieure, on resout le probl`eme en continu.Unsous-probl`emesestresolusi touteslesvariablessontxeesousi lasolution continue est enti`ere.44 Meta-heuristiquesExemple:lesac`adosmax x1 + 2x2 + 3x3 + 4x44x1 + 3x2 + 3x3 +x4 5x1, x2, x3, x4 0, 1Onveut emporterdans unsac`ados decontenance 5uneselection de4objets de volumes respectifs 4, 3, 3, 1.Les utilites de ces objets sont respectivement de 1, 2, 3 et 4.Trouver la combinaison dutilite maximum.ResolutionOn value les inconnues dans lordrex1, . . . , x4.x1=1x2=1x2=0x3=1x3=0x4=1 x4=05123/3x1=0x2=1x2=0x3=1x3=0767x4=1 x4=013/3x3=1x2=1x2=0x1=1x1=0725/4x3=0Si on value les inconnues dans lordre x4, . . . , x1, la resolution est plus rapide.Meta-algorithmeOndoitdaborddenirunerepresentationdesprobl`emes`aresoudre. Parexemple, danslecasdusac-`a-dos, onnoteraletableauduprobl`emeetcellesdes inconnues qui sont dej`a valuees, dans une variable de typepb.Fonctions de specialisation :is_trivial :pb bool permet de savoir si le probl`eme peut etre resolufacilement(i.e.sitouteslesinconnues,outouteslesinconnuessaufunesont valuees).trivial_solve : pb int resout un probl`eme trivial. Doit rendre + sile probl`eme trivial nest pas faisable.bound : pb int donne une borne inferieure de la solution.branch : pb (pb, pb) decoupe un probl`eme en deux sous-probl`emes.DistribuesouslicenseOpen-Content: http://opencontent.org/opl.shtml3.1Separationet evaluationouBranch-and-Bound 45bestpb:= . . .best:= MAXINTAlgorithme:BandB(pb0)if is_trivial (pb0) thenlocal best := trivial_solve(pb0)if local best < best thenbest = local bestbestpb = pb0elselocal best := bound(pb0)if local best < best then(pb1, pb2) := bestpb(pb0)BandB(pb1)BandB(pb2)On utilise deux variables globales,best etbestpb.Danscetteversion, larbredesprobl`emesnestpasrepresenteexplicite-ment. Il est code dans la suite des appels recursifs.La recherche se fait en profondeur dabord. Lobjectif est de trouver unesolution le plus vite possible, pour pouvoir ensuite elaguer larbre.Dans le cas du sac-`a-dos, on donne la priorite `a la valeur x = 1 pour eviterla solution trivialexi = 0.Lamemoireutiliseeparlalgorithmeestproportionnelle`alahauteurdelarbre, i.e. au nombres de variables, n. Dautres versions utiliseraient unememoire de tailleO(2n).Constructiondelarbredesprobl`emesQue faire si les variables ne sont pas bivalentes ?Borner chaque variable, axb, puis ecrire en binaire la valeur de xa,avec log2(b a) bits. Engendre log2(b a) variables equivalentes.De facon equivalente, partitionner `a laide de contraintesx < (b +a)/2 etx(b + a)/2. Methode plus generale, car on peut ecrire des contraintesportant sur plusieurs variables.Il est possible de partitionner en plus de deux sous-probl`emes. Sappliqueen particulier au cas o` u les variables ne sont pas numerisees.3.1.2EvaluationLa qualite de la fonction devaluation conditionne directement lecacitede la methode.Exemple du sac `a dos. On prend comme borne superieure y1+2y2+3y3+4y4 o` u yi = xi si xi est valuee et yi = 1 sinon. Il est clair que cette fonctiondonne bien une borne superieure de lutilite.DistribuesouslicenseOpen-Content: http://opencontent.org/opl.shtml46 Meta-heuristiquesx4=1 x4=0x3=1x2=1x2=0x1=1x1=07x3=0 7 976663x3=1 x3=0x2=1 x2=0x1=1 x2=0RelaxationcontinueSi le probl`eme est lineaire et en nombres entiers, on obtient une borne (in-ferieure ou superieure) `a partir de la solution continue. La methode fournitune alternative `a la methode des coupes, `a condition que le probl`eme soitborne.Relaxation Lagrangienne. On a vu plus haut que si on sait calculer :w() = minxL(x, ),f= max0w()alorsfest une borne inferieure du minimum cherche.Exploitationdesproprietesdelafonctionobjectif, quandil estpossiblede calculer facilement son minimum en ne tenant compte que dune partiedes contraintes.LinearisationdelafonctionobjectifSilescontraintessontlineaires,onpeutremplacerfparuneminorantelineaire.Soit`aminimiserunefonctioncontenantleproduitdedeuxinconnuesxety dans un poly`edre (aectation quadratique).Si on sait dapr`es les contraintes que x0 et yb, on en deduit xybx.La solution du probl`eme dont la fonction objectif estbx est un minorantde la solution du probl`eme initial.LinearisationdescontraintesOnsupposelafonctionobjectif lineaire. Ondetermineunpoly`edrequicontientlensembledespointsentiersfaisables.Siledomainedespointsfaisables est convexe, cette representation peut etre aussi precise quon leveut.La solution dans le poly`edre est un minorant de la solution du probl`emeoriginal.Exemple : Minimiser une fonction lineaire dans un disque.3.1.3 StrategieetTactiquesLecacite de la recherche depend fortement :DistribuesouslicenseOpen-Content: http://opencontent.org/opl.shtml3.1Separationet evaluationouBranch-and-Bound 47De la qualite de la fonction devaluation.De la disponibilite dune premi`ere bonne solution. Noter quaucun ela-gage ne se produit tant quune solution nest disponible.De lordre de traitement des nuds.Dans le meta-algorithme ci-dessus :La fonction devaluation est implantee dans la fonctionbound.Lordre de valuation des variables est implante dans la fonction branch.Lordre de traitement des nuds est implante dans lalgorithme. Cestlordre en profondeur dabord et de gauche `a droite.Est-ce la meilleure strategie ?Lastrategieenprofondeurdabordfournittr`esvite(ennetapes)unesolution, et utilise peu de memoire. Mais elle peut segarer dans une regionpeu interessante de larbre.Danslastrategieenlargeurdabord,onconstruitlarbreniveauparni-veau.x1=123/3x1=0x2=1x2=0x3=1x3=076723/3 5Meta-algorithme(largeurdabord)Danslastrategiemeilleurdabord,onsebasesurlideequelavaleurde la borne inferieure est une estimation de loptimum dans le sous-arbre.On a donc interet `a developper dabord le nud qui a la meilleure borne.Dans lexemple du sac-`a-dos, les deux strategies concident.Au niveau de limplementation, il sut que les probl`emes soient ordonnespar valeur (borne) croissante. On modie les proceduresinsert etpop.On peut utiliser une structure de donnees plus adaptee, un tas par exemple.Implementationparall`eleLalgorithme par separation et evaluation se prete bien `a une implemen-tation parall`ele, parce que le developpement de chaque probl`eme est inde-pendant des autres probl`emes.La seule dependance est celle sur la meilleure solution, best. Mais on peutaccepter que cette valeur soit ajustee avec retard, la seule incidence etantun elagage moins ecace.Paradoxe : lelagage peut etre plus ecace si le parallelisme permet dat-teindre plus vite la region de larbre o` u se trouve le minimum.DistribuesouslicenseOpen-Content: http://opencontent.org/opl.shtml48 Meta-heuristiquesbestpb := . . . ; best := MAXINTqueue := ; insert(queue, pb0)whilequeue ,= dopbcurrent := pop(queue)if is_trivial(pbcurrent) thenlocal best := trivial_solve(pbcurrent)if local best < best thenbest := local bestbestpb := pbcurrentelselocal best := bound(pbcurrent)if local best < best then(pbleft, pbright) := branch(pbcurrent)insert(queue, pbleft) ;insert(queue, pbright)3.2 ProgrammationDynamiqueProgrammationdynamiqueMethode inventee par R. Bellman en 1956.Concue sur le mod`ele de lalgorithme du plus court chemin dans un graphe.On remplace la resolution dun probl`eme de taille n par celle dun certainnombre de probl`emes de taillen 1, dont on combine les resultats.Exemple : calcul du plus court chemin entre deux points dun DAG,i etj.Si i =j,alorslalongueurdupluscourtcheminest0.Sinon,cecheminpasse necessairement par lun des successeurs dei.Soitlijla longueur du plus court chemin, etdijla distance de deux som-mets adjacents. On a la recurrence :lij = minkSucc(i)dik +lkj = minkPred(j)lik +dkj.Exempledusac-`a-dosSoit `a resoudre :minn

i=1cixi,n

i=1wixi W,xi 0, 1On suppose leswientiers.On consid`ere la famille de probl`emes obtenue en faisant varier Wet en neprenant en compte que les variablesxi, i = k, . . . , n. SoitVk(W) la valeurdun tel probl`eme.DistribuesouslicenseOpen-Content: http://opencontent.org/opl.shtml3.2ProgrammationDynamique 49EquationsderecurrenceSoit `a calculerV1(W). Il y a deux choix possibles :x1 = 0,x1 = 1.Un fois la valeur dex1xee, on doit resoudre un autre probl`eme de sac-`a-dos.Six1 = 0, la capacite disponible est toujoursW, on doit calculerV2(W).Six1 = 1, il ne reste plus queW w1unites de capacite, mais on a dej`aobtenuc1unites de valeur.Dans le cas general, on a la recurrence :Vk(W) = maxVk+1(W), Vk+1(W wk) +ck.ConditionsauxlimitesQue vautVn(W) ?On ne peut xer que la valeur dexn, et on doit avoirwnWsi on veutpouvoir fairexn = 1. On a donc :Vn(W) =_cnsiWwn0 sinonDe plus,Vk(W) = 0 siW0.Methode de resolutions. On remarque que 0WB =

ni=1wi.Il sut donc de calculerVk(W) pour lesBvaleurs [1, . . . B] et pourk =n, . . . 1.Algorithme#define N ...#define B ...int w[N+1];int c[N+1];void main(void){int V[N+1][B+1];int W, k, c1, c2;for(W=1; W c2 ? c1 : c2;}}RemarquesOn lit directement la valeur du probl`eme original dansV1W.Noterquelonaresolunonseulementleprobl`emeoriginal,maislepro-bl`eme pour toutesles valeurs possibles deW. En eet,Vk(W) = Vk(B) siW> B.DistribuesouslicenseOpen-Content: http://opencontent.org/opl.shtml50 Meta-heuristiquesDans ce cas particulier, commeVk(W) ne depend que deVk+1(W

) pourW

W, onpeutnecalculerlesvaleursquepourlesvaleursdeWauplus egale `a la contrainte du probl`eme original.Exemplemax x1 + 2x2 + 3x3 + 4x44x1 + 3x2 + 3x3 +x4 5x1, x2, x3, x4 0, 1HHHHHWk1 2 3 411 10 9 7 410 9 9 7 49 9 9 7 48 9 9 7 47 9 9 7 46 7 7 7 45 7 7 7 44 7 7 7 43 4 4 4 42 4 4 4 41 4 4 4 40 0 0 0 0ComplexiteIl est facile de voir que la complexite estO(n.B).On dit que le probl`eme est pseudo-polynomial. En eet,n.Best bien unpolynome, maisBest exponentiel en la taille deswk(nombre de bits).Lensemble [0, B] estlensemble des etats de lalgorithme. Il peut etre`a plusieurs dimensions. Dans ce cas, la complexite devient prohibitive.ReconstituerlasolutionIl sut dintroduire un nouveau tableaux[N][B+1].On modie lalgorithme comme suit :if(W - w[k] > 0){c2 = V[k+1][W - w[k]] + c[k];else c2 = 0;if(c1 > c2){V[k][W] = c1; X[k][W] = 1;} else {V[k][W] = c2; X[k][W] = 0;}On reconstitue la valeur desxipar la r`egle :W = W_0;for(k=1; k f(x) thenx := ybreakuntilz = xif f(x) > best thenbest := f(x)xbest := xBassindattractionAutour de chaque maximum local a il existe un bassin dattraction A denipar :a A,(y V (x) : f(y) > f(x) y A) x A.Si le point initial est dans le bassin dattraction du maximum global, lal-gorithmeHill-Climbing trouve le maximum global.La probabilite datteindre le minimum global tend donc vers 1 quand n .Mais il est impossible davoir une certitude.3.3.2 RecuitsimuleAlgorithme de Metropolis, 1953.DistribuesouslicenseOpen-Content: http://opencontent.org/opl.shtml3.3Explorationaleatoire 55VoiraussiP.J. M.van Larrhovenans E.H.Aarts, SimulatedAnnealing,Theory and Applications, Kluwer, 1987.Analogie avec la physique statistique. Lorsquun objet physique pouvantexister dans plusieurs etats atteint lequilibre thermodynamique, la popu-lation dun etat denergieEest donnee par la loi de Boltzmann :p(E) =1ZeEkT,o` uk est la constante de Boltzmann,Tla temperature, etZun facteur denormalisation, la fonction de partition.Cet equilibre est dynamique. Il resulte de multiples transitions qui se com-pensent.UnetransitionfaisantvarierlenergiedeEauneprobabiliteproportionnelle `aeEkT .Onmodeliseunprobl`emedoptimisationpar unsyst`emethermodyna-mique dont on simule levolution.Les elements deSsont les divers etats possibles du syst`eme. Lenergiede letatx estf(x).Si le syst`eme est dans letatx, il peut passer aleatoirement dans lun desetats deV (x).La probabilite pour le syst`eme de passer dans letaty V (x) est :1Zsif(y) > f(x) ;1Zef(y)f(x)Tsif(y) < f(x). Zest le facteur de normalisation. Test une pseudo-temperature.Si le probl`eme a des contraintes qui ne sont pas integrees dans la denitiondeS, il sut de fairef(x) = quandx nest pas faisable.Au bout dun certain temps, le syst`eme se stabilise.On reduit la valeur de la temperature et on continue.La motivation est de permettre au syst`eme simule de sechapper du bassindattraction dun minimum local pour atteindre le minimum global.Algorithme:Simulated-AnnealingT:= . . .x := xbest := random(S)best = f(x)fori := 1 ton doforj := 1 tom doy := random(V (x))iff(y)> f(x) thenx := yiff(x)> best thenbest := f(x)xbest := xelsev = random([0, 1])if v< ef(y)f(x)Tthen x := yT:= 0.99TDistribuesouslicenseOpen-Content: http://opencontent.org/opl.shtml56 Meta-heuristiquesAnalysedurecuitsimuleQuand doit-on baisser la temperature (i.e., quel est la valeur dem) ?Combien de fois doit on baisser la temperature (i.e. quelle est la valeur den) ?Aquellevitessefairebaisser latemperature(lavaleur 0.99est ellelabonne) ?ChanedeMarkovUne chane de Markov uniforme, discr`ete et `a temps discret est un syst`emequi peut exister dans plusieurs etats formant un ensemble S. Soit xn letatdu syst`eme `a letat n. La chane ne change detat quaux instants de valeurenti`ere.Laprobabilitedetransitiondeletatx`aletatynedependquedexetdey.Ellenedependnidutemps,nides etatsanterieursoccupesparlesyst`eme. SoitPxyla probabilite de transition de letatx `a letaty.Ondoitavoir yS Pxy=1. Lamatricepxyestunematricestochas-tique.Il est clair quun algorithme de recuit simule fonctionne comme une chanede Markov.CalculdesprobabilitesdetransitionChaque tirage peut avoir trois resultats :On tire un pointy tel quef(y) > f(x).Ontireunpoint ytel quef(y)