recherche op´erationnelle premi`ere partieperso.ens-lyon.fr/paul.feautrier/slides-ch1.pdf ·...
TRANSCRIPT
![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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/1.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/3.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/4.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/5.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/6.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/9.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/10.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/11.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/12.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/13.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/15.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/16.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/18.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/19.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/20.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/21.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/22.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/23.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/24.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/25.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/26.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/27.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/28.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/29.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/30.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/31.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/32.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/33.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/34.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/35.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/36.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/37.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/38.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/39.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/40.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/41.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/42.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/43.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/44.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/45.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/46.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/47.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/48.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/49.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/50.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/51.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/52.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/53.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/54.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/55.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/56.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/57.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/58.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/59.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/60.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/61.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/62.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/63.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/64.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/65.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/66.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/67.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/68.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/69.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/70.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/71.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/72.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/73.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/74.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/75.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/76.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/77.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/78.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/79.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/80.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/81.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/82.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/83.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/84.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/85.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/86.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/87.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/88.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/89.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051509/5aef6c6c7f8b9a572b8e12f3/html5/thumbnails/90.jpg)
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.