P. 1
RO.pdf

RO.pdf

|Views: 65|Likes:
Publié parMohamed Rdait

More info:

Published by: Mohamed Rdait on May 11, 2013
Droits d'auteur :Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

10/07/2013

pdf

text

original

Sections

  • 2 Applications
  • 3 Outils
  • 4 La RO en France
  • 5 R´ef´erences
  • 6 Programmation par contrainte
  • 7 Mod´elisation
  • 8 R´esolution
  • 10 Interpr´etation g´eom´etrique
  • 11 Bases et points extrˆemes
  • 12 L’algorithme du simplexe
  • 14 Comment prouver l’optimalit´e?
  • Ecrire le dual
  • 16 Propri´et´es
  • 18 Analyse post-optimale
  • 19 Application : la d´ecoupe de rouleaux
  • 21 Techniques de mod´elisation
  • 22 Relaxation lin´eaire
  • 23 Branch & Bound
  • 25 Mod`eles
  • 26 L’environnement
  • 27 Donn´ees
  • 28 Application
  • 30 In´egalit´e valide
  • 31 Algorithme de plan s´ecant
  • 33 Optimisation Combinatoire
  • 34 Principe de Sous-optimalit´e
  • 35 Programmation Dynamique
  • 36 Dominances
  • 38 D´ecoupe de rouleaux
  • 41 Planification d’exp´eriences

Cours de recherche op´ erationnelle I

Nadia Brauner Nadia.Brauner@imag.fr

Grenoble, 2012-2013

1

Auteurs
Ont particip´ e` a la r´ edaction de ce cours (par ordre d’arriv´ ee) Nadia Brauner Christophe Rapine Julien Moncel Laurent Beaudou Ont aid´ e, corrig´ e, relu et donn´ e des id´ ees Gerd Finke Yann Kieffer Van Dat Cung Ont donn´ e les TD et propos´ e des exercices Ayse Akbalik Aline Parreau Sergei Lenglet Guillaume Massonnet
2

Formations ` a Grenoble
Formation initiale RO ` a l’UJF (M1 Info, L3 Miage, Polytech’RICM4) Gestion de la production ` a l’UJF (M1 Miage) Optimisation pour l’´ energie (M2 Miage) Outils Formels et Graphes (Polytech’RICM2) RO ` a l’ENSIMAG (1A, 2A) RO ` a l’ENSGI (1A, 2A) Master 2 Math´ ematiques et Informatique, Option Recherche Op´ erationnelle, Combinatoire et Optimisation Formation continue Recherche op´ erationnelle (tous les ans, 4 jours) Graphes et optimisation (tous les ans, 3 jours)
3

Recherche Op´ erationnelle : faisons connaissance
Nadia Brauner Nadia Brauner@imag.fr Responsable Master 2 R ROCO
Recherche Op´ erationnelle, Combinatoire et Optimisation

Professeur Grenoble I

Laboratoire ´ equipe Recherche Op´ erationnelle ´ equipe Opti-Com

Pr´ esidente de la Soci´ et´ e Fran¸ caise de RO-AD
4

Recherche Op´ erationnelle : faisons connaissance
Probl` emes th´ eoriques Ordonnancement high-multiplicity (∈ NP ?) Ordonnancement dans ateliers robotis´ ees OC appliqu´ ee ` a la micro-´ electronique Contrats industriels ILOG : Probl` emes complexes de transport IFP : Planification d’exp´ eriences chimiques de Facto : Optimisation du test des circuits Participation ` a la cr´ eation d’une startup OASIC : optimisation de la conception de cellules logiques
5

La recherche op´ erationnelle

La Recherche Op´ erationnelle

Applications

Outils

La RO en France

R´ ef´ erences

Plan

1

La Recherche Op´ erationnelle Applications Outils La RO en France R´ ef´ erences

2

3

4

5

N. Brauner

7

La Recherche Op´ erationnelle Applications Outils La RO en France R´ ef´ erences Plan 1 La Recherche Op´ erationnelle Applications Outils La RO en France R´ ef´ erences 2 3 4 5 N. Brauner 8 .

or simply OR. Brauner 9 . statistics and algorithms to aid in decision-making Roadef Recherche Op´ erationnelle : approche scientifique pour la r´ esolution de probl` emes de gestion de syst` emes complexes N. operational research. is the use of mathematical models.La Recherche Op´ erationnelle Applications Outils La RO en France R´ ef´ erences Recherche Op´ erationnelle ou Science de la D´ ecision D´ efinitions Cambridge Dictionary Operational research UK (US operations research) The systematic study of how best to solve problems in business and industry Wikipedia Operations research.

Brauner 10 .. pour aborder sainement et sereinement les probl` emes d’optimisation N. tant positives que n´ egatives.La Recherche Op´ erationnelle Applications Outils La RO en France R´ ef´ erences Recherche Op´ erationnelle D´ efinitions M´ ethodes scientifiques pour r´ esoudre des probl` emes d’optimisation li´ es aux organisations du monde r´ eel Une discipline ` a la crois´ ee des math´ ematiques et de l’informatique prolongement de l’algorithmique manipulant des structures plus ´ elabor´ ees : graphes. domaine d’application de la th´ eorie de la complexit´ e algorithmique Une boite ` a outils de m´ ethodes.. poly` edres.

Brauner 11 .La Recherche Op´ erationnelle Applications Outils La RO en France R´ ef´ erences Recherche Op´ erationnelle Les outils de RO-AD aident ` a trouver une solution o` u l’homme n’en trouvait pas une solution sur des probl` emes nouveaux o` u l’homme n’a aucune exp´ erience plusieurs solutions l` a o` u l’homme n’en envisageait qu’une aident ` a juger de la qualit´ e d’une solution aident ` a confirmer / justifier des d´ ecisions N.

Brauner 12 .La Recherche Op´ erationnelle Applications Outils La RO en France R´ ef´ erences Plan 1 La Recherche Op´ erationnelle Applications Outils La RO en France R´ ef´ erences 2 3 4 5 N.

Il souhaite effectuer la tourn´ ee la plus courte possible.La Recherche Op´ erationnelle Applications Outils La RO en France R´ ef´ erences Recherche Op´ erationnelle Voyageur de commerce (TSP) Un voyageur de commerce. N. Brauner 13 . bas´ e` a Toulon. doit visiter ses clients ` a travers la France.

La Recherche Op´ erationnelle Applications Outils La RO en France R´ ef´ erences Recherche Op´ erationnelle Voyageur de commerce Instance : n villes avec une matrice de distances Solution : tourn´ ee visitant chaque ville et revenant ` a Toulon N. Brauner 14 .

Brauner 15 .La Recherche Op´ erationnelle Applications Outils La RO en France R´ ef´ erences Recherche Op´ erationnelle Algorithme Glouton pour le TSP N.

La Recherche Op´ erationnelle Applications Outils La RO en France R´ ef´ erences Recherche Op´ erationnelle Transport graphe biparti orient´ e avec pond´ eration quantit´ e d’une marchandise aux sommets coˆ uts de transport. distance sur les arcs trouver le meilleur plan de distribution ai iaP a a a i ∈A PP cij P min j PP qabj cij xij xij j ∈B ≤ ai ≥ bj ≥ 0 N. Brauner 16 xij xij A B .

Brauner 17 .La Recherche Op´ erationnelle Applications Outils La RO en France R´ ef´ erences Recherche Op´ erationnelle Applications Plus court chemin Quel est le trajet le plus court entre Grenoble et Nice en voiture ? N.

Brauner 18 . 15h : placement automatique des v´ ehicules pour une association de partage de voitures 16h : gestion des retards dans les transports publics pour minimiser l’impact sur les passagers .24hor.org/ N..... http ://www.La Recherche Op´ erationnelle Applications Outils La RO en France R´ ef´ erences Recherche Op´ erationnelle 24h de RO 8h : optimisation de la r´ ecolte et du d´ epˆ ot des d´ echets recyclables .

La Recherche Op´ erationnelle Applications Outils La RO en France R´ ef´ erences Recherche Op´ erationnelle le 15 octobre 2012 : N. Brauner 19 .

Shapley English English (pdf) Swedish Swedish (pdf) Press Release 15 October 2012 The Royal Swedish Academy of Sciences has decided to award The Sveriges Riksbank Prize in Economic Sciences in Memory of Alfred Nobel for 2012 to Alvin E. USA "for the theory of stable allocations and the practice of market design". Shapley University of California. Lloyd S. and Harvard Business School. CA. Roth Harvard University. Roth. Boston. MA. MA. USA and Lloyd S. Cambridge. USA. Brauner 20 . N.La Recherche Op´ erationnelle Applications Outils La RO en France R´ ef´ erences The Sveriges Riksbank Prize in Economic Sciences in Memory of Alfred Nobel 2012 Alvin E. Los Angeles.

Camille Des hommes : Elie.La Recherche Op´ erationnelle Applications Outils La RO en France R´ ef´ erences Mariages stables Mariages stables Des femmes : Alice. Gondran Pr´ ef´ erences des femmes A: B: C: G F G E E E F G F Pr´ ef´ erences des hommes E: F: G: A B A B C C C A B Comment faire les couples ? N. Fran¸ cois. Brauner 21 . B´ en´ edicte.

Brauner 22 .La Recherche Op´ erationnelle Applications Outils La RO en France R´ ef´ erences Mariages stables Un couplage est instable s’il contient deux personnes A et B non mari´ ees ensemble qui se pr´ ef` erent mutuellement ` a leurs conjoints : F est mari´ ee avec g G est mari´ e avec f F pr´ ef` ere G ` ag G pr´ ef` ere F ` af Questions Comment v´ erifier qu’un couplage est stable ? Est-ce qu’il existe toujours un couplage stable ? Est-ce qu’on sait trouver un couplage stable quand il existe ? N.

h´ et´ erog` enes.universit´ es Dons d’organes (reins) N.hˆ opitaux ´ etudiants .postes internes .´ ecoles d’ing´ enieur travailleurs .La Recherche Op´ erationnelle Applications Outils La RO en France R´ ef´ erences Mariages stables Applications Situations o` u les m´ ecanismes de march´ es traditionnels ne fonctionnent pas r´ epartition de biens rares. Brauner 23 . indivisibles Affectations de candidats sur des places ´ el` eves .

org/ 2010 Gestion d’´ energie (EDF) 2009 Gestion des perturbations dans le transport a´ erien (Amadeus) 2007 Planification des techniciens et des interventions pour les t´ el´ ecommunications (France Telecom) 2005 Ordonnancement de v´ ehicules pour une chaˆ ıne de montage automobile (Renault) 2003 Gestion des prises de vue r´ ealis´ ees par un satellite d’observation de la Terre (ONERA et CNES) 2001 Allocation de fr´ equences avec polarisation 1999 Gestion de stock de mat´ eriels (CELAR. arm´ ee) (Bouygues) N. Brauner 24 .roadef.La Recherche Op´ erationnelle Applications Outils La RO en France R´ ef´ erences Recherche Op´ erationnelle Les challenges ROADEF http://challenge.

Brauner 25 .La Recherche Op´ erationnelle Applications Outils La RO en France R´ ef´ erences Recherche Op´ erationnelle Le challenges ROADEF/EURO 2012 R´ eaffectation de machines Propos´ e par Google 82 ´ equipes enregistr´ ees dans 33 pays 30 ´ equipes qualifi´ ees Vainqueur Junior : ´ equipe polonaise Vainqueur Open Source et Senior : ´ equipe bosniaques N.

.La Recherche Op´ erationnelle Applications Outils La RO en France R´ ef´ erences Recherche Op´ erationnelle Domaines d’application Conception. . production et transport d’´ energie. . instruction publique. voirie. stocks. ramassage et distribution de courrier. assurances. t´ el´ ecommunications. N. configuration et exploitation de syst` emes techniques complexes (r´ eseaux de communication. banques. Brauner 26 . ) Gestion strat´ egique d’investissements et aussi sant´ e. production. . syst` emes d’information) Gestion de la chaˆ ıne logistique (transports.

N. Brauner 27 . capacit´ e des transporteurs. . grande importance dans le milieu industriel : production. . . Transport : minimiser distance totale parcourue selon quantit´ es de mat´ eriaux ` a transporter. finance. capacit´ e de production.La Recherche Op´ erationnelle Applications Outils La RO en France R´ ef´ erences Recherche Op´ erationnelle Domaines d’application Production : maximiser le profit selon disponibilit´ e de la main d’œuvre. . . prix de revient du mat´ eriau brut. emploi du temps. transport. points de ravitaillement en carburant. demande du march´ e. .

La Recherche Op´ erationnelle

Applications

Outils

La RO en France

R´ ef´ erences

Recherche Op´ erationnelle
Face ` a un probl` eme pratique de d´ ecision Aspects math´ ematiques
contraintes, objectifs, simplifications

Mod´ elisation
graphes, programmation lin´ eaire, PPC...

Analyse des mod` eles et r´ esolution
´ etude de complexit´ e : que peut-on esp´ erer pour le temps de r´ esolution imparti ? mise au point d’algorithmes

Impl´ ementation et analyse des r´ esultats
valider par rapport ` a la demande it´ erer avec le demandeur si n´ ecessaire

D´ eploiement des solutions
Int´ egration logicielle
N. Brauner 28

La Recherche Op´ erationnelle

Applications

Outils

La RO en France

R´ ef´ erences

Plan

1

La Recherche Op´ erationnelle Applications Outils La RO en France R´ ef´ erences

2

3

4

5

N. Brauner

29

La Recherche Op´ erationnelle

Applications

Outils

La RO en France

R´ ef´ erences

Recherche Op´ erationnelle
Programmation lin´ eaire min le coˆ ut / max le profit satisfaire la demande avec des ressources limit´ ees quantit´ es produites min / max c1 x1 + c2 x2 . . . cn xn

a1 x1 + a2 x2 . . . an xn ≥ b1 a1 x1 + a2 x2 . . . an xn ≤ b1 x1 , x2 . . . xn ≥ 0

N. Brauner

30

La Recherche Op´ erationnelle

Applications

Outils

La RO en France

R´ ef´ erences

Recherche Op´ erationnelle
Optimisation Combinatoire Trouver la meilleure solution parmi un nombre fini mais tr` es grand de choix Un probl` eme d’OC se caract´ erise par :
La pr´ esence de choix, ` a faire parmi un ensemble fini d’alternatives Une notion de coˆ ut, ou de gain, ou de perte La n´ ecessit´ e de faire globalement les bons choix, de mani` ere ` a optimiser la valeur objectif

exemples : emplois du temps. . . Combinatoire ´ echiquier tronqu´ e http://mathsamodeler.ujf-grenoble.fr/LAVALISE/
N. Brauner 31

La Recherche Op´ erationnelle

Applications

Outils

La RO en France

R´ ef´ erences

Recherche Op´ erationnelle
Graphes 
 sommet  $ arˆ ete $$ I  
5

$ $$X
3

Valuation des arˆ etes = coˆ uts, temps, distance, capacit´ es. . . meilleur chemin de i ` aj meilleurs parcours
passant par chaque ville passant par chaque arˆ ete

...
N. Brauner 32

La Recherche Op´ erationnelle

Applications

Outils

La RO en France

R´ ef´ erences

Recherche Op´ erationnelle

Autre outils Files d’attente Stochastique Simulation

dessin de Lionel Lagarde

` l’interface de A Informatique : algorithmique Math´ ematiques : mod´ elisation ´ Economie : gestion, strat´ egie
N. Brauner 33

La Recherche Op´ erationnelle

Applications

Outils

La RO en France

R´ ef´ erences

Plan

1

La Recherche Op´ erationnelle Applications Outils La RO en France R´ ef´ erences

2

3

4

5

N. Brauner

34

La Recherche Op´ erationnelle Applications Outils La RO en France R´ ef´ erences Recherche Op´ erationnelle : entreprises en France Grands groupes avec un pˆ ole R&D en RO Airfrance La SNCF EDF France Telecom Bouygues GDF Suez La poste Renault Air Liquide SFR Google N. Brauner 35 .

La Recherche Op´ erationnelle Applications Outils La RO en France R´ ef´ erences Recherche Op´ erationnelle : entreprises en France Pour les autres entreprises Soci´ et´ es de conseil sp´ ecialis´ ees Logiciels sur ´ etag` ere Laboratoires acad´ emiques N. Brauner 36 .

outils d’aide ` a la d´ ecision ARTELYS Solutions en optimisation . N.La Recherche Op´ erationnelle Applications Outils La RO en France R´ ef´ erences Recherche Op´ erationnelle : entreprises en France Soci´ et´ es de conseil accompagnent les industriels pour mettre en place des syst` emes d’aide ` a la d´ ecision EURODECISION Conseil en optimisation des ressources et planification de la production. Brauner 37 ...

. N. Visualization software components.. Supply chain applications COSYTEC offrir des solutions logicielles. Brauner 38 . pour r´ esoudre des probl` emes d’optimisation des ressources FICO et ARTELYS Fico XPress : logiciels de mod´ elisation de probl` emes lin´ eaires ou quadratiques avec variables r´ eelles ou enti` eres Knitro : optimiseur non lin´ eaire Artelys Kalis : Programmation par contraintes .La Recherche Op´ erationnelle Applications Outils La RO en France R´ ef´ erences Recherche Op´ erationnelle : entreprises en France ´ Editeurs de logiciels librairies d´ edi´ ees ` a des probl` emes math´ ematiques ILOG (IBM) Optimization tools and engines. ` a base de technologie de programmation par contraintes.

.La Recherche Op´ erationnelle Applications Outils La RO en France R´ ef´ erences Recherche Op´ erationnelle : entreprises en France ´ Editeurs de logiciels librairies d´ edi´ ees ` a des probl` emes m´ etiers ALMA : Placement et d´ ecoupe ex : petit bateau (habits). Brauner 39 . Oracle. N. chantiers navals AMADEUS : Voyage plateforme de r´ eservation centralis´ ee pour l’industrie du voyage et outils de gestion des compagnies a´ eriennes Optilogistics : transport et logistique progiciels d’optimisation de tourn´ ees et de planification du transport Ordecsys..

La Recherche Op´ erationnelle Applications Outils La RO en France R´ ef´ erences Recherche Op´ erationnelle : entreprises en France Alma : D´ ecoupe N. Brauner 40 .

enseignants chercheurs. Brauner 41 . ing´ enieurs de recherche permanents ≈ 500 doctorants N.La Recherche Op´ erationnelle Applications Outils La RO en France R´ ef´ erences Recherche Op´ erationnelle : en France Et dans le monde acad´ emique enquˆ ete 2010 de la Roadef ≈ 75 ´ equipes ou laboratoires ≈ 1400 membres ≈ 700 chercheurs.

La Recherche Op´ erationnelle Applications Outils La RO en France R´ ef´ erences Recherche Op´ erationnelle : pour en savoir plus Le Livre Blanc de la Recherche Op´ erationnelle en France Comment les industriels s’organisent D’incontestables r´ eussites Soci´ et´ es de conseil et ´ editeurs de logiciels  .

Brauner 42 .org/ N.roadef.   http://www.

Brauner 43 .La Recherche Op´ erationnelle Applications Outils La RO en France R´ ef´ erences Plan 1 La Recherche Op´ erationnelle Applications Outils La RO en France R´ ef´ erences 2 3 4 5 N.

Enseignement des sciences. Brauner 44 . Sakarovitch. N. D. Integer Programming. 1984. 2003. Presses Polytechniques et Universitaires Romandes. J. Hermann. Liebling. Paris. Hermann. Wolsey. and He Recherche Op´ erationnelle pour Ing´ enieurs. M. Optimisation Combinatoire.. A. Optimisation Combinatoire. T. Sakarovitch. L..-F. Paris. Graphes et Programmation Lin´ eaire. Wiley-Interscience.La Recherche Op´ erationnelle Applications Outils La RO en France R´ ef´ erences Bibliographie ˆche. Enseignement des sciences. Tome 1.-M. 1998. Programmation Discr` ete. 1984. de Werra. M.

fr/ROCO/ Vie de la RO en France Soci´ et´ e fran¸ caise de RO http://www.org Groupe de Recherche en RO du CNRS http://www-poleia.fr/~braunern/ Compl´ ements au cours http://www.php?page=5/ N. combinatoire ` a Grenoble http://oc.fr/~fouilhoux/gdrro/ S´ eminaire de recherche en optim.g-scop.roadef.inpg. Combinatoire et Optim.lip6.inpg.g-scop. http://www.inpg.La Recherche Op´ erationnelle Applications Outils La RO en France R´ ef´ erences Webographie Cours Poly de cours http://www.g-scop.fr/index.inpg.fr/~rapinec/ M2R de Recherche Op´ erationnelle. Brauner 45 .

uni-karlsruhe. Brauner 46 .fr/~diam/ro/ Logiciels pour la RO http://www.vcu.roadef.tepper.cmu.de/bibliothek/ Blogs sur la RO http://blog.wior.La Recherche Op´ erationnelle Applications Outils La RO en France R´ ef´ erences Webographie Collection de ressources pour la RO http://www2.edu/lamclay/ http://mat.edu/blog/ Des challenges industriels internationaux en RO http://challenge.ensta.org/ N.org/resources.org/Resources/ http://www.html http://www.informs.coin-or.

Dessins de L. . le plus rapide.La Recherche Op´ erationnelle Applications Outils La RO en France R´ ef´ erences Recherche Op´ erationnelle En conclusion faire le mieux coˆ ut min. camions. avec les ressources disponibles temps machine. mati` ere premi` ere. . m´ emoire. plus courte distance. ressource homme. postes de travail. . . Brauner 47 . Lagarde N. meilleur profit.

Programmation par contraintes .

Brauner 49 .Programmation par contrainte Mod´ elisation R´ esolution Plan 6 Programmation par contrainte 7 Mod´ elisation 8 R´ esolution N.

N.Programmation par contrainte Mod´ elisation R´ esolution Sudoku Pr´ ecis de Sudoku. Brauner 50 . Jussien N.

Brauner 51 .Programmation par contrainte Mod´ elisation R´ esolution Sudoku et PPC Raisonnement par ´ elimination on ne cherche pas directement une valeur pour les variables mais plutˆ ot les valeurs qui peuvent ˆ etre prises par une variable : r´ eduction du domaine Raisonnement local : contraintes consid´ er´ ees ind´ ependamment v´ erifier choix coh´ erents : tests satisfiabilit´ e ´ eliminer valeurs impossibles : filtrage Transmission des d´ eductions aux autres r´ egions les contraintes communiquent et interagissent par l’interm´ ediaire des variables. lorsque le domaine courant d’une variable change. toutes les contraintes dans lesquelles elles apparaissent sont r´ eveill´ ees : propagation =⇒ principes au cœur de la programmation par contraintes N.

Brauner 52 . une solution : la solution est-elle une solution du probl` eme ? simulation.Programmation par contrainte Mod´ elisation R´ esolution On se trouve o` u? Un probl` eme. v´ erification Un probl` eme : trouver une solution du probl` eme programmation par contrainte (CSP) Un probl` eme : trouver la meilleure solution du probl` eme programmation lin´ eaire N.

y ∈ {0. 1 . Brauner 53 . .Programmation par contrainte Mod´ elisation R´ esolution Un premier exemple Domaine des variables x . . 7} Contraintes x ×y =6 x +y =5 x >y N.

langage proche des concepts des utilisateurs Contraindre = maintenir dans les limites permet d’´ eliminer rapidement des solutions non r´ ealisables Bien s´ eparer mod´ elisation et r´ esolution Notion naturelle de contraintes : affecter stages ` a´ etudiants ranger des objets dans une boite planifier le trafic a´ erien ´ etablir un menu ´ equilibr´ e et app´ etissant N.Programmation par contrainte Mod´ elisation R´ esolution La PPC. qu’est-ce que c’est ? Des id´ ees en vrac Outil informatique pour r´ esoudre des probl` emes combinatoires Minimise l’´ etape de conception : mod´ elisation facile. Brauner 54 .

Programmation par contrainte Mod´ elisation R´ esolution La PPC.univ-lyon1. Brauner 55 .fr/~csolnon/ N. qu’est-ce que c’est ? D´ efinition plus formelle CSP : ensemble de probl` emes d´ efinis par des contraintes et consistant ` a chercher une solution les respectant R´ esolution d’un CSP combinatoire : envisager tr` es grand nombre de combinaisons avant d’en trouver une qui satisfait toutes les contraintes Trop long ⇒ introduire des ”raisonnements” ou ”heuristiques” pour r´ eduire la combinatoire et orienter la recherche Solveur de contraintes : on d´ ecrit les contraintes et le solveur prend en charge automatiquement la r´ esolution inspir´ e cours de Christine Solnon http ://bat710.

Brauner 56 . connexions des couches de circuits moins efficace que le code d´ edi´ e.Programmation par contrainte Mod´ elisation R´ esolution Application de la PPC inspir´ e de Gilles Pesant Mod´ elisation de gestion de projet Puzzle combinatoire Conception de mat´ eriel informatique v´ erification de circuits. mais plus flexible Placement d’objets placement des containers dans un port remplissage des containers N.

fr N. du verre. du m´ etal. du bois.alma.Programmation par contrainte Mod´ elisation R´ esolution Application de la PPC Probl` emes de d´ ecoupage Minimiser les pertes lors de la d´ ecoupe du papier. Brauner 57 . etc. La performance d´ epend du contexte et de la difficult´ e des contraintes Papier : facile donc la programmation lin´ eaire fonctionne bien Pi` eces m´ etalliques : plus difficile donc utiliser la PPC Cuir et tissus : trop difficile seules les heuristiques fonctionnent http://www.

les communications radios. ILOG Scheduler) Conception d’horaires acad´ emiques Planifier l’horaire des cours ou des examens. professeurs. etc. Ordonnancement de la production Planifier des tˆ aches sur des machines dans une usine Plus important succ` es de la PPC Librairies d´ edi´ es ` a l’ordonnancement (ex. en tenant compte des diff´ erentes ressources (´ etudiants.Programmation par contrainte Mod´ elisation R´ esolution Application de la PPC Allocation d’espace Portes pour les avions Quais pour les trains ou les bateaux Allocation de fr´ equences Trouver des fr´ equences radio pour les cellulaires. locaux) N. Brauner 58 . l’arm´ ee.

etc. Permet de mod´ eliser les contraintes complexes http://www. usine.org/ N. commerce de d´ etail. Brauner 59 . Librairies sp´ ecialis´ ees.equitime. contraintes d´ edi´ ees Construction d’horaires de personnel Affecter les gens ` a des tˆ aches pr´ ecises Sant´ e.Programmation par contrainte Mod´ elisation R´ esolution Application de la PPC Tourn´ ee de v´ ehicules Confection de routes sujet ` a beaucoup de contraintes.

Programmation par contrainte Mod´ elisation R´ esolution Plan 6 Programmation par contrainte 7 Mod´ elisation 8 R´ esolution N. Brauner 60 .

Brauner 61 . tableaux de valeurs possibles Avec des ensembles de valeurs possibles pour les variables de d´ ecision N.Programmation par contrainte Mod´ elisation R´ esolution La programmation par contraintes Objectif Trouver une solution r´ ealisable Qui respecte des contraintes faciles ` a v´ erifier Formules math´ ematiques simples.

Xn les variables de d´ ecision Domaine La variable Xi doit prendre ses valeurs dans le domaine Di discret fini ou infini N. Brauner 62 . . X2 .Programmation par contrainte Mod´ elisation R´ esolution Domaines D´ efinition X1 . .

1] Les points ` a coordonn´ ees enti` eres du plan N. L’ensemble des r´ eels Les entiers naturels impairs L’intervalle [−1. 2. 3.Programmation par contrainte Mod´ elisation R´ esolution Domaines Exercice Sont-ce des domaines ? {1. 4} L’ensemble des entiers naturels. Brauner 63 .

z distincts deux ` a deux N. Brauner 64 .Programmation par contrainte Mod´ elisation R´ esolution Contraintes C’est quoi ? Variables Domaines Contraintes Une contrainte restreint les valeurs que l’on peut affecter simultan´ ement ` a des variables Exemples : 2x + 3y = 12 3x 2 =3 A∪B ⊂C x = 3y (ABC ) forme un triangle isoc` ele x . y .

Brauner 65 .Programmation par contrainte Mod´ elisation R´ esolution Contraintes D´ eclaration d’une contrainte 2 types de d´ eclaration : extension : on ´ enum` ere les valeurs admises (x = 1 et y = 2) ou (x = 2 et y = 4) ou (x = 3 et y = 0) intension : on utilise les signes math´ ematiques connus x <y N.

on ne s’occupe pas de donner un algorithme permettant de r´ esoudre cette ´ equation ordre des contraintes non significatif N. Brauner 66 . sans donner de proc´ edure pour assurer/v´ erifier cette relation x − 2y = z .Programmation par contrainte Mod´ elisation R´ esolution Contraintes Caract´ eristiques des contraintes Relationnelle : non ”dirig´ ee” comme une fonction qui d´ efinit la valeur d’une variable en fonction des autres variables x − 2y = z permet de d´ eterminer z si x et y sont connues mais aussi x si y et z sont connues et y si x et z sont connues d´ eclarative : sp´ ecifie la relation entre les variables.

o` u E est un ensemble de variables N.Programmation par contrainte Mod´ elisation R´ esolution Contraintes Arit´ e d’une contrainte : le nombre de variables dans la contrainte unaire : arit´ e=1 x ∗ x = 4 ou est-un-triangle(y ) binaire : arit´ e=2 x = y ou A ∪ B = A ternaire : arit´ e=3 x + y < 3 ∗ z − 4 ou (non x ) ou y ou z = vrai n-aire : arit´ e=n Si n est le nombre de variables : contrainte globale toutesDiff´ erentes(E ). Brauner 67 .

Programmation par contrainte Mod´ elisation R´ esolution Contraintes Exemples suppl´ ementaires Contraintes logiques Si x = 4 alors y = 5 x = y ou x = 2y Contraintes globales Toutes les variables sont diff´ erentes M´ eta-contraintes La valeur 5 est utilis´ ee exactement 3 fois N. Brauner 68 .

c . . X2 . C ) tel que   X = {X1 . .Programmation par contrainte Mod´ elisation R´ esolution Probl` eme de satisfaction de contraintes (X . D2 . . Dn } o` u Di est le domaine de Xi  C = {C1 . a + c < b } N. . . D . . Xn } l’ensemble des variables D = {D1 . c = d . . 1} C = {a = b . d } D (a) = D (b ) = D (c ) = D (d ) = {0. . Cm } l’ensemble des contraintes Exemple X = {a . b . . . . C2 . . Brauner 69 .

. Brauner 70 . V4 )} associe la valeur V1 de D1 ` a la variable X1 . (X4 . V1 ). A = {(X1 . (X3 . Une affectation est : partielle ou totale consistante ou inconsistante Une solution est une affectation totale consistante N. V3 )..Programmation par contrainte Mod´ elisation R´ esolution Solution d’un CSP Une affectation est le fait d’instancier des variables.

Programmation par contrainte Mod´ elisation R´ esolution Solution d’un CSP Probl` eme X = {a. (b . (b . Brauner 71 . 0)} A4 = {(a. (c . a + c < b } A1 = {(a. (d . 0). 0). c . 0). 0). 1). 0)} A2 = {(a. (d . 1)} N. b . (c . 0). 1). 1} C = {a = b . 0)} A3 = {(a. c = d . d } D (a) = D (b ) = D (c ) = D (d ) = {0. (b . 1). (b .

Brauner 72 .Programmation par contrainte Mod´ elisation R´ esolution Le jeu du : CSP. puis-je rendre exactement 8 euros et 57 centimes ? Connaissant les pi` eces de mon porte-monnaie. quelle est la meilleure fa¸ con de rendre 8 euros et 57 centimes ? Est-il possible de colorier une carte avec 5 couleurs sans fronti` ere monochrome ? Sur un cercle. pas CSP ! Connaissant les pi` eces de mon porte-monnaie. trouver un point ` a distance 2 d’une droite. N.

Programmation par contrainte Mod´ elisation R´ esolution CSP CSP surcontraint : n’a pas de solution ⇒ trouver une affectation totale qui maximise le nombre de contraintes satisfaites = max-CSP ⇒ affecter un poids ` a chaque contrainte (proportionnel ` a l’importance de cette contrainte) et chercher une affectation totale qui minimise la somme des poids des contraintes viol´ ees = CSP valu´ e (VCSP) CSP sous-contraint : admet beaucoup de solutions diff´ erentes. Brauner 73 . ⇒ pr´ ef´ erences entre les diff´ erentes solutions (fonction qui associe une valeur num´ erique ` a chaque solution) et trouver une solution du CSP qui maximise cette fonction = CSOP (Constraint Satisfaction Optimisation Problem) N.

Programmation par contrainte Mod´ elisation R´ esolution Plan 6 Programmation par contrainte 7 Mod´ elisation 8 R´ esolution N. Brauner 74 .

Programmation par contrainte Mod´ elisation R´ esolution Un constat Un probl` eme est rarement donn´ e sous la forme d’un CSP N. Brauner 75 .

N. 4} contraintes lignes. 4} et Ci ∈ {1. colonnes et diagonales diff´ erentes. L2 .Programmation par contrainte Mod´ elisation R´ esolution Le probl` eme des reines Jeu : placer 4 reines sur un ´ echiquier 4 × 4 sans qu’elles ne se menacent Mod´ elisation variables L1 . 3. C4 domaines Li ∈ {1. 2. L4 et C1 . 3. C3 . C2 . Brauner 76 . 2. L3 .

L3 .Programmation par contrainte Mod´ elisation R´ esolution Mod´ elisation Attention Il n’y a pas qu’une mod´ elisation possible ! Mod´ elisation variables L1 . Li = Lj ∀i = j . L4 domaines Li ∈ {1. L2 . 3. 4} contraintes ∀i = j . Brauner 77 . Li + i = Lj + j Li − i = Lj − j N. 2.

Brauner 78 .Programmation par contrainte Mod´ elisation R´ esolution Mod´ elisation Autre mod´ elisation pour le probl` eme des reines ? N.

Programmation par contrainte Mod´ elisation R´ esolution Mod´ elisation Quelle est la meilleure mod´ elisation ? 1 2 3 Celle qui mod´ elise le mieux la r´ ealit´ e du probl` eme Celle qui est la plus facile ` a trouver Celle qui permettra de r´ esoudre le probl` eme le plus efficacement N. Brauner 79 .

L’utilisateur ins` ere des pi` eces de monnaie pour un total de T centimes d’Euros. Il s’agit alors de calculer la monnaie ` a rendre. C20 pi` eces de 20 centimes et C10 pi` eces de 10 centimes. puis il s´ electionne une boisson. E1 pi` eces de 1= C. C50 pi` eces de 50 centimes.Programmation par contrainte Mod´ elisation R´ esolution Exercice : le retour de monnaie On s’int´ eresse ` a un distributeur automatique de boissons. dont le prix est de P centimes d’Euros (T et P ´ etant des multiples de 10). N. Brauner 80 . Mod´ elisez ce probl` eme sous la forme d’un CSP. sachant que le distributeur a en r´ eserve E2 pi` eces de 2= C.

Brauner 81 .Programmation par contrainte Mod´ elisation R´ esolution Correction : le retour de monnaie N.

Programmation par contrainte Mod´ elisation R´ esolution Exercice : Send More Money On consid` ere l’addition suivante : + = S M O E O N N R E D E Y M o` u chaque lettre repr´ esente un chiffre diff´ erent (compris entre 0 et 9). Mod´ elisez ce probl` eme sous la forme d’un CSP. sachant que la premi` ere lettre de chaque mot repr´ esente un chiffre diff´ erent de 0. Brauner 82 . N. On souhaite connaˆ ıtre la valeur de chaque lettre.

Programmation par contrainte Mod´ elisation R´ esolution Correction : Send More Money N. Brauner 83 .

Programmation par contrainte Mod´ elisation R´ esolution Plan 6 Programmation par contrainte 7 Mod´ elisation 8 R´ esolution N. Brauner 84 .

c’est gagn´ e Avantage : tr` es facile ` a mettre en œuvre Inconv´ enient : tr` es gourmand en ressource temps N.Programmation par contrainte Mod´ elisation R´ esolution R´ esolution na¨ ıve ´ Enum´ eration On g´ en` ere toutes les affectations totales possibles On v´ erifie si elles sont consistantes si on en trouve une consistante. Brauner 85 .

Brauner 86 .Programmation par contrainte Mod´ elisation R´ esolution R´ esolution na¨ ıve Un probl` eme ` a n variables qui peuvent prendre 2 valeurs.. n 10 20 30 40 50 60 70 nb d’affectations 103 106 109 1012 1015 1018 1021 temps .. d’o` u l’int´ erˆ et de bien choisir la mod´ elisation N. 109 affectations trait´ ees par seconde.

Brauner 87 ... N.Programmation par contrainte Mod´ elisation R´ esolution Les rem` edes S’arrˆ eter quand une affectation partielle est inconsistante backtrack Restreindre les domaines des variables durant l’ex´ ecution propagation de contraintes Utiliser des heuristiques Utiliser nos connaissances sur le probl` eme ´ etudi´ e .

on n’explore pas le sous-arbre correspondant N. Brauner 88 .Programmation par contrainte Mod´ elisation R´ esolution Backtrack Principe : On parcourt l’arbre des affectations en profondeur Lorsqu’une affectation partielle est inconsistante.

Brauner 89 .Programmation par contrainte Mod´ elisation R´ esolution Backtrack : jeu de dames Exemple d’ex´ ecution N.

Brauner 90 .Programmation par contrainte Mod´ elisation R´ esolution Backtrack Backtrack  Moins d’affectations consid´ er´ ees  Toutes les contraintes sont test´ ees ` a chaque affectation mˆ eme partielle  Facile ` a mettre en œuvre M´ ethode na¨ ıve  Toutes les affectations sont consid´ er´ ees  On ne teste les contraintes que sur les affectations totales  Tr` es facile ` a mettre en œuvre Importance de l’ordre des variables N.

Brauner 91 .Programmation par contrainte Mod´ elisation R´ esolution Propagation des contraintes Principe : On restreint le domaine d’une variable avec les contraintes. on restreint les autres domaines Exemple 0 < x ≤ 10 et 3 ≤ y ≤ 9 contrainte : x > y Alors on peut restreindre le domaine de x ` a 4 ≤ x ≤ 10 N.

Brauner 92 .Programmation par contrainte Mod´ elisation R´ esolution Propagation des contraintes Id´ ee : ` a partir d’un CSP. on cherche un CSP ´ equivalent avec des domaines plus petits On propage : Quand un domaine est r´ eduit Quand une des bornes du domaine est chang´ ee Quand un domaine est un singleton On propage : Une fois : nœud-consistance Deux fois : arc-consistance Ou plus. N...

Algorithmiquement. N. v )} est inconsistante. et pour toute valeur v de D (Xi ). C ) est consistant de nœud si pour toute variable Xi de X . l’affectation partielle (Xi . D . Brauner 93 .Programmation par contrainte Mod´ elisation R´ esolution Propagation des contraintes Nœud-consistance Formellement. v ) satisfait toutes les contraintes unaires de C . un CSP (X . pour chaque variable Xi non affect´ ee dans A. on enl` eve de D (Xi ) toute valeur v telle que l’affectation A ∪ {(Xi .

Programmation par contrainte Mod´ elisation R´ esolution Propagation des contraintes Nœud-consistance N. Brauner 94 .

l’affectation A ∪ {(Xi . et pour toute valeur vi appartenant ` a D (Xi ).Programmation par contrainte Mod´ elisation R´ esolution Propagation des contraintes Arc-consistance Formellement. pour chaque variable Xi non affect´ ee dans A. v ). un CSP (X . C ) est consistant d’arc si pour tout couple de variables (Xi . il existe une valeur vj appartenant ` a D (Xj ) telle que l’affectation partielle {(Xi . D . vi ). N. Xj ) de X . pour toute valeur w de D (Xj ). (Xj . vj )} satisfasse toutes les contraintes binaires de C . on enl` eve de D (Xi ) toute valeur v telle qu’il existe une variable Xj non affect´ ee pour laquelle. (Xj . Brauner 95 . Algorithmiquement. w )} soit inconsistante.

Programmation par contrainte Mod´ elisation R´ esolution Propagation des contraintes Arc-consistance : exemple d’ex´ ecution N. Brauner 96 .

Brauner 97 .Programmation par contrainte Mod´ elisation R´ esolution Propagation de contraintes Nœud-consistance :  Moins d’affectations consid´ er´ ees  Toutes les contraintes sont test´ ees ` a chaque affectation mˆ eme partielle  Facile ` a mettre en œuvre Arc-consistance :  Beaucoup moins d’affectations consid´ er´ ees ´  Etablir l’arc-consistance peut prendre beaucoup de temps selon les contraintes.  Moins facile ` a mettre en œuvre N.

Brauner 98 .Programmation par contrainte Mod´ elisation R´ esolution Syst` emes Syst` emes bas´ es sur la programmation logique ECLiPSE Prolog GNU Prolog Syst` emes bas´ es sur des librairies ILOG soveur (C++) Choco (Java) Facile (Ocaml) N.

Exercice : Affectation de stock N entrepˆ ots (coˆ ut d’ouverture ouvre(i ) ) M boutiques coˆ uts d’acheminement de chaque entrepˆ ot ` a chaque boutique transfert(i . Brauner 99 . j ) capacit´ e : chaque entrepˆ ot ne peut fournir qu’un certain nombre de boutiques cap(i ) Question : avec un budget de mille euros. puis-je subvenir aux besoins de mes boutiques ? N.

Correction : Affectation de stock N. Brauner 100 .

Programmation lin´ eaire .

Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe Plan 9 Introduction ` a la programmation lin´ eaire 10 Interpr´ etation g´ eom´ etrique 11 Bases et points extrˆ emes 12 L’algorithme du simplexe N. Brauner 102 .

Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe Plan 9 Introduction ` a la programmation lin´ eaire 10 Interpr´ etation g´ eom´ etrique 11 Bases et points extrˆ emes 12 L’algorithme du simplexe N. Brauner 103 .

x2 . . xn ) = j =1 cj xj N. . objectif lin´ eaire Variables x1 . Brauner 104 .Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe Programmation lin´ eaire Cadre de la PL Programmation lin´ eaire nombre fini de variables r´ eelles. . contraintes lin´ eaires. . x2 . xn r´ eelles Contrainte g´ en´ erique (contrainte i ) : n aij xj ≤ bi j =1 Fonction-objectif g´ en´ erique (` a maximiser / minimiser) : n f (x1 .

Programmation lin´ eaire

Interpr´ etation g´ eom´ etrique

Bases et points extrˆ emes

L’algorithme du simplexe

Programmation lin´ eaire
Exemple : culture de courgettes et navets Contraintes concernant les quantit´ es d’engrais et d’anti-parasites 8 engrais A disponible → 2 /m2 n´ ecessaires pour courgettes, 1 /m2 pour navets 7 engrais B disponible → 1 /m2 n´ ecessaires pour courgettes, 2 /m2 pour navets 3 anti-parasites disponible → 1 /m2 n´ ecessaires pour navets Objectif : produire le maximum (en poids) de l´ egumes, sachant que rendements = 4kg /m2 courgettes, 5kg /m2 navets

N. Brauner

105

Programmation lin´ eaire

Interpr´ etation g´ eom´ etrique

Bases et points extrˆ emes

L’algorithme du simplexe

Programmation lin´ eaire
Exemple : culture de courgettes et navets Variables de d´ ecision xc : surface de courgettes xn : surface de navets Fonction objectif Contraintes 2xc + xn ≤ 8 xc + 2xn ≤ 7 xn ≤ 3 (engrais A) (engrais B) (anti-parasites) max 4xc + 5xn

xc ≥ 0 et xn ≥ 0
N. Brauner 106

Programmation lin´ eaire

Interpr´ etation g´ eom´ etrique

Bases et points extrˆ emes

L’algorithme du simplexe

Programmation lin´ eaire
Int´ erˆ et de la PL Probl` eme g´ en´ eral d’optimisation sous contraintes ´ ERALE ´ ⇒ AUCUNE m´ ethode GEN de r´ esolution ! ! Probl` eme lin´ eaire quelconque ⇒ existence de m´ ethodes de r´ esolution g´ en´ erales et efficaces Ces m´ ethodes sont efficaces en th´ eorie et en pratique ⇒ existence de nombreux logiciels de r´ esolution : Excel, CPLEX, Mathematica, LP-Solve. . . Cadre restrictif variables r´ eelles contraintes lin´ eaires objectif lin´ eaire
N. Brauner 107

Programmation lin´ eaire

Interpr´ etation g´ eom´ etrique

Bases et points extrˆ emes

L’algorithme du simplexe

Programmation lin´ eaire
Repr´ esentation in extenso max 4xc + 5xn 2xc + xn ≤ 8 (engrais A) xc + 2xn ≤ 7 (engrais B) xn ≤ 3 (anti-parasites) xc ≥ 0 et xn ≥ 0 Repr´ esentation matricielle max  (4 5) xc xn xc xn 

 2 1  1 2  0 1 xc ≥ 0

 8 ≤ 7  3 xn ≥ 0
N. Brauner 108

Programmation lin´ eaire

Interpr´ etation g´ eom´ etrique

Bases et points extrˆ emes

L’algorithme du simplexe

Programmation lin´ eaire
Repr´ esentation in extenso max z =
j cj xj

s .c .

j

aij xj

   ≤  ≥ b   i = ≥ 0

i = 1, 2 . . . m

xj

j = 1, 2 . . . n

N. Brauner

109

Programmation lin´ eaire

Interpr´ etation g´ eom´ etrique

Bases et points extrˆ emes

L’algorithme du simplexe

Programmation lin´ eaire
   second membre b =   matrice de format  a11 a12  a21 a22  A=  am 1 am 2 b1 b2 . . . bm m×n  a1n a2n     . . . amn ... ... .. .         n var. de d´ ecision X =       

x1 x2 . . . xn

Repr´ esentation matricielle max z = cx    ≤  ≥ b   = ≥ 0
N. Brauner 110

s .c .

Ax

coˆ ut (ou profit) c = (c1 , c2 . . . cn ) x

Programmation lin´ eaire

Interpr´ etation g´ eom´ etrique

Bases et points extrˆ emes

L’algorithme du simplexe

Programmation lin´ eaire
Vocabulaire xi variable de d´ ecision du probl` eme x = (x1 , . . . , xn ) solution r´ ealisable (admissible) ssi elle satisfait toutes les contraintes ensemble des solutions r´ ealisables = domaine ou r´ egion admissible x = (x1 , . . . , xn ) solution optimale ssi elle est r´ ealisable et optimise la fonction-objectif contraintes in´ egalit´ e ou ´ egalit´ e lin´ eaire
a11 x1 + a12 x2 . . . + a1n xn ≤ b1 a21 x1 + a22 x2 . . . + a2n xn ≥ b2 a31 x1 + a32 x2 . . . + a3n xn = b3

fonction objectif (ou fonction ´ economique) lin´ eaire
max / min c1 x1 + c2 x2 . . . + cn xn
N. Brauner 111

Brauner 112 .Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe Programmation lin´ eaire Applications Feuille de TD : Programmation lin´ eaire. Mod´ elisation Exercice 1 : Production de vins Exercice 2 : Fabrication d’huile d’olives Exercice 3 : Compagnie a´ erienne Exercice 4 : Publicit´ e N.

c . . . Brauner 113 . 2 .c . 2 . . m j = 1. Ax x ≤ b ≥ 0 N.Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe Programmation lin´ eaire Forme canonique d’un PL maximisation toutes les variables sont non n´ egatives toutes les contraintes sont des in´ equations du type “≤” max z = s . n forme matricielle max z = cx s . j j cj xj aij xj xj ≤ bi ≥ 0 i = 1. .

. 2 . .Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe Programmation lin´ eaire Forme standard d’un PL maximisation toutes les variables sont non n´ egatives toutes les contraintes sont des ´ equations max z = s . Ax x = b ≥ 0 N.c . n forme matricielle max z = cx s .c . . j j cj xj aij xj xj = bi ≥ 0 i = 1. Brauner 114 . m j = 1. . 2 .

s≥0 s≥0 variable non contrainte → variables positives x ≶0 ⇐⇒ x = x+ − x− x +.Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe Programmation lin´ eaire Passage entre les formes ´ equation → in´ equation ax = b ⇐⇒ ax ≤ b ax ≥ b max ↔ min max f (x ) = − min −f (x ) in´ equation → ´ equation : ajouter une variable d’´ ecart ax ≤ b ax ≥ b ⇐⇒ ⇐⇒ ax + s = b . ax − s = b . x − ≥ 0 N. Brauner 115 .

Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe Programmation lin´ eaire Passage entre les formes Feuille de TD : Programmation lin´ eaire. Brauner 116 . R´ esolution Exercice 1 N.

. Brauner 117 i = 1. 2 . e2 .e ≥ 0 N. .Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe Programmation lin´ eaire Lin´ eariser un probl` eme non lin´ eaire ei : expression lin´ eaire des variables de d´ ecision obj : min max{e1 . . −e )   min y y ≥ e1  y ≥ −e1   min e + + e − e1 = e + − e −  + − e . n obj : max min{e1 . . . en } min y y ≥ ei i = 1. e2 . 2 . . n . . en } max y y ≤ ei obj : min |e1 | |e | = max(e . .

Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe Programmation lin´ eaire Lin´ eariser un probl` eme non lin´ eaire Feuille de TD : Programmation lin´ eaire. R´ esolution Exercice 2 N. Brauner 118 .

. N. utilisation de la PL dans tous les domaines industriels. Brauner 119 . math´ ematicien am´ ericain ⇒ algorithme du simplexe application historique Op´ erations Vittles et Plainfare pour ravitaillement de la trizone pendant le blocus de Berlin par pont a´ erien (23 juin 1948 – 12 mai 1949) simplexe ex´ ecut´ e` a la main (des milliers de variables). ´ economiste sovi´ etique ⇒ mod` eles lin´ eaires pour la planification et l’optimisation de la production ann´ ees 40-50 : Dantzig.Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe Programmation lin´ eaire Un peu d’histoire ann´ ees 30-40 : Kantorovitch. jusqu’` a 12 000 tonnes de mat´ eriel par jour ! 1975 : prix Nobel ´ economie Kantorovitch XXI` eme si` ecle : logiciels de PL disponibles partout..

Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe Plan 9 Introduction ` a la programmation lin´ eaire 10 Interpr´ etation g´ eom´ etrique 11 Bases et points extrˆ emes 12 L’algorithme du simplexe N. Brauner 120 .

Brauner 121 .Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe Interpr´ etation g´ eom´ etrique Exemple : culture de courgettes et navets Variables de d´ ecision xc : surface de courgettes xn : surface de navets Fonction objectif Contraintes 2xc + xn ≤ 8 xc + 2xn ≤ 7 xn ≤ 3 (engrais A) (engrais B) (anti-parasites) max 4xc + 5xn xc ≥ 0 et xn ≥ 0 N.

Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe Interpr´ etation g´ eom´ etrique Interpr´ eter les contraintes courgettes et navets 2x + y ≤ 8 ⇒ demi-plan de R2 x + 2y ≤ 7 ⇒ demi-plan y ≤ 3 ⇒ demi-plan x ≥ 0 et y ≥ 0 ⇒ demi-plans Ensemble des solutions r´ ealisables = intersection de ces demi-plans : poly` edre y x N. Brauner 122 .

Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe Interpr´ etation g´ eom´ etrique Optimiser l’objectif Les lignes de niveau {4x + 5y = constante} sont des droites parall` eles y 4x 5y=10 4x 5y=18 4x 5y= 22 4x 5y= 25 x N. Brauner 123 .

Brauner 124 ..) N.Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe Interpr´ etation g´ eom´ etrique G´ eom´ etrie d’un PL L’ensemble des solutions r´ ealisables est toujours un poly` edre (intersection de demi-espaces) Les lignes de niveau {f = constante} de la fonction-objectif f sont des hyperplans affines (n = 2 ⇒ droite. n = 3 ⇒ plan..

Brauner 125 .. m} est compact ⇒ l’optimum est atteint au bord. . . s’il existe.Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe Interpr´ etation g´ eom´ etrique G´ eom´ etrie d’un PL Optimum atteint au bord L’optimum de la fonction-objectif.x ne s’annulent jamais. . .. N. i = 1. et le domaine {x | n j =1 aij xj ≤ bi . Justification math´ ematique : les d´ eriv´ ees partielles de f (x ) = c . est atteint en (au moins) un sommet du poly` edre.

R´ esolution Exercice 3 N. non born´ ee nb solutions optimales : 0 ou 1 ou ∞ Proposer des exemples de PL pour chacun des cas Feuille de TD : Programmation lin´ eaire. Brauner 126 .Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe Programmation lin´ eaire Solutions d’un PL La r´ egion admissible peut ˆ etre vide nb solutions optimales : 0 non vide. born´ ee nb solutions optimales : 1 ou ∞ non vide.

Brauner 134 .Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe Plan 9 Introduction ` a la programmation lin´ eaire 10 Interpr´ etation g´ eom´ etrique 11 Bases et points extrˆ emes 12 L’algorithme du simplexe N.

Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe Bases et points extrˆ emes Rappels max s. . bm ) c = (c1 c2 . cn ) Les contraintes d´ efinissent un poly` edre La solution optimale est un sommet du poly` edre Comment ´ enum´ erer les sommets d’un poly` edre ? N. . . Brauner 135 . xn ) b = (b1 b2 .c. z Ax x = cx ≤ b ≥ 0 A matrice m × n x = (x1 x2 . . . .

Manipulations alg´ ebriques plus ais´ ees N. Brauner 136 . ei ≥ 0 PL standard : max z (x ) = c . mais toutes les contraintes sont des ´ egalit´ es.c Ax = b x ≥ 0 On travaille dans un espace de dimension plus grande.x s.Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe Bases et points extrˆ emes Passage ` a la forme standard Forme standard On peut rajouter des variables d’´ ecart : n n aij xj ≤ bi ⇔ j =1 j =1 aij xj + ei = bi .

e2 . e1 . Brauner 137 y x . y . e3 ≥ 0 9 points int´ eressants (intersection de contraintes) 5 points admissibles ´ enum´ eration de ces 9 points comme solution de la forme standard (solutions de base) N.c. 2x + y ≤ 8 x + 2y ≤ 7 y ≤3 x.Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe Bases et points extrˆ emes Passage ` a la forme standard max z = 4x + 5y s. y ≥ 0 max z = 4x + 5y s. 2x + y + e1 = 8 x + 2 y + e2 = 7 y + e3 = 3 x .c.

3) (4.5 0 0 0 = 8 = 7 + e3 = 3 e2 .5 5 0 -6 0 0 3 + e1 + e1 .5 3 0 0 0 2 3 3 + y + 2y y y. Brauner . e1 8 0 4. e2 e3 7 3 -9 -5 0 -0.3) 138 {points extrˆ emes} ⇐⇒ {solutions de base admissibles}N.c.2) (1.Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe Bases et points extrˆ emes s.5 1 0 3 3 0 3 0 0 1 -1. 2x x x. e3 ≥ 0 sol de base admiss. y 0 8 3.                     e2 x 0 0 0 0 4 7 3 2.0) (0.0) (3.5 1 pt extrˆ eme (0.

N ) xB xN =b ⇒ ou BxB + NxN = b xB = B −1 b − B −1 NxN Solution de base associ´ ee ` aB: xN = 0 variables hors base xB = B −1 b variables de base N. rang A = m ≤ n Base de A : sous-matrice B (m × m) inversible de A A = (B . Brauner 139 .Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe Bases et points extrˆ emes Syst` eme lin´ eaire Ax=b A format m × n. N ) (B .

e2 . y .Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe Bases et points extrˆ emes Base et solution de base    2x + y + e1 = 8  x + 2y + e2 = 7 y + e3 = 3    x . e2 . e1 . Brauner 140 . e3 ≥ 0 Base initiale ? {e1 . y = variables hors base N. x . e3 } par exemple :    2x + y + e1 = 8  e1 = 8 − 2x − y x + 2y + e2 = 7 ⇔ e2 = 7 − x − 2y   y + e3 = 3 e3 = 3 − y e1 . e3 = variables de base. e2 .

Brauner 141 .Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe Bases et points extrˆ emes Base   e1 e2  e3 et solution de base = 8 − 2x − y = 7 − x − 2y =3−y on met les variables hors base ` a0 on en d´ eduit les valeur des variables de base   e1 = 8 − 2x − y = 8 e2 = 7 − x − 2y = 7 x =y =0⇒  e3 = 3 − y = 3 N.

0) associ´ ee ` a B est une solution de base admissible si xB ≥ 0 {points extrˆ emes du poly` edre} ⇐⇒ {solutions de base admissibles du syst` eme lin´ eaire correspondant} m = nombre de points extrˆ emes ≈ Cn n! m!(n−m)! solution de base d´ eg´ en´ er´ ee : certaines variables de base sont nulles si A est inversible : solution de base unique N. x ≥0 (xB .Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe Bases et points extrˆ emes Ax = b . Brauner 142 .

Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe Bases et points extrˆ emes Base voisine et pivotage Bases voisines Deux sommets voisins correspondent ` a deux bases B et B telles qu’on remplace une variable de B pour obtenir B passer ` a un sommet voisin = changer de base (base voisine) principe du pivotage N. Brauner 143 .

e3 } ∪ {y } \ {e3 } = {e1 . e1 . et e3 = 0 candidat pour une nouvelle base : {e1 . y } (x .5 e3 = 3 − y ≥ 0 ⇒ y ≤ 3 Bilan : ymax = 3. 5. e3 ) = (0. e2 = 1 − x . 0) N. y . e2 . 3. Brauner 144 . e2 . 1. e2 .Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe Bases et points extrˆ emes Qui faire entrer dans la base ? Essayons avec y : quelle est la valeur max que pourra avoir y ? e1 = 8 − 2x − y ≥ 0 ⇒ y ≤ 8 e2 = 7 − x − 2y ≥ 0 ⇒ y ≤ 3. pour y = ymax on a e1 = 5 − 2x .

Brauner 145 .Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe Plan 9 Introduction ` a la programmation lin´ eaire 10 Interpr´ etation g´ eom´ etrique 11 Bases et points extrˆ emes 12 L’algorithme du simplexe N.

calculer f sur ces points.Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe L’algorithme du simplexe Vers un algorithme de r´ esolution M´ ethode de r´ esolution “na¨ ıve” : ´ enum´ erer tous les sommets. Dantzig 1947) Algorithme it´ eratif permettant de r´ esoudre un probl` eme de programmation lin´ eaire. Brauner 146 . B. prendre le sommet pour lequel f est optimis´ e: fonctionne : nombre fini de sommets limitation : ce nombre peut ˆ etre tr` es grand en g´ en´ eral. L’algorithme du simplexe (G.. N..

tel que f (x ) > f (x0 ).. un sommet voisin de x0 .Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe L’algorithme du simplexe Principe d’am´ elioration locale ` partir d’un sommet. Principe d’am´ elioration locale (maximisation) : Soit x0 sommet non optimum.. on passe ` a un sommet voisin pour lequel f augmente. Alors il existe x . M´ ethode de r´ esolution : on part d’un sommet x0 quelconque. et ainsi de suite. chercher un sommet voisin qui am´ A eliore l’objectif. N. Brauner 147 . Remarque : on passe d’un probl` eme continu (variables r´ eelles) ` a un probl` eme discret (nombre fini de sommets).

3). z = 15 x0 = (0. z = 15 → x = (1. 3). Brauner 148 . z = 0 → x = (0. 0). 3). z = 19 x0 = (1. z = 22 z = 4x + 5y y x = 3. 2). z = 19 → x = (3. 3).2  . z = 22 ∗ ∗ x plus d’am´ elioration locale possible ⇒ optimum N.Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe L’algorithme du simplexe Illustration 2D : courgettes et navets x0 = (0.

e3 = variables de base. e2 .c. e2 . y ≥ 0 Maximiser z = 4x + 5y  2 x + y + e1 = 8    x + 2y + e2 = 7 s. y + e3 = 3    x . y = variables hors base N. x . e2 . e1 . y ≤3    x.Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe L’algorithme du simplexe Illustration concr` ete Standardisation : Maximiser z = 4x + 5y  2 x + y ≤8    x + 2y ≤ 7 s. e3 } par exemple :    2x + y + e1 = 8  e1 = 8 − 2x − y x + 2y + e2 = 7 ⇔ e2 = 7 − x − 2y   y + e3 = 3 e3 = 3 − y e1 . e3 ≥ 0 Base initiale ? {e1 . y . Brauner 149 .c.

Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe L’algorithme du simplexe Solution de base associ´ ee on met les variables hors base ` a0 on en d´ eduit : valeur des variables de base valeur de z   e 1 = 8 − 2x − y = 8 e2 = 7 − x − 2y = 7 et z = 4x + 5y = 0 ici : x = y = 0 ⇒  e3 = 3 − y = 3 N. Brauner 150 .

pour y = ymax on a e1 = 5 − x .5 e3 = 3 − y ≥ 0 ⇒ y ≤ 3 Bilan : ymax = 3. e3 } ∪ {y } \ {e3 } = {e1 . e2 = 1 − x . y } N. e2 . et e3 = 0 candidat pour une nouvelle base : {e1 . e2 . Brauner 151 .Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe L’algorithme du simplexe Changement de base Observation essentielle : z = 4x + 5y = 0 ⇒ on peut augmenter z si x ou y rentre dans la base. Essayons avec y : quelle est la valeur max que pourra avoir y ? e1 = 8 − 2x − y ≥ 0 ⇒ y ≤ 8 e2 = 7 − x − 2y ≥ 0 ⇒ y ≤ 3.

Brauner 152 . y  }   e1 = 8 − 2x − y  e1 = 8 − 2x − y = 5 − 2x + e3 e2 = 7 − x − 2y ⇒ e2 = 7 − x − 2y = 1 − x + 2e3   e3 = 3 − y y = 3 − e3 Exprimons z en fonction des variables hors base z = 4x + 5y = 15 + 4x − 5e3 Solution de base associ´ ee   e1 = 5 − 2x + e3 = 5 e2 = 1 − x + 2e3 = 1 x = e3 = 0 ⇒  y = 3 − e3 = 3 et z = 15 N. e2 .Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe L’algorithme du simplexe Nouvelle base {e1 .

y .Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe L’algorithme du simplexe It´ eration z = 15 + 4x − 5e3 peut encore augmenter si x entre dans la base Si x entre.5 e2 = 1 − x + 2e3 ≥ 0 ⇒ x ≤ 1 y = 3 − e3 ≥ 0 ⇒ aucune contrainte sur x Bilan : xmax = 1 et e2 sort. qui sort ? Valeur max de x : e1 = 5 − 2x + e3 ≥ 0 ⇒ x ≤ 2. x }  e1 = 3 + 2e2 − 3e3    x = 1 − e2 + 2e3 y = 3 − e3    z = 19 − 4e2 + 3e3 N. Nouvelle base {e1 . Brauner 153 .

x } :  e3 = 1 + 2/3e2 − 1/3e1    x = 3 + 1/3e2 − 2/3e1  y = 2 − 2/3e2 + 1/3e1   z = 22 − 2e2 − e1 N.Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe L’algorithme du simplexe It´ eration (suite) z = 19 − 4e2 + 3e3 peut encore augmenter si e3 entre dans la base Si e3 entre. y . Brauner 154 . qui sort ? Valeur max de e3 : e1 = 3 + 2e2 − 3e3 ≥ 0 ⇒ e3 ≤ 1 x = 1 − e2 + 2e3 ≥ 0 ⇒ aucune contrainte sur e3 y = 3 − e3 ≥ 0 ⇒ e3 ≤ 3 Bilan : e3max = 1. e1 sort. Nouvelle base {e3 .

Brauner 155 .Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe L’algorithme du simplexe Terminaison On a z = 22 − 2e2 − e1 . e3 = 1 donne z = 22 optimum La condition de terminaison concerne les coefficients de z exprim´ ee avec les variables hors base. y = 2. N. donc z ∗ ≤ 22 Or la solution de base x = 3.

x1 + 2x2 ≤ 120 x1 + x2 ≤ 100 x1 ≤ 70 x2 ≤ 50 x1 .Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe L’algorithme du simplexe max z = 20x1 + 10x2 s . z −20x1 − 10x2 x1 + 2x2 + s1 x1 + x2 + s2 x1 + s3 x2 + s4 =0 = 120 = 100 = 70 = 50 N. Brauner 156 . x2 ≥ 0 forme standard max z s.c.c .

z −20x1 − 10x2 x1 + 2x2 + s1 x1 + x2 + s2 x1 + s3 x2 + s4 Forme tableau z s1 s2 s3 s4 z x1 x2 1 −20 −10 0 1 2 0 1 1 0 1 0 0 0 1 s1 0 1 0 0 0 s2 0 0 1 0 0 s3 0 0 0 1 0 s4 0 0 0 0 1 0 120 100 70 50 N.c.Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe L’algorithme du simplexe Forme standard max z s. Brauner 157 =0 = 120 = 100 = 70 = 50 .

une base de Ax = b la fonction objectif : z = cx = cB xB + cN xN = cB B −1 b − (cB B −1 N − cN )xN n = z0 − j =1 n (cB B −1 aj − cj )xj (zj − cj )xj j =1 = z0 − zj − cj = cB B −1 aj − cj est le coˆ ut r´ eduit de la variable hors base xj N. Brauner 158 .Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe L’algorithme du simplexe Coˆ uts r´ eduits B .

. . .Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe L’algorithme du simplexe ` a chaque it´ eration z xB z xN 1 coˆ uts r´ eduits 0 . 0 xB 0 Id z0 + ` a l’optimum z xB z 1 0 . . Brauner 159 xN + .. . 0 N. . . . xB 0 Id ∗ z0 + .

Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe L’algorithme du simplexe Principe heuristique : faire rentrer en base la variable avec le coefficient ”le plus n´ egatif” → x1 z 1 0 0 0 0 ↓ x1 x2 −20 −10 1 2 1 1 1 0 0 1 s1 0 1 0 0 0 s2 0 0 1 0 0 s3 0 0 0 1 0 s4 0 0 0 0 1 z s1 s2 s3 s4 0 120 100 70 50 Qui faire sortir ? N. Brauner 160 .

Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe L’algorithme du simplexe Principe du quotient minimal colonne pivot x1 second membre ≥ 0 a1 ≤ 0 b1 a2 > 0 b2 a3 > 0 b3 a4 = 0 b4 ligne r z 1 0 0 0 0 br ar quotient b2 a2 b3 a3 - = min bi ai |ai >0 s2 0 0 1 0 0 → faire sortir s3 s3 0 0 0 1 0 s4 0 0 0 0 1 z s1 s2 s3 s4 x1 x2 −20 −10 1 2 1 1 1 0 0 1 s1 0 1 0 0 0 0 120 100 70 50 N. Brauner 161 .

b b =⇒ a → a − p c p ··· | colonne pivot N. .Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe L’algorithme du simplexe exprimer la contrainte z avec les variables hors base x2 et s3 z − 10x2 + 20s3 = 1400 diviser la ligne pivot par le coefficient de la variable entrante x1 + s3 = 70 supprimer x1 des autres contraintes 2x2 + s1 − s3 = 50 x2 + s2 − s3 = 30 c . . . . ligne pivot – ··· a . Brauner 162 .

Brauner 163 . 0. 50) de valeur 1400 Faire rentrer x2 quotient min → faire sortir s1 N. 0. s2 . 30. s4 en base et x2 . 50.Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe L’algorithme du simplexe z s1 s2 x1 s4 z 1 0 0 0 0 x1 0 0 0 1 0 x2 −10 2 1 0 1 s1 0 1 0 0 0 s2 0 0 1 0 0 s3 20 −1 −1 1 0 s4 0 0 0 0 1 1400 50 30 70 50 x1 . s3 hors base sol de base (70. s1 .

25) de valeur 1650 optimale car z = 1650 − 5s1 − 15s3 et s1 = s3 = 0 N. s3 hors base sol de base (70. 0. 25. x2 . s4 en base et s1 . s2 . Brauner 164 . 0. 5.Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe L’algorithme du simplexe z s1 s2 x1 s4 z x2 s2 x1 s4 z 1 0 0 0 0 z 1 0 0 0 0 x1 0 0 0 1 0 x1 0 0 0 1 0 x2 s1 −10 0 2 1 1 0 0 0 1 0 x2 s1 0 5 1 1 2 0 −1 2 0 0 0 −1 2 s2 0 0 1 0 0 s2 0 0 1 0 0 s3 20 −1 −1 1 0 s3 15 1 −2 1 −2 1 1 2 s4 0 0 0 0 1 s4 0 0 0 0 1 1400 50 30 70 50 1650 25 5 70 25 x1 .

la solution de base est optimale 2 Choix d’une ligne (variable) sortante Choisir une ligne r minimisant le quotient s’il n’existe pas de ligne sortante : STOP le tableau courant est non born´ e 3 Mise ` a jour de la base et du tableau pivoter autour de arj et retourner en (1) N. Brauner 165 .Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe L’algorithme du simplexe Phase II Donn´ ees : un programme lin´ eaire et une solution de base admissible R´ esultat : une solution de base admissible optimale ou d´ eclarer ”PL non born´ e” 1 Choix d’une colonne (variable) entrante choisir une variable hors base xj (colonne) ayant un coˆ ut r´ eduit n´ egatif s’il n’existe pas de colonne entrante : STOP.

Brauner 166 .Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe L’algorithme du simplexe Solution de base d´ eg´ en´ er´ ee si une ou plusieurs variables de base sont z´ eros (plus de bijection entre les solutions de base admissibles et les points extrˆ emes Si toutes les solutions de base admissibles sont non d´ eg´ en´ er´ ees. l’algorithme du simplexe termine apr` es un nombre fini d’it´ erations N.

R´ esolution Phase 1 N.Programmation lin´ eaire Interpr´ etation g´ eom´ etrique Bases et points extrˆ emes L’algorithme du simplexe L’algorithme du simplexe Phase I Feuille de TD : Programmation lin´ eaire. Brauner 167 .

Brauner 168 .Dualit´ e N.

Illustration ´ economique Comment prouver l’optimalit´ e? ´ Ecrire le dual Propri´ et´ es Plan 13 Illustration ´ economique 14 Comment prouver l’optimalit´ e? 15 ´ Ecrire le dual 16 Propri´ et´ es N. Brauner 169 .

Brauner 170 . b . b . c minimiser Dual mˆ emes donn´ ees A. c maximiser N.Illustration ´ economique Comment prouver l’optimalit´ e? ´ Ecrire le dual Propri´ et´ es Dualit´ e En g´ en´ eral contraintes : variables : ≤ ≥0 = ≤0 ≥ ≶0 Nouveau concept Primal donn´ ees A.

Brauner 171 .Illustration ´ economique Comment prouver l’optimalit´ e? ´ Ecrire le dual Propri´ et´ es Plan 13 Illustration ´ economique 14 Comment prouver l’optimalit´ e? 15 ´ Ecrire le dual 16 Propri´ et´ es N.

Illustration ´ economique Comment prouver l’optimalit´ e? ´ Ecrire le dual Propri´ et´ es Plan 13 Illustration ´ economique 14 Comment prouver l’optimalit´ e? 15 ´ Ecrire le dual 16 Propri´ et´ es N. Brauner 172 .

Illustration ´ economique Comment prouver l’optimalit´ e? ´ Ecrire le dual Propri´ et´ es Probl` eme primal (P ) Une famille utilise 6 produits alimentaires comme source de vitamine A et C 1 1 0 35 produits (unit´ es/kg) 2 3 4 5 0 2 2 1 1 3 1 3 30 60 50 27 6 2 2 22 demande (unit´ es) 9 19 vitamine A vitamine C Prix par kg But : minimiser le coˆ ut total Mod´ elisation N. Brauner 173 .

Illustration ´ economique Comment prouver l’optimalit´ e? ´ Ecrire le dual Propri´ et´ es Probl` eme dual (D) associ´ e` a (P ) Un producteur de cachets de vitamine synth´ etique veut convaincre la famille d’acheter ses vitamines. quel prix de vente wA et wC ? pour ˆ etre comp´ etitif et maximiser le profit Mod´ elisation N. Brauner 175 .

Illustration ´ economique Comment prouver l’optimalit´ e? ´ Ecrire le dual Propri´ et´ es Mod´ elisation matricielle Probl` eme primal famille : acheter des produits alimentaires ` a coˆ ut minimum et satisfaire la demande en vitamine A et C Mod´ elisation sous forme matricielle Probl` eme dual producteur de vitamines synth´ etiques : ˆ etre comp´ etitif vis-` a-vis des produits alimentaires comme source de vitamine et maximiser le profit de vente Mod´ elisation sous forme matricielle N. Brauner 177 .

c .c .Illustration ´ economique Comment prouver l’optimalit´ e? ´ Ecrire le dual Propri´ et´ es G´ en´ eralisation de l’illustration ´ economique ressource i produit j coˆ ut i aij bi demande j cj Probl` eme primal (demandeur de produit) : quelle quantit´ e xi de ressource i acheter pour satisfaire la demande ` a coˆ ut minimum min i bi xi s . j aij wj ≤ bi ∀i N. i aij xi ≥ cj ∀j Probl` eme dual (vendeur de produit) : ` a quel prix proposer les produits pour maximiser le profit tout en restant comp´ etitif max j cj wj s . Brauner 179 .

Brauner 180 .Illustration ´ economique Comment prouver l’optimalit´ e? ´ Ecrire le dual Propri´ et´ es Plan 13 Illustration ´ economique 14 Comment prouver l’optimalit´ e? 15 ´ Ecrire le dual 16 Propri´ et´ es N.

x2 ≥ 0 Id´ ee : trouver une combinaison valide des contraintes permettant de borner terme ` a terme la fonction objectif N. Brauner 181 .Illustration ´ economique Comment prouver l’optimalit´ e? ´ Ecrire le dual Propri´ et´ es Comment prouver l’optimalit´ e? L’objectif est de d´ emontrer l’optimalit´ e d’une solution max z = x1 + x2 4x1 + 5x2 ≤ 20 2x1 + x2 ≤ 6 x2 ≤ 2 x1 .

y3 20 ×y1 6 ×y2 2 ×y3 20y1 + 6y2 + 2y3 ≥0 Finalement. min 20y1 + 6y2 + 2y3 s.c.Illustration ´ economique Comment prouver l’optimalit´ e? ´ Ecrire le dual Propri´ et´ es Comment prouver l’optimalit´ e? max z = x1 + x2 4x1 + 2x1 + (4y1 + 2y2 )x1 5x2 x2 x2 + (5y1 + y2 + y3 )x2 ≤ ≤ ≤ ≤ ↑ y1 . y2 . 4y1 5y1 yi + 2y2 + y2 + ≥ 0 N. Brauner 184 (borne sup minimale) (borner terme ` a terme l’objectif) ≥ 1 ≥ 1 y3 .

Brauner 185 .Illustration ´ economique Comment prouver l’optimalit´ e? ´ Ecrire le dual Propri´ et´ es Plan 13 Illustration ´ economique 14 Comment prouver l’optimalit´ e? 15 ´ Ecrire le dual 16 Propri´ et´ es N.

b .c . Brauner 186 .Illustration ´ economique Comment prouver l’optimalit´ e? ´ Ecrire le dual Propri´ et´ es Forme canonique de dualit´ e Donn´ ee A. Ax ≥ b x ≥0 max v = wb s .c . c       min z = cx s . wA ≤ c w ≥0 (P ) (D) N.

Illustration ´ economique Comment prouver l’optimalit´ e? ´ Ecrire le dual Propri´ et´ es Tableau des signes min primal dual variable ≥ 0 variable ≶ 0 variable ≤ 0 contrainte ≤ contrainte = contrainte ≥ max dual primal contrainte ≤ contrainte = contrainte ≥ variable ≤ 0 variable ≶ 0 variable ≥ 0 L’´ ecriture du Dual est automatique : les variables la fonction objectif les contraintes N. Brauner 189 .

Illustration ´ economique Comment prouver l’optimalit´ e? ´ Ecrire le dual Propri´ et´ es ´ Ecrire le dual ´ Ecrire le programme dual max z = 4x1 + 5x2 + 2x3 = 3 2x3 ≥ 2 3x1 + x2 + x3 ≤ 2 x2 + x3 ≤ 1 x1 ≥ 0 x2 ≤ 0 x3 ≥ 0 2x1 + 4x2 N. Brauner 190 .

Brauner 191 .Illustration ´ economique Comment prouver l’optimalit´ e? ´ Ecrire le dual Propri´ et´ es Plan 13 Illustration ´ economique 14 Comment prouver l’optimalit´ e? 15 ´ Ecrire le dual 16 Propri´ et´ es N.

x2 . x3 ≥ 0 ≤ ≥ ≤ ≤ 3 2 2 1 N.Illustration ´ economique Comment prouver l’optimalit´ e? ´ Ecrire le dual Propri´ et´ es Propri´ et´ es Propri´ et´ e Le dual du dual est ´ equivalent au primal v´ erifier sur un exemple max z = 2x1 + 3x2 + 4x3 2x1 + x2 x3 3x1 + x2 + x3 x2 x1 . Brauner 192 .

Brauner 194 .Illustration ´ economique Comment prouver l’optimalit´ e? ´ Ecrire le dual Propri´ et´ es Propri´ et´ es (P )    min z = cx s . wA ≤ c w ≥0 Th´ eor` eme de dualit´ e faible Pour chaque paire de solutions admissibles x de (P ) et w de (D) z = cx ≥ wb = v Cons´ equence : que se passe-t-il si l’un est non born´ e? N.c .c . Ax ≥ b x ≥0 (D)    max v = wb s .

Brauner 195 . alors cx ∗ = w ∗ b N. alors x et w sont optimales Th´ eor` eme de dualit´ e forte Si (P ) a des solutions et (D) a des solutions.Illustration ´ economique Comment prouver l’optimalit´ e? ´ Ecrire le dual Propri´ et´ es Et l’optimalit´ e? Certificat d’optimalit´ e Si z = cx = wb = v pour des solutions admissibles x de (P ) et w et (D).

tj ) que remarquez-vous ? N. Brauner 196 .Illustration ´ economique Comment prouver l’optimalit´ e? ´ Ecrire le dual Propri´ et´ es Propri´ et´ e des ´ ecarts compl´ ementaires Pour l’exemple des vitamines ´ ecrire le primal avec les variables d’´ ecart (si ) ´ ecrire le dual avec les variables d’´ ecart (ti ) trouver une solution du primal optimale trouver une solution du dual optimale ´ ecrire les paires de variables (si . wi ) et (xj .

Illustration ´ economique Comment prouver l’optimalit´ e? ´ Ecrire le dual Propri´ et´ es Propri´ et´ e Propri´ et´ e des ´ ecarts compl´ ementaires Pour x ∗ optimale de (P ) et w ∗ optimale de (D) alors une contrainte de (P ) est serr´ ee ` a´ egalit´ e OU la variable associ´ ee ` a cette contrainte est nulle dans w ∗ idem dans l’autre sens xj tj = 0 et si wi = 0 preuve N. Brauner 198 .

Brauner 200 .Illustration ´ economique Comment prouver l’optimalit´ e? ´ Ecrire le dual Propri´ et´ es Propri´ et´ e des ´ ecarts compl´ ementaires Int´ erˆ et Si on connaˆ ıt x ∗ optimal de (P ). x2 ≥ 0 avec x1 = 2 et x2 = 2 N. alors on peut trouver y ∗ en appliquant le th´ eor` eme des ´ ecarts compl´ ementaires (et ainsi ∗ prouver l’optimalit´ e de x ) essayer sur un exemple max z = x1 + x2 4x1 + 5x2 ≤ 20 2x1 + x2 ≤ 6 x2 ≤ 2 x1 .

Brauner 202 .Illustration ´ economique Comment prouver l’optimalit´ e? ´ Ecrire le dual Propri´ et´ es Petite philosophie de la dualit´ e ` quoi servent les trois th´ A eor` emes de dualit´ e Dualit´ e faible : pour faire la preuve d’optimalit´ e ´ Ecarts compl´ ementaires : pour trouver une solution optimale du dual connaissant une solution optimale du primal Dualit´ e forte : garantit qu’une preuve d’optimalit´ e (utilisant la dualit´ e) est possible N.

Excel et analyse post-optimale .

Brauner 204 .Solveur d’Excel Analyse post-optimale D´ ecoupe de rouleaux Plan 17 Solveur d’Excel 18 Analyse post-optimale 19 Application : la d´ ecoupe de rouleaux N.

Brauner 205 .Solveur d’Excel Analyse post-optimale D´ ecoupe de rouleaux Plan 17 Solveur d’Excel 18 Analyse post-optimale 19 Application : la d´ ecoupe de rouleaux N.

Solveur d’Excel Analyse post-optimale D´ ecoupe de rouleaux Utilisation du solveur d’Excel R´ esoudre l’exercice Vitamines avec le solveur d’Excel Description des donn´ ees N. Brauner 206 .

Brauner 207 .Solveur d’Excel Analyse post-optimale D´ ecoupe de rouleaux Utilisation du solveur d’Excel Formules N.

Solveur d’Excel

Analyse post-optimale

D´ ecoupe de rouleaux

Utilisation du solveur d’Excel
Param´ etrage du solveur

N. Brauner

208

Solveur d’Excel

Analyse post-optimale

D´ ecoupe de rouleaux

Utilisation du solveur d’Excel
Options du solveur

N. Brauner

209

Solveur d’Excel

Analyse post-optimale

D´ ecoupe de rouleaux

Utilisation du solveur d’Excel
R´ esultat

N. Brauner

210

Solveur d’Excel

Analyse post-optimale

D´ ecoupe de rouleaux

Utilisation du solveur d’Excel
Rapport de r´ eponse

N. Brauner

211

Solveur d’Excel

Analyse post-optimale

D´ ecoupe de rouleaux

Utilisation du solveur d’Excel
Rapport de sensibilit´ e

N. Brauner

212

Solveur d’Excel

Analyse post-optimale

D´ ecoupe de rouleaux

Plan

17

Solveur d’Excel

18

Analyse post-optimale

19

Application : la d´ ecoupe de rouleaux

N. Brauner

213

Solveur d’Excel

Analyse post-optimale

D´ ecoupe de rouleaux

Analyse post-optimale
On modifie l´ eg` erement les coefficients de l’objectif ou des contraintes : doit-on refaire un simplexe ? Variation des seconds membres Variation des coefficients de la fonction objectif Coˆ uts r´ eduits

N. Brauner

214

Brauner 215 .Solveur d’Excel Analyse post-optimale D´ ecoupe de rouleaux Analyse post-optimale Exemple : produire des confitures de rhubarbe et de fraise Un pot de rhubarbe n´ ecessite 1kg de rhubarbe et 3kg de sucre et rapporte (marge) 3 euros Un pot de fraise n´ ecessite 2kg de fraise et 2kg de sucre et rapporte (marge) 5 euros Les quantit´ es disponibles sont 4kg de rhubarbe. 12kg de fraise et 18kg de sucre Mod´ eliser le probl` eme avec un programme lin´ eaire Trouver la solution optimale graphiquement N.

Solveur d’Excel Analyse post-optimale D´ ecoupe de rouleaux Analyse post-optimale R´ esoudre ` a l’aide du solveur d’Excel N. Brauner 216 .

Brauner 217 . Augmenter la quantit´ e de rhubarbe ` a 5 kg disponibles calculer le point optimal calculer l’objectif calculer le prix cach´ e N. quel est l’impact sur la valeur optimale de la fonction objectif ? Le prix cach´ e yi mesure l’augmentation de la fonction objectif si l’on accroˆ ıt d’une unit´ e la capacit´ e disponible bi .Solveur d’Excel Analyse post-optimale D´ ecoupe de rouleaux Variation des seconds membres Si on augmente la capacit´ e disponible d’une ressource.

Brauner 218 .Solveur d’Excel Analyse post-optimale D´ ecoupe de rouleaux Variation des seconds membres Augmenter la quantit´ e de fraise ` a 13 kg disponibles calculer le point optimal calculer l’objectif calculer le prix cach´ e Augmenter la quantit´ e de sucre ` a 19 kg disponibles calculer le point optimal calculer l’objectif calculer le prix cach´ e N.

Solveur d’Excel Analyse post-optimale D´ ecoupe de rouleaux Variation des seconds membres : analyse de sensibilit´ e Calcul des limites de validit´ e des prix cach´ es Jusqu’o` u peut-on monter (ou descendre) ces valeurs avec les mˆ emes coˆ uts r´ eduits ? De combien peut-on diminuer la quantit´ e de rhubarbe avec le mˆ eme prix cach´ e? Donner le domaine de validit´ e du prix cach´ e de la rhubarbe. Pour les contraintes non serr´ ees. Calculez les intervalles pour les fraises et le sucre. quel est le prix cach´ e? C ¸ a vous rappelle quelque chose ? N. Brauner 219 .

Augmenter la marge du pot de rhubarbe ` a 4 euros calculer le point optimal calculer l’objectif calculer l’augmentation de l’objectif N. quel est l’impact sur la valeur de l’objectif ? La valeur de la j -` eme variable ` a l’optimum (xj∗ ) mesure l’augmentation de la fonction objectif si l’on accroˆ ıt d’une unit´ e la marge unitaire cj .Solveur d’Excel Analyse post-optimale D´ ecoupe de rouleaux Variation des coefficients objectifs Si on augmente le prix de vente unitaire ou si l’on diminue le coˆ ut de production unitaire. Brauner 220 .

Solveur d’Excel Analyse post-optimale D´ ecoupe de rouleaux Variation des coefficients objectifs : analyse de sensibilit´ e Variation maximum de c1 autour de 3 tel que le sommet optimal ne change pas. De combien peut-on diminuer c1 ? De combien peut-on augmenter c1 ? Idem pour c2 N. Brauner 221 .

Brauner 222 .Solveur d’Excel Analyse post-optimale D´ ecoupe de rouleaux L’analyse de sensibilit´ e dans Excel N.

Brauner 223 .Solveur d’Excel Analyse post-optimale D´ ecoupe de rouleaux Plan 17 Solveur d’Excel 18 Analyse post-optimale 19 Application : la d´ ecoupe de rouleaux N.

Brauner 224 .Solveur d’Excel Analyse post-optimale D´ ecoupe de rouleaux D´ ecoupe Rouleaux de papier de longueur standard 180 cm Couteaux de d´ ecoupe (nombre et position arbitraires) Couper des rouleaux de mˆ eme diam` etre Liste des commandes pour la prochaine p´ eriode longueur 80 45 27 nombre de rouleaux 200 120 130 Trouver les sch´ emas de d´ ecoupe qui minimisent la perte N.

. Brauner 225 . r´ esolution avec Excel et analyse Fonction objectif 2. et la contrainte d’int´ egralit´ e? N. .Solveur d’Excel Analyse post-optimale D´ ecoupe de rouleaux D´ ecoupe ´ Etapes de la r´ esolution Sch´ emas de d´ ecoupe Variables et contraintes Fonction objectif 1. interpr´ etation et r´ esolution avec Excel .

Programmation lin´ eaire en nombres entiers .

1}) Choix d’une bonne formulation souvent difficile Pas de m´ ethode g´ en´ erale efficace de r´ esolution ⇒ Algorithme de Branch & Bound. Brauner 227 . Branch & Cut. Programme Lin´ eaire Mixte (MIP pour Mixed Integer Program) ⇒ A la fois des variables r´ eelles et enti` eres N. . . bool´ eens {0.Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Introduction Programmation Lin´ eaire (PL) Variables de d´ ecision continues (r´ eels) Algorithme du Simplexe efficace Programmation Lin´ eaire en Nombres Entiers (PLNE) Variables de d´ ecision discr` etes (entiers.

Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Introduction Combinatoire Structure discr` ete Tr` es grand nombre de possibilit´ es N. Brauner 228 .

. . . . . . Brauner 229 . . .Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Introduction Probl` eme d’optimisation combinatoire Un probl` eme d’optimisation combinatoire typique INSTANCE Un ensemble d’objets 1. n. avec des poids ci SOLUTIONS REALISABLES Un ensemble F de parties de {1. n} CRITERE maximiser c (S ) = i ∈S ci L’ensemble F est en g´ en´ eral d´ efini par des contraintes. Son cardinal peut ˆ etre tr` es grand (ici potentiellement 2n ) N.

Brauner 230 .Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Plan 20 Probl` emes classiques 21 Techniques de mod´ elisation 22 Relaxation lin´ eaire 23 Branch & Bound N.

Brauner 231 .Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Plan 20 Probl` emes classiques 21 Techniques de mod´ elisation 22 Relaxation lin´ eaire 23 Branch & Bound N.

vous avez d´ ecid´ e de partir en randonn´ ee dans le Vercors.Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Probl` emes classiques d’optimisation combinatoire Le sac ` a dos Un beau jour de vacances. Vous voulez remplir votre sac de capacit´ e 3kg avec les objets les plus utiles : objets carte gourde 2` eme gourde pull Kway tomme fruits secs utilit´ e 10 7 3 6 2 4 5 poids (g) 200 1500 1500 1200 500 800 700 N. Brauner 232 .

2 . Brauner 233 .Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Probl` emes classiques d’optimisation combinatoire Le sac ` a dos ` Dos Probl` eme g´ en´ erique de Sac a un ensemble d’objets N = {1. . n} ` a chaque objet est associ´ e une utilit´ e ui un poids wi un randonneur dispose d’un sac-` a-dos dont le poids total ne doit pas d´ epasser W (capacit´ e du sac-` a-dos) d´ eterminer quels objets prendre pour maximiser l’utilit´ e N. .

Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Probl` emes classiques d’optimisation combinatoire Le sac ` a dos Probl` eme d’optimisation classique Utiliser au mieux une capacit´ e Choix d’un portefeuille d’investissement Mod´ elisation INSTANCE : SOLUTIONS : SOLUTIONS REALISABLES : CRITERE : N. Brauner 234 .

0 sinon max i ∈N i ∈N ui xi wi xi ≤ W ∀i ∈ N xi ∈ {0.Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Probl` emes classiques d’optimisation combinatoire Le sac ` a dos variables objectif contraintes xi = 1 si l’objet i est choisi. Brauner 235 . 1} N.

Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Probl` emes classiques d’optimisation combinatoire Remplissage de boˆ ıtes (bin packing) Un d´ em´ enageur souhaite empaqueter des objets en minimisant le nombre de boˆ ıtes de capacit´ e W = 6 n´ ecessaires taille 2 2 3 1 2 5 6 un livre un autre livre un pull des chaussettes des chaussures des assiettes des verres 1 2 D´ ecrivez une solution r´ ealisable pour le d´ em´ enageur Proposez une mod´ elisation avec un PLNE N. Brauner 236 .

. s2 . . . . n} de taille {s1 . 2 .Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Probl` emes classiques d’optimisation combinatoire Remplissage de boˆ ıtes (bin packing) des articles N = {1. sn } ` a ranger dans des boˆ ıtes de capacit´ eW en utilisant le moins de boˆ ıtes possible N. Brauner 237 .

Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Probl` emes classiques d’optimisation combinatoire Couverture d’ensembles On souhaite choisir les intervenants dans un projet afin d’avoir toutes les comp´ etences n´ ecessaires en minimisant le coˆ ut Coˆ ut (h ou = C) Rech. Brauner 238 . Java Bases de donn´ ees Th´ eorie des graphes UML 1 2 Alice 10 1 1 0 1 0 Babar 4 1 0 1 0 1 Casimir 5 1 1 1 0 0 Donald 6 0 1 1 0 0 Elmer 7 0 0 0 1 1 D´ ecrivez une solution r´ ealisable pour le projet Proposez une mod´ elisation avec un PLNE N. Op.

.j =1. le coˆ ut de la colonne j une colonne j couvre une ligne i si aij = 1 trouver un sous-ensemble des colonnes de A de coˆ ut minimum tel que chaque ligne de A soit couverte au moins une fois N..m ` a coefficients 0 ou 1 cj > 0.n.Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Probl` emes classiques d’optimisation combinatoire Couverture d’ensembles matrice A = (aij )i =1. Brauner 239 .

j =1. le coˆ ut de la colonne j une colonne j couvre une ligne i si aij = 1 trouver un sous-ensemble des colonnes de A de coˆ ut minimum tel que chaque ligne de A soit couverte exactement une fois N.n..m ` a coefficients 0 ou 1 cj > 0. Brauner 240 ..Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Probl` emes classiques d’optimisation combinatoire Partition d’ensembles matrice A = (aij )i =1.

Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Probl` emes classiques d’optimisation combinatoire Affectation N1 et N2 deux ensembles de mˆ eme cardinal n A ⊆ N1 × N2 : un collection de couples de nœuds repr´ esentant toutes les affectations possibles cij : coˆ ut du couple (i . j ) ∈ A trouver une affectation de coˆ ut minimum tel que chaque ´ el´ ement de N1 est affect´ e` a un et un seul ´ el´ ement de N2 N. Brauner 241 .

s et t d’un r´ eseau donn´ e. Brauner 242 . N.Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Probl` emes classiques d’optimisation combinatoire Plus court chemin Trouver un chemin de distance minimum entre deux nœuds.

Brauner 243 .Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Plan 20 Probl` emes classiques 21 Techniques de mod´ elisation 22 Relaxation lin´ eaire 23 Branch & Bound N.

Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Techniques g´ en´ erales de mod´ elisation La PLNE permet de r´ esoudre beaucoup de probl` emes combinatoires mais ATTENTION ` a l’efficacit´ e de la r´ esolution. 1}n Pour lin´ eariser des expressions non lin´ eaires N. . . . . . n} ⇒ vecteur indicateur (x1 . Les variables enti` eres sont introduites Pour d´ ecrire des structures discr` etes sous-ensemble S ⊆ {1. xn ) ∈ {0. . . Brauner 244 . . . .

Brauner 245 . p2 . .Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Techniques g´ en´ erales de mod´ elisation Restriction ` a un ensemble discret de valeurs x doit prendre sa valeur parmi {p1 . k N. pk } On introduit une variable yi indicatrice de {x = pi } yi ≡ 1 ssi x = pi . et 0 sinon         k yi = 1 i =1 k   x= pi yi     i =1  yi ∈ {0. . 1} pour i = 1. . . 2 .

1} x ≤y OU logique : x ou y doit ˆ etre ` a Vrai avec x et y deux variables bool´ eennes {0.Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Techniques g´ en´ erales de mod´ elisation Contraintes de seuil : si x > 0 alors x ≥ K (constante)   x ≤ My x ≥ Ky o` u M est une constante plus grande que x  y ∈ {0. Brauner 246 . 1} Implication logique : x = 1 ⇒ y = 1 avec x et y deux variables bool´ eennes {0. 1} x +y ≥1 N.

Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Techniques g´ en´ erales de mod´ elisation x : une variable de d´ ecision Objectif avec coˆ ut fixe (fonction affine) : min f 1{x >0} + cx Le coˆ ut est compos´ e d’un coˆ ut unitaire c et d’un coˆ ut fixe f pay´ e uniquement si x > 0 On introduit une variable y indicatrice de {x > 0} y ≡ 1 ssi x > 0. 1} o` u M est une constante ≥ x N. Brauner 247 . et 0 sinon   min fy + cx x ≤ My  y ∈ {0.

1} N. Brauner 248 .Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Techniques g´ en´ erales de mod´ elisation Contraintes disjonctives deux taches de dur´ ees di et dj doivent ˆ etre usin´ ees sur une mˆ eme ressource ti + di ≤ tj si i est r´ ealis´ ee avant j tj + dj ≤ ti si j est r´ ealis´ ee avant i   ti + di ≤ tj + M (1 − yij ) t + dj ≤ ti + Myij  j yij ∈ {0.

x ∈ {0. 1} N.Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Techniques g´ en´ erales de mod´ elisation Termes quadratiques lin´ eariser xx avec x . 1} On introduit une variable y ≡ xx On doit traduire y = 1 ssi (x = 1 et x = 1)  y    y x    y ≤x ≤x +x −1≤y ∈ {0. Brauner 249 .

Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Plan 20 Probl` emes classiques 21 Techniques de mod´ elisation 22 Relaxation lin´ eaire 23 Branch & Bound N. Brauner 250 .

Brauner 251 .Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Formulation Probl` eme combinatoire ` a r´ esoudre max{cx | x ∈ X } avec X ⊆ Zn Une mod´ elisation du probl` eme en PLNE ⇒ d´ efinit un poly` edre P = {x ∈ Rn | Ax ≤ b } D´ efinition Un PLNE est une formulation de X ssi X = P ∩ Zn N.

Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Illustration graphique X N. Brauner 252 .

Brauner 253 .Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Illustration graphique P X N.

x ∈ Rn } Lien entre l’optimum du PL et l’optimum du PLNE ? N. Brauner 254 .Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Relaxation Lin´ eaire Pour r´ esoudre un PLNE une id´ ee simple est d’oublier que les variables sont enti` eres on recherche alors l’optimum du PL sur le poly` edre P on peut utiliser l’algorithme du simplexe D´ efinition La relaxation lin´ eaire d’une formulation en PLNE est le PL max{cx | Ax ≤ b .

Brauner 255 .Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Illustration graphique de la relaxation P X N.

7x1 x1 + x2 + x2 ≤ 36 + 4x2 ≤ 22 ≥ 0 entiers x1 .Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Exemple I max z = 4x1 s . x2 1 2 Trouvez graphiquement l’optimum fractionnaire Trouvez graphiquement l’optimum entier N.c . Brauner 256 .

Brauner 257 .Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Exemple II Stable maximum Ensemble S de sommets d’un graphe F B D E A C 2` a 2 non adjacent 1 2 Quel est l’optimum entier sur un triangle ? Quel est l’optimum fractionnaire sur un triangle ? la relaxation lin´ eaire donne peu d’indication ! N.

x1 − 17x2 = 3 x1 − 11x3 = 4 x1 − 6x4 = 5 entiers x1 . son arrondi et l’optimum entier N. x3 .c . x4 ≥ 0 1 Trouvez l’optimum fractionnaire. Brauner 258 . x2 .Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Exemple III min z = x1 s .

x ∈ Zn } La relaxation lin´ eaire ∗ zL = max{cx | Ax ≤ b . Brauner 259 . alors c’est aussi une solution optimale pour le PLNE N.Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Propri´ et´ e de la relaxation lin´ eaire Pour une formulation en PLNE ∗ zIP = max{cx | Ax ≤ b . x ∈ Rn } v´ erifie 1 2 ∗ ≤ z∗ zIP L Si la solution optimale de la relaxation lin´ eaire est enti` ere.

Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Plan 20 Probl` emes classiques 21 Techniques de mod´ elisation 22 Relaxation lin´ eaire 23 Branch & Bound N. Brauner 260 .

Brauner 261 . ´ evaluer c (S ) .Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound M´ ethodes ´ enum´ eratives Nombre fini de solutions F = {S1 . .Parcourir toutes les solutions . .Retenir la meilleure solution Probl` eme Le nombre de solutions potentielles est fini mais gigantesque Esp´ erance de vie du soleil 5 milliards d’ann´ ees < 258 secondes N. SN } . S2 .Pour chaque S ∈ F . . .

Brauner 262 .Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Challenge de l’optimisation combinatoire Comment trouver la meilleure solution sans parcourir toutes les solutions ? ´ Enum´ eration implicite : ´ eliminer a priori des solutions D´ etecter que des solutions sont ”mauvaises” ou irr´ ealisables sans les ´ evaluer explicitement. N.

Brauner 263 .Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Principe du Branch & Bound On veut r´ esoudre z ∗ = max{cx | x ∈ X } Si on partitionne X en (X1 . X2 ) ∗ . z ∗} Alors z ∗ = max{z1 2 X X1 X2 z* 1 z* 2 N.

X X1 X2 z* 1 > z* 2 N. Brauner 264 .Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Principe du Branch & Bound ∗ > z∗ Si z1 2 Alors il est inutile d’explorer le sous-ensemble X2 ⇒ X2 ne contient pas de solution optimale.

Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Borne sup´ erieure Comment d´ eterminer qu’il est inutile d’explorer X2 sans ∗? calculer z2 ∗ ⇒ Estimation [par exc` es] de la valeur de z2 D´ efinition Une fonction des instances dans R est une borne sup´ erieure ssi elle est sup´ erieure ` a la valeur optimum pour chaque instance. Pour un PLNE. Brauner 265 . une borne sup´ erieure est donn´ ee par sa relaxation lin´ eaire N.

Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound ´ Enum´ eration arborescente implicite Pour r´ esoudre z ∗ = max{cx | x ∈ X } On d´ ecoupe l’ensemble des solutions X Sur chaque Y ⊆ X . Si B (Y ) ≤ ` a la meilleure solution trouv´ ee. alors on ´ elague Y Sinon on d´ ecoupe r´ ecursivement Y N. on calcule une borne sup´ erieure B (Y ) de l’optimum z ∗ (Y ). Brauner 266 .

on a trouv´ e l’optimum sur X Sinon pour une variable (au moins) on a : a < xi∗ < a + 1   ¡   ¡   ¡   ¡   ¡   ¡ P Découpage du problème X   ¡   ¡   ¡   ¡   ¡   ¡   ¡   ¡   £¢ ¡   ¡   ¡   ¡ x* £¢       N. Brauner 267 .Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Comment d´ ecouper l’espace des solutions ? On r´ esout la relaxation lin´ eaire du probl` eme sur X ` a l’optimum ∗ Si la solution x est enti` ere.

Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Branchement sur une variable fractionnaire On partitionne X en deux nouveaux sous-probl` emes : X1 = x ∈ X et xi ≤ a X2 = x ∈ X et a + 1 ≤ xi ¡   ¡   ¡   ¡   ¡   ¡   ¡ P1 ¡   ¡   ¡   ¢ ¡   ¡   ¡   ¡ ¡   ¡   ¡   £¢ ¡   ¡   ¡   ¡ x* X P2 N. Brauner 268 £¢       .

Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Exploration de l’ensemble X2 de solutions On recherche la meilleure solution sur X2 : On r´ esout la relaxation lin´ eaire sur P2 On partitionne en 2 nouveaux sous-probl` emes ¢ ¡ ¢ ¡ ¢ ¡ ¢ ¡ ¢ ¡ ¢ P1 ¢ ¡ ¢ ¡ ¢ ¡ ¢ ¡ ¢ ¡ ¢ ¢ ¡ ¢ ¡ ¤£ ¢ ¡ ¢ ¡ ¢ ¡ ¢ ¤£   P3 X P4 P2                       ¡ ¡ ¡ N. Brauner 269 .

Brauner 270 .Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Exploration de l’ensemble X1 de solutions On a trouv´ e la solution optimale sur X2 Existe-t-il une meilleure solution sur X1 ? La borne sup´ erieure ne nous permet pas d’´ elaguer X1 ¡   ¡   ¡   ¡   ¡   ¡ P1 ¡   ¡   ¡   ¡   ¡   ¡ ¡   ¡   £¢ ¡   ¡   ¡   ¡ £¢ P3 X P4       N.

Brauner 271 .Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Exploration de l’ensemble X1 de solutions On recherche la meilleure solution sur X1 : On partitionne en 2 nouveaux sous-probl` emes P5     P6 ¢ ¡ ¢ ¡ ¢ ¡ ¢ ¡ ¢ ¡ ¢ ¢ ¡ ¢ ¡ ¢ ¡ ¢ ¡ ¢ ¡ ¢ ¢ ¡ ¢ ¡ ¤£ ¢ ¡ ¢ ¡ ¢ ¡ ¢ ¡ ¡ ¡           P3 X ¤£ P4 N.

Brauner 272 . P5 P6 ¡   ¡   ¡   ¡   ¡   ¡ ¡   ¡   ¡   ¡   ¡   ¡ ¡   ¡   £¢ ¡   ¡   ¡   ¡       P3 X £¢ P4 N.Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Fin du Branch & Bound La solution optimale sur X est la meilleure des 2 solutions trouv´ ees sur X1 et X2 .

Brauner 273 .Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Branch & Bound 1 2 r´ esoudre la relaxation lin´ eaire brancher sur une variable non enti` ere (` a choisir) → 2 sous probl` emes diviser ` a nouveau un nœud fils en deux (= choix possibles) continuer ` a s´ eparer sur les nœuds dont la valeur est > ` a la borne inf jusqu’` a ce qu’il n’y ait plus de branchement possible La relaxation lin´ eaire n’a pas de solution la relaxation lin´ eaire donne une solution enti` ere la valeur de la borne sup´ erieure est inf´ erieure ` a la valeur de la meilleure solution enti` ere obtenue 3 4 On coupe une branche si Note : On ne peut rien couper tant qu’on n’a pas de solution disponible N.

14 x1 = 6 x2 = 0. x2 ≥ 0 entiers faire le dessin x2 ≥ 3 z = 13.33 x1 = 2 x2 = 3.   5x1 + 7x2 ≤ 35 4x1 + 9x2 ≤ 36  x1 .4 x1 = 4.47 x1 = 3.5 x1 = 2.Probl` emes classiques Techniques de mod´ elisation Relaxation lin´ eaire Branch & Bound Branch & Bound z = 2x1 + 3x2 sc.2 x2 = 2 x1 ≥ 3 Pas de sol réalisable x1 ≤ 2 z = 13.71 x2 ≥ 1 x2 ≤ 0 z = 14 Pas de sol réalisable x1 = 7 x2 = 0 N.25 x2 = 3 z = 14.29 x1 = 5 x2 = 1.71 x2 = 2.43 x1 ≤ 4 z = 14 x1 = 4 x2 = 2 x2 ≥ 4 z = 12 x1 = 0 x2 = 4 x2 ≤ 3 z = 13 x1 = 2 x2 = 3 x2 ≤ 1 z = 14.2 x1 = 5.6 x2 = 1 x2 ≥ 2 Pas de sol réalisable x1 ≤ 5 z = 13 x1 = 5 x2 = 1 x1 ≥ 6 z = 14. Brauner 274 .11 x1 ≥ 5 z = 14.35 x2 ≤ 2 z = 14.

Les stations service sont au nombre de n et on a m d´ epˆ ots.Application Approvisionnement des stations service Une compagnie p´ etroli` ere souhaite d´ eterminer les emplacements possibles pour ses d´ epˆ ots (destin´ es ` a fournir ses stations service). N. On a un seul produit. cij : coˆ ut unitaire de transport entre un d´ epˆ ot i et la station service j fi : coˆ ut fixe d’ouverture du d´ epˆ ot i si : capacit´ e du d´ epˆ ot i dj : demande de la station service j (peut ˆ etre satisfaite par plusieurs d´ epˆ ots) Formulez un programme lin´ eaire qui permet de minimiser les coˆ uts tout en respectant les contraintes. Brauner 275 .

Application M´ elange de maximum 4 charbons (exo de D. On exige que la teneur du m´ elange en Silicium soit d’au plus 1.5 % On veut d´ eterminer un m´ elange qui est de coˆ ut minimum. N. il doit l’ˆ etre ` a hauteur de minimum 5%.8 %. une r´ eaction ` a haute temp´ erature produit le coke. Ces charbons sont entr´ es par des bandes porteuses qui sont au nombre de 4 (au maximum 4 charbons diff´ erents dans le m´ elange). Le tableau suivant reprend les prix et teneur en Si des charbons.5 % Charbon 6 9 5% Charbon 3 17 1% Charbon 7 15 2% Charbon 4 10 5% Charbon 8 11 1. Brauner 276 . Si un charbon est dans le m´ elange. Charbon Prix Teneur Si Charbon Prix Teneur Si Charbon 1 12 2% Charbon 5 13 1% Charbon 2 14 2. Il y a 8 charbons disponibles. de Wolf) On m´ elange des charbons dans un haut fourneau o` u ensuite.

Application Dimensionnement de lots (DLS) Une demande journali` ere dt sur un horizon T Coˆ ut de production pt (x ) = ft + at x Coˆ ut de stockage unitaire ht (par jour par unit´ e) Quel plan de production choisir pour minimiser les coˆ uts ? 1 2 Comment d´ ecrire une solution ? Comment d´ ecrire une solution r´ ealisable ? N. Brauner 277 .

Brauner 278 .Application Dimensionnement de lots (DLS) demande production 1 2 3 4 5 6 7 8 stock N.

Brauner 279 .Application Dimensionnement de lots (DLS) Une demande journali` ere dt sur un horizon T Coˆ ut de production pt (x ) = ft + at x Coˆ ut de stockage unitaire ht (par jour par unit´ e) Quel plan de production choisir pour minimiser les coˆ uts ? N.

Application Dimensionnement de lots (DLS) Mod´ elisation du coˆ ut de production. et 0 sinon Comment traduire le lien entre y et x ? N. Brauner 280 . non lin´ eaire p(x) = f + ax f x Variables de d´ ecision yt ∈ {0. 1} indicatrice des instants de production yt ≡ 1 ssi xt > 0.

Brauner 281 .1 et Cplex N.Utiliser un solveur via un modeleur OPL 5.

Pr´ esentation des outils Mod` eles L’environnement Donn´ ees Application Plan 24 Pr´ esentation des outils Mod` eles L’environnement Donn´ ees Application 25 26 27 28 N. Brauner 282 .

Pr´ esentation des outils Mod` eles L’environnement Donn´ ees Application Plan 24 Pr´ esentation des outils Mod` eles L’environnement Donn´ ees Application 25 26 27 28 N. Brauner 283 .

LPSolve. MINOS. Brauner 284 . .. . . XPRESS. e e donn´ ees brutes (BD. u Solveurs : CPLEX.. Gurobi. ) (BD. N. Langages de mod´ elisation : GAMS (pionnier). cx min cx s. GUI tableur) T a[] ¡ ¡ T modeleur x . OPL. AMPL.Pr´ esentation des outils Mod` eles L’environnement Donn´ ees Application Modeleur et solveur output mod` ele dvar a[] . . . Ax = b l ≤x ≤u c c . A. GUI.c. . b E solveur l. . AIMMS.

Pr´ esentation des outils Mod` eles L’environnement Donn´ ees Application Le langage de mod´ elisation OPL OPL = Optimization Programming Language Langage pour les probl` emes d’optimisation Supporte des mod` eles de programmation math´ ematiques pour contraintes ou objectifs lin´ eaires ou quadratiques variables enti` eres ou r´ eelles Typage avanc´ e pour l’organisation des donn´ ees Se connecte ` a SGBDR ou tableur Script pour r´ ecup´ erer des donn´ ees et r´ esolutions it´ eratives N. Brauner 285 .

Brauner 286 .Pr´ esentation des outils Mod` eles L’environnement Donn´ ees Application L’environnement de d´ eveloppement IDE : Integrated Development Environment Organiser des projets Saisir des donn´ ees et des mod` eles OPL Visualiser les donn´ ees et les solutions Contrˆ oler l’optimisation + outils pour le debuggage et aide en ligne N.

Pr´ esentation des outils Mod` eles L’environnement Donn´ ees Application Int´ egrer un mod` ele dans une application D´ evelopper un mod` ele OPL avec OPL IDE (mod` ele et donn´ ees s´ epar´ es) Compiler dans OPL IDE ´ Ecrire code dans langage pr´ ef´ er´ e pour g´ en´ erer dynamiquement le fichier de donn´ ees lire le mod` ele et les donn´ ees r´ esoudre le probl` eme r´ ecup´ erer la solution (C++. ASP.net.net. Brauner 287 . MS. JSP) N. Java.

Brauner 288 .Pr´ esentation des outils Mod` eles L’environnement Donn´ ees Application Plan 24 Pr´ esentation des outils Mod` eles L’environnement Donn´ ees Application 25 26 27 28 N.

max 3xr s . xr 3xr xr . + 5xf ≤ 4 2xf ≤ 12 + 2xf ≤ 18 xf ≥ 0 N.Pr´ esentation des outils Mod` eles L’environnement Donn´ ees Application D´ evelopper un mod` ele simple On souhaite produire des confitures de rhubarbe et de fraise Un pot de rhubarbe n´ ecessite 1kg de rhubarbe et 3kg de sucre et rapporte (marge) 3 euros Un pot de fraise n´ ecessite 2kg de fraise et 2kg de sucre et rapporte (marge) 5 euros Les quantit´ es disponibles sont 4kg de rhubarbe. 12kg de fraise et 18kg de sucre.c . Brauner 289 .

description du mod` ele Les variables de d´ ecision La fonction objectif Les contraintes dvar float+ xr . maximize 3*xr + 5*xf. xr 3xr xr .Pr´ esentation des outils Mod` eles L’environnement Donn´ ees Application D´ evelopper un mod` ele simple max 3xr s . subject to { CSucre: 3*xr + 2*xf <= 18.c . Brauner 290 . } N. + 5xf ≤ 4 2xf ≤ 12 + 2xf ≤ 18 xf ≥ 0 Cr´ eation du projet “Confitures” puis.

Pr´ esentation des outils Mod` eles L’environnement Donn´ ees Application D´ evelopper un mod` ele simple L’´ editeur Commentaires en vert Mots cl´ es en bleu N. Brauner 291 .

Brauner 292 .Pr´ esentation des outils Mod` eles L’environnement Donn´ ees Application R´ esoudre un mod` ele simple Lancer la r´ esolution et visualiser la solution Notification Problem Browser Console N.

Pr´ esentation des outils Mod` eles L’environnement Donn´ ees Application Plan 24 Pr´ esentation des outils Mod` eles L’environnement Donn´ ees Application 25 26 27 28 N. Brauner 293 .

Brauner 294 .Pr´ esentation des outils Mod` eles L’environnement Donn´ ees Application L’environnement Output Issues Console Solutions Conflicts and Relaxations Engine Log Engine Statistics Profiler N.

Brauner 295 .Pr´ esentation des outils Mod` eles L’environnement Donn´ ees Application L’environnement Barres d’outils Model Outline Projets (configurations) N.

Pr´ esentation des outils Mod` eles L’environnement Donn´ ees Application L’aide Menu Aide Sommaire de l’aide noter l’aide sur un mot cl´ e (keyword help) N. Brauner 296 .

Pr´ esentation des outils Mod` eles L’environnement Donn´ ees Application Plan 24 Pr´ esentation des outils Mod` eles L’environnement Donn´ ees Application 25 26 27 28 N. Brauner 297 .

18] .Pr´ esentation des outils Mod` eles L’environnement Donn´ ees Application S´ eparation du mod` ele et des donn´ ees Dans l’exercice confiture. int Dispo[Produits] = [4. {string} Produits = {"rhubarbe". "ConfFraise"}. int Besoin[Pots][Produits] = [[1. 12. "sucre"} . {string} Pots = {"ConfRhubarbe". s´ eparer les donn´ ees du mod` ele D´ eclaration des donn´ ees dans le fichier mod` ele Produits Pots Profit Besoin Quantit´ es dispo. 2]] . 0. 2. N. 5].[0. "fraise". int Profit[Pots] = [3. Brauner 298 . 3].

D´ eclaration des variables de d´ ecision dvar float+ x[Pots] . Contraintes : respecter les quantit´ es disponibles subject to{ forall (pr in Produits) cap[pr]: sum(po in Pots) Besoin[po][pr]*x[po] <= Dispo[pr] .Pr´ esentation des outils Mod` eles L’environnement Donn´ ees Application S´ eparation du mod` ele et des donn´ ees D´ eclaration des contraintes constraint cap[Produits] . } N. Objectif : maximiser le profit maximize sum(po in Pots) Profit[po]*x[po] . Brauner 299 .

18] . Brauner 300 . "ConfFraise":[0. "sucre"} . Besoin = [ "ConfRhubarbe":[1. 2.Pr´ esentation des outils Mod` eles L’environnement Donn´ ees Application S´ eparation du mod` ele et des donn´ ees Dans l’exercice confiture. 12. Pots = {"ConfRhubarbe". 0. Dispo = [4. "fraise". saisir les donn´ ees dans un fichier .dat Produits = {"rhubarbe". 5].dat D´ eclaration des donn´ ees dans un fichier . 2] ]. 3]. "ConfFraise"}. N. Profit = [3.

... {string} Pots = ... Brauner 301 . int Besoin[Pots][Produits] = .Pr´ esentation des outils Mod` eles L’environnement Donn´ ees Application S´ eparation du mod` ele et des donn´ ees D´ eclaration de donn´ ees externes dans un mod` ele {string} Produits = .. ..... int Profit[Pots] = ... int Dispo[Produits] = ... Ajouter le fichier de donn´ es au projet Ajouter le fichier de donn´ ees ` a la configuration N.

Brauner 302 .Pr´ esentation des outils Mod` eles L’environnement Donn´ ees Application Debuggage Outils de debuggage des mod` eles : D´ ecrire des contraintes avec donn´ ees Tracer l’ex´ ecution Utiliser le graphique de Engine Statistics Mettre en pause pour voir solution courante N.

Brauner 303 .Pr´ esentation des outils Mod` eles L’environnement Donn´ ees Application Plan 24 Pr´ esentation des outils Mod` eles L’environnement Donn´ ees Application 25 26 27 28 N.

Notification des besoins pour les trois prochains mois. avril mai juin A 1000 3000 5000 B 1000 500 3000 capacit´ es machine (h) hommes (h) stock (m3 ) avril 400 300 10 000 mai 500 300 10 000 juin 600 300 10 000 capacit´ es machine (h/unit´ e) homme (h/unit´ e) stock (m3 /unit´ e) A 0.05 2 B 0.10 0.07 3 N. Brauner 304 .08 0.Pr´ esentation des outils Mod` eles L’environnement Donn´ ees Application Production de moteurs d’avions Production de deux composantes (A et B ) d’un moteur d’avion.

Proposer une mod´ elisation math´ ematique de ce probl` eme N. coˆ uts de production : 20 par unit´ es de A et 10 par unit´ es de B coˆ ut de stockage : 1. Brauner 305 .Pr´ esentation des outils Mod` eles L’environnement Donn´ ees Application Production de moteurs d’avions Production de deux composantes (A et B ) d’un moteur d’avion.5% de la valeur horaire mensuel de base : 225 coˆ ut de l’heure suppl´ ementaire de travail : 10 stock fin mars : 500 A et 200 B stock minimum impos´ e fin juin : 400 A et 200 B Trouver un plan de production des trois prochain mois qui minimise les coˆ uts.

mois ] stock : s [produit . Brauner 306 .Pr´ esentation des outils Mod` eles L’environnement Donn´ ees Application Production de moteurs d’avions Variables production : x [produit . mois ] heures suppl´ ementaires I [mois ] Objectif : production + stock + heures suppl´ ementaires Contraintes d´ efinition du stock stock minimum fin juin capacit´ es des machines capacit´ es des hommes capacit´ es des stocks d´ efinition des heures suppl´ ementaires N.

Brauner 307 .14 0 2057.43 10 Juin 5400 428.2857 Mars 500 200 Avril 500 2857.29 0 2771.14 0 Mai 3000 1214.Pr´ esentation des outils Mod` eles L’environnement Donn´ ees Application Production de moteurs d’avions Mod´ eliser ce probl` eme avec OPL et le r´ esoudre avec CPLEX Solution fractionnaire : coˆ ut 224724.671 400 200 75 Produit A Produit B Stock A Stock B Heures supp N.

06 1 Mai 3000 1214 0 2772 9.98 10 Juin 5400 428 400 200 74.5 Mars 500 200 Avril 500 2858 0 2058 0.Pr´ esentation des outils Mod` eles L’environnement Donn´ ees Application Production de moteurs d’avions Solution enti` ere : coˆ ut 224724. Brauner 308 .96 75 Produit A Produit B Stock A Stock B Heures supp Heures supp ent N.

Brauner 309 .Pr´ esentation des outils Mod` eles L’environnement Donn´ ees Application Production de moteurs d’avions Programme lin´ eaire avec 15 variables et 20 contraintes 2 produits 3 mois 1 type de machines 1 type d’hommes 1 type de stockage N.

Brauner 310 .ampl.Pr´ esentation des outils Mod` eles L’environnement Donn´ ees Application Pour aller plus loin Donn´ ees dans Excel Ilog script Application VB Web appli et Java AMPL : un autre langage de mod´ elisation http://www.com N.

Formulations et coupes .

Formulation In´ egalit´ e valide Algorithme de plan s´ ecant Plan 29 Formulation 30 In´ egalit´ e valide 31 Algorithme de plan s´ ecant N. Brauner 312 .

Brauner 313 .Formulation In´ egalit´ e valide Algorithme de plan s´ ecant Plan 29 Formulation 30 In´ egalit´ e valide 31 Algorithme de plan s´ ecant N.

Brauner 314   xij = 1 h i i xij ≤ Hyj  yj . 1} j . xij ∈ {0. j ∈ N N.Formulation In´ egalit´ e valide Algorithme de plan s´ ecant Remplissage de Boite (bin packing) Un ensemble de n objets de hauteur hi A ranger dans des boˆ ıtes de hauteur H Minimiser le nombre de boˆ ıtes utilis´ ees Formulation P en PLNE xij ≡ 1 si i est rang´ e dans la boˆ ıte j yj ≡ 1 si la boˆ ıte j est utilis´ ee min j ∈N yj ∀i ∈ N ∀j ∈ N ∀i .

Brauner 315 . autant prendre les 3 premi` eres ! Quelle contrainte ajouter ? N.Formulation In´ egalit´ e valide Algorithme de plan s´ ecant Remplissage de Boite (bin packing) ´ Enorm´ ement de sym´ etries sont pr´ esentes Si l’optimum utilise 3 boˆ ıtes.

Formulation In´ egalit´ e valide Algorithme de plan s´ ecant R´ esolution des 2 formulations Le premier PLNE est une formulation du BinPacking Ajouter les contraintes de sym´ etries. Brauner 316 . n’est-ce pas redondant ? Essayons de r´ esoudre l’instance 15 objets ` a ranger dans des boˆ ıtes de hauteur H = 20 hauteurs 6 7 8 9 10 en trois exemplaires chacun (tr` es) petit exemple Quelle est la solution optimale ? N.

Formulation In´ egalit´ e valide Algorithme de plan s´ ecant R´ esolution des 2 formulations 15 objets ` a ranger dans des boˆ ıtes de hauteur H = 20 hauteurs 3× 6 7 8 9 10 R´ esolution sous OPL Formulation I (Cuts off) temps nœuds > 3h > 35 millions Formulation II (Cuts off) temps nœuds 129s 500000 Formulation I (Cuts on) temps nœuds 3s 2000 N. Brauner 317 .

Formulation In´ egalit´ e valide Algorithme de plan s´ ecant Formulations d’un PLNE Probl` eme combinatoire ` a r´ esoudre max{cx | x ∈ X } avec X ⊆ Z n Une mod´ elisation du probl` eme en PLNE ⇒ poly` edre P = {x ∈ R n | Ax ≤ b } D´ efinition Un PLNE est une formulation de X ssi X = P ∩ Z n Il existe une infinit´ e de formulations pour un probl` eme N. Brauner 318 .

Brauner 319 .Formulation In´ egalit´ e valide Algorithme de plan s´ ecant Illustration graphique X N.

Brauner 320 .Formulation In´ egalit´ e valide Algorithme de plan s´ ecant Illustration graphique P X P’ N.

Formulation

In´ egalit´ e valide

Algorithme de plan s´ ecant

Formulation Id´ eale
Une formulation P est ”meilleure” que P si P ⊂ P La formulation id´ eale est la formulation la plus proche de X C’est l’enveloppe convexe conv (X )
X conv(X)

N. Brauner

321

Formulation

In´ egalit´ e valide

Algorithme de plan s´ ecant

Formulation Id´ eale
Propri´ et´ e max{cx | x ∈ X } = max{cy | y ∈ conv (X )} A gauche, un probl` eme combinatoire (discret) A droite, un Programme Lin´ eaire (continu) Si l’on a une formulation qui d´ ecrit conv (X ) ⇒ la relaxation lin´ eaire r´ esout le probl` eme ` a l’optimum pour tout objectif lin´ eaire

N. Brauner

322

Formulation

In´ egalit´ e valide

Algorithme de plan s´ ecant

Moralit´ e
Dans une formulation en PLNE, il ne faut pas ˆ etre ´ econome de ses contraintes ! ⇒ Am´ eliore les bornes des relaxations lin´ eaires ⇒ Diminue le nombre de nœuds visit´ es L’id´ eal ´ etant que la relaxation donne directement une solution enti` ere sans brancher Existe-t-il des m´ ethodes pour trouver des contraintes qui am´ eliorent la formulation ? Peut-on d´ ecrire conv (X ) ?

N. Brauner

323

Formulation

In´ egalit´ e valide

Algorithme de plan s´ ecant

Plan

29

Formulation

30

In´ egalit´ e valide

31

Algorithme de plan s´ ecant

N. Brauner

324

Formulation

In´ egalit´ e valide

Algorithme de plan s´ ecant

In´ egalit´ e valide
Probl` eme combinatoire ` a r´ esoudre max{cx | x ∈ X } avec X ⊆ Z n

D´ efinition Une in´ egalit´ e valide est une in´ egalit´ e π x ≤ π0 v´ erifi´ ee par tous les points de X

X

N. Brauner

325

Formulation

In´ egalit´ e valide

Algorithme de plan s´ ecant

Une remarque
Si on a une in´ egalit´ e valide y ≤b y une variable enti` ere, b un r´ eel. Alors y≤ b est aussi une in´ egalit´ e valide Cette remarque permet de g´ en´ erer bien des coupes !

N. Brauner

326

Formulation

In´ egalit´ e valide

Algorithme de plan s´ ecant

Coupes de Chv´ atal-Gomory
Programme lin´ eaire max{cx | Ax ≤ b , x entier}. Pour une ligne i de la matrice on a aij xj ≤ bi
i

Pour tout r´ eel λ > 0 λaij xj ≤ λbi
i

L’in´ egalit´ e suivante est donc valide (x ≥ 0) λaij xj ≤ λbi
i

En appliquant la remarque, on obtient une coupe de C-G λaij xj ≤ λbi
i
N. Brauner 327

Brauner 328 .Formulation In´ egalit´ e valide Algorithme de plan s´ ecant Exemple Probl` eme ` a 2 variables x et y enti` eres Formulation 5/4 3x + 4y ≤ 5 Objectif max 9x + 10y X P 5/3 Quel est l’optimum de la relaxation lin´ eaire ? Quel est l’optimum entier ? Quelles coupes de Chv´ atal-Gomory trouve-t-on ? N.

Brauner 329 . . Mixed Integer Rounding. .) Leur ajout renforce la formulation Mais Si le probl` eme est difficile.Formulation In´ egalit´ e valide Algorithme de plan s´ ecant Ajouts de coupes Il existe de nombreuses familles de coupes dans la litt´ erature (Flow Cover. d´ ecrire conv (X ) demande un nombre exponentiel de contraintes ! Que faire si une bonne formulation n´ ecessite trop de coupes ? N. .

Brauner 330 .Formulation In´ egalit´ e valide Algorithme de plan s´ ecant Plan 29 Formulation 30 In´ egalit´ e valide 31 Algorithme de plan s´ ecant N.

Brauner 331 .Formulation In´ egalit´ e valide Algorithme de plan s´ ecant Probl´ ematique Formulation initiale P = {x ∈ R n | Ax ≤ b } Famille F de coupes On veut am´ eliorer la formulation pour d´ ecrire conv (X ) X Le plus simple : reformuler en ajoutant F ` aP Le probl` eme : |F| >> 1 Ajouter toutes les coupes a priori est d´ eraisonnable N.

Brauner 332 .Formulation In´ egalit´ e valide Algorithme de plan s´ ecant Algorithme de Plan S´ ecant (Cutting Plane) Probl` eme combinatoire max{cx | x ∈ X } avec X ⊆ Z n La description compl` ete de conv (X ) est inutile Seule la description autour de l’optimum nous int´ eresse X Id´ ee rajouter les in´ egalit´ es valides uniquement dans la r´ egion de l’optimum N.

Brauner 333 .Formulation In´ egalit´ e valide Algorithme de plan s´ ecant Algorithme de S´ eparation Evidemment on ne sait pas o` u est l’optimum On connaˆ ıt l’optimum x ∗ de la relaxation lin´ eaire S´ eparation : Trouver une in´ egalit´ e valide π x ≤ π0 de F coupant x ∗ : π x ∗ > π0 Ajouter cette in´ egalit´ e pour am´ eliorer la relaxation lin´ eaire X x* P N.

Formulation In´ egalit´ e valide Algorithme de plan s´ ecant Algorithme de Plan S´ ecant On r´ esout le relaxation lin´ eaire sur la nouvelle formulation On cherche une nouvelle in´ egalit´ e coupant x ∗ On it` ere jusqu’` a obtenir une solution x ∗ enti` ere x’* x* X X P P N. Brauner 334 .

Brauner 335 .Formulation In´ egalit´ e valide Algorithme de plan s´ ecant Algorithme de Plan S´ ecant PROGRAMMATION LINEAIRE Resoudre la formulation P optimum x* Alors Si x* est entier Sinon ALGORITHME DE SEPARATION Trouver une inegalite valide v violee par x* Ajouter v a P Optimum sur X FIN N.

Brauner 336 .Formulation In´ egalit´ e valide Algorithme de plan s´ ecant Terminaison de l’algorithme Un algorithme de Plan S´ ecant termine Soit en trouvant une solution enti` ere : optimum sur X Soit en cas d’´ echec de l’algorithme de s´ eparation ⇒ Aucune in´ egalit´ e valide de F n’est viol´ ee par x ∗ Pour achever la r´ esolution ` a l’optimum : Utiliser un algorithme de Branch & Bound standard sur la formulation obtenue N.

Brauner 337 .Formulation In´ egalit´ e valide Algorithme de plan s´ ecant Comparaison avec le Branch & Bound Algorithme de Plan S´ ecant : raffine la description du poly` edre autour de l’optimal Algorithme de Branch & Bound : d´ ecoupe le poly` edre en morceaux x* X X P P N.

Branch & Cut Un Branch & Cut consiste ` a appliquer un algorithme de plan s´ ecant sur chaque nœud avant de brancher But : am´ eliorer la formulation de chaque nœud ⇒ Nombre de nœuds explor´ es << Branch & Bound ⇒ Calcul de chaque nœud >> Branch & Bound N. trop d’in´ egalit´ es sont n´ ecessaires Un algorithme de Branch & Bound doit alors ˆ etre utilis´ e.Formulation In´ egalit´ e valide Algorithme de plan s´ ecant Branch & Cut Les algorithmes de plan s´ ecant peuvent ´ echouer ` a s´ eparer une solution fractionnaire ou. Brauner 338 .

Formulation In´ egalit´ e valide Algorithme de plan s´ ecant Dimensionnement de lots (DLS) Une demande journali` ere dt sur un horizon T Coˆ ut de production pt (x ) = ft + at x Coˆ ut de stockage unitaire ht (par jour par unit´ e) Quel plan de production choisir pour minimiser les coˆ uts ? 1 2 Comment d´ ecrire une solution ? Comment d´ ecrire une solution r´ ealisable ? N. Brauner 339 .

Formulation In´ egalit´ e valide Algorithme de plan s´ ecant Dimensionnement de lots (DLS) demande production 1 2 3 4 5 6 7 8 stock N. Brauner 340 .

Brauner 341 .Formulation In´ egalit´ e valide Algorithme de plan s´ ecant Dimensionnement de lots (DLS) Une demande journali` ere dt sur un horizon T Coˆ ut de production pt (x ) = ft + at x Coˆ ut de stockage unitaire h (par jour par unit´ e) Quel plan de production choisir pour minimiser les coˆ uts ? N.

et 0 sinon Comment traduire le lien entre y et x ? N.Formulation In´ egalit´ e valide Algorithme de plan s´ ecant Dimensionnement de lots (DLS) Mod´ elisation du coˆ ut de production. 1} indicatrice des instants de production yt ≡ 1 ssi xt > 0. Brauner 342 . non lin´ eaire p(x) = f + ax f x Variables de d´ ecision yt ∈ {0.

T    t yt ∈ {0. . . .Formulation In´ egalit´ e valide Algorithme de plan s´ ecant Formulations d’un PLNE On obtient la formulation AGG min ft yt + hIt t  xt + It = dt + It +1 t = 1. . . Brauner 343 . . . T − 1    xT + IT = dT x ≤ Dt yt t = 1. . . . T Que se passe-t-il si on essaie de la r´ esoudre ? N. . . 1} t = 1.

Formulation In´ egalit´ e valide Algorithme de plan s´ ecant Limite du Branch & Bound OPL ne parvient pas ` a r´ esoudre ! Pourtant : Le probl` eme est ”facile” et l’exemple est petit ⇒ Il existe des algorithmes qui la r´ esolvent instantan´ ement La formulation naturelle n’est pas efficace ⇒ Peut-on formuler diff´ eremment le probl` eme ? N. Brauner 344 .

Brauner 345 . 1} indicatrice des instants de production xuv fraction de la demande de v produite le jour u Contraintes ? N.Formulation In´ egalit´ e valide Algorithme de plan s´ ecant Formulation UFL Formulation moins naturelle Variables de d´ ecision yt ∈ {0.

Brauner 346 .Formulation In´ egalit´ e valide Algorithme de plan s´ ecant Comparaison des 2 formulations Formulation AGG O(T ) variables binaires et continues O(T ) contraintes Formulation UFL O(T ) variables binaires O(T 2 ) variables continues O(T 2 ) contraintes La seconde formulation est beaucoup plus grosse Est-ce le bon crit` ere de comparaison pour un PLNE ? N.

Brauner 347 .Formulation In´ egalit´ e valide Algorithme de plan s´ ecant Formulation UFL Avec la formulation UFL OPL r´ esout sans faire de Branch & Bound ! ⇒ la relaxation lin´ eaire donne directement l’optimum entier Si on active les coupes Flow cover ⇒ OPL r´ esout la formulation AGG en explorant seulement 5 nœuds ! Que se passe-t-il ? N.

) aussi ! N. Enrichir la formulation initiale en connaissant la structure du probl` eme (sym´ etries.. Brauner 348 .Formulation In´ egalit´ e valide Algorithme de plan s´ ecant Conclusion L’algorithme de Branch & Bound peut ˆ etre inefficace Il est primordial d’avoir une bonne formulation Reformulation a priori. les logiciels commerciaux font du Branch & Cut avec des familles g´ en´ eriques de coupes Jouer sur le param´ etrage peut ˆ etre utile. . formulation ´ etendue Algorithme de Plan S´ ecant Algorithme de Branch & Bound Heureusement. .

Programmation dynamique .

Brauner 350 .Jeux introductifs Optimisation Combinatoire Principe de Sous-optimalit´ e Programmation Dynamique Dominances Plan 32 Jeux introductifs Optimisation Combinatoire Principe de Sous-optimalit´ e Programmation Dynamique Dominances 33 34 35 36 N.

Jeux introductifs Optimisation Combinatoire Principe de Sous-optimalit´ e Programmation Dynamique Dominances Plan 32 Jeux introductifs Optimisation Combinatoire Principe de Sous-optimalit´ e Programmation Dynamique Dominances 33 34 35 36 N. Brauner 351 .

Brauner 352 .Jeux introductifs Optimisation Combinatoire Principe de Sous-optimalit´ e Programmation Dynamique Dominances Jeux introductifs Pyramide de nombres Trouver un chemin de haut en bas qui maximise la somme des nombres travers´ es 3 7 4 2 4 6 8 5 9 3 6 7 4 2 8 3 7 2 8 6 7 5 4 4 9 2 4 6 3 8 6 8 7 2 5 4 7 4 9 2 3 4 6 3 8 N.

Brauner 353 .Jeux introductifs Optimisation Combinatoire Principe de Sous-optimalit´ e Programmation Dynamique Dominances Jeux introductifs Pyramide de nombres 33 710 212 820 626 727 519 427 414 923 225 47 613 316 826 N.

Brauner 354 .Jeux introductifs Optimisation Combinatoire Principe de Sous-optimalit´ e Programmation Dynamique Dominances Jeux introductifs Partager un sac de pi` eces Partager les pi` eces suivantes en deux ensembles ´ egaux {5 9 3 8 2 5} 1 2 3 4 0 V V V V 1 2 3 4 5 V V V V 6 7 8 9 V V V 10 11 12 13 14 V V V 15 16 V V V V V V V V Construire le tableau : m(i . N. j ) = m(i − 1. j ) ou m(i − 1. j ) = V si je peux avoir j avec les i premi` eres pi` eces m(i . j − pi e `ce (i )) i =1` a nb de pi` eces j = pi e `ce (i ) ` a 16. 0) = V pour i = 0 ` a nb de pi` eces m(i .

Jeux introductifs Optimisation Combinatoire Principe de Sous-optimalit´ e Programmation Dynamique Dominances Plan 32 Jeux introductifs Optimisation Combinatoire Principe de Sous-optimalit´ e Programmation Dynamique Dominances 33 34 35 36 N. Brauner 355 .

Jeux introductifs Optimisation Combinatoire Principe de Sous-optimalit´ e Programmation Dynamique Dominances Combinatoire Structure discr` ete Tr` es grand nombre de possibilit´ es N. Brauner 356 .

Jeux introductifs Optimisation Combinatoire Principe de Sous-optimalit´ e Programmation Dynamique Dominances Probl` emes combinatoires D´ efinition Un probl` eme d’optimisation se d´ efinit par INSTANCE : d´ ecrit les donn´ ees d’entr´ ee SOLUTIONS REALISABLES : d´ ecrit l’ensemble F des solutions admissibles CRITERE ` a optimiser. Mesure c sur les solutions r´ ealisables D´ efinition g´ en´ erique : une infinit´ e d’instances On recherche une m´ ethode (algorithme) capable de fournir pour chaque instance I : une solution optimale S ∗ ou la valeur OPT (I ) du crit` ere ` a l’optimum OPT (I ) = c (S ∗ ) = max{c (S )|S ∈ F} N. Brauner 357 .

. . n. Son cardinal peut ˆ etre tr` es grand (ici potentiellement 2n ) N. n} CRITERE maximiser c (S ) = i ∈S ci L’ensemble F est en g´ en´ eral d´ efini par des contraintes. . . . . avec des poids ci SOLUTIONS REALISABLES : Un ensemble F de parties de {1.Jeux introductifs Optimisation Combinatoire Principe de Sous-optimalit´ e Programmation Dynamique Dominances Probl` emes combinatoires Un probl` eme d’optimisation combinatoire typique INSTANCE : Un ensemble d’objets 1. . . Brauner 358 .

Brauner 359 .Jeux introductifs Optimisation Combinatoire Principe de Sous-optimalit´ e Programmation Dynamique Dominances Le sac ` a dos Un randonneur veut remplir son sac de capacit´ e 4kg avec les objets les plus utiles objets carte gourde 2` eme gourde pull Kway tomme fruits secs utilit´ e 10 7 3 6 2 4 5 poids (g) 200 1500 1500 1200 500 800 700 N.

Brauner 360 .Jeux introductifs Optimisation Combinatoire Principe de Sous-optimalit´ e Programmation Dynamique Dominances Le Sac ` a dos Probl` eme d’optimisation classique Utiliser au mieux une capacit´ e Choix d’un portefeuille d’investissement Apparaˆ ıt dans des probl` emes plus complexes Mod´ elisation INSTANCE : SOLUTIONS REALISABLES : CRITERE : N.

Pour chaque S ∈ F . . .Retenir la meilleure solution Probl` eme Le nombre de solutions potentielles est fini mais gigantesque Esp´ erance de vie du soleil 5 milliards d’ann´ ees < 258 secondes N. S2 .Parcourir toutes les solutions . .Jeux introductifs Optimisation Combinatoire Principe de Sous-optimalit´ e Programmation Dynamique Dominances M´ ethodes ´ enum´ eratives Nombre fini de solutions F = {S1 . Brauner 361 . SN } . ´ evaluer c (S ) . .

Programmation dynamique : r´ eduire l’espace de recherche ` a des sous-solutions optimales. Brauner 362 . N.Jeux introductifs Optimisation Combinatoire Principe de Sous-optimalit´ e Programmation Dynamique Dominances Challenge de l’optimisation combinatoire Comment trouver la meilleure solution sans parcourir toutes les solutions ? Utiliser la structure du probl` eme Enum´ eration implicite : ´ eliminer a priori des solutions D´ etecter que des solutions sont ”mauvaises” ou irr´ ealisables sans les ´ evaluer explicitement.

Jeux introductifs Optimisation Combinatoire Principe de Sous-optimalit´ e Programmation Dynamique Dominances Plan 32 Jeux introductifs Optimisation Combinatoire Principe de Sous-optimalit´ e Programmation Dynamique Dominances 33 34 35 36 N. Brauner 363 .

Jeux introductifs Optimisation Combinatoire Principe de Sous-optimalit´ e Programmation Dynamique Dominances Principe de sous-optimalit´ e On veut r´ esoudre un probl` eme P sur une instance I Structure sp´ ecifique de P Les ”morceaux” d’une solution optimale sont optimaux P P1 P2 P 3 Le probl` eme P se d´ ecompose en sous-probl` emes P1 . L’optimum sur P s’obtient ` a partir des optimaux des sous-probl` emes. Pk . . Brauner 364 . N. . . .

. . Ik OPT (I ) = f (OPT (I1 ). . . . OPT (Ik )) On a une formulation r´ ecursive de OPT (I ) Il suffit de calculer l’optimum pour OPT (I1 ). . .Jeux introductifs Optimisation Combinatoire Principe de Sous-optimalit´ e Programmation Dynamique Dominances Principe de sous-optimalit´ e Principe de sous-optimalit´ e L’optimum sur une instance I peut se construire ` a partir de solutions optimales sur des instances plus ”simples” I1 . OPT (Ik ) puis d’appliquer f Chaque OPT (Ij ) s’exprime ` a son tour en fonction d’instances plus simples Jusqu’` a obtenir une instance de base I directement calculable N. . . . . . Brauner 365 .

Brauner 366 .Jeux introductifs Optimisation Combinatoire Principe de Sous-optimalit´ e Programmation Dynamique Dominances Calcul r´ ecursif de l’optimum I1 I I2 I3 I N.

Brauner 367 .Jeux introductifs Optimisation Combinatoire Principe de Sous-optimalit´ e Programmation Dynamique Dominances D´ ecomposition en sous-probl` emes F Instance I ` a r´ esoudre Partition des solutions selon l’objet n F = {S ∈ F|n ∈ / S } ne contenant pas n F = {S ∈ F|n ∈ S } contenant n On a OPT (I ) = max{c (S ∗ ). c (S ∗ )} N.

Jeux introductifs Optimisation Combinatoire Principe de Sous-optimalit´ e Programmation Dynamique Dominances D´ ecomposition en sous-probl` emes F F’ F’’ Deux sous-probl` emes ` a r´ esoudre Sur F : probl` eme P restreint aux n − 1 premiers objets Sur F : ´ egalement restreint aux n − 1 premiers objets mais structure des solutions r´ ealisables ? N. Brauner 368 .

Brauner 369 .Jeux introductifs Optimisation Combinatoire Principe de Sous-optimalit´ e Programmation Dynamique Dominances D´ ecomposition en sous-probl` emes F F’ F’’ D´ ecrire F comme {S ∈ F|n ∈ S } est inefficace ⇒ ´ enum´ eration explicite de toutes les solutions F doit pouvoir ˆ etre d´ ecrit comme un sous-probl` eme de P N.

Critere: l’utilit´ e totale u (S ) des objets Quel est l’optimum de OPT (I ) par rapport ` a l’objet n ? Comment ´ ecrire le principe de sous-optimalit´ e? N. Brauner 370 .Jeux introductifs Optimisation Combinatoire Principe de Sous-optimalit´ e Programmation Dynamique Dominances Sac ` a dos ` dos Sac a Instance: n objets de poids wi et d’utilit´ e ui . Solution: sous-ensemble S d’objets tel que w (S ) ≤ W . un sac de taille W.

. . .Jeux introductifs Optimisation Combinatoire Principe de Sous-optimalit´ e Programmation Dynamique Dominances Param´ etrisation Principe de sous-optimalit´ e : les probl` emes qui apparaissent dans la d´ ecomposition correspondent au probl` eme initial sur des instances plus simples Instance I pour un sous-probl` eme ⇒ I diff` ere de I par certains param` etres (entiers) p1 . . . . xl ) D´ efinition On appelle ´ etat le vecteur de param` etres (x1 . Brauner 371 . . . xl ) d´ ecrivant une sous-instance. pl Pour le Sac ` a dos : les objets consid´ er´ es et la taille du sac On d´ ecrit I par la valeur de ses param` etres (x1 . . . . . N.

. . xl ) : ´ etat D´ ependance entre les instances (calcul de f ) parametre 2 I 3 2 1 0 0 1 2 3 4 5 6 parametre 1 N. . . Brauner 372 .Jeux introductifs Optimisation Combinatoire Principe de Sous-optimalit´ e Programmation Dynamique Dominances Graphe d’Etat Vecteur de param` etres (x1 .

Brauner 373 .Jeux introductifs Optimisation Combinatoire Principe de Sous-optimalit´ e Programmation Dynamique Dominances Plan 32 Jeux introductifs Optimisation Combinatoire Principe de Sous-optimalit´ e Programmation Dynamique Dominances 33 34 35 36 N.

Brauner 374 . Critere: l’utilit´ e totale u (S ) des objets Dessinez le graphe d’´ etat pour 4 objets de poids 1 et un sac de capacit´ e 3. un sac de taille W.Jeux introductifs Optimisation Combinatoire Principe de Sous-optimalit´ e Programmation Dynamique Dominances Programmation Dynamique ` dos Sac a Instance: n objets de poids wi et d’utilit´ e ui . Solution: sous-ensemble S d’objets tel que w (S ) ≤ W . Que remarque-t-on ? N.

¯ Parcourir les ´ etats jusqu’` a X Pour chaque ´ etat X . .Jeux introductifs Optimisation Combinatoire Principe de Sous-optimalit´ e Programmation Dynamique Dominances Programmation Dynamique Un ´ etat peut ˆ etre calcul´ e un tr` es grand nombre de fois Id´ ee : on d´ er´ ecursive On m´ emorise les ´ etats au lieu de les recalculer Il suffit de parcourir les ´ etats dans un ordre topologique inverse du graphe d’´ etat Evaluer les ´ etats de base OPT [0. . . 0]. . d´ ependant de X1 . . OPT [Xk )) ¯] Retourner OPT [X N. . Xk d´ ej` a´ evalu´ es. . . Brauner 375 . . m´ emoriser OPT [X ] = f (OPT [X1 ]. . . .

Jeux introductifs Optimisation Combinatoire Principe de Sous-optimalit´ e Programmation Dynamique Dominances Sac ` a dos Sac ` a dos de taille 7. Brauner 376 . avec 4 objets valeurs des objets 2 poids des objets 2 4 3 5 4 6 5 Calculer le tableau OPT N.

Le temps de r´ esolution est alors t (x1 .. .. Brauner 377 .xl )∈Etats Souvent on a une borne uniforme sur t (x1 .. . . .. . . . .Jeux introductifs Optimisation Combinatoire Principe de Sous-optimalit´ e Programmation Dynamique Dominances Efficacit´ e Quel est le temps de r´ esolution ? D´ epend du nombre d’´ etats du temps t pour ´ evaluer la fonction f en chaque ´ etat. xl ) (x1 . xl ) ≤ T Le temps de r´ esolution est major´ e par T × #Etats N.

Jeux introductifs Optimisation Combinatoire Principe de Sous-optimalit´ e Programmation Dynamique Dominances Sac ` a dos Temps de r´ esolution du sac ` a dos Quel est le temps pour ´ evaluer un ´ etat (i . w ) ? Quel est le nombre d’´ etats ? N. Brauner 378 .

Brauner 379 .Jeux introductifs Optimisation Combinatoire Principe de Sous-optimalit´ e Programmation Dynamique Dominances Calcul d’une solution optimale La programmation dynamique fournit OPT (I ) Comment obtenir une solution S ∗ ? Conserver des pointeurs dans le tableau : chemin dans le graphe d’´ etat M´ ethode de Backtracking Les 2 m´ ethodes consistent ` a remonter le calcul de OPT (I ) Donner une solution optimale pour le sac ` a dos ` a partir du tableau OPT de la programmation dynamique N.

Brauner 380 .Jeux introductifs Optimisation Combinatoire Principe de Sous-optimalit´ e Programmation Dynamique Dominances Plan 32 Jeux introductifs Optimisation Combinatoire Principe de Sous-optimalit´ e Programmation Dynamique Dominances 33 34 35 36 N.

Jeux introductifs Optimisation Combinatoire Principe de Sous-optimalit´ e Programmation Dynamique Dominances Dimensionnement de lots Une demande journali` ere dt sur un horizon T Coˆ ut de production pt (x ) = ft + at x Coˆ ut de stockage unitaire ht (par jour par unit´ e) Quel plan de production choisir pour minimiser les coˆ uts ? Comment d´ ecrire une solution ? N. Brauner 381 .

Jeux introductifs Optimisation Combinatoire Principe de Sous-optimalit´ e Programmation Dynamique Dominances Dimensionnement de lots demande production 1 2 3 4 5 6 7 8 stock N. Brauner 382 .

Jeux introductifs Optimisation Combinatoire Principe de Sous-optimalit´ e Programmation Dynamique Dominances Principe de sous-optimalit´ e Comment exprimer un principe de sous-optimalit´ e? Quels param` etres sont n´ ecessaires ? Quel est le temps de r´ esolution ? N. Brauner 383 .

Brauner 384 .Jeux introductifs Optimisation Combinatoire Principe de Sous-optimalit´ e Programmation Dynamique Dominances Dominance Definition (Dominance) Une dominance est une propri´ et´ e D v´ erifi´ ee par au moins une solution optimale. Propriété D Solutions réalisables Solutions optimales N.

alors les politiques ZIO sont dominantes Argument d’´ echange On consid` ere un planning (optimal) qui ne v´ erifie pas la dominance On montre qu’on peut le modifier en pr´ eservant l’objectif N.Jeux introductifs Optimisation Combinatoire Principe de Sous-optimalit´ e Programmation Dynamique Dominances Dimensionnement de lots Politiques ZIO Une politique ZIO consiste ` a ne produire que si le stock est vide si It > 0. alors xt = 0 Si pour chaque instant at + ht ≥ at +1 . Brauner 385 .

Jeux introductifs Optimisation Combinatoire Principe de Sous-optimalit´ e Programmation Dynamique Dominances Algorithme de Wagner & Within Exprimer un principe de sous-optimalit´ e en utilisant la dominance Quel est maintenant le temps de r´ esolution ? N. Brauner 386 .

.Jeux introductifs Optimisation Combinatoire Principe de Sous-optimalit´ e Programmation Dynamique Dominances Bilan de la programmation dynamique Paradigme pouvant ˆ etre tr` es efficace Pas de condition sur la forme de la fonction objectif.. .mais la propri´ et´ e de sous-optimalit´ e doit ˆ etre v´ erifi´ ee Gourmand en m´ emoire Devient inop´ erant si l’espace des ´ etats est grand N´ ecessit´ e de trouver des dominances pour le r´ eduire N. . . Brauner 387 .

M´ ethodologie et ´ etudes de cas .

M´ ethodologie D´ ecoupe de rouleaux Charbon Localisation Planification d’exp´ eriences Plan 37 M´ ethodologie D´ ecoupe de rouleaux Charbon Localisation Planification d’exp´ eriences 38 39 40 41 N. Brauner 389 .

M´ ethodologie D´ ecoupe de rouleaux Charbon Localisation Planification d’exp´ eriences Plan 37 M´ ethodologie D´ ecoupe de rouleaux Charbon Localisation Planification d’exp´ eriences 38 39 40 41 N. Brauner 390 .

M´ ethodologie D´ ecoupe de rouleaux Charbon Localisation Planification d’exp´ eriences M´ ethodologie Face ` a un probl` eme pratique de d´ ecision : Comprendre le probl` eme En d´ egager les aspects math´ ematiques Reconnaˆ ıtre un type de probl` eme classique informs http ://www2.org/Resources/ wikipedia (portail RO fait et corrig´ e par des chercheurs) N.informs. Brauner 391 .

avec performance.mathematik..nada. approch´ ee.se/∼viggo/problemlist/ ordonnancement http ://www.de/ research/OR/class/ N.kth..M´ ethodologie D´ ecoupe de rouleaux Charbon Localisation Planification d’exp´ eriences M´ ethodologie Analyser la complexit´ e que peut-on esp´ erer pour le temps de r´ esolution imparti ? ⇒ solution exacte.uni-osnabrueck. Brauner 392 . probl` emes NP-complets http ://www.

. programmation dynamique.M´ ethodologie D´ ecoupe de rouleaux Charbon Localisation Planification d’exp´ eriences M´ ethodologie Proposer une formulation graphes. programme ad hoc Analyser et interpr´ eter les r´ esultats Valider par rapport ` a la demande initiale It´ erer avec le demandeur si n´ ecessaire N. algorithmes connus.. PPC. librairies. m´ etaheuristiques. Impl´ ementer une solution solveurs. heuristiques. programmation lin´ eaire. Brauner 393 .

Brauner 394 .M´ ethodologie D´ ecoupe de rouleaux Charbon Localisation Planification d’exp´ eriences Plan 37 M´ ethodologie D´ ecoupe de rouleaux Charbon Localisation Planification d’exp´ eriences 38 39 40 41 N.

M´ ethodologie D´ ecoupe de rouleaux Charbon Localisation Planification d’exp´ eriences D´ ecoupe Rouleaux de papier de longueur standard 180 cm Couteaux de d´ ecoupe (nombre et position arbitraires) Couper des rouleaux de mˆ eme diam` etre Liste des commandes pour la prochaine p´ eriode longueur 80 45 27 nombre de rouleaux 200 120 130 Trouver les sch´ emas de d´ ecoupe qui minimisent la perte N. Brauner 395 .

Brauner 396 .M´ ethodologie D´ ecoupe de rouleaux Charbon Localisation Planification d’exp´ eriences D´ ecoupe ´ Etapes de la r´ esolution Solution manuelle Borne inf´ erieure Sch´ emas de d´ ecoupe Variables et contraintes Fonction objectif 1. interpr´ etation et r´ esolution . et la contrainte d’int´ egralit´ e? N. r´ esolution et analyse Fonction objectif 2. . .

Brauner 397 .M´ ethodologie D´ ecoupe de rouleaux Charbon Localisation Planification d’exp´ eriences Plan 37 M´ ethodologie D´ ecoupe de rouleaux Charbon Localisation Planification d’exp´ eriences 38 39 40 41 N.

Si un charbon est dans le m´ elange. Il y a 8 charbons disponibles.5 % Charbon 6 9 5% Charbon 3 17 1% Charbon 7 15 2% Charbon 4 10 5% Charbon 8 11 1. Charbon Prix Teneur Si Charbon Prix Teneur Si Charbon 1 12 2% Charbon 5 13 1% Charbon 2 14 2.M´ ethodologie D´ ecoupe de rouleaux Charbon Localisation Planification d’exp´ eriences Fabrication de charbon On m´ elange des charbons dans un haut fourneau o` u ensuite. Ces charbons sont entr´ es par des bandes porteuses qui sont au nombre de 4 (au maximum 4 charbons diff´ erents dans le m´ elange). (exo de D. il doit l’ˆ etre ` a hauteur de minimum 5%.8 %. Brauner 398 . de Wolf) N. On exige que la teneur du m´ elange en Silicium soit d’au plus 1.5 % On veut d´ eterminer un m´ elange qui est de coˆ ut minimum. une r´ eaction ` a haute temp´ erature produit le coke. Le tableau suivant reprend les prix et teneur en Si des charbons.

Brauner 399 .M´ ethodologie D´ ecoupe de rouleaux Charbon Localisation Planification d’exp´ eriences Plan 37 M´ ethodologie D´ ecoupe de rouleaux Charbon Localisation Planification d’exp´ eriences 38 39 40 41 N.

M´ ethodologie D´ ecoupe de rouleaux Charbon Localisation Planification d’exp´ eriences Approvisionnement des stations service Une compagnie p´ etroli` ere souhaite d´ eterminer les emplacements possibles pour ses d´ epˆ ots (destin´ es ` a fournir ses stations service). On a un seul produit. cij : coˆ ut unitaire de transport entre un d´ epˆ ot i et la station service j fi : coˆ ut fixe d’ouverture du d´ epˆ ot i si : capacit´ e du d´ epˆ ot i dj : demande de la station service j (peut ˆ etre satisfaite par plusieurs d´ epˆ ots) D´ eterminer les emplacements des stations services qui permettent de minimiser les coˆ uts pour les donn´ ees suivantes. Les stations service sont au nombre de n et on a m d´ epˆ ots. N. Brauner 400 .

7 stations services d´ epˆ ot A B C D E F coˆ ut ouverture 7 8 4 28 20 10 capacit´ e 70 70 40 110 50 50 station 1 2 3 4 5 6 7 demande 30 30 30 10 20 10 10 N. Brauner 401 .M´ ethodologie D´ ecoupe de rouleaux Charbon Localisation Planification d’exp´ eriences Approvisionnement des stations service 6 d´ epˆ ots possibles.

Brauner 402 .M´ ethodologie D´ ecoupe de rouleaux Charbon Localisation Planification d’exp´ eriences Approvisionnement des stations service Coˆ uts de transport 1 2 3 4 5 6 7 A 10 10 20 100 100 60 30 B 10 10 10 50 80 60 40 C 30 25 10 10 30 60 60 D 35 30 10 10 10 20 20 E 35 30 30 20 10 10 10 F 100 95 50 30 10 10 20 N.

M´ ethodologie D´ ecoupe de rouleaux Charbon Localisation Planification d’exp´ eriences Plan 37 M´ ethodologie D´ ecoupe de rouleaux Charbon Localisation Planification d’exp´ eriences 38 39 40 41 N. Brauner 403 .

M´ ethodologie D´ ecoupe de rouleaux Charbon Localisation Planification d’exp´ eriences Planification d’exp´ eriences Dans une industrie chimique. Les r´ eactions se font ` a temp´ erature ´ elev´ ee dans un four de cuisson Le process : Remplissage 1/2 journ´ ee → Cuisson de 3 ` a 14 jours → Filtrage 2 jours N. Brauner 404 . une phase amont teste diff´ erents produits de synth` ese pour d´ eterminer les meilleures compositions.

M´ ethodologie D´ ecoupe de rouleaux Charbon Localisation Planification d’exp´ eriences Cuisson Un robot a ´ et´ e achet´ e pour automatiser la cuisson Chaque exp´ erience est charg´ ee dans une barre de cuisson On dispose de 8 barres de cuisson Le robot peut traiter les 8 barres simultan´ ement La temp´ erature et la dur´ ee de chaque barre est programmable. Brauner 405 . N.

chacun pouvant traiter une barre. 3 postes de travail ont ´ et´ e install´ es. ⇒ Un op´ erateur est requis pour surveiller le d´ eroulement des op´ erations. N.M´ ethodologie D´ ecoupe de rouleaux Charbon Localisation Planification d’exp´ eriences Remplissage Cette ´ etape correspond A la pr´ eparation d’une barre de cuisson Au m´ elange des diff´ erents constituants Pour la r´ ealiser. Brauner 406 .

M´ ethodologie D´ ecoupe de rouleaux Charbon Localisation Planification d’exp´ eriences Filtrage Cette ´ etape correspond A l’analyse des r´ esultats de l’exp´ erience Elle est r´ ealis´ ee de mani` ere semi-automatique Un op´ erateur doit surveiller le d´ eroulement des analyses Les 8 barres de cuisson peuvent ˆ etre analys´ ees simultan´ ement N. Brauner 407 .

M´ ethodologie D´ ecoupe de rouleaux Charbon Localisation Planification d’exp´ eriences Op´ erateur La pr´ esence d’un chimiste qualifi´ e est requise Pendant le remplissage Pendant le filtrage Au d´ emarrage de la cuisson (programmation du robot) A la fin de la cuisson ⇒ lancer le filtrage pour arrˆ eter la r´ eaction ⇒ le filtrage peut ensuite ˆ etre interrompu Seule la cuisson peut ˆ etre r´ ealis´ ee sans la pr´ esence du chimiste N. Brauner 408 .

Brauner 409 . cong´ es.M´ ethodologie D´ ecoupe de rouleaux Charbon Localisation Planification d’exp´ eriences Disponibilit´ es Le planning des absences du chimiste est connu ` a l’avance (week-end. autres obligations) L M M matin apres−midi J V S D L M J V S D L V S matin apres−midi D L M M J V S D L M N.

Brauner 410 .M´ ethodologie D´ ecoupe de rouleaux Charbon Localisation Planification d’exp´ eriences Les buts de l’industriels Planifier les exp´ eriences ` a effectuer sur un horizon de l’ordre de 1 mois afin de Maximiser l’utilisation du robot (investissement important) Finir au plus tˆ ot pour obtenir les r´ esultats des tests De nouvelles exp´ eriences sont ` a planifier chaque mois N.

M´ ethodologie D´ ecoupe de rouleaux Charbon Localisation Planification d’exp´ eriences Jeu de donn´ ees Vous devez planifier 17 exp´ eriences 6 avec un temps de cuisson de 14 jours 8 avec un temps de cuisson de 7 jours 3 avec un temps de cuisson de 3 jours Le planning des disponibilit´ es de l’op´ erateur L M M semaine 1 semaine 2 semaine 3 semaine 4 semaine 5 J V S D N. Brauner 411 .

You're Reading a Free Preview

Télécharger
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->