70
Recherche Op´ erationnelle Deuxi` eme Partie Paul Feautrier ENS Lyon 29 novembre 2005

Recherche Op´erationnelle Deuxi`eme Partie

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Recherche Op´erationnelle Deuxi`eme Partie

Recherche OperationnelleDeuxieme Partie

Paul Feautrier

ENS Lyon

29 novembre 2005

Page 2: Recherche Op´erationnelle Deuxi`eme Partie

Plan

I Introduction et principaux concepts

I Optimisation continue sans contrainte

I Programmation lineaire

I Optimisation continue sous contrainteI Optimisation combinatoire

I Programmation lineaire en nombres entiers.I ExplorationI MetaheuristiquesI Programmation dynamique

I Elements de Complexite

Page 3: Recherche Op´erationnelle Deuxi`eme Partie

Optimisation sous contraintes

courbes de niveau dela fonction objectif

optimum

contraintes

I Resoudre :min f (x),

gi (x) 6 0, i = 1, . . . , nx ∈ Rn

I L’ensemble des points faisables estx ∈ Rn | gi (x) 6 0, i = 1, . . . n. Lesfonctions g sont les contraintes.

I La programmation lineaire est le casparticulier ou f et les gi sont lineaires.On obtient des problemes plus oumoins difficiles suivant que l’un oul’autre ou les deux de ces elementssont non lineaires (resp. nonconvexes).

Page 4: Recherche Op´erationnelle Deuxi`eme Partie

Generalisation

I Certaines contraintes peuvent etre difficiles a mettre sous laforme gi (x) 6 0.

I Exemple: on veut que x soit entier (i.e. a coordonneesentieres).

I On remplace la derniere contrainte par :

x ∈ S ⊆ Rn.

Page 5: Recherche Op´erationnelle Deuxi`eme Partie

Organisation de l’expose

I Conditions necessaires de Kuhn-TuckerI Methodes directes ; linearisation.

I Methode des plans secants.

I Fonction de Lagrange, point-col.I Methodes duales

I Methodes de penaliteI Methodes lagrangiennes

Page 6: Recherche Op´erationnelle Deuxi`eme Partie

Plan

Kuhn-Tucker

Une methode directe

Methodes duales

Fonction de Lagrange, point-col

Optimisation combinatoirecoque entiereAlgorithme de GomoryTechniques de codage

Page 7: Recherche Op´erationnelle Deuxi`eme Partie

Caracterisation de l’optimum I / III

I On suppose les fonctions f et gi continues et a deriveescontinues.

I L’optimum x∗ peut etre a l’interieur de F . Dans ce cas∇f (x∗) = 0 .

I L’optimum peut etre sur les frontieres de F . Dans ce casgi (x

∗) = 0 pour un certain nombres de contraintes (lescontraintes saturees) et ∇f (x∗) n’est pas necessairement nul.On note I ⊆ 1, . . . , n l’ensemble des indices des contraintessaturees.

I En particulier, si les contraintes sont toutes des contraintesd’egalite, l’interieur de F est vide et l’on est toujours dans ledernier cas (dit de Lagrange).

Page 8: Recherche Op´erationnelle Deuxi`eme Partie

Caracterisation de l’optimum II / III

I En programmation lineaire, f (x) = c.x , ∇f = c n’est jamaisnul (ou bien le probleme est trivial), donc l’optimum est sur lafrontiere de F .

I Une direction d est admissible en un point x∗ ∈ F si il existeη > 0 tel que λ < η ⇒ x∗ + λd ∈ F .

I x∗ est un minimum si, pour toute direction admissible d ,

λ < η ⇒ f (x∗ + λd) > f (x∗).

I La condition d’admissibilite peut s’ecrire :

gi (x∗ + λd) = gi (x

∗) + λd .∇gi (x∗) 6 0, i ∈ I ,

soit encore d .∇gi (x∗) 6 0, i ∈ I .

Page 9: Recherche Op´erationnelle Deuxi`eme Partie

Caracterisation de l’optimum III / III

I Les directions admissibles en x∗ appartiennent au cone

C = d | d .∇gi (x∗) 6 0, i ∈ I ,

avec I = i | gi (x∗) = 0.

I La reciproque est fausse, sauf dans quelques cas particuliers :I Les fonctions gi sont lineaires ou convexes ;I Les gradients sont lineairement independants.

I Si C est l’ensemble des directions admissibles, alors unecondition necessaire d’optimalite est :

d ∈ C ⇒ f (x∗ + λd)− f (x∗) > 0,

d ∈ C ⇒ d .∇f (x∗) > 0.

Page 10: Recherche Op´erationnelle Deuxi`eme Partie

Conditions de Kuhn et Tucker

I D’apres le lemme de Farkas, il existe des λi > 0, i ∈ I telsque :

∀d : −d .∑i∈I

λi .∇gi (x) = d .∇f (x∗),

∇f (x∗)−∑i∈I

λi∇gi (x) = 0.

I Si on pose λi = 0 pour les contraintes non saturees, on peutetendre la sommation a toutes les valeurs de i . Une conditionnecessaire pour que x∗ soit un minimum est donc :

∃λi > 0 , i = 1, . . . , n

∇f (x∗) −n∑

i=1

λi∇gi (x∗) = 0,

λi .gi (x∗) = 0.

I Les λi sont les multiplicateurs de Kuhn-Tucker.

Page 11: Recherche Op´erationnelle Deuxi`eme Partie

Conditions de Lagrange

I Un contrainte d’egalite gi = 0 peut se representer par deuxcontraintes d’inegalite gi > 0 et gi 6 0.

I Il lui correspond deux multiplicateurs de Kuhn-Tucker, λ+i et

λ−i positifs.

I On peut les regrouper en un seul dont le signe est quelconque.A une contrainte d’egalite correspond un multiplicateur noncontraint en signe.

I Si toutes les contraintes sont des egalites, les multiplicateurspeuvent etre de signe arbitraire. Ils prennent le nom demultiplicateurs de Lagrange.

I Dans ce cas particulier, toutes les contraintes doivent etresaturees.

Page 12: Recherche Op´erationnelle Deuxi`eme Partie

Plan

Kuhn-Tucker

Une methode directe

Methodes duales

Fonction de Lagrange, point-col

Optimisation combinatoirecoque entiereAlgorithme de GomoryTechniques de codage

Page 13: Recherche Op´erationnelle Deuxi`eme Partie

Methode des plans secants I / VII

I Soit a calculer :

min f (x),

gi (x) 6 0, i = 1, . . . , n

x ∈ Rn

ou on suppose que les fonctions f et gi sont convexes.

I On remarque que l’on peut supposer f lineaire. Sinon, on peutremplacer le probleme ci-dessus par le probleme equivalent :

min z ,

z − f (x) > 0,

gi (x) 6 0, i = 1, . . . , n

x ∈ Rn

Page 14: Recherche Op´erationnelle Deuxi`eme Partie

Methode des plans secants II / VII

I On procede de facon iterative. A l’etape k, on suppose quel’on connaıt un polyedre convexe Q(k) tel que :

Q(k) ⊆ F = x | g(x) 6 0 .

I On resout le programme lineaire :

min f (x),

x ∈ Q(k).

Soit x (k) le point obtenu.

I Si x (k) ∈ F , c’est le minimum cherche. Sinon, il existe i telque gi (x

(k)) > 0. On forme :

Q(k+1) = Q(k)⋂

x∣∣∣ gi (x

(k)) +∇gi (x(k))T .(x − x (k)) 6 0

,

et on recommence.

Page 15: Recherche Op´erationnelle Deuxi`eme Partie

Methode des plans secants III / VII

LemmeSi f est convexe, alors f (x) > f (a) +∇f (a)T .(x − a).

Demonstration.Pour simplifier on va supposer que x est un scalaire. Soit parexemple b > a. Par definition, f (x)− f (a) 6 (x − a) f (b)−f (a)

b−a . En

faisant tendre x vers a on en deduit f ′(a) 6 f (b)−f (a)b−a , ce qui n’est

autre que le resultat cherche. La demonstration est analogue pourb < a.

Page 16: Recherche Op´erationnelle Deuxi`eme Partie

Methode des plans secants IV / VII

LemmeQ(k+1) ⊆ F .

Demonstration.Soit en effet x un point de F . Puisque gi est convexe, on agi (x) > gi (x

(k)) +∇gi (x(k))T .(x − x (k)). Or gi (x) 6 0, donc

x ∈ Q(k+1).

Lemmex (k) 6∈ Q(k′), k ′ > k

Demonstration.Il suffit d’observer que x (k) ne satisfait pas la contraintegi (x

(k)) +∇gi (x(k))T .(x − x (k)) 6 0.

Page 17: Recherche Op´erationnelle Deuxi`eme Partie

Methode des plans secants V / VII

LemmeSi x (k) ∈ F , c’est le minimum cherche.

Demonstration.En effet, d’une part x (k) ∈ F , et d’autre part,

x ∈ F ⇒ x ∈ Q(k) ⇒ f (x) > f (x (k)).

Page 18: Recherche Op´erationnelle Deuxi`eme Partie

Methode des plans secants VI / VII

TheoremeSi F est borne, tout point d’accumulation de la suite x (k) est unoptimum.

Demonstration.Soit y∗ un point d’accumulation, et soit y (k) une suite extraite dex∗ et convergeant vers y∗. Montrons d’abord que y∗ ∈ F . Onsupposera pour fixer les idees que a chaque pas, la contrainteutilisee pour construire une coupe est celle qui est la moinssatisfaite, c’est a dire celle pour laquelle gi (x

(k)) > 0 estmaximum. Supposons que y∗ ne soit pas dans F , et soit gi lacontrainte la moins satisfaite. Puisque y (k) converge vers y il existeun k∗ suffisamment grand pour que gi soit la contrainte la moinssatisfaite en y (k). On ajoute la contrainte :

gi (y(k)) +∇gi (y

(k))T .(x − y (k)) 6 0.

Page 19: Recherche Op´erationnelle Deuxi`eme Partie

Methode des plans secants VII / VII

Demonstration.Il est facile de voir que la distance ||y [k′) − y (k)||, k ′ > k ne peut

etre inferieure a |gi (y[k)|

|∇gi (y [k)| , ce qui contredit le fait que y∗ est limite

des y (k).Supposons maintenant qu’il existe dans F un autre point y ′ tel quef (y ′) < f (y∗). Comme y ′ ∈ Q(k)∀k, il s’en suit que l’algorithme deprogrammation lineaire devrait toujours construire un point x (k) telque f (x (k)) 6 f (y ′). Par suite de la continuite de f , toute limite x∗

de la suite x (k) doit etre telle que f (x∗) 6 f (y ′) ce qui estcontradictoire.

Page 20: Recherche Op´erationnelle Deuxi`eme Partie

Plan

Kuhn-Tucker

Une methode directe

Methodes duales

Fonction de Lagrange, point-col

Optimisation combinatoirecoque entiereAlgorithme de GomoryTechniques de codage

Page 21: Recherche Op´erationnelle Deuxi`eme Partie

Methodes de penalites

I Principe : au lieu d’exclure les points qui violent les contraintes,ajouter a la fonction economique une penalite d’autant plus eleveeque la contrainte est moins respectee. Si la fonction de penalite estreguliere, on peut utiliser les methodes d’optimisation sanscontrainte.

I En general, la penalite depend d’un parametre qui permet de reglerson importance. Quand la penalite devient tres grande devant lafonction objectif, on tend vers l’optimum sous contrainte. Mais lafonction a optimiser devient de plus en plus mal conditionnee.

I Deux varietes :

I La fonction de penalite est nulle dans le domaine faisable.L’optimum penalise n’est pas faisable. C’est une methodeexterieure.

I La fonction de penalite devient infinie quand on sort dudomaine faisable. L’optimum est faisable, mais la methode abesoin d’un point faisable initial.

Page 22: Recherche Op´erationnelle Deuxi`eme Partie

Methodes exterieures

I On considere la fonction h(x) egale a 0 si x 6 0 et a x2 sinon.Il est facile de voir qu’elle est continue et a derive continue.

I On remplace le probleme :

P : min f (x),

gi (x) 6 0, i = 1, . . . , n

x ∈ Rn

par la suite de problemes :

Pk : min f (x) + Sk

n∑i=1

h(gi (x)).

ou les Sk forment une suite croissante tendant vers l’infini.

I On note H(x) =∑n

i=1 h(gi (x)) et xk la solution de Pk .

Page 23: Recherche Op´erationnelle Deuxi`eme Partie

Convergence I / III

TheoremeSi f est continue, si l’ensemble des points faisables est ferme et sisoit f (x) soit H(x) tend vers l’infini quand x tend vers l’infini, alorstout point d’accumulation de la suite xk est une solution de P.

On note ϕk = f (xk) + SkH(xk), et x∗ une solution de P.

LemmeLes ϕk forment une suite decroissante.

Demonstration.On a f (xk+1) + Sk+1H(xk+1) > f (xk+1) + SkH(xk+1) parce queSk+1 > Sk et f (xk+1) + SkH(xk+1) > f (xk) + SkH(xk) puisque xk

est la solution de Pk .De plus, ϕk 6 f (x∗) + SkH(x∗). Mais comme x∗ est faisable, lapenalite est nulle. On a donc l’encadrement

f (xk) 6 ϕk 6 f (x∗).

Page 24: Recherche Op´erationnelle Deuxi`eme Partie

Convergence II / III

LemmeLes H(xk) forment une suite decroissante.

Demonstration.Comme chaque xk est la solution d’un probleme de minimum, ona :

f (xk) + SkH(xk) 6 f (xk+1) + SkH(xk+1),

f (xk+1) + Sk+1 6 f (xk) + Sk+1H(xk).

En additionnant et simplifiant :

(Sk − Sk+1)(H(xk+1)− H(xk)) > 0.

Comme le premier terme est negatif, l’autre l’est aussi.

Page 25: Recherche Op´erationnelle Deuxi`eme Partie

Convergence III / III

I Les xk appartiennent a un ensemble borne, soit parce quef (xk) 6 f (x∗) et que f tend vers l’infini a l’infini, soit parceque H(xk) 6 H(1) et que H tend vers l’infini a l’infini. Onpeut donc extraire de xk une sous-suite x`, ` ∈ L qui convergevers x .

I Par continuite, f (x`) tend vers f (x), et comme f (xk) 6 f (x∗),f (x) 6 f (x).

I Comme ϕk 6 f (x∗), ϕk a une limite phi∗ 6 f (x∗).

I lim S`H(x`) = ϕ∗ − f (x). Donc H(x`) tend vers 0, et parcontinuite H(x) = 0.

I Donc x est un point faisable, donc f (x) > f (x∗), doncf (x) = f (x∗) et x est un optimum.

Page 26: Recherche Op´erationnelle Deuxi`eme Partie

Methodes interieures

I On prend comme fonction de penalite une fonction qui tendvers l’infini au voisinage de 0, par exemple h(x) = −1/x .

I On minimise f (x) + R∑n

i=1 h(gi (x)).

I Dans les memes conditions que ci-dessus, on montre quel’optimum du probleme PR tend vers l’optimum de P quandR tend vers 0.

I Toutes les solutions intermediaires sont faisables, mais il fautdisposer d’un point faisable pour commencer les calculs.

Page 27: Recherche Op´erationnelle Deuxi`eme Partie

Exemple

I Le probleme du cas le pire de Fourier-Motzkin:

max xy + z ,

x + y + z = n

I On elimine z a l’aide de la derniere contrainte et on appliquela methode des penalites :

max xy + n − x − y + S(n − x − y)2.

I On utilise un systeme de calcul algebrique pour achever lescalculs.

Page 28: Recherche Op´erationnelle Deuxi`eme Partie

Plan

Kuhn-Tucker

Une methode directe

Methodes duales

Fonction de Lagrange, point-col

Optimisation combinatoirecoque entiereAlgorithme de GomoryTechniques de codage

Page 29: Recherche Op´erationnelle Deuxi`eme Partie

Fonction de Lagrange, point-col

I Soit a resoudre :

min f (x),

gi (x) 6 0, i = 1, . . . , n

x ∈ S ⊆ Rn

I La fonction de Lagrange associee est :

L(x , λ) = f (x) + λ.g(x), λ > 0.

I g est le vecteur dont les composantes sont les gi .

Page 30: Recherche Op´erationnelle Deuxi`eme Partie

Point-col

I (x∗, λ∗) est un point-col si et seulement si :

x∗ ∈ S , λ∗ > 0.

∀x ∈ S : L(x∗, λ∗) 6 L(x , λ∗),

∀λ > 0 : L(x∗, λ∗) > L(x∗, λ).

I Caracterisation d’un point-col :

L(x∗, λ∗) = minx∈S

L(x , λ∗),

g(x∗) 6 0,

λ∗.g(x∗) = 0.

Page 31: Recherche Op´erationnelle Deuxi`eme Partie

Preuve

Soit (x∗, λ∗) un point-col. La premiere propriete est uneconsequence directe de la definition.La deuxieme propriete entraıne :

f (x∗) + λ∗.g(x∗) > f (x∗) + λ.g(x∗),

(λ− λ∗).g(x∗) 6 0.

S’il existait un gi (x∗) positif, il suffirait de prendre le λi

correspondant suffisamment grand pour violer cette inegalite. Donc∀i : gi (x

∗) 6 0.Pour λ = 0 on trouve :

−λ∗.g(x∗) 6 0.

Mais les deux termes du produit sont non negatifs, donc le produitest nul.

Page 32: Recherche Op´erationnelle Deuxi`eme Partie

Preuve, reciproque

La premiere caracteristique entraıne directement la premierepropriete du point-col.On deduit de la troisieme caracteristique que L(x∗, λ∗) = f (x∗).Enfin :

L(x∗, λ) = f (x∗) + λ.g(x∗) 6 f (x∗) = L(x∗, λ∗),

puisque g(x∗) 6 0.

Page 33: Recherche Op´erationnelle Deuxi`eme Partie

Interet

TheoremeSi (x∗, λ∗) est un point-col, alors x∗ est un minimum global.

Demonstration.D’apres la definition, x∗ ∈ S et g(x∗) 6 0, donc x∗ est faisable.D’autre part :

∀x ∈ S , g(x) > 0 : f (x∗) = L(x∗, λ∗) 6 L(x , λ∗) = f (x)+λ∗g(x) 6 f (x).

puisque λ∗ > 0 et g(x) 6 0.x∗ est donc bien minimum global.

Mais il existe des problemes qui n’ont pas de point-col.

Page 34: Recherche Op´erationnelle Deuxi`eme Partie

Fonction de Lagrange et penalites

I La fonction de Lagrange est une fonction de penalite.

L(x , λ) = f (x) + λ.g(x), λ > 0.

I En effet, dans la region infaisable, g(x) > 0, donc le secondterme augmente la valeur de L, alors qu’on recherche unminimum.

I Toutefois, ce terme est negatif dans la region faisable, ce quidiminuerai artificiellement la valeur du minimum, si l’onn’avait pas la contrainte ∀i : λi .gi (x

∗) = 0.

I Comme les methodes de penalite, l’emploi de la fonction deLagrange permet de remplacer un probleme avec contraintespar un probleme sans contrainte.

Page 35: Recherche Op´erationnelle Deuxi`eme Partie

Une mauvaise idee

I Maximiser L(x , λ) par rapport a λ > 0 pour x fixe. Soit g(x)le resultat. Minimiser ensuite g(x) sans contraintes.

I Il est facile de trouver le maximum.I Si gi (x) > 0, il suffit de faire tendre λi →∞ pour obtenir un

maximum infini.I Sinon, le maximum est egal a f (x).

I Ceci revient donc a etendre f en une fonction discontinue nonderivable, ce qui ne se prete pas a l’optimisation.

Page 36: Recherche Op´erationnelle Deuxi`eme Partie

Une bonne idee

I Minimiser w(λ) = min L(x , λ) sans contrainte. Maximiserw(λ) sous la contrainte λ > 0.

Lemmew(λ) est une fonction concave.

Demonstration.Soit λ1, λ2 deux valeurs de λ, α et β deux nombres positifs telsque α + β = 1, et x un point arbitraire. Par definition 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 s’etend au minimumw(αλ1 + βλ2).

Page 37: Recherche Op´erationnelle Deuxi`eme Partie

Application a la programmation lineaire

I Il ne faut pas croire que l’optimisation de w est toujours sanscontrainte. Soit par exemple le programme lineaire :

min c.x ,

Ax − b > 0,

x > 0.

I La fonction de Lagrange associee est :

L(x , λ) = c.x − λ(Ax − b)− µx = (c − λA− µ).x + λb.

I Il est facile de voir que si c − λA− µ n’est pas nul, la valeur duminimum est −∞. Sinon, c’est λb. Comme c − λA− µ = 0 estequivalent a c − λA > 0, on voit que l’on est amene a resoudre :

max λ.b,

c − λA > 0,

λ > 0.

C’est le dual du probleme original!

Page 38: Recherche Op´erationnelle Deuxi`eme Partie

Et s’il n’y a pas de point col ?

TheoremeSoit x∗ la solution du probleme avec contraintes. On a :maxλ>0 w(λ) 6 f (x∗).

Demonstration.Comme x∗ est faisable, g(x∗) 6 0. Donc

L(x∗, λ) = f (x∗) + λg(x∗) 6 f (x∗),

w(λ) = minx

L(x , λ) 6 L(x∗, λ) 6 f (x∗).

Cette propriete vraie pour tout λ s’etend au maximum.

I La solution du probleme dual fournit une borne inferieure de lasolution du primal.

I Il y a «saut de dualite» quand les deux solutions ne sont pasegales.

I w est derivable a l’optimum, si et seulement si le saut dedualite est nul.

Page 39: Recherche Op´erationnelle Deuxi`eme Partie

Generation de colonnes I / III

I Si l’ensemble S = x1, . . . , xn est fini, le probleme s’ecrit :

maxλ>0

nmini=1

f (xi ) + λg(xi )

se ramene a un probleme de programmation lineaire :

P(n) : max z

z 6 f (xi ) + λg(xi ), i = 1, . . . , n

λ > 0.

I Soit xn, λn la solution de P(n).

Page 40: Recherche Op´erationnelle Deuxi`eme Partie

Generation de colonnes II / III

I Si S est infini, on suppose que l’on a deja construit les pointsx1, . . . , xn.

I On resout le probleme lineaire ci-dessus.

I On determine le point xn+1 comme solution de :

minx∈S

L(x , λn) = f (x) + λng(x)

par une methode d’optimisation sans contraintes.

I Soit w(λn) le minimum obtenu.

I On recommence avec n + 1 points, jusqu’a convergence.

Page 41: Recherche Op´erationnelle Deuxi`eme Partie

Generation de colonnes III / III

LemmeSoit x∗ la solution du probleme avec contrainte: w(λn) 6 f (x∗).

Demonstration.Puisque x∗ ∈ S , w(λn) 6 f (x∗) + λg(x∗) 6 f (x∗) puisque que x∗

est faisable.

Lemmef (x∗) 6 zn.

Demonstration.Il est evident que 〈f (x∗), λn〉 est un point faisable pour P(n).

Lemmezn+1 6 zn.

Demonstration.Tout point faisable pour P(n + 1) est faisable pour P(n).

Page 42: Recherche Op´erationnelle Deuxi`eme Partie

Convergence

I On a l’encadrement w(λn) 6 f (x∗) 6 zn.

I Comme la suite zn est decroissante, elle converge.

I Mais la convergence de w(λn) vers f (x∗) impliquerait que lesaut de dualite est nul, ce qui n’est pas toujours le cas.

Page 43: Recherche Op´erationnelle Deuxi`eme Partie

Plan

Kuhn-Tucker

Une methode directe

Methodes duales

Fonction de Lagrange, point-col

Optimisation combinatoirecoque entiereAlgorithme de GomoryTechniques de codage

Page 44: Recherche Op´erationnelle Deuxi`eme Partie

Optimisation combinatoire

I Probleme d’optimisation sous contraintes ou l’ensemble despoints faisables est non pas continu mais discret.

I Forme du probleme :

min f (x)

x ∈ S

I Les inconnues sont les n composantes du vecteur x . S estl’ensemble discret des points faisables.

I En general, S est produit cartesien d’ensembles plus petits, etsa taille est le produit des tailles de ces petits ensembles (d’oule nom : optimisation combinatoire).

I Chaque composant de S correspond a un choix ; il fauttrouver la bonne suite de choix, sachant que ceux-ci ne sontpas independants en general.

Page 45: Recherche Op´erationnelle Deuxi`eme Partie

Exemple I / II

I On considere un ordinateur sur lequel on doit executer talgorithmes enchaınes Ai , i = 1, . . . , t. Chaque algorithme apour donnees les resultats de l’algorithme precedent.

I Pour implementer chaque algorithme, on doit choisir unestructure pour ses donnees. On suppose qu’il y a s structurespossibles, Sk , k = 1, . . . , s et que le temps d’execution del’algorithme depend de la structure choisie. Par exemple, unematrice peut etre rangee par ligne ou par colonne, et, parsuite des effets de cache, le temps d’execution du produitmatriciel varie suivant la structure choisie. On supposeraqu’un algorithme ne modifie pas la structure des ses donnees.On note Tik le temps d’execution de l’algorithme i quand lesdonnees on la structure Sk .

Page 46: Recherche Op´erationnelle Deuxi`eme Partie

Exemple II / II

I On suppose qu’il est possible de modifier les structure dedonnees (par exemple, de transposer une matrice). On noteθk` le temps necessaire pour passer de la structure Sk a lastructure S`. Remarquer que θkk = 0.

I La structure du programme est alors :

Sk0R0Sk1A1Sk1 . . .AtSktRtSkt+1

I On suppose que k0 et kt+1 sont fixes par le cahier des charges.

I Trouver la sequence de restructurations donnant le tempstotal minimum.

Page 47: Recherche Op´erationnelle Deuxi`eme Partie

Quelques methodes de solution I / III

I Une heuristique gloutonne.

I On remarque que souvent θkl Tik . Pour l’exemple matriciel,le temps de transposition est O(n2) alors que le temps duproduit est O(n3).

I On choisit donc Skjde facon que Tikj

soit minimum, et onrajoute des redistributions si necessaire.

Page 48: Recherche Op´erationnelle Deuxi`eme Partie

Quelques methodes de solution II / III

I Programmation dynamique. On remarque que le probleme aune structure analogue a celle d’un probleme de plus courtchemin.

I On note Pn(k) le probleme d’optimiser le programmeanalogue au programme initial, mais ou on s’arrete juste apresla redistribution Rn avec une structure de donnees Sk . Leprobleme initial est Pt(kt+1). Soit Ωn(k) le meilleur tempsd’execution de Pn(k). On a la relation de recurrence :

Ωn(k) = min`

Ωn−1(`) + Tn` + θ`k ,

Ω0(k) = θk0k .

I On peut calculer toutes les valeurs de Ωnk a l’aide de cetterecurrence, lire la valeur de Ωt(kt+1) et reconstituer le chemina suivre par retour arriere.

Page 49: Recherche Op´erationnelle Deuxi`eme Partie

Quelques methodes de solution III / III

I Codage en variables 0-1. On pose Xik = 1 si la distributiondes donnees a l’etape i est la distribution Sk , et 0 sinon.

I A chaque etape, il y a une et une seule distribution :s∑

k=1

Xik = 1. (1)

I Le temps de calcul total est : Tc =∑t

i=1

∑sk=1 TikXik .

I Le temps de redistribution de l’etape i a i + 1 est donne parθk` tel que Xik = 1 et X(i+1)` = 1, ce qui peut s’ecrire :

Tr =t∑

i=0

s∑k=1

s∑`=1

XikX(i+1)`θk`.

I Il s’agit de minimiser la somme Tc + Tr sous les contraintes(1) et Xik ∈ 0, 1. C’est un probleme de programmationquadratique en nombres entiers.

Page 50: Recherche Op´erationnelle Deuxi`eme Partie

Programmation lineaire en entiers

I Definition.

min x ,

Ax + b > 0,

x ∈ N.

I Noter que x ∈ N implique x > 0. Il s’agit donc de l’analogueexact du probleme resolu par l’algorithme dual, a ceci presqu’il y a une contrainte d’integrite en plus.

I On suppose en general que A et b ont des coefficients entiers.

Page 51: Recherche Op´erationnelle Deuxi`eme Partie

Plan

Kuhn-Tucker

Une methode directe

Methodes duales

Fonction de Lagrange, point-col

Optimisation combinatoirecoque entiereAlgorithme de GomoryTechniques de codage

Page 52: Recherche Op´erationnelle Deuxi`eme Partie

Coque entiere I / II

I Soit S un ensemble de Rn. La coque entiere de S , notee S estla coque convexe de l’ensemble des points entiers de S .

x ∈ Zn ∩ S ⇒ x ∈ S ,

x , y ∈ S , λ, µ > 0, λ + µ = 1 ⇒ λx + µy ∈ S .

Page 53: Recherche Op´erationnelle Deuxi`eme Partie

Proprietes de la coque entiere

LemmeSi A est convexe, A ⊆ A.

LemmeA ⊆ B ⇒ A ⊆ B.

LemmeSi Zn ∩ P ⊆ S convexe, alors P ⊆ S.

Demonstration.Un point de P est combinaison convexe d’un certains nombres depoints de Zn ∩ P, qui appartiennent par hypothese a S . Or Scontient toutes les combinaisons convexes de ses points.

Page 54: Recherche Op´erationnelle Deuxi`eme Partie

Caracterisation de la solution entiere

TheoremeLa coque entiere d’un polyedre defini par Ax + b > 0, avec Aentiere, est un polyedre.

Demonstration.Soit P = Q + C un polyedre, ou Q est borne et C un cone. Onpeut supposer que les vecteurs generateurs vi de C sont entiers, etil est facile de voir que C = C .Soit B =

∑i µivi | 0 6 µi 6 1. Il est clair que B est un

polyedre borne inclus dans C . Admettons que P = Q + B + C (cesera montre par les deux lemmes suivants). Or Q + B est borne, etpour un polyedre borne le theoreme est evident, puisque la conqueentiere est enveloppe convexe de ses points entiers qui sont ennombre fini.

Page 55: Recherche Op´erationnelle Deuxi`eme Partie

Coque entiere II / II

LemmeP ⊆ Q + B + C.

Demonstration.D’apres un lemme ci-dessus, il suffit de considerer un point x entierde P. On peut l’ecrire x = q + c, q ∈ Q, c ∈ C . Il en resultec =

∑i µivi . On pose c ′ =

∑i bµic vi et b = c − c ′. Il est clair que

b ∈ B, donc que q + b ∈ Q + B, que c ′ ∈ C est entier, et queq + b = x − c ′ est entier, donc que q + b ∈ Q + B.

LemmeQ + B + C ⊆ P.

Demonstration.Puisque Q + B ⊆ P,Q + B + C ⊆ P + C = P + C = P + C = P.

Page 56: Recherche Op´erationnelle Deuxi`eme Partie

Minimum entier

LemmeLe minimum entier d’un polyedre est le minimum rationnel de sacoque entiere.

Demonstration.Le minimum entier x∗ appartient a la coque entiere. Supposonsqu’il existe dans la coque entiere un point x ′ x∗. Ce point estnecessairement a coordonnees non entieres (puisque la coqueentiere est contenue dans le polyedre). x ′ est donc combinaisonconvexe de points entiers qui lui sont tous superieurs dans l’ordrelexicographique, ce qui est impossible.

I Le probleme sera resolu si on sait construire la coque entiere.I Mais la complexite de la coque entiere peut etre enorme.I Heureusement, on peut se contenter de construire quelques

coupes (et non toute la coque) : des contraintes affines quiexcluent une partie de P mais aucun point de P.

Page 57: Recherche Op´erationnelle Deuxi`eme Partie

Plan

Kuhn-Tucker

Une methode directe

Methodes duales

Fonction de Lagrange, point-col

Optimisation combinatoirecoque entiereAlgorithme de GomoryTechniques de codage

Page 58: Recherche Op´erationnelle Deuxi`eme Partie

Coupe de Gomory

I Construction d’une coupe : soit

a/D.x + b/D > 0

une des contraintes du probleme. D est le denominateurcommun des coefficients de x et du terme constant.

I Par construction de l’algorithme dual, la valeur de cettecontrainte est l’une des variables d’ecart du probleme initial,qui doit etre entiere. Comme les x sont entiers :

ax + b mod D = 0,

(a mod D)x ≡ (−b mod D)(modD),

(a mod D)x = (−b mod D) + kD,

I k est necessairement positif, d’ou :

(a mod D)x − (−b mod D) > 0.

Page 59: Recherche Op´erationnelle Deuxi`eme Partie

Algorithme de Gomory

I On a mis le probleme sous la forme :min x

y = Sz + t > 0z > 0

ou la matrice S et le vecteur t sont entiers, ainsi que lesvariables y et z . z est un extrait de y , et les n premierescomposantes de y sont les variables originales.

I On procede comme dans l’algorithme du Simplexe jusqu’aobtenir t > 0. Si l’algorithme echoue, il n’y a pas de solutionentiere.

I Si les composantes 1 a n de t sont entieres, c’est la solution.I Sinon, on choisit le premier ti non entier, on construit une

coupe comme ci-dessus a l’aide de la contrainte Siz + ti > 0,et on l’ajoute au tableau.

I Le nouveau tableau n’est pas faisable : le terme constant de lacoupe est negatif. On reprend l’algorithme jusqu’a terminaison.

Page 60: Recherche Op´erationnelle Deuxi`eme Partie

Preuve I / VI

TheoremeSi l’algorithme se termine, ou bien on a trouve la solution entiere,ou bien le probleme n’a pas de solution.

Demonstration.Soit Pn le polyedre obtenu apres la ne coupe. Par construction,tous les points entiers de P = P0 sont dans Pn. Si donc Pn estvide, P ne contient aucun point entier. Sinon, soit x∗ le minimumlexicographique de Pn, et supposons qu’il est entier. Si P contenaitun point entier plus petit, il serait dans Pn ce qui serait unecontradiction.

Page 61: Recherche Op´erationnelle Deuxi`eme Partie

Preuve II / VI

LemmeOn peut toujours supposer qu’il existe une solution.

Demonstration.On considere le probleme etendu

min u, x

u + Ax + b > 0,

u > 0,

x > 0

Il est clair que ce probleme a toujours une solution : il suffit deprendre x nul et u tres grand. Si le probleme initial a un minimumx∗, alors 0, x∗ est le minimum du probleme etendu. Inversement, sile probleme initial n’a pas de solution, alors u ne peut etre nul dansla solution du probleme etendu. Les deux problemes sont doncequivalents.

Page 62: Recherche Op´erationnelle Deuxi`eme Partie

Preuve III / VI

LemmeLes minima successifs xn forment une suite croissante dans l’ordrelexicographique.

Demonstration.Evident, puisque Pn+1 ⊆ Pn.

I A une certaine etape de l’algorithme, soit∑

jsjD xj + t

D > 0 laligne qui va fournir la coupe.

I A l’etape qui suit, l’algorithme du Simplexe execute un pivot.Soit xj la variable eliminee.

I Soit :∑

j

s′j

D xj + t′

D > 0 la ligne apres l’execution du pivot.

Page 63: Recherche Op´erationnelle Deuxi`eme Partie

Preuve IV / VI

LemmeIl existe un nombre entier Q tel que t

D < Q 6 t′

D .

Demonstration.La coupe est :

∑j

sj mod DD xj − −t mod D

D > 0Les formules de changement de base donnent:

t ′

D=

t

D+

sjD

−t mod D

D

D

sj mod D6

t

D+−t mod D

D.

Soit q le quotient entier par defaut de t par D : t = qD + t mod D.

t ′

D> q +

t mod D + (−t mod D)

D.

Le deuxieme terme est egal a 1, il suffit donc de prendre Q = q +1.D’autre part t/D = (q + 1)− (D − t mod D)/D < q + 1.L’inegalite est stricte puisque t n’est pas entier.

Page 64: Recherche Op´erationnelle Deuxi`eme Partie

Preuve V / VI

I A un instant donne du deroulement de l’algorithme, on ditqu’une ligne est active si lors d’une operation ulterieure, lavaleur de son second membre changera.

LemmeLa premiere ligne ne peut etre active qu’un nombre fini de fois.

Demonstration.Soit τ1 = dt1e. On a l’encadrement τ1 − 1 < t1 6 τ1. Consideronsl’evolution de τ1 apres une coupe.Si la source de la coupe est la ligne 1, apres le changement de basequi suit, τ1 augmente au moins d’une unite. Si la source est uneautre ligne, c’est que t1 est entier. Une autre ligne est source de lacoupe, et si la premiere ligne est active, c’est que S1j est non nul.La valeur de t1 augmente. Qu’elle prenne une valeur entiere oufractionnaire, la valeur de τ1 augmente au moins d’une unite.Or t1 donc τ1 sont bornes par la solution optimale x∗1 .

Page 65: Recherche Op´erationnelle Deuxi`eme Partie

Preuve VI / VI

TheoremeL’algorithme des coupes de Gomory converge.

Demonstration.Nous avons vu que la premiere ligne ne peut etre active qu’unnombre fini de fois. Apres la derniere modification, tout se passecomme si le probleme a resoudre avait une contrainte et uneinconnue de moins (methode de deflation). On peut donc prouverque la deuxieme ligne n’est active qu’un nombre fini de fois. Deproche en proche, on voit que l’algorithme se termine.

Page 66: Recherche Op´erationnelle Deuxi`eme Partie

Complexite

I Comme il faut pouvoir distinguer entre nombres entiers etnombres fractionnaires, les calculs doivent etre menes enarithmetique exacte.

I Les nombres a manipuler sont des determinants desous-matrices n × n de la matrice des contraintes. Leur taille(nombre de bits) est donc bornee par n fois le nombre de bitsdu plus grand coefficient.

I Le nombre maximum de coupes est borne par le nombre decoupes necessaires pour caracteriser la coque entiere del’ensemble des solutions. Resultat de Chvatal.

Page 67: Recherche Op´erationnelle Deuxi`eme Partie

Plan

Kuhn-Tucker

Une methode directe

Methodes duales

Fonction de Lagrange, point-col

Optimisation combinatoirecoque entiereAlgorithme de GomoryTechniques de codage

Page 68: Recherche Op´erationnelle Deuxi`eme Partie

Variables booleennes

I On peut coder un choix entre n possibilites a l’aide de nvariables 0-1, X1, . . . ,Xn.

I Chaque variable entiere ne peut prendre que les valeurs 0 ou1 : 0 6 x 6 1.

I Les choix sont exclusifs :∑n

i=1 Xi = 1.

I Si a chaque choix est associe une quantite ai , la quantiteassociee a un jeu de variables est

∑ni=1 Xi ti .

I On peut considerer les Xi comme des booleens et coder lesoperateurs :

Z ≡ X ∨ Y :: Z > X ,Z > Y ,Z 6 X + Y ,

Z ≡ X ∧ Y :: Z 6 X ,Z 6 Y ,Z > X + Y − 1,

Z ≡ ¬X :: Z = 1− X .

Page 69: Recherche Op´erationnelle Deuxi`eme Partie

Problemes de graphe

I On peut representer un graphe de nombreuses facons :matrice d’incidence, matrice de connexion, Zij = 1 si etseulement si il existe un arc i → j .

I Chemin : Xij = 1 si et seulement si le chemin emprunte l’arci → j . Contrainte : Xij 6 Zij .

I Loi de Kirchoff :∑

i Xij =∑

k Xjk , pour tout j excepte ledebut et la fin du chemin.

I Chemin simple : ne passe qu’une fois par chaque sommet.∑i Xij 6 1.

I Pour le debut,∑

j Xij = 1, et pour la fin∑

i Xij = 1.

I Minimiser la somme∑

ij Xij assure que le chemin n’a pas deboucles isolees.

Page 70: Recherche Op´erationnelle Deuxi`eme Partie

Techniques de grands nombres

I Soit P = x | Ax + b > 0 et Q = x | Cx + d > 0 deuxpolyedres dont on doit explorer les points entiers. Soit z unenouvelle variable 0-1.

I Si P et Q sont bornes, alors pour M suffisamment grand, lepolyedre :

P ⊕ Q = z , x | Ax + b + Mz > 0,Cx + d + M(1− z) > 0

est l’union disjointe de P et Q.

I On peut mener l’exploration sur P ⊕ Q en une seule fois.

I M doit etre choisi de telle facon que x ∈ P entraıneCx + d + M > 0 et reciproquement.