Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf ·...

90
Recherche Op´ erationnelle Premi` ere Partie Paul Feautrier ENS Lyon 1 er novembre 2005

Transcript of Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf ·...

Page 1: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Recherche OperationnellePremiere Partie

Paul Feautrier

ENS Lyon

1er novembre 2005

Page 2: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

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 Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Plan

Principaux concepts

Un exempleModelisationResolutionConclusion

Optimisation continue sans contrainte

Programmation lineaire

Page 4: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Qu’est ce que la recherche operationnelle ?

I Vocabulaire: Recherche operationnelle = programmationmathematique = optimisation (mais pas optimisation deprogramme).

I Recherche operationnelle = modelisation mathematique desprocessus de prise de decision.

I Inconnues : les variables de decision.I Evaluation de la decision = fonction economique ou fonction

«objectif».I Trouver les valeurs des variables de decision qui minimisent (ou

maximisent) la fonction objectif.

Page 5: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Recherche operationnelle

modélisationoptimisation action

I La modelisation est un art, l’optimisation est une science.I Applications : planification du debarquement de Normandie,

optimisation d’un programme de calcul intensif,investissement en bourse.

I Investissement en bourse = optimisation avec informationincomplete ou aleatoire.

I Planification d’une operation militaire = il y a un adversaire =theorie des jeux.

I Optimisation d’un programme = en principe, on a uneinformation complete.

I Le cours est essentiellement consacre a l’optimisation avecinformation complete.

Page 6: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Informatique ou mathematique ?

Mathématique Informatique

Recherche Opérationelle

Complexité

Théorèmes d’existenceConvergence

AlgorithmesPreuves de terminaisonArtificielle

Intelligence

Page 7: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Vocabulaire

courbes de niveau dela fonction objectif

optimum

contraintes

Formecanonique :trouver x ∈ Dqui minimise f .

min f (x)x ∈ D

Page 8: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Optimum local, global

I Minimum local : a est un minimum local de f s’il existe unvoisinage V de a tel que :

x ∈ V ⇒ f (x) > f (a).

I Minimum global : a est un minimum global de f dans D si etseulement si :

x ∈ D ⇒ f (x) > f (a).

local

global

Page 9: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Convexite

Un ensemble S est convexe si, pour toute paire de points a, b de S ,S contient aussi le segment ab.

a, b ∈ S ⇒ (0 6 λ 6 1 ⇒ λa + (1− λ)b ∈ S .

convexe convexe convexe non convexe

Page 10: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Fonction convexe

I f est convexe dans un ensemble convexe S si et seulement si :

x , y ∈ S , 0 6 λ 6 1 ⇒ f (λx +(1−λ)y) 6 λf (x)+(1−λ)f (y)

S

f

x

y

Page 11: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Interet de la convexite

TheoremeSi f est convexe dans un ensemble convexe S, alors tout minimumlocal de f est un minimum global.

Demonstration.Soit a un minimum local, et V l’ouvert contenant a dans lequel :

x ∈ V ⇒ f (x) > f (a).

Si on suppose qu’il existe un point b ∈ S tel que f (b) < f (a) alorson a :

f (λa + (1− λ)b) 6 λf (a) + (1− λ)f (b).

Il est possible de trouver un λ suffisamment proche de 1 pour quex = λa + (1− λ)b soit dans V . Contradiction en ce point :

f (x) 6 λf (a) + (1− λ)f (b) 6 f (a),

Page 12: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Classification

I Selon la nature des variables de decision :I Optimisation continue.I Optimisation discrete ou optimisation combinatoire.

I Selon la nature des contraintes :I Pas de contraintes ou contraintes faciles a satisfaire (un

segment de la droite reelle) : optimisation sans contraintes.I Optimisation sous contraintes : il est difficile de trouver un

point satisfaisant les contraintes.

I Proprietes speciales des elements du probleme : linearite,convexite.

Page 13: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Plan

Principaux concepts

Un exempleModelisationResolutionConclusion

Optimisation continue sans contrainte

Programmation lineaire

Page 14: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Un exemple: l’allocation de registre

I Les processeurs modernes utilisent des registres pour eviter lesacces a la memoire.

I Il est interessant de conserver une donnee en registre le pluslongtemps possible ...

I Mais les registres sont en nombre fini.

I Le compilateur commence par ecrire le code comme s’il yavait un nombre illimite de registres virtuels, puis alloue lesregistres virtuels aux registres physiques.

I Il ne faut pas utiliser plus de registres physiques qu’il n’y en asur le processeur.

Page 15: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Plan

Principaux concepts

Un exempleModelisationResolutionConclusion

Optimisation continue sans contrainte

Programmation lineaire

Page 16: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Intervalle de vivacite

I Bloc de base : suited’instructions sanstest et sans gotoentrant ni sortant. Enpremiereapproximation, onalloue les registresindependemmentpour chaque bloc debase.

I Un registre virtuel estvivant depuis sapremiere ecriturejusqu’a sa dernierelecture.

1 v1 = stack ; [1,11]2 v2 = *v1 ; [2,7]3 v3 = 2 ; [3,7]4 v4 = *(v1+8) ; [4,8]5 v5 = *(v1+16) ; [5,9]6 v6 = *(v1+24) ; [6,10]7 v7 = v2*v3 ; [7,8]8 v8 = v7*v4 ; [8,9]9 v9 = v8*v5 ; [9,10]10 v10 = v9*v6 ; [10,11]11 *v1 = v10 ;

Page 17: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Graphe d’interference

I Deux registres virtuels interferents’ils peuvent etre simultanementvivants, i.e. si leurs intevalles devivacite ont une intersection nulle.

I Deux registres virtuels quiinterferent ne peuvent pas etrealloues au meme registre physique.

I On peut construire le graphed’interference d’un bloc de base.

V2 V3 V4

V1

V9

Page 18: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Colorier le graphe d’interference

I Contrainte : Il faut affecter un registre physique a chaqueregistre virtuel de facon a ce que deux registres virtuelsadjacents ne soient pas affectes au meme registre physique.

I Objectif minimiser le nombre de registres physiques.

I C’est un probleme classique de coloriage de graphe.I On peut le prendre de deux facons:

I Existe-t-il un coloriage avec k couleurs ?I Quel est le nombre minimum de couleurs necessaires (nombre

chromatique = register pressure).

I On va se concentrer sur la deuxieme question.

Page 19: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Plan

Principaux concepts

Un exempleModelisationResolutionConclusion

Optimisation continue sans contrainte

Programmation lineaire

Page 20: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

NP-completude

I On doit toujours commencer par une estimation de ladifficulte du probleme.

I Probleme NP: probleme dont on peut verifier la solution entemps polynomial.

I Il existe une liste (provisoire) de problemes NP pour lesquelson ne sait pas (aujourd’hui) trouver la solution en tempspolynomial, et qui peuvent etre reduits l’un a l’autre en tempspolynomial : les problemes NP-complets. Exemples canoniques: SAT (une formule booleenne est-elle satisfiable) et PLNE (unsysteme d’inequations en nombres entiers est-il satisfiable).

I Le probleme du coloriage est NP-complet: on peut le reduire aun probleme SAT, et on peut reduire un probleme SAT a unprobleme de coloriage.

I Il ne faut donc pas esperer une solution facile.

Page 21: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Programmation lineaire en nombres entiers

I On numerote les couleurs par des entiers ; soit ci la couleur dusommet Vi . Les contraintes sont:

ci > 0

ci 6= cj ,Vi adjacentVj .

I Objectif: minimiser max ci :

min z ,

z > ci .

I Pour rendre le probleme convexe, on pose: xij = 1 ssi ci > cj .On obtient un probleme en variables entieres dont lescontraintes sont:

ci − cj + (1− xij)M > 0, cj − ci + xijM > 0.

ou M est un“grand nombre”. On s’est ramene a un PLNE.

Page 22: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Branch-and-Bound, I/III

I Methode : on construit un arbre de sous-problemes endivisant l’espace des solutions recursivement en deux.

I La recherche s’arrete quand la solution est“evidente”.

I On utilise une borne inferieure pour ignorer les sous-problemesqui ne sont pas“prometteurs”.

Page 23: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Branch-and-Bound, II/III

I On engendre les sous-problemes en remplacant ci 6= cj parci > cj ou par cj > ci . Chaque sous-probleme est un problemede plus court chemin, qui se resoud en temps polynomial.

I S’il n’y a pas de solution (cycle de poids positif) il est inutilede poursuivre l’exploration.

I Sinon, on compare la valeur du probleme a la meilleuresolution connue. On arrete l’exploration si elle est superieure.

I On obtient une solution (candidate) quand on a exploitetoutes les contraintes.

Page 24: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Branch-and-Bound, III/III

����

����

����

����

��

������������������������������

� � � � � � � � � ���������������������

������������������������������������������������������

���������������������������������������������

���������������������������������������������= +

i

j

iji

j

I Selectionner deux sommets i et j non connectes.I Il y a deux possibilites:

I Ils ont la meme couleur: on peut les fusionner.I Ils ont des couleurs differentes: on peut ajouter l’arc i − j .

I La division s’arrete quand on a forme un graphe complet, dontle coloriage est trivial.

I On peut avoir une borne inferieure en cherchant une cliquedans le graphe.

Page 25: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Recherche aleatoire

I Initialisation : on part d’un coloriage legal arbitraire: parexemple, on donne a chaque sommet une couleur differente.

I Exploration : on choisit au hasard un sommet et on changesa couleur au hasard.

I Progression : on conserve le nouveau coloriage s’il est legal ets’il ameliore la solution (moins de couleurs).

I Il existe de nombreuses variantes sur le meme theme (recuitsimule, tabou, algorithmes genetiques): voir la suite du cours.

Page 26: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Plan

Principaux concepts

Un exempleModelisationResolutionConclusion

Optimisation continue sans contrainte

Programmation lineaire

Page 27: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Conclusion

I De nombreux problemes de la vie pratique (emploi du temps),de programmation (utilisation optimale d’un reseau), decompilation (allocation de registres, parallelisation) peuvent semettre sous la forme“optimisation sous contraintes”.

I Les inconnues peuvent etre continues ou discretes (couleurs).

I Avantage: Il existe toute une panoplie de methodes deresolution efficace.

I Toute l’intelligence se concentre dans la phase demodelisation, pour laquelle il n’existe que des“recettes decuisine”.

I Le modele peut etre plus ou moins detaille (exemple:allocation de registres en tenant compte des identitesremarquables de l’algebre).

Page 28: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Plan

Principaux concepts

Un exempleModelisationResolutionConclusion

Optimisation continue sans contrainte

Programmation lineaire

Page 29: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Optimisation continue sans contrainte

On considere une seule variable

min f (x)

x ∈ R

I Si on connaıt la derivee f ′ de f , le probleme se ramene atrouver les racines de f ′, puis a les tester une par une poursavoir si elles sont un minimum, un maximum ou un pointd’inflexion.

I On peut utiliser pour cela des methodes classiques : iterationde Newton (si on peut calculer la derivee seconde),dichotomie, methode de la secante.

I Si on ne connaıt pas la derivee, la premiere chose a faire estde trouver un encadrement du minimum. Il n’y a pas demethode generale, on utilise les renseignements que l’on peutavoir sur f .

Page 30: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Fonctions unimodales

I Une fonction f est unimodale dans l’intervalle [a, b] s’il existeun point a 6 c 6 b tel que si x 6 y 6 c alors f (x) > f (y) etsi c 6 x 6 y alors f (x) 6 f (y).

I Il est evident que si f est unimodale dans [a, b], alors c est unminimum global.

TheoremeSi f est continue convexe dans [a, b], alors f est unimodale.

Demonstration.Soit c le minimum de f , et x et y qui violent la conditiond’unimodalite, par exemple c 6 x 6 y et f (c) < f (y) < f (x). Soit0 6 λ 6 1 tel que x = λc + (1− λ)y . Par convexite on doit avoirf (x) 6 λf (c) + (1− λ)f (y) mais aussiλf (c) + (1− λ)f (y) 6 f (y) < f (x) une contradiction.

Page 31: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Methode par trichotomie

a c d b a c d b

I On divise l’intervalle [a, b] en trois parties egales a l’aide despoints a < c < d < b. On calcule f (c) et f (d).

I On determine le minimum de f parmi les 4 points a, c, b, d .I Le minimum continu appartient a l’intervalle encadrant le

minimum discret.I L’intervalle est reduit au moins par un facteur 2/3. On

poursuit jusqu’a la precision voulue.

Page 32: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Ameliorations

I Vitesse de convergence : la taille de l’intervalle est multipliee

par 23

n/2apres n evaluations de la fonction.

I La division en segment egaux n’est pas optimale. On a intereta agrandir les segments extremes.

I On peut passer a un decoupage en 4 parties egales. Il fautevaluer f trois fois a chaque etape, mais l’intervalle est au

moins divise par 2. La convergence est en 12

n/3donc plus

rapide.

Page 33: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Methodes par exploration

I Il est toujours indispensable de connaıtre une encadrement[a, b] du minimum.

I On suppose toujours que f est unimodale. On choisit un pasd’exploration d . On calcule f aux points xk = a + k.d jusqu’atrouver soit une configuration f (xk) 6 f (xk+1), soit jusqu’aatteindre le point b.

I On fait a := xk−1, b := xk+1, d := ξd et on recommence.ξ < 1 est le facteur de convergence.

I On s’arrete quand d est devenu suffisamment petit.

I La methode peut s’appliquer a une fonction non unimodale.On obtient alors un optimum local sans garantie qu’il soitglobal.

Page 34: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

L’algorithme converge

I Le nombre de pas d’exploration est au plus b−ab . L’exploration

s’arrete en un temps fini.

I Soit [an, bn] le ne intervalle d’exploration et dn le ne pasd’exploration. On a dn = dξn et bn − an 6 2dn.

I Les [an, bn] forment une suite d’intervalles emboıtes dont lalongueur tend vers 0. Ils convergent donc vers une limite c.

Page 35: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Optimisation a plusieurs variables

I Forme du probleme :min f (x)

x ∈ Rn

I Les inconnues sont les n composantes du vecteur x .

I La notion de fonction unimodale ne se generalise pas.

Page 36: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Recherche directionnelle

I On se ramene au cas a une seule variable. Pour cela on choisitun point de depart a et une direction d .

I On minimise la fonction a une variable f (a + t.d) a l’aide del’une des methodes vues plus haut.

I Si le deplacement t.d est suffisamment petit, on arrete.

I Sinon, on change de direction et on recommence.

I Le point important est le choix des directions.

Page 37: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Recherche suivant les axes

I On prend comme directions lesvecteurs canoniques de la base.Ceci revient a fixer n − 1 variablesde la fonction f , et a optimisersuivant la ne. On passe ensuite a lavariable suivante.

I La methode est tres lente et peutmeme ne pas converger si lescourbes de niveau sont a peu presparalleles aux diagonales.

I On peut l’accelerer en effectuant Npas puis en utilisant la directionaN − a0.

Page 38: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Gradient

I On suppose que la fonction f a une derivee.

I Le gradient de f au point a est le vecteur( ∂f

∂x1(a), . . . , ∂f

∂xn(a))T . On le note ∇f (a).

I On a le developpement de Taylor :

f (a + h) = f (a) + h∇f (a) + . . . .

Ceci montre que −∇f (a) est la direction dans laquelle fdecroıt le plus rapidement (steepest descent).

I D’ou l’algorithme :

1. Calculer le gradient ∇f (a).2. Minimiser la fonction a une variable f (a− x∇f (a)).3. Si le critere de convergence n’est pas verifie,

recommencer en 1.

Page 39: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Propriete

TheoremeDans l’algorithme ci-dessus, les directions de recherche successivessont orthogonales.

a b

Demonstration.Soit a le point de departd’une recherche unidimensionnelle suivantla direction ∇f (a) et b son point d’arrivee.La derivee de la fonction a minimiser est :

df (a− x∇f (a))

dx= −∇f (a).∇f (x).

En b cette derivee est nulle, d’ou la propriete.

Page 40: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Directions conjuguees

I Une matrice A de dimension n × n est definie positive si etseulement si :

∀x : xTAx > 0.

Une matrice definie positive definit un produit scalaire.

I Deux vecteurs u, v sont conjugues par rapport a A si etseulement si : uTAv = 0. C’est une generalisation de la notiond’orthogonalite.

I Soit n vecteurs d1, . . . , dn mutuellement conjugues :

i 6= j ⇒ dTi .A.dj = 0.

I Soit la fonction f (x) = 1/2xTAx + bT x + c. Si on laminimise successivement suivant les directions d1, . . . , dn, onatteint le minimum exact en n etapes.

Page 41: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Notations

I Soit x (k), k = 0, . . . les minima successifs.

I x (k+1) = x (k) + λkdk .

I Le gradient de f en x est Ax + b.

I D’apres la propriete ci-dessus et la conjugaison des dk , on a :

λk = −dTk (Ax (0) + b)

dTk Adk

.

I Les coordonnees de x (k+1) sont donnees par la formule :

x (k+1) = x (0) +k∑

i=1

λidi .

Page 42: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Preuve

LemmeEn tout point x (k) le gradient de f est orthogonal au sous-espaceengendre par d1, . . . , dk .

Demonstration.Le gradient en x (k) est Ax (k) + b = Ax (0) +

∑k−1i=1 λjAdj + b. Si on

multiplie par dTi et qu’on remplace λj par sa valeur il vient :

dTi Ax (0) −

dTi (Ax (0) + b)

dTj Adj

.(dTi Adj) + dT

i .b = 0.

TheoremeLe point x (n) est le minimum de f .

Demonstration.En effet, le gradient en x (n) doit etre conjugue de n vecteurslineairement independants, et donc doit etre nul.

Page 43: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Gradient conjugue

I C’est la transposition de la methode ci-dessus au cas ou lafonction f est quelconque, mais ou on sait calculer songradient.

I On part d’un point a0 et on pose d0 = −∇f (a0).I Supposons que l’on soit parvenu en un point ak avec la

direction dk . On minimise f (ak + λ.dk). Soit λk la solutionobtenue.

I On pose :

ak+1 = ak + λk .dk ,

βk =||∇f (ak+1)||2

||∇f (ak)||2,

dk+1 = −∇f (ak+1) + βkdk .

I On montre que si f est quadratique definie positive, lamethode est identique a celle des directions conjugues etconverge en n etapes.

Page 44: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Recherche aleatoire

I Au lieu de calculer la direction de recherche optimale pour uneapproximation quadratique de f , on peut la choisiraleatoirement en tirant n nombres au hasard dans l’intervalle[0, 1].

I La methode ne necessite pas le calcul du gradient. Ellefonctionne meme si f n’est pas derivable.

I Mais en general, sa convergence est beaucoup plus lente.

Page 45: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Test d’arret

I Le choix d’un test d’arret est difficile.

I Si f est derivable, son gradient doit etre nul a l’optimum. Onpeut donc utiliser ||∇f (ak)|| < ε comme test d’arret.

I Sinon, on peut arreter les iterations quand la solution nechange plus : ||ak+1 − ak || < ε.

I ε doit refleter la precision requise. Il ne doit pas etre plus petitque la precision des calculs sous peine de blocage.

I Il est prudent d’attendre que le test ait ete satisfait plusieursfois avant d’arreter.

I En general, la valeur du minimum est mieux definie que saposition.

Page 46: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Plan

Principaux concepts

Un exempleModelisationResolutionConclusion

Optimisation continue sans contrainte

Programmation lineaire

Page 47: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Programmation lineaire

min c.x

Ax + b > 0

I x est le vecteur des inconnues, de dimension n.

I A est la matrice des contraintes, de dimension m × n.

I b est le terme constant, de dimension m.

I c de dimension n est le gradient de la fonction objectif.

Page 48: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Autres formes d’un programme lineaire

I Un programme lineaire peut se mettre sous de multiplesformes, toutes equivalentes.

I On peut changer le sens de l’inegalite, ou passer le termeconstant de gauche a droite.

I On peut remplacer les inegalites par des egalites enintroduisant des variables d’ecart toutes positives:

Ax + b > 0 ≡ Ax + b − y = 0, y > 0

I On peut imposer que toutes les variables soient positives, enposant x := x+ − x−, x+, x− > 0

I On peut enfin transposer le programme :Ax + b > 0 ≡ xTAt + bt > 0

Page 49: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Polyedre Convexe

I L’ensemble P = {x | Ax + b > 0} est convexe. On l’appelleun polyedre convexe ou simplement un polyedre.

I La fonction c.x est trivialement convexe.

I Donc, si un programme lineaire a un minimum local, c’est unminimum global.

Page 50: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Test de faisabilite

I Pour trouver un minimum, il faut que le polyedre :

P = {x | ax = b > 0}

soit non vide, ou encore qu’il existe au moins un point x0 quisatisfasse toute les inegalites Ax + b > 0.

I On peut verifier cette condition a l’aide de l’algorithmed’elimination de Fourier-Motzkin.

I Notations : x (n) le vecteur x ampute de ses n premierescomposantes. x (0) = x .

I A(n)x (n) + b(n) > 0 le systeme obtenu apres l’elimination de nvariables.

Page 51: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Test de Fourier-Motzkin I / II

I Soit a eliminer x1. On reparti les contraintes en trois classes :I k ∈ I0 ssi ak1 = 0.I k ∈ I+ ssi ak1 > 0.I k ∈ I− ssi ak1 < 0.

I Dans une contrainte de I0, l’inconnue x1 est deja eliminee.

Page 52: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Test de Fourier-Motzkin II / II

I Une contrainte k ∈ I+ donne une borne inferieure de x1 :

x1 > −bk + ak,2x2 + . . .

ak1;

I Une contrainte k ∈ I− donne une borne superieure de x1 :

x1 6bk + ak,2x2 + . . .

−ak1;

I Pour eliminer x1, il suffit d’ecrire que chaque borne inferieureest inferieure a chaque borne superieure.

I On poursuit jusqu’a elimination de toutes les variables. Aubout de n etapes, le systeme est de la forme : b(n) > 0, qu’ilsuffit d’inspecter.

Page 53: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Correction

On dit que le test reussit si b(n) > 0, et qu’il echoue dans le cascontraire.

TheoremeSi le test echoue, alors le systeme initial est infaisable.

Demonstration.Supposons a contrario que le systeme initial a une solution u. Lestransformations effectuees sur les contraintes sont de simplesmanipulations algebriques valides ; on en conclu que les intervallesobtenus en comparant une borne inferieure et une borne superieure sontnon vides, et donc que le systeme A(1)x(1) + b(1) > 0 est faisable.En poursuivant l’elimination, on en arrive au systeme d’ordre n − 1, quin’a plus qu’une seule inconnue xn et qui est egalement faisable. Mais lefait que l’un des b(n) < 0 indique que l’un des intervalles de variation dexn est vide, une contradiction.

Page 54: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Completude

TheoremeSi le test reussit, le systeme initial est faisable.

Demonstration.On exhibe une solution du systeme initial en la construisant deproche en proche a partir de sa derniere composante. On part dusysteme

A(n−1)x (n−1) + b(n−1) > 0.

Le fait que les b(n) > 0 garantit que l’intervalle des valeurspossibles de xn est non vide. On en choisit une arbitrairement et onla reporte dans le systeme d’ordre n − 2. Ce systeme n’a plusqu’une inconnue, xn−1, dont l’intervalle des valeurs possibles estnon vide. On poursuit ainsi jusqu’a avoir donne une valeur a toutesles composantes de x .

Page 55: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Remarques

I Si on s’astreint a choisir a chaque pas la solution la pluspetite, i.e. la borne inferieure de l’intervalle de variation, onobtient le minimum lexicographique de P, les inconnues etantprises dans l’ordre xn, . . . , x1.

I Il n’est pas obligatoire de poursuive l’elimination jusqu’a la fin.Si on s’arrete a l’etape p, les variables de x (p) deviennent desparametres. Les conditions b(p) > 0 delimitent les valeurs desparametres pour lesquelles le systeme est faisable. Enfin, leprocede de selection ci-dessus donne la valeur parametrique dela solution.

I L’algorithme peut s’executer sans division. La combinaison dela contrainte j ∈ I+ et de la contrainte k ∈ I− se fait enmultipliant la premiere par −ak1 > 0 et l’autre par aj1 > 0 eten additionnant.

Page 56: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Complexite

I On evalue d’abord une borne du nombre de contraintes al’etape p,mp, soit mp = x0 + x+ × x+.

I Comme x0 + x+ + x− = mp−1, mp prend sa valeur maximumpour x0 = 0 et x+ = x− = mp−1/2, a condition quemp−1 > 4.

I Pour le cas le pire, on a donc la recurrence mp = (mp−1

2 )2

dont la solution est mn = (m2 )2

n. C’est aussi une borne du

travail a effectuer.I La complexite est donc enorme sauf pour les petits systemes.

Mais la redondance est egalement enorme, surtout si lesysteme est creux (a beaucoup de coefficients nuls).

I Enfin, il est possible que l’algorithme se termineprematurement.

I L’algorithme de Fourier-Motzkin est tres simple aprogrammer, mais il doit etre reserve a de petits problemes.

Page 57: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Un exemple I / II

I Soit le code :

for(j=i+1; j<n; j++)for(k=i+1; k<n; k++)

a[j][k] -= a[j][i]*a[i][k]/a[i][i];

I L’execution de ces deux boucles modifie-t-elle le termea[i][i] (le pivot) ?

I Reponse : le systeme :

i + 1 6 j < n,

i + 1 6 k < n,

i = j ,

i = k,

est il faisable ?

Page 58: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Un exemple II / II

+ j − i − 1 > 0,− n − j − 1 > 0,0 k − i − 1 > 0,0 n − k − 1 > 0,− i − j > 0,0 i − k > 0,+ j + k − 2i > 0.

+ k − i − 1 > 0,− n − k − 1 > 0,− i − k > 0,0 n − i − 2 > 0,0 −1 > 0.

Bingo !

Page 59: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Un exemple II / II

+ j − i − 1 > 0,− n − j − 1 > 0,0 k − i − 1 > 0,0 n − k − 1 > 0,− i − j > 0,0 i − k > 0,+ j + k − 2i > 0.

+ k − i − 1 > 0,− n − k − 1 > 0,− i − k > 0,0 n − i − 2 > 0,0 −1 > 0.

Bingo !

Page 60: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Algorithme de Fourier-Motzkin etendu

I On peut au cours de l’execution du test, garder la trace descombinaisons effectuees. On voit alors que chaque contraintedu systeme d’ordre p est une combinaison lineaire acoefficients positifs d’au plus deux contraintes du systemed’ordre p − 1.

I En generalisant, toute contrainte figurant dans l’algorithmeest combinaison lineaire positive de lignes de Ax + b. Soity > 0 le vecteur des coefficients.

I Comme dans le systeme d’ordre n toutes les variables ont eteeliminees, on en deduit yA = 0.

Page 61: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Lemme de Farkas

Theoreme

(∃x : Ax + b > 0) ⇔ (∀y : y > 0, yA = 0 ⇒ yb > 0).

Demonstration.De gauche a droite soit u tel que Au + b > 0 . Soit un yquelconque tel que y > 0 et yA = 0. On a y(Ax + b) > 0. Mais

y(Ax + b) = yAx + yb = yb.

De droite a gauche, on execute l’algorithme de Fourier-Motzkinetendu. On en tire un y > 0 tel que yA = 0. On en deduit queyb > 0, ce qui veut dire que le test a reussi et qu’il est possible deconstruire un u tel que Au + b > 0.

Page 62: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Programmation lineaire

I On adjoint au systeme Ax + b > 0 la contrainte z > c.x , ou zest une nouvelle variable.

I On execute l’algorithme de Fourier-Motzkin en prenant soind’eliminer z en dernier.

I Si l’algorithme echoue, le probleme n’est pas faisable.

I Sinon, la valeur de z dans la solution donne la valeurminimum de c.x .

I Le reste de la solution caracterise un point ou ce minimum estatteint.

Page 63: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Lemme de Farkas affine

TheoremeSi le systeme Ax + b > 0 est faisable, alors :∀x : Ax + b > 0 ⇒ cx + d > 0 est equivalent a:

∃λ0, λ > 0 : ∀x : cx + d = λ0 + λ(Ax + b).

Demonstration.L’implication de droite a gauche est evidente. De gauche a droite,l’hypothese revient a dire que le systeme Ax + b > 0, cx + d < 0 n’a pasde solution. D’apres le lemme de Farkas, ceci implique l’existence dey0, λ > 0 tel que λA− y0c = 0 et λb − y0d < 0. De plus, y0 ne peut etrenul car cela impliquerait que Ax + b > 0 n’a pas de solution. On peutdonc prendre y0 = 1. On pose λb − d = −λ0, λ0 > 0 et il vient:

λ(Ax + b)− cx − d = λb − d = −λ0,

d’ou la conclusion du theoreme.

Page 64: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Cones

I Un cone C est un polyedre convexe dont les contraintes sontde la forme Ax > 0.

I Propriete fondamentale : u, v ∈ C, λ, µ > 0 ⇒ λu + µv ∈ C.

TheoremeL’objet {

∑i λiui | λi > 0} est un cone.

Demonstration.Il suffit de considerer le systeme :

x −∑

i

λiui = 0,

λi > 0.

et d’utiliser la methode de Fourier-Motzkin pour eliminer les λi . Ce quireste est un systeme de contraintes lineaires en x , qui definissent bien unpolyedre.

Page 65: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Reciproque

TheoremeTout cone C = {x | Ax > 0} est engendre par un systeme fini derayons u1, . . . , up.

Demonstration.On considere l’objet C∗ = {yA | y > 0}. C∗ est un cone dont on peutdeterminer les contraintes comme ci-dessus :

C∗ = {c | cB > 0} .

Quelque soit y > 0, yA appartient a C∗, donc yAB > 0. Comme on peutprendre pour y les m vecteurs unitaires, on en deduit AB > 0 ce quisignifie que les vecteurs colonnes de B appartiennent a C.Soit maintenant x un vecteur quelconque de C. Pour tout y > 0 on ayA.x = y .Ax > 0. En d’autre termes, pour tout c tel que cB > 0, on acx > 0. On peut donc appliquer le lemme de Farkas affine : il existe λ > 0tel que x = λB. C est donc engendre par les vecteurs colonnes de B.

Page 66: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Theoreme de Minkovsky

TheoremeTout polyedre P peut etre mis sous la forme : P = Q⊕ C ⊕H, ouQ est un polytope (polyedre borne), C est un cone et H un sousespace lineaire.

Demonstration.Soit P = {x | Ax + b > 0}. On considere le coneD = {x , z | Ax + zb > 0} ou z est une nouvelle variable. Il est clair queP est l’ intersection de D avec l’hyperplan {z = 1}. On construit lesrayons de D. Ceux dont la coordonnees z n’est pas nulle engendrent Q.Les rayons dont l’oppose est egalement un rayon engendrent H. Enfin,ceux qui restent engendrent C.

On peut ecrire:

P ={∑

λ.u +∑

µ.v +∑

ν.w∣∣∣ ∑

λ = 1, λ > 0, µ > 0}

Les u sont les sommets, les v les rayons et les w les lignes.

Page 67: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Programmation lineaire, bis

I Le minimum de c.x sous la contrainte x ∈ P = Q+ C +H estatteint en l’un des sommets de Q a condition que H soit videet que c ∈ C.

I En effet on peut ecrire :

c.x =∑

λc.u +∑

µc.v +∑

νc.w .

Puisque ν n’est pas contraint, on peut faire decroıtre c.x avolonte s’il existe un w . Il en est de meme s’il existe un v telque c.v < 0, puisque µ > 0. Si H est vide, le dernier termen’existe pas, et si c ∈ C, on minimise c.x en prenant µ = 0.Soit u0 un sommet ou c.x est minimum, et u1 un sommet ouc.u1 > c.u0. Supposons que dans l’expression de x , u1 ait uncoefficient λ1 non nul. Le point x − λ1(u1 − u0) est dans P etsa fonction objectif a diminue. On en deduit que la solutiond’un programme lineaire est l’un quelconque des sommets deQ ou c.x atteint son minimum.

Page 68: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Critique

I La methode ci-dessus est inefficace car il faut utiliserFourier-Motzkin pour trouver la decomposition de P, et aussiparce que le nombre de sommets peut etre tres grand (del’ordre de Cn

m, le coefficient du binome).

I Il existe un algorithme plus efficaces que Fourier-Motzkin pourdecomposer un polyedre, l’algorithme de Chernikova, mais lenombre de sommets ne change pas.

Page 69: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Dualite I / II

TheoremeSi les deux ensembles {x | Ax 6 b} et {y | y > 0, yA = c } sontnon vides, on a :

` = max {cx | Ax 6 b} = min {yb | y > 0, yA = c } = r .

Soit par exemple x∗ (resp. y∗) un point de l’ensemble de gauche(resp. de droite). On a :

c.x∗ = y∗Ax∗ 6 y∗.b.

Il en resulte que ` et r existent et que ` 6 r .

Page 70: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Dualite II / II

On peut supposer que x∗ (resp. y∗) est le point ou le maximum(resp. le minimum) est atteint. En tout point x tel que b − Ax > 0on sait que c.x∗ − c.x > 0, on peut donc appliquer le lemme deFarkas affine :

∃λ0, λ > 0 : ∀x : c.x∗ − c.x = λ0 + λ(b − Ax).

On en deduit c.x∗ = λ0 + λb et c = λA. Il en resulte que λ faitpartie de l’ensemble de droite:

r 6 λb = c.x∗ − λ0 6 `.

On en deduit ` = r .

Page 71: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Analyse de sensibilite

optimumcone desdirectionsadmissibles

I Variation deω(b) = max {cx | Ax 6 b} avec b ?

I Par dualite,ω(b) = min {yb | y > 0, yA = c }. Orce polyedre ne depend pas de b.Interpretation geometrique : aussilongtemps que b reste dans le conedes directions admissibles, l’optimumy∗ ne change pas. Donc:

ω(b) = y∗.b.

I Pour en savoir plus, il faut faire de laprogrammation lineaire parametrique.

Page 72: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Complementarite

Theoreme

∀j : y∗j .(bj − A•j .x∗) = 0.

Demonstration.

y∗.(b − A.x∗) = y∗.b − y∗.A.x∗ =

= c.x∗ − y∗.A.x∗ = (c − y∗A).x∗ = 0.

Mais chaque terme du produit scalaire y∗.(b − A.x∗) est positif,donc si la somme est nulle chaque terme est nul.

Page 73: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Dualite generalisee

Il existe une tres grande variete de theoremes de dualite, suivant lanature des contraintes et le signe des variables. En premiereapproximation, on peut utiliser le tableau suivant :

Primal Dual

objectif (Min) second membre

second membre objectif (Max)

A AT

Contrainte i : > variable ui > 0

Contrainte i : =variable

non contrainte en signe

Variable xj > 0 contrainte j : 6Variable xj

non contrainte en signecontrainte j : =

On trouvera dans Schrijver une formulation plus precise.

Page 74: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Algorithme du Simplexe

c

I «Trouver le point le plus bas d’un vase».Fourier, 1828.

I Formalisation par Danzig, 1950.

Page 75: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Methodes externes, methodes internes

c

c

optimum

I Methodes internes : il faut connaıtre un point faisable. Onpeut arreter la recherche avant l’optimum.

I Methodes externes : il n’y a pas besoin de connaıtre un pointfaisable.

Page 76: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Ordre lexicographique

I Definition :

x � y = ∃k : x1,··· ,k−1 = y1,··· ,k−1, xk < yk .

I � est un ordre total.

I L’ordre par composantes n’est pas total.

I c.x < c.y n’est pas un ordre.

I D’ou l’interet de remplacer min c.x par min�.

I On peut toujours ajouter une nouvelle variable u et lacontrainte u > c.x a condition que u soit la premiereinconnue.

I Cette technique evite les problemes bien connus dedegenerescence.

Page 77: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Algorithme du simplexe externe ou dual

Resoudre :

min�

x

x > 0

Ax + b > 0

Tailles : x : n, A : m×n, b : m.

Generalisation :

min�

x

y = Sz + t > 0

z > 0

Au commencement,

z = x , S =

[IA

], t =

(0b

).

Page 78: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Invariants

I Les vecteurs colonnes de S sont lexicopositifs au demarrage etle restent tout au long de l’algorithme.

I z est un sous-ensemble de x , y . La condition z > 0 est donctoujours verifiee.

I D’une etape a l’autre, t croıt dans l’ordre lexicographique.

I Ces invariants sont verifies au debut de l’algorithme.

Page 79: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Cas de base

I Si t > 0, on a trouve la solution. Il suffit de faire z = 0, ce quisatisfait les contraintes. On a x = t1,··· ,n.

I De plus, c’est le minimum lexicographique : toute autre valeurpositive de z ajoute a x un vecteur lexicopositif.

I Soit ti < 0. Si ∀j : Sij 6 0, le probleme n’a pas de solution.

Page 80: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Changement de variable

I Soit ti < 0 et Sij > 0 (le pivot). On elimine zj en faveur de yi :

zj = yi/Sij −∑` 6=j

Si`/Sijz` − ti/Si`.

yk =∑` 6=j

(Sk` − SkjSi`/Sij)z` + Skj/Sijzj + tk − Skj ti/Sij .

I Remarquer que −ti/Sij est positif, et que Skj est lexicopositif.Donc, t croıt selon l’ordre lexicographique.

I Comme Sij > 0, le vecteur colonne j reste lexicopositif.

I Il reste a garantir que le vecteur colonne ` reste lexicopositif.

Page 81: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Choix du pivot

I Si Si` est negatif, il n’y a pas de probleme.

I Sinon le nouveau vecteur colonne est egal, a un coefficientpositif pres, a :

S•`/Si` − S•j/Sij .

I Il faut donc choisir j pour que Sij > 0 et que le «vecteurreduit» S•j/Sij soit le plus petit possible.

I Un tel choix est toujours possible sauf si on est dans le casd’un systeme infaisable.

Page 82: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Convergence

I Observer que l’etat de l’algorithme est entierement determinequand on sait quelles sont les composantes de y qui sont dansz (les variables en base).

I Or y est de taille m + n et z de taille n, il n’y a donc queCn

m+n combinaisons possibles.

I L’algorithme ne peut pas boucler, car t croıt dans l’ordrelexicographique.

I Comme Cnm+n n’est pas un polynome en n et m, l’algorithme

n’est pas polynomial.

I On peut construire des cas pathologiques qui demandent untemps exponentiel.

I Mais en pratique (et en probabilite) le nombre d’operationsest en O(n2(n + m)).

Page 83: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Questions numeriques I / II

I Du point de vue numerique, l’algorithme du Simplexe estanalogue a la methode de Gauss, avec une regle particulierepour le choix du pivot.

I Si l’on connaıt la matrice des inconnues de base, l’algorithmene fait qu’inverser celle-ci, tout en appliquant les memestransformations aux inconnues hors base.

I Les resultats sont donc donnes par des formules de Cramer.

I On peut faire les calculs en virgule flottante. Il y a alorsaccumulation d’erreurs d’arrondi, qui peuvent faire que lasolution finale n’est pas faisable (en particulier pour lescontraintes saturees).

I Il faut alors developper des methodes de correction. En generalla solution est faisable, mais l’optimalite n’est pas garantie.

Page 84: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Questions numeriques II / II

I On peut rendre la matrice des contraintes entieres, et essayerde mener les calculs exactement (algorithmes «tout entiers»).

I Les nombres a manipuler sont des determinants de Cramer.On peut donc les borner a l’aide de l’inegalite de Hadamard:

|det(A)| 6 |A1| . . . |An|,

ou les Ai sont les vecteurs colonnes (ou les vecteurs lignes) deA.

I Il en resulte que la taille des nombres a manipuler est borneepar n fois la taille du plus grand element de A. Cette borne estrarement atteinte.

I Il faut utiliser des arithmetiques en precision arbitraire, telle lalibrairie GMP.

Page 85: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Algorithme primal

I On prend le probleme sous la forme equivalente suivante :

min f (x) = c.x

Ax = b

x > 0

I On peut supposer que les lignes de la matrice des contraintesA sont lineairement independantes : on peut eliminer les lignesredondantes.

I A est de dimension m × n avec necessairement m < n.

Dans le cas contraire, le systeme Ax = b aurait auplus une solution et le probleme serait trivial.

Page 86: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Base

I Une «base» est une matrice carree n × n extraite de Ainversible. On partitionne A en deux blocs B, la base, et N lereste de la matrice. On partitionne de meme x en xB , xN et cen cB , cN .

I La solution associee a une base B est le vecteur (B−1b, 0)T . Ilsatisfait evidemment a la contrainte Ax = b.

I La base B est realisable si et seulement si la solutioncorrespondante satisfait egalement a la contrainte x > 0,c’est-a-dire si x = B−1b > 0.

I A une base realisable correspond une valeur de l’objectif,cB .B−1b.

I Est-il possible d’ameliorer cet objectif en faisant varier xN ?

Page 87: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Recherche de l’optimum I / III

I Si xN n’est plus nul, on a :

xB = B−1(b − NxN)

f (x) = cB .B−1b + (cN − cB .B−1N)xN

Le vecteur c = cN − cB .B−1N est le vecteur des couts reduits.

I Si xi fait partie de xN , comme il est nul on ne peut quel’augmenter pour que la solution reste faisable. Ceci faitdecroıtre f (x) a condition que c i < 0.

I Si tous les couts reduits sont positifs, on a trouve l’optimum.

I Sinon, on choisit un xi dont le cout reduit est negatif (parexemple celui dont le cout reduit est minimum).

Page 88: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Recherche de l’optimum II / III

I Puisque on fait croıtre xi et que les autres composantes de xN

restent nulles, la seule contrainte sur la valeur de xi estB−1(b − NxN) > 0. Il y a deux cas possibles :

I Toutes les composantes de la colonne i de B = B−1N sontnegatives. Alors xi n’est pas borne, et le minimum est −∞.

I Sinon, a chaque composante B ik > 0 correspond la bornexi 6 xk/B ik . Soit j l’indice de la plus petite de ces bornes.

I Le point correspondant a xk = 0 sauf pour k = j : xj = x j/B ij

est faisable et la valeur de f (x) est inferieure a celle du pointde depart.

Page 89: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Recherche de l’optimum III / III

I La base qui correspond au nouveau point courant s’obtient enremplacant dans b le colonne i par la colonne j .

I On poursuit l’algorithme en inversant la nouvelle base et encalculant la nouvelle solution et les nouveaux couts reduits.

I L’algorithme se termine si a chaque pas la valeur de l’objectifdecroıt strictement.

En effet il n’y a que Cmn bases possibles et la

condition de decroissance stricte empeche toutbouclage.

I Cependant l’algorithme peut boucler en cas de degenerescence(il semble que ce soit tres rare).

I Comme pour l’algorithme dual, on peut mener les calculs defacon incrementale (il suffit d’un seul pivot de Gauss pourinverser la nouvelle base).

Page 90: Recherche Op´erationnelle Premi`ere Partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf · divisant l’espace des solutions r´ecursivement en deux. I La recherche s’arrˆete

Recherche du point faisable initial

I Il s’agit de trouver un point dans le polyedreP = {x | x > 0,Ax > b}. Soit 1 le vecteur dont tous leselements sont egaux a 1, et soit y un nouveau vecteur dememe taille que x . On considere le probleme :

min 1.y

x > 0

y > 0

Ax + y > b

I Il est facile de voir que le point x = 0, y = max(b, 0) estfaisable. On peut donc appliquer l’algorithme precedent.

I Si y∗ = 0, il est facile de voir que le point x∗ ∈ P.I Reciproquement, si x∗ ∈ P, alors (0, x∗) est faisable pour le

probleme augmente, donc le minimum est nul. Si inversementle minimum n’est pas nul, P est vide.