Vous êtes sur la page 1sur 355

Cours de recherche oprationnelle I e

Grenoble, 2008-2009

Nadia.Brauner@g-scop.inpg.fr 1

Auteurs
Ont particip ` la rdaction de ce cours (par ordre darrive) ea e e Nadia Brauner Christophe Rapine Julien Moncel Laurent Beaudou Ont aid, corrig, relu et donn des ides e e e e Gerd Finke Yann Kieer Van Dat Cung Ont donn les TD et propos des exercices e e Ayse Akbalik Sergei Lenglet
2

Formations ` Grenoble a
Formation initiale RO ` lUJF (L3 info, M1 Info, L3 Miage, PolytechRICM2) a Gestion de la production ` lUJF (M1 Miage) a Outils Formels et Graphes (PolytechRICM2) RO ` lENSIMAG (1A, 2A, LOSI) a RO ` lENSGI (1A, 2A, LOSI) a Master 2 Recherche Mathmatiques et Informatique, Option e Recherche Oprationnelle, Combinatoire et Optimisation e Formation continue Recherche oprationnelle (tous les ans, 4 jours) e Graphes et optimisation (tous les ans, 3 jours)

La recherche oprationnelle e

La Recherche Oprationnelle e

Applications

Mthodologie e

Outils

Rfrences ee

Plan

La Recherche Oprationnelle e Applications Mthodologie e Outils Rfrences ee

N. Brauner

La Recherche Oprationnelle e

Applications

Mthodologie e

Outils

Rfrences ee

Plan

La Recherche Oprationnelle e Applications Mthodologie e Outils Rfrences ee

N. Brauner

La Recherche Oprationnelle e

Applications

Mthodologie e

Outils

Rfrences ee

Recherche Oprationnelle ou Science de la Dcision e e


Dnitions e Cambridge Dictionary Operational research UK (US operations research) The systematic study of how best to solve problems in business and industry Wikipedia Operations research, operational research, or simply OR, is the use of mathematical models, statistics and algorithms to aid in decision-making Roadef Recherche Oprationnelle : approche scientique pour la rsolution e e de probl`mes de gestion de syst`mes complexes e e
N. Brauner 7

La Recherche Oprationnelle e

Applications

Mthodologie e

Outils

Rfrences ee

Recherche Oprationnelle e
Dnitions e Mthodes scientiques pour rsoudre des probl`mes e e e doptimisation lis aux organisations du monde rel e e Une discipline ` la croise des mathmatiques et de a e e linformatique
prolongement de lalgorithmique manipulant des structures plus labores : graphes, poly`dres... e e e domaine dapplication de la thorie de la complexit e e algorithmique

Une boite ` outils de mthodes, tant positives que ngatives, a e e pour aborder sainement et sereinement les probl`mes e doptimisation

N. Brauner

La Recherche Oprationnelle e

Applications

Mthodologie e

Outils

Rfrences ee

Plan

La Recherche Oprationnelle e Applications Mthodologie e Outils Rfrences ee

N. Brauner

La Recherche Oprationnelle e

Applications

Mthodologie e

Outils

Rfrences ee

Recherche Oprationnelle e
Voyageur de commerce (TSP) Un voyageur de commerce, bas ` Toulon, doit visiter ses ea clients ` travers la France. a Il souhaite eectuer la tourne la plus courte possible. e

N. Brauner

10

La Recherche Oprationnelle e

Applications

Mthodologie e

Outils

Rfrences ee

Recherche Oprationnelle e
Voyageur de commerce Instance : n villes avec une matrice de distances Solution : tourne visitant chaque ville et revenant ` Toulon e a

N. Brauner

11

La Recherche Oprationnelle e

Applications

Mthodologie e

Outils

Rfrences ee

Recherche Oprationnelle e
Algorithme Glouton pour le TSP

N. Brauner

12

La Recherche Oprationnelle e

Applications

Mthodologie e

Outils

Rfrences ee

Recherche Oprationnelle e
Applications Feuille de TD : Recherche oprationnelle, Introduction e Exercice 1 : Vente de tlphones portables ee Exercice 2 : Transport de lecteurs MP3

N. Brauner

13

La Recherche Oprationnelle e

Applications

Mthodologie e

Outils

Rfrences ee

Recherche Oprationnelle e
Transport graphe biparti orient avec pondration e e quantit dune marchandise aux sommets e cots de transport, distance sur les arcs u trouver le meilleur plan de distribution ai iaP
a a a
iA

PPij c P

min
PPja q bj

cij xij xij


jB

ai bj 0
N. Brauner 14

xij xij

La Recherche Oprationnelle e

Applications

Mthodologie e

Outils

Rfrences ee

Recherche Oprationnelle e
Applications Feuille de TD : Recherche oprationnelle, Introduction e Exercice 3 : Planication de projet

N. Brauner

15

La Recherche Oprationnelle e

Applications

Mthodologie e

Outils

Rfrences ee

Recherche Oprationnelle e
Applications Plus court chemin Quel est le trajet le plus court entre Grenoble et Nice en voiture ?

N. Brauner

16

La Recherche Oprationnelle e

Applications

Mthodologie e

Outils

Rfrences ee

Recherche Oprationnelle e
24h de RO 8h : optimisation de la rcolte et du dpt des dchets e e o e recyclables ... 15h : placement automatique des vhicules pour une e association de partage de voitures 16h : gestion des retards dans les transports publics pour minimiser limpact sur les passagers ...

http ://www.24hor.org/

N. Brauner

17

La Recherche Oprationnelle e

Applications

Mthodologie e

Outils

Rfrences ee

Recherche Oprationnelle e
Domaines dapplication Conception, conguration et exploitation de syst`mes techniques complexes e (rseaux de communication, syst`mes dinformation) e e gestion de la cha logistique ne (transports, production, stocks. . . ) gestion stratgique dinvestissements e et aussi sant, instruction publique, voirie, e ramassage et distribution de courrier, production et transport dnergie, e tlcommunications, banques, assurances. . . ee

N. Brauner

18

La Recherche Oprationnelle e

Applications

Mthodologie e

Outils

Rfrences ee

Recherche Oprationnelle e
Domaines dapplication Production : maximiser le prot selon disponibilit de la main e duvre, demande du march, capacit de production, prix de e e revient du matriau brut. . . e Transport : minimiser distance totale parcourue selon quantits de e matriaux ` transporter, capacit des transporteurs, points de e a e ravitaillement en carburant. . . grande importance dans le milieu industriel : production, transport, emploi du temps, nance. . .

N. Brauner

19

La Recherche Oprationnelle e

Applications

Mthodologie e

Outils

Rfrences ee

Plan

La Recherche Oprationnelle e Applications Mthodologie e Outils Rfrences ee

N. Brauner

20

La Recherche Oprationnelle e

Applications

Mthodologie e

Outils

Rfrences ee

Recherche Oprationnelle e
Face ` un probl`me pratique de dcision a e e Aspects mathmatiques e
contraintes, objectifs, simplications

Modlisation e
graphes, programmation linaire, PPC... e

Analyse des mod`les et rsolution e e


tude de complexit : que peut-on esprer pour le temps de e e e rsolution imparti ? e mise au point dalgorithmes

Implmentation et analyse des rsultats e e


valider par rapport ` la demande a itrer avec le demandeur si ncessaire e e

Dploiement des solutions e


Intgration logicielle e
N. Brauner 21

La Recherche Oprationnelle e

Applications

Mthodologie e

Outils

Rfrences ee

Plan

La Recherche Oprationnelle e Applications Mthodologie e Outils Rfrences ee

N. Brauner

22

La Recherche Oprationnelle e

Applications

Mthodologie e

Outils

Rfrences ee

Recherche Oprationnelle e
Programmation linaire e min le cot / max le prot u satisfaire la demande avec des ressources limites e quantits produites e 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

23

La Recherche Oprationnelle e

Applications

Mthodologie e

Outils

Rfrences ee

Recherche Oprationnelle e
Optimisation Combinatoire Trouver la meilleure solution parmi un nombre ni mais tr`s e grand de choix Un probl`me dOC se caractrise par : e e
La prsence de choix, ` faire parmi un ensemble ni e a dalternatives Une notion de cot, ou de gain, ou de perte u La ncessit de faire globalement les bons choix, de mani`re ` e e e a optimiser la valeur objective

exemples : emplois du temps. . . Combinatoire chiquier tronqu e e http ://mathsamodeler.ujf-grenoble.fr/LAVALISE/


N. Brauner 24

La Recherche Oprationnelle e

Applications

Mthodologie e

Outils

Rfrences ee

Recherche Oprationnelle e
Graphes
  sommet  $ arte $$ e I  
5

$ $$X
3

Valuation des artes = cots, temps, distance, capacits. . . e u e meilleur chemin de i ` j a meilleurs parcours
passant par chaque ville passant par chaque arte e

...
N. Brauner 25

La Recherche Oprationnelle e

Applications

Mthodologie e

Outils

Rfrences ee

Recherche Oprationnelle e
Autre Files dattente Stochastique Simulation ` A linterface de Informatique : algorithmique Mathmatiques : modlisation e e Economie : gestion, stratgie e

N. Brauner

26

La Recherche Oprationnelle e

Applications

Mthodologie e

Outils

Rfrences ee

Plan

La Recherche Oprationnelle e Applications Mthodologie e Outils Rfrences ee

N. Brauner

27

La Recherche Oprationnelle e

Applications

Mthodologie e

Outils

Rfrences ee

Bibliographie
de Werra, D., Liebling, T.-M., and Heche, J.-F. Recherche Oprationnelle pour Ingnieurs, Tome 1. e e Presses Polytechniques et Universitaires Romandes, 2003. Sakarovitch, M. Optimisation Combinatoire, Graphes et Programmation Linaire. e Hermann, Enseignement des sciences, Paris, 1984. Sakarovitch, M. Optimisation Combinatoire, Programmation Discr`te. e Hermann, Enseignement des sciences, Paris, 1984. Wolsey, L. A. Integer Programming. Wiley-Interscience, 1998.
N. Brauner 28

La Recherche Oprationnelle e

Applications

Mthodologie e

Outils

Rfrences ee

Webographie
Cours La RO sur wikipedia http ://fr.wikipedia.org/ Poly de cours http ://www.g-scop.inpg.fr/~braunern/ Complments au cours e http ://www.g-scop.inpg.fr/~rapinec/ Vie de la RO en France Socit franaise de RO ee c http ://www.roadef.org Groupe de Recherche en RO du CNRS http ://www-poleia.lip6.fr/~fouilhoux/gdrro/ Sminaire de RO ` Grenoble e a http ://www.g-scop.inpg.fr/~moncelj/seminaire/
N. Brauner 29

La Recherche Oprationnelle e

Applications

Mthodologie e

Outils

Rfrences ee

Webographie
Collection de ressources pour la RO http ://www2.informs.org/Resources/ http ://www.ensta.fr/~diam/ro/ Logiciels pour la RO http ://www.coin-or.org/resources.html http ://www.wior.uni-karlsruhe.de/bibliothek/ Blogs sur la RO http ://blog.vcu.edu/lamclay/ http ://mat.tepper.cmu.edu/blog/ Probl`mes diciles e http ://www.nada.kth.se/~viggo/problemlist/
N. Brauner 30

La Recherche Oprationnelle e

Applications

Mthodologie e

Outils

Rfrences ee

Entreprises franaises c
Des entreprises franaises spcialises en RO c e e EURODECISION Conseil en optimisation des ressources et planication de la production, outils daide ` la dcision a e ILOG Optimization tools and engines, Visualization software components, Supply chain applications ARTELYS Solutions en optimisation Des entreprises grenobloises qui font de la RO Opti-time Equitime Alma
N. Brauner 31

La Recherche Oprationnelle e

Applications

Mthodologie e

Outils

Rfrences ee

Entreprises franaises c
Des entreprises franaises qui ont un ple R&D en RO c o Airfrance SNCF EDF/GDF France Telecom Bouygues Bouygues Telecom Amadeus

N. Brauner

32

La Recherche Oprationnelle e

Applications

Mthodologie e

Outils

Rfrences ee

Recherche Oprationnelle e
En conclusion faire le mieux
cot min, meilleur prot, plus courte distance, le plus rapide. . . u

avec les ressources disponibles


temps machine, postes de travail, mmoire, ressource homme, e mati`re premi`re, camions. . . e e

N. Brauner

33

Programmation par contraintes

Programmation par contrainte

Modlisation e

Rsolution e

Plan

Programmation par contrainte

Modlisation e

Rsolution e

N. Brauner

35

Programmation par contrainte

Modlisation e

Rsolution e

Sudoku

Prcis de Sudoku, N. Jussien e

N. Brauner

36

Programmation par contrainte

Modlisation e

Rsolution e

Sudoku et PPC
Raisonnement par limination e
on ne cherche pas directement une valeur pour les variables mais plutt les valeurs qui peuvent tre prises par une o e variable : rduction du domaine e

Raisonnement local : contraintes considres indpendamment ee e


vrier choix cohrents : tests satisabilit e e e liminer valeurs impossibles : ltrage e

Transmission des dductions aux autres rgions e e


les contraintes communiquent et interagissent par lintermdiaire des variables, lorsque le domaine courant dune e variable change, toutes les contraintes dans lesquelles elles apparaissent sont rveilles : propagation e e

= principes au cur de la programmation par contraintes


N. Brauner 37

Programmation par contrainte

Modlisation e

Rsolution e

On se trouve o` ? u
Un probl`me, une solution : la solution est-elle une solution e du probl`me ? e
simulation, vrication e

Un probl`me : trouver une solution du probl`me e e


programmation par contrainte (CSP)

Un probl`me : trouver la meilleure solution du probl`me e e


programmation linaire e

N. Brauner

38

Programmation par contrainte

Modlisation e

Rsolution e

Un premier exemple
Domaine des variables x, y {0, 1 . . . 7} Contraintes x y =6 x +y =5 x >y

N. Brauner

39

Programmation par contrainte

Modlisation e

Rsolution e

La PPC, quest-ce que cest ?


Des ides en vrac e Outil informatique pour rsoudre des probl`mes combinatoires e e Minimise ltape de conception : modlisation facile, langage e e proche des concepts des utilisateurs Contraindre = maintenir dans les limites permet dliminer rapidement des solutions non ralisables e e Bien sparer modlisation et rsolution e e e Notion naturelle de contraintes :
aecter stages ` tudiants ae ranger des objets dans une boite planier le trac arien e tablir un menu quilibr et apptissant e e e e

N. Brauner

40

Programmation par contrainte

Modlisation e

Rsolution e

La PPC, quest-ce que cest ?


Dnition plus formelle e CSP : ensemble de probl`mes dnis par des contraintes et e e consistant ` chercher une solution les respectant a Rsolution dun CSP combinatoire : envisager tr`s grand e e nombre de combinaisons avant den trouver une qui satisfait toutes les contraintes Trop long introduire des raisonnements ou heuristiques pour rduire la combinatoire et orienter la recherche e Solveur de contraintes : on dcrit les contraintes et le solveur e prend en charge automatiquement la rsolution e inspir cours de Christine Solnon e http ://bat710.univ-lyon1.fr/~csolnon/

N. Brauner

41

Programmation par contrainte

Modlisation e

Rsolution e

Application de la PPC
inspir de Gilles Pesant e Modlisation de gestion de projet e Puzzle combinatoire Conception de matriel informatique e
vrication de circuits, connexions des couches de circuits e moins ecace que le code ddi, mais plus exible e e

Placement dobjets
placement des containers dans un port remplissage des containers

N. Brauner

42

Programmation par contrainte

Modlisation e

Rsolution e

Application de la PPC
Probl`mes de dcoupage e e
Minimiser les pertes lors de la dcoupe du papier, du verre, du e bois, du mtal, etc. e La performance dpend du contexte et de la dicult des e e contraintes Papier : facile donc la programmation linaire fonctionne bien e Pi`ces mtalliques : plus dicile donc utiliser la PPC e e Cuir et tissus : trop dicile seules les heuristiques fonctionnent

http://www.alma.fr

N. Brauner

43

Programmation par contrainte

Modlisation e

Rsolution e

Application de la PPC
Allocation despace
Portes pour les avions Quais pour les trains ou les bateaux

Allocation de frquences e
Trouver des frquences radio pour les cellulaires, les e communications radios, larme, etc. e

Ordonnancement de la production
Planier des tches sur des machines dans une usine a Plus important succ`s de la PPC e Librairies ddis ` lordonnancement (ex. ILOG Scheduler) e e a

Conception dhoraires acadmiques e


Planier lhoraire des cours ou des examens, en tenant compte des direntes ressources (tudiants, professeurs, locaux) e e

N. Brauner

44

Programmation par contrainte

Modlisation e

Rsolution e

Application de la PPC
Tourne de vhicules e e
Confection de routes sujet ` beaucoup de contraintes. a Librairies spcialises, contraintes ddies e e e e

Construction dhoraires de personnel


Aecter les gens ` des tches prcises a a e Sant, commerce de dtail, usine, etc. e e Permet de modliser les contraintes complexes e

http://www.equitime.org/

N. Brauner

45

Programmation par contrainte

Modlisation e

Rsolution e

Plan

Programmation par contrainte

Modlisation e

Rsolution e

N. Brauner

46

Programmation par contrainte

Modlisation e

Rsolution e

La programmation par contraintes


Objectif Trouver une solution ralisable e Qui respecte des contraintes faciles ` vrier a e
Formules mathmatiques simples, tableaux de valeurs possibles e

Avec des ensembles de valeurs possibles pour les variables de dcision e

N. Brauner

47

Programmation par contrainte

Modlisation e

Rsolution e

Domaines
Dnition e X1 , X2 . . . Xn les variables de dcision e Domaine La variable Xi doit prendre ses valeurs dans le domaine Di discret ni ou inni

N. Brauner

48

Programmation par contrainte

Modlisation e

Rsolution e

Domaines
Exercice Sont-ce des domaines ? {1, 2, 3, 4} Lensemble des entiers naturels. Lensemble des rels e Les entiers naturels impairs Lintervalle [1, 1] Les points ` coordonnes enti`res du plan a e e

N. Brauner

49

Programmation par contrainte

Modlisation e

Rsolution e

Contraintes
Cest quoi ? Variables Domaines Contraintes

Une contrainte restreint les valeurs que lon peut aecter simultanment ` des variables e a Exemples : 2x + 3y = 12 3x 2 =3 AB C x = 3y (ABC ) forme un triangle isoc`le e x, y , z distincts deux ` deux a

N. Brauner

50

Programmation par contrainte

Modlisation e

Rsolution e

Contraintes
Dclaration dune contrainte e

2 types de dclaration : e extension : on num`re les valeurs admises e e


(x = 1 et y = 2) ou (x = 2 et y = 4) ou (x = 3 et y = 0)

intension : on utilise les signes mathmatiques connus e


x <y

N. Brauner

51

Programmation par contrainte

Modlisation e

Rsolution e

Contraintes
Caractristiques des contraintes e Relationnelle : non dirige comme une fonction qui dnit e e la valeur dune variable en fonction des autres variables x 2y = z permet
de dterminer z si x et y sont connues e mais aussi x si y et z sont connues et y si x et z sont connues

dclarative : spcie la relation entre les variables, sans donner e e de procdure pour assurer/vrier cette relation e e x 2y = z, on ne soccupe pas de donner un algorithme permettant de rsoudre cette quation e e ordre des contraintes non signicatif
N. Brauner 52

Programmation par contrainte

Modlisation e

Rsolution e

Contraintes
Arit dune contrainte : le nombre de variables dans la contrainte e unaire : arit = 1 e x x = 4 ou est-un-triangle(y ) binaire : arit = 2 e x = y ou A B = A ternaire : arit = 3 e x + y < 3 z 4 ou (non x) ou y ou z = vrai n-aire : arit = n e Si n est le nombre de variables : contrainte globale toutesDirentes(E ), e o` E est un ensemble de variables u
N. Brauner 53

Programmation par contrainte

Modlisation e

Rsolution e

Contraintes
Exemples supplmentaires e Contraintes logiques
Si x = 4 alors y = 5 x = y ou x = 2y

Contraintes globales
Toutes les variables sont direntes e

Mta-contraintes e
La valeur 5 est utilise exactement 3 fois e

N. Brauner

54

Programmation par contrainte

Modlisation e

Rsolution e

Probl`me de satisfaction de contraintes e


(X , D, C ) tel que X = {X1 , X2 , . . . , Xn } lensemble des variables D = {D1 , D2 , . . . , Dn } o` Di est le domaine de Xi u C = {C1 , C2 , . . . , Cm } lensemble des contraintes Exemple X = {a, b, c, d} D(a) = D(b) = D(c) = D(d) = {0, 1} C = {a = b, c = d, a + c < b}

N. Brauner

55

Programmation par contrainte

Modlisation e

Rsolution e

Solution dun CSP


Une aectation est le fait dinstancier des variables. A = {(X1 , V1 ), (X3 , V3 ), (X4 , V4 )} associe la valeur V1 de D1 ` la variable X1 ... a Une aectation est : partielle ou totale consistante ou inconsistante Une solution est une aectation totale consistante

N. Brauner

56

Programmation par contrainte

Modlisation e

Rsolution e

Solution dun CSP


Probl`me e X = {a, b, c, d} D(a) = D(b) = D(c) = D(d) = {0, 1} C = {a = b, c = d, a + c < b}

A1 = {(a, 1), (b, 0), (c, 0), (d, 0)} A2 = {(a, 0), (b, 0)} A3 = {(a, 1), (b, 0)} A4 = {(a, 0), (b, 1), (c, 0), (d, 1)}

N. Brauner

57

Programmation par contrainte

Modlisation e

Rsolution e

Le jeu du : CSP, pas CSP !


Connaissant les pi`ces de mon porte-monnaie, puis-je rendre e exactement 8 euros et 57 centimes ? Connaissant les pi`ces de mon porte-monnaie, quelle est la e meilleure faon de rendre 8 euros et 57 centimes ? c Est-il possible de colorier une carte avec 5 couleurs sans fronti`re monochrome ? e Sur un cercle, trouver un point ` distance 2 dune droite. a

N. Brauner

58

Programmation par contrainte

Modlisation e

Rsolution e

CSP
CSP surcontraint : na pas de solution trouver une aectation totale qui maximise le nombre de contraintes satisfaites = max-CSP aecter un poids ` chaque contrainte (proportionnel ` a a limportance de cette contrainte) et chercher une aectation totale qui minimise la somme des poids des contraintes violes e = CSP valu (VCSP) e CSP sous-contraint : admet beaucoup de solutions direntes, e prfrences entre les direntes solutions (fonction qui associe ee e une valeur numrique ` chaque solution) et trouver une e a solution du CSP qui maximise cette fonction = CSOP (Constraint Satisfaction Optimisation Problem)

N. Brauner

59

Programmation par contrainte

Modlisation e

Rsolution e

Plan

Programmation par contrainte

Modlisation e

Rsolution e

N. Brauner

60

Programmation par contrainte

Modlisation e

Rsolution e

Un constat

Un probl`me est rarement donn sous la forme dun CSP e e

N. Brauner

61

Programmation par contrainte

Modlisation e

Rsolution e

Le probl`me des reines e


Jeu : placer 4 reines sur un chiquier 4 4 sans quelles ne se e menacent Modlisation e variables L1 , L2 , L3 , L4 et C1 , C2 , C3 , C4 domaines Li {1, 2, 3, 4} et Ci {1, 2, 3, 4} contraintes lignes, colonnes et diagonales direntes. e

N. Brauner

62

Programmation par contrainte

Modlisation e

Rsolution e

Modlisation e
Attention Il ny a pas quune modlisation possible ! e Modlisation e variables L1 , L2 , L3 , L4 domaines Li {1, 2, 3, 4} contraintes
i = j, Li = Lj i = j, Li + i = Lj + j Li i = Lj j

N. Brauner

63

Programmation par contrainte

Modlisation e

Rsolution e

Modlisation e
Autre modlisation pour le probl`me des reines ? e e

N. Brauner

64

Programmation par contrainte

Modlisation e

Rsolution e

Modlisation e
Quelle est la meilleure modlisation ? e
1 2 3

Celle qui modlise le mieux la ralit du probl`me e e e e Celle qui est la plus facile ` trouver a Celle qui permettra de rsoudre le probl`me le plus e e ecacement

N. Brauner

65

Programmation par contrainte

Modlisation e

Rsolution e

Exercice : le retour de monnaie


On sintresse ` un distributeur automatique de boissons. e a Lutilisateur ins`re des pi`ces de monnaie pour un total de T e e centimes dEuros, puis il slectionne une boisson, dont le prix est e de P centimes dEuros (T et P tant des multiples de 10). Il e sagit alors de calculer la monnaie ` rendre, sachant que le a distributeur a en rserve E2 pi`ces de 2= E1 pi`ces de 1= C50 e e C, e C, pi`ces de 50 centimes, C20 pi`ces de 20 centimes et C10 pi`ces e e e de 10 centimes. Modlisez ce probl`me sous la forme dun CSP. e e

N. Brauner

66

Programmation par contrainte

Modlisation e

Rsolution e

Correction : le retour de monnaie

N. Brauner

67

Programmation par contrainte

Modlisation e

Rsolution e

Exercice : Send More Money


On consid`re laddition suivante : e + = S M O E O N N R E D E Y

o` chaque lettre reprsente un chire dirent (compris entre 0 u e e et 9). On souhaite conna la valeur de chaque lettre, sachant tre que la premi`re lettre de chaque mot reprsente un chire e e dirent de 0. e Modlisez ce probl`me sous la forme dun CSP. e e

N. Brauner

68

Programmation par contrainte

Modlisation e

Rsolution e

Correction : Send More Money

N. Brauner

69

Programmation par contrainte

Modlisation e

Rsolution e

Plan

Programmation par contrainte

Modlisation e

Rsolution e

N. Brauner

70

Programmation par contrainte

Modlisation e

Rsolution e

Rsolution na e ve
Enumration e On gn`re toutes les aectations totales possibles e e On vrie si elles sont consistantes e si on en trouve une consistante, cest gagn e

Avantage : tr`s facile ` mettre en uvre e a Inconvnient : tr`s gourmand en ressource temps e e

N. Brauner

71

Programmation par contrainte

Modlisation e

Rsolution e

Rsolution na e ve
Un probl`me ` n variables qui peuvent prendre 2 valeurs. e a 109 aectations traites par seconde. e
n 10 20 30 40 50 60 70 nb daectations 103 106 109 1012 1015 1018 1021 temps

... do` lintrt de bien choisir la modlisation u ee e

N. Brauner

72

Programmation par contrainte

Modlisation e

Rsolution e

Les rem`des e
Sarrter quand une aectation partielle est inconsistante e
backtrack

Restreindre les domaines des variables durant lexcution e


propagation de contraintes

Utiliser des heuristiques Utiliser nos connaissances sur le probl`me tudi e e e ...

N. Brauner

73

Programmation par contrainte

Modlisation e

Rsolution e

Backtrack
Principe : On parcourt larbre des aectations en profondeur Lorsquune aectation partielle est inconsistante, on nexplore pas le sous-arbre correspondant

N. Brauner

74

Programmation par contrainte

Modlisation e

Rsolution e

Backtrack : jeu de dames


Exemple dexcution e

N. Brauner

75

Programmation par contrainte

Modlisation e

Rsolution e

Backtrack
Backtrack  Moins daectations considres ee  Toutes les contraintes sont testes ` chaque aectation e a mme partielle e  Facile ` mettre en uvre a Mthode na e ve  Toutes les aectations sont considres ee  On ne teste les contraintes que sur les aectations totales  Tr`s facile ` mettre en e a uvre

Importance de lordre des variables

N. Brauner

76

Programmation par contrainte

Modlisation e

Rsolution e

Propagation des contraintes


Principe : On restreint le domaine dune 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 ` 4 x 10 a

N. Brauner

77

Programmation par contrainte

Modlisation e

Rsolution e

Propagation des contraintes


Ide : ` partir dun CSP, on cherche un CSP quivalent avec des e a e domaines plus petits On propage : Quand un domaine est rduit e Quand une des bornes du domaine est change e Quand un domaine est un singleton On propage : Une fois : nud-consistance Deux fois : arc-consistance Ou plus...

N. Brauner

78

Programmation par contrainte

Modlisation e

Rsolution e

Propagation des contraintes


Nud-consistance Formellement, un CSP (X , D, C ) est consistant de nud si pour toute variable Xi de X , et pour toute valeur v de D(Xi ), laectation partielle (Xi , v ) satisfait toutes les contraintes unaires de C . Algorithmiquement, pour chaque variable Xi non aecte dans A, e on enl`ve de D(Xi ) toute valeur v telle que laectation e A {(Xi , v )} est inconsistante.

N. Brauner

79

Programmation par contrainte

Modlisation e

Rsolution e

Propagation des contraintes


Nud-consistance

N. Brauner

80

Programmation par contrainte

Modlisation e

Rsolution e

Propagation des contraintes


Arc-consistance Formellement, un CSP (X , D, C ) est consistant darc si pour tout couple de variables (Xi , Xj ) de X , et pour toute valeur vi appartenant ` D(Xi ), il existe une valeur vj appartenant ` D(Xj ) a a telle que laectation partielle {(Xi , vi ), (Xj , vj )} satisfasse toutes les contraintes binaires de C . Algorithmiquement, pour chaque variable Xi non aecte dans A, e on enl`ve de D(Xi ) toute valeur v telle quil existe une variable Xj e non aecte pour laquelle, pour toute valeur w de D(Xj ), e laectation A {(Xi , v ), (Xj , w )} soit inconsistante.

N. Brauner

81

Programmation par contrainte

Modlisation e

Rsolution e

Propagation des contraintes


Arc-consistance : exemple dexcution e

N. Brauner

82

Programmation par contrainte

Modlisation e

Rsolution e

Propagation de contraintes
Nud-consistance :  Moins daectations considres ee  Toutes les contraintes sont testes ` chaque aectation e a mme partielle e  Facile ` mettre en uvre a Arc-consistance :  Beaucoup moins daectations considres ee  Etablir larc-consistance peut prendre beaucoup de temps selon les contraintes.  Moins facile ` mettre en a uvre

N. Brauner

83

Programmation par contrainte

Modlisation e

Rsolution e

Syst`mes e
Syst`mes bass sur la programmation logique e e ECLiPSE Prolog GNU Prolog Syst`mes bass sur des librairies e e ILOG soveur (C++) Choco (Java) Facile (Ocaml)

N. Brauner

84

Exercice : Aectation de stock


N entrepts (cot douverture ouvre(i) ) o u M boutiques cots dacheminement de chaque entrept ` chaque boutique u o a transfert(i, j) capacit : chaque entrept ne peut fournir quun certain e o nombre de boutiques cap(i) Question : avec un budget de mille euros, puis-je subvenir aux besoins de mes boutiques ?

N. Brauner

85

Correction : Aectation de stock

N. Brauner

86

Programmation linaire e

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Plan

Introduction ` la programmation linaire a e

10

Interprtation gomtrique e e e

11

Bases et points extrmes e

12

Lalgorithme du simplexe

N. Brauner

88

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Plan

Introduction ` la programmation linaire a e

10

Interprtation gomtrique e e e

11

Bases et points extrmes e

12

Lalgorithme du simplexe

N. Brauner

89

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Programmation linaire e
Cadre de la PL Programmation linaire e nombre ni de variables relles, contraintes linaires, objectif e e linaire e Variables x1 , x2 . . . xn relles e Contrainte gnrique (contrainte i) : e e
n

aij xj bi
j=1

Fonction-objectif gnrique (` maximiser / minimiser) : e e a


n

f (x1 , x2 . . . xn ) =
j=1

cj xj
N. Brauner 90

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Programmation linaire e
Exemple : culture de courgettes et navets Contraintes concernant les quantits dengrais et danti-parasites e 8 engrais A disponible 2 /m2 ncessaires pour courgettes, 1 /m2 pour navets e 7 engrais B disponible 1 /m2 ncessaires pour courgettes, 2 /m2 pour navets e 3 anti-parasites disponible 1 /m2 ncessaires pour navets e Objectif : produire le maximum (en poids) de lgumes, sachant e que rendements = 4kg /m2 courgettes, 5kg /m2 navets

N. Brauner

91

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Programmation linaire e
Exemple : culture de courgettes et navets Variables de dcision e 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 92

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Programmation linaire e
Intrt de la PL ee Probl`me gnral doptimisation sous contraintes e e e AUCUNE mthode GENERALE de rsolution ! ! e e Probl`me linaire quelconque e e existence de mthodes de rsolution gnrales et ecaces e e e e Ces mthodes sont ecaces en thorie et en pratique e e existence de nombreux logiciels de rsolution : e Excel, CPLEX, Mathematica, LP-Solve. . . Cadre restrictif variables relles e contraintes linaires e objectif linaire e
N. Brauner 93

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Programmation linaire e
Reprsentation in extenso e max 4xc + 5xn 2xc + xn 8 (engrais A) xc + 2xn 7 (engrais B) xn 3 (anti-parasites) xc 0 et xn 0 Reprsentation matricielle e max (4 5) xc xn xc xn

2 1 1 2 0 1 xc 0

8 7 3 xn 0
N. Brauner 94

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Programmation linaire e
Reprsentation in extenso e max z =
j cj xj

s.c.

aij xj

b i = 0

i = 1, 2 . . . m

xj

j = 1, 2 . . . n

N. Brauner

95

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Programmation linaire e
second membre b = matrice de format a11 a12 a21 a22 A= am1 am2 b1 b2 . . . bm mn a1n a2n . . . amn ... ... .. . n var. de dcision X = e

x1 x2 . . . xn

Reprsentation matricielle e max z = cx b = 0


N. Brauner 96

s.c.

Ax

cot (ou prot) c = (c1 , c2 . . . cn ) u x

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Programmation linaire e
Vocabulaire xi variable de dcision du probl`me e e x = (x1 , . . . , xn ) solution ralisable (admissible) e ssi elle satisfait toutes les contraintes ensemble des solutions ralisables = domaine ou rgion e e admissible x = (x1 , . . . , xn ) solution optimale ssi elle est ralisable et optimise la fonction-objectif e contraintes ingalit ou galit linaire e e e e e
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 conomique) linaire e e


max / min c1 x1 + c2 x2 . . . + cn xn
N. Brauner 97

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Programmation linaire e
Applications Feuille de TD : Programmation linaire, Modlisation e e Exercice 1 : Production de vins Exercice 2 : Fabrication dhuile dolives Exercice 3 : Compagnie arienne e Exercice 4 : Publicit e

N. Brauner

98

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Programmation linaire e
Forme canonique dun PL maximisation toutes les variables sont non ngatives e toutes les contraintes sont des inquations du type e max z = s.c.
j j cj xj

aij xj xj

bi 0

i = 1, 2 . . . m j = 1, 2 . . . n

forme matricielle max z = cx s.c. Ax x

b 0
N. Brauner 99

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Programmation linaire e
Forme standard dun PL maximisation toutes les variables sont non ngatives e toutes les contraintes sont des quations e max z = s.c.
j j cj xj

aij xj xj

= bi 0

i = 1, 2 . . . m j = 1, 2 . . . n

forme matricielle max z = cx s.c. Ax x

= b 0
N. Brauner 100

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Programmation linaire e
Passage entre les formes quation inquation e e ax = b ax b ax b

max min max f (x) = min f (x) inquation quation : ajouter une variable dcart e e e ax b ax b ax + s = b, ax s = b, s0 s0

variable non contrainte variables positives x 0 x = x+ x x +, x 0


N. Brauner 101

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Programmation linaire e
Passage entre les formes Feuille de TD : Programmation linaire, Rsolution e e Exercice 1

N. Brauner

102

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Programmation linaire e
Linariser un probl`me non linaire e e e ei : expression linaire des variables de dcision e e obj : min max{e1 , e2 . . . en } min y y ei i = 1, 2 . . . n

obj : max min{e1 , e2 . . . en } max y y ei obj : min |e1 | |e| = max(e, e) min y y e1 y e1 min e + + e e1 = e + e + e ,e 0
N. Brauner 103

i = 1, 2 . . . n

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Programmation linaire e
Linariser un probl`me non linaire e e e Feuille de TD : Programmation linaire, Rsolution e e Exercice 2

N. Brauner

104

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Programmation linaire e
Un peu dhistoire annes 30-40 : Kantorovitch, conomiste sovitique e e e mod`les linaires pour la planication et loptimisation de e e la production annes 40-50 : Dantzig, mathmaticien amricain e e e algorithme du simplexe application historique
Oprations Vittles et Plainfare pour ravitaillement de la trizone e pendant le blocus de Berlin par pont arien (23 juin 1948 12 e mai 1949) simplexe excut ` la main (des milliers de variables), jusqu` e ea a 12 000 tonnes de matriel par jour ! e

1975 : prix Nobel conomie Kantorovitch e XXI`me si`cle : logiciels de PL disponibles partout, utilisation e e de la PL dans tous les domaines industriels...
N. Brauner 105

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Plan

Introduction ` la programmation linaire a e

10

Interprtation gomtrique e e e

11

Bases et points extrmes e

12

Lalgorithme du simplexe

N. Brauner

106

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Interprtation gomtrique e e e
Exemple : culture de courgettes et navets Variables de dcision e 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 107

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Interprtation gomtrique e e e
Interprter les contraintes e 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 ralisables = intersection de ces e demi-plans : poly`dre e

x
N. Brauner 108

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Interprtation gomtrique e e e
Optimiser lobjectif Les lignes de niveau {4x + 5y = constante} sont des droites parall`les e

4x 5y=10 4x 5y=18 4x 5y=22 4x 5y=25

x
N. Brauner 109

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Interprtation gomtrique e e e
Gomtrie dun PL e e Lensemble des solutions ralisables est toujours e un poly`dre (intersection de demi-espaces) e

Les lignes de niveau {f = constante} de la fonction-objectif f sont des hyperplans anes (n = 2 droite, n = 3 plan...)

N. Brauner

110

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Interprtation gomtrique e e e
Gomtrie dun PL e e

Optimum atteint au bord Loptimum de la fonction-objectif, sil existe, est atteint en (au moins) un sommet du poly`dre. e Justication mathmatique : e les drives partielles de f (x) = c.x ne sannulent jamais, e e et le domaine {x | n aij xj bi , i = 1, . . . , m} est compact j=1 loptimum est atteint au bord...

N. Brauner

111

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Programmation linaire e
Solutions dun PL La rgion admissible peut tre e e vide
nb solutions optimales : 0

non vide, borne e


nb solutions optimales : 1 ou

non vide, non borne e


nb solutions optimales : 0 ou 1 ou

Proposer des exemples de PL pour chacun des cas Feuille de TD : Programmation linaire, Rsolution e e Exercice 3
N. Brauner 112

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Plan

Introduction ` la programmation linaire a e

10

Interprtation gomtrique e e e

11

Bases et points extrmes e

12

Lalgorithme du simplexe

N. Brauner

120

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Bases et points extrmes e


Rappels max s.c. z Ax x = cx b 0 A matrice m n x = (x1 x2 . . . xn ) b = (b1 b2 . . . bm ) c = (c1 c2 . . . cn )

Les contraintes dnissent un poly`dre e e La solution optimale est un sommet du poly`dre e Comment numrer les sommets dun poly`dre ? e e e

N. Brauner

121

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Bases et points extrmes e


Passage ` la forme standard a Forme standard On peut rajouter des variables dcart : e
n n

aij xj bi
j=1 j=1

aij xj + ei = bi , ei 0

PL standard : max z(x) = c.x s.c Ax = b x 0 On travaille dans un espace de dimension plus grande, mais toutes les contraintes sont des galits. e e Manipulations algbriques plus aises e e
N. Brauner 122

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Bases et points extrmes e


Passage ` la forme standard a max z = 4x + 5y s.c. 2x + y 8 x + 2y 7 y 3 x, y 0 max z = 4x + 5y s.c. 2x + y + e1 = 8 x + 2y + e2 = 7 y + e3 = 3 x, y , e1 , e2 , e3 0 9 points intressants e (intersection de contraintes) 5 points admissibles numration de ces 9 points e e comme solution de la forme standard (solutions de base)
N. Brauner 123

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Bases et points extrmes e


s.c. 2x x x, y 0 8 3.5 3 0 0 0 2 3 3 + y + 2y y y, e1 8 0 4.5 5 0 -6 0 0 3 + e1 + e1 , e2 e3 7 3 -9 -5 0 -0.5 1 0 3 3 0 3 0 0 1 -1.5 0 0 0 = 8 = 7 + e3 = 3 e2 , e3 0 sol de base admiss.                     e2

x 0 0 0 0 4 7 3 2.5 1

pt extrme e (0,0)

(0,3) (4,0)

(3,2) (1,3)
124

{points extrmes} {solutions de base admissibles}N. Brauner e

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Bases et points extrmes e


Syst`me linaire Ax=b e e A format m n, rang A = m n Base de A : sous-matrice B(m m) inversible de A A = (B, N) (B, N) xB xN =b ou BxB + NxN = b

xB = B 1 b B 1 NxN

Solution de base associe ` B : e a


xN = 0 variables hors base xB = B 1 b variables de base

N. Brauner

125

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Bases et points extrmes e


Base et solution de base 2x + y + e1 = 8 x + 2y + e2 = 7 y + e3 = 3 x, y , e1 , e2 , e3 0 Base initiale ? {e1 , e2 , 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 , e2 , e3 = variables de base, x, y = variables hors base

N. Brauner

126

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Bases et points extrmes e


Base e1 e2 e3 et solution de base = 8 2x y = 7 x 2y =3y

on met les variables hors base ` 0 a on en dduit les valeur des variables de base e e1 = 8 2x y = 8 e2 = 7 x 2y = 7 x =y =0 e3 = 3 y = 3

N. Brauner

127

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Bases et points extrmes e


Ax = b, x 0

(xB , 0) associe ` B est une solution de base admissible si e a xB 0 {points extrmes du poly`dre} {solutions de base e e admissibles du syst`me linaire correspondant} e e
m nombre de points extrmes Cn = e n! m!(nm)!

solution de base dgnre : certaines variables de base sont e e ee nulles si A est inversible : solution de base unique

N. Brauner

128

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Bases et points extrmes e


Base voisine et pivotage Bases voisines Deux sommets voisins correspondent ` deux bases B et B telles a quon remplace une variable de B pour obtenir B passer ` un sommet voisin = changer de base (base voisine) a principe du pivotage

N. Brauner

129

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Bases et points extrmes e


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.5 e3 = 3 y 0 y 3 Bilan : ymax = 3, pour y = ymax on a e1 = 5 2x, e2 = 1 x, et e3 = 0 candidat pour une nouvelle base : {e1 , e2 , e3 } {y } \ {e3 } = {e1 , e2 , y } (x, y , e1 , e2 , e3 ) = (0, 3, 5, 1, 0)

N. Brauner

130

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Plan

Introduction ` la programmation linaire a e

10

Interprtation gomtrique e e e

11

Bases et points extrmes e

12

Lalgorithme du simplexe

N. Brauner

131

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Lalgorithme du simplexe
Vers un algorithme de rsolution e Mthode de rsolution na e e ve : numrer tous les sommets, e e calculer f sur ces points, prendre le sommet pour lequel f est optimis : e fonctionne : nombre ni de sommets limitation : ce nombre peut tre tr`s grand en gnral... e e e e Lalgorithme du simplexe (G. B. Dantzig 1947) Algorithme itratif permettant de rsoudre un probl`me de programmation e e e linaire. e

N. Brauner

132

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Lalgorithme du simplexe
Principe damlioration locale e ` A partir dun sommet, chercher un sommet voisin qui amliore e lobjectif. Principe damlioration locale (maximisation) : e Soit x0 sommet non optimum. Alors il existe x, un sommet voisin de x0 , tel que f (x) > f (x0 ). Mthode de rsolution : on part dun sommet x0 quelconque, on e e passe ` un sommet voisin pour lequel f augmente, et ainsi de suite. a Remarque : on passe dun probl`me continu (variables relles) ` e e a un probl`me discret (nombre ni de sommets)... e

N. Brauner

133

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Lalgorithme du simplexe
Illustration 2D : courgettes et navets x0 = (0, 0), z = 0 x = (0, 3), z = 15 x0 = (0, 3), z = 15 x = (1, 3), z = 19 x0 = (1, 3), z = 19 x = (3, 2), z = 22 z = 4x + 5y

x =3,2 , z =22

x
plus damlioration locale possible optimum e
N. Brauner 134

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Lalgorithme du simplexe
Illustration concr`te e Standardisation : Maximiser z = 4x + 5y 2x + y 8 x + 2y 7 s.c. y 3 x, y 0 Maximiser z = 4x + 5y 2x + y + e1 = 8 x + 2y + e2 = 7 s.c. y + e3 = 3 x, y , e1 , e2 , e3 0

Base initiale ? {e1 , e2 , 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 , e2 , e3 = variables de base, x, y = variables hors base
N. Brauner 135

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Lalgorithme du simplexe
Solution de base associe e on met les variables hors base ` 0 a on en dduit : e valeur des variables de base valeur de z e1 = 8 2x y = 8 e2 = 7 x 2y = 7 et z = 4x + 5y = 0 ici : x = y = 0 e3 = 3 y = 3

N. Brauner

136

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Lalgorithme 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.5 e3 = 3 y 0 y 3 Bilan : ymax = 3, pour y = ymax on a e1 = 5 x, e2 = 1 x, et e3 = 0 candidat pour une nouvelle base : {e1 , e2 , e3 } {y } \ {e3 } = {e1 , e2 , y }

N. Brauner

137

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Lalgorithme du simplexe
Nouvelle base {e1 , e2 , 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 associe e e1 = 5 2x + e3 = 5 e2 = 1 x + 2e3 = 1 x = e3 = 0 y = 3 e3 = 3

et

z = 15

N. Brauner

138

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Lalgorithme du simplexe
Itration e z = 15 + 4x 5e3 peut encore augmenter si x entre dans la base Si x entre, qui sort ? Valeur max de x : e1 = 5 2x + e3 0 x 2.5 e2 = 1 x + 2e3 0 x 1 y = 3 e3 0 aucune contrainte sur x Bilan : xmax = 1 et e2 sort. Nouvelle base {e1 , y , x} e1 = 3 + 2e2 3e3 x = 1 e2 + 2e3 y = 3 e3 z = 19 4e2 + 3e3

N. Brauner

139

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Lalgorithme du simplexe
Itration (suite) e z = 19 4e2 + 3e3 peut encore augmenter si e3 entre dans la base Si e3 entre, 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 , y , x} : e3 = 1 + 2/3e2 1/3e1 x = 3 + 1/3e2 2/3e1 y = 2 2/3e2 + 1/3e1 z = 22 2e2 e1
N. Brauner 140

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Lalgorithme du simplexe
Terminaison On a z = 22 2e2 e1 , donc z 22 Or la solution de base x = 3, y = 2, e3 = 1 donne z = 22 optimum La condition de terminaison concerne les coecients de z exprime e avec les variables hors base.

N. Brauner

141

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Lalgorithme du simplexe
max z = 20x1 + 10x2 s.c. x1 + 2x2 120 x1 + x2 100 x1 70 x2 50 x1 , x2 0 forme standard max z s.c. z 20x1 10x2 x1 + 2x2 + s1 x1 + x2 + s2 x1 + s3 x2 + s4 =0 = 120 = 100 = 70 = 50
N. Brauner 142

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Lalgorithme du simplexe
Forme standard max z s.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. Brauner 143

=0 = 120 = 100 = 70 = 50

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Lalgorithme du simplexe
Cots rduits u e B, une base de Ax = b la fonction objectif :

= 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 cot rduit de la variable hors base xj u e


N. Brauner 144

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Lalgorithme du simplexe
` chaque itration a e z xB z xN 1 cots rduits u e 0 . .. . . . 0 xB 0 Id z0 +

` loptimum a z xB z 1 0 . . . 0
N. Brauner 145

xN + .. .

xB 0 Id

z0

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Lalgorithme du simplexe
Principe heuristique : faire rentrer en base la variable avec le coecient le plus ngatif x1 e 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

146

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Lalgorithme 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 147

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Lalgorithme du simplexe
exprimer la contrainte z avec les variables hors base x2 et s3 z 10x2 + 20s3 = 1400 diviser la ligne pivot par le coecient de la variable entrante x1 + s3 = 70 supprimer x1 des autres contraintes 2x2 + s1 s3 = 50 x2 + s2 s3 = 30 c . . . ligne pivot a . . . b
b = a a p c

p | colonne pivot

N. Brauner

148

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Lalgorithme 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 , s1 , s2 , s4 en base et x2 , s3 hors base sol de base (70, 0, 50, 30, 0, 50) de valeur 1400 Faire rentrer x2 quotient min faire sortir s1

N. Brauner

149

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Lalgorithme 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 , x2 , s2 , s4 en base et s1 , s3 hors base sol de base (70, 25, 0, 5, 0, 25) de valeur 1650 optimale car z = 1650 5s1 15s3 et s1 = s3 = 0

N. Brauner

150

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Lalgorithme du simplexe
Phase II Donnes : un programme linaire et une solution de base admissible e e Rsultat : une solution de base admissible optimale ou dclarer e e PL non born e
1

Choix dune colonne (variable) entrante


choisir une variable hors base xj (colonne) ayant un cot rduit u e ngatif e sil nexiste pas de colonne entrante : STOP, la solution de base est optimale

Choix dune ligne (variable) sortante


Choisir une ligne r minimisant le quotient sil nexiste pas de ligne sortante : STOP le tableau courant est non born e

Mise ` jour de la base et du tableau a


pivoter autour de arj et retourner en (1)
N. Brauner 151

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Lalgorithme du simplexe
Solution de base dgnre si une ou plusieurs variables de e e ee base sont zros (plus de bijection entre les solutions de base e admissibles et les points extrmes e Si toutes les solutions de base sont admissibles sont non dgnres, lalgorithme du simplexe termine apr`s un nombre e e ee e ni ditrations e

N. Brauner

152

Programmation linaire e

Interprtation gomtrique e e e

Bases et points extrmes e

Lalgorithme du simplexe

Lalgorithme du simplexe
Phase I Feuille de TD : Programmation linaire, Rsolution e e Phase 1

N. Brauner

153

Dualit e

N. Brauner

154

Illustration conomique e

Comment prouver loptimalit ? e

Ecrire le dual

Proprits ee

Plan

13

Illustration conomique e

14

Comment prouver loptimalit ? e

15

Ecrire le dual

16

Proprits ee

N. Brauner

155

Illustration conomique e

Comment prouver loptimalit ? e

Ecrire le dual

Proprits ee

Dualit e
En gnral e e contraintes : variables : 0 = 0 0

Nouveau concept Primal donnes A, b, c e minimiser Dual mmes donnes A, b, c e e maximiser

N. Brauner

156

Illustration conomique e

Comment prouver loptimalit ? e

Ecrire le dual

Proprits ee

Plan

13

Illustration conomique e

14

Comment prouver loptimalit ? e

15

Ecrire le dual

16

Proprits ee

N. Brauner

157

Illustration conomique e

Comment prouver loptimalit ? e

Ecrire le dual

Proprits ee

Plan

13

Illustration conomique e

14

Comment prouver loptimalit ? e

15

Ecrire le dual

16

Proprits ee

N. Brauner

158

Illustration conomique e

Comment prouver loptimalit ? e

Ecrire le dual

Proprits ee

Probl`me primal (P) e


Une famille utilise 6 produits alimentaires comme source de vitamine A et C 1 1 0 35 produits (units/kg) e 2 3 4 5 0 2 2 1 1 3 1 3 30 60 50 27 6 2 2 22 demande (units) e 9 19

vitamine A vitamine C Prix par kg

But : minimiser le cot total u Modlisation e

N. Brauner

159

Illustration conomique e

Comment prouver loptimalit ? e

Ecrire le dual

Proprits ee

Probl`me dual (D) associ ` (P) e ea


Un producteur de cachets de vitamine synthtique veut convaincre e la famille dacheter ses vitamines. quel prix de vente wA et wC ? pour tre comptitif e e et maximiser le prot Modlisation e

N. Brauner

161

Illustration conomique e

Comment prouver loptimalit ? e

Ecrire le dual

Proprits ee

Modlisation matricielle e
Probl`me primal e famille : acheter des produits alimentaires ` cot minimum et a u satisfaire la demande en vitamine A et C Modlisation sous forme matricielle e Probl`me dual e producteur de vitamines synthtiques : tre comptitif vis-`-vis des e e e a produits alimentaires comme source de vitamine et maximiser le prot de vente Modlisation sous forme matricielle e

N. Brauner

163

Illustration conomique e

Comment prouver loptimalit ? e

Ecrire le dual

Proprits ee

Gnralisation de lillustration conomique e e e


ressource i produit j cot i u aij bi demande j cj

Probl`me primal (demandeur de produit) : quelle quantit xi de e e ressource i acheter pour satisfaire la demande ` cot minimum a u min
i

bi xi

s.c.
i

aij xi cj

Probl`me dual (vendeur de produit) : ` quel prix proposer les e a produits pour maximiser le prot tout en restant comptitif e max
j

cj wj

s.c.
j

aij wj bi

i
N. Brauner 165

Illustration conomique e

Comment prouver loptimalit ? e

Ecrire le dual

Proprits ee

Plan

13

Illustration conomique e

14

Comment prouver loptimalit ? e

15

Ecrire le dual

16

Proprits ee

N. Brauner

166

Illustration conomique e

Comment prouver loptimalit ? e

Ecrire le dual

Proprits ee

Comment prouver loptimalit ? e


Lobjectif est de dmontrer loptimalit dune solution e e max z = x1 + x2 4x1 + 5x2 20 2x1 + x2 6 x2 2 x1 , x2 0 Ide : trouver une combinaison valide des contraintes permettant e de borner terme ` terme la fonction objectif a

N. Brauner

167

Illustration conomique e

Comment prouver loptimalit ? e

Ecrire le dual

Proprits ee

Comment prouver loptimalit ? e


max z = x1 + x2 4x1 + 2x1 + (4y1 + 2y2 )x1 5x2 x2 x2 + (5y1 + y2 + y3 )x2 y1 , y2 , y3 20 y1 6 y2 2 y3 20y1 + 6y2 + 2y3 0

Finalement, min 20y1 + 6y2 + 2y3 s.c. 4y1 5y1 yi + 2y2 + y2 + 0


N. Brauner 170

(borne sup minimale) (borner terme ` terme lobjectif) a 1 1

y3

Illustration conomique e

Comment prouver loptimalit ? e

Ecrire le dual

Proprits ee

Plan

13

Illustration conomique e

14

Comment prouver loptimalit ? e

15

Ecrire le dual

16

Proprits ee

N. Brauner

171

Illustration conomique e

Comment prouver loptimalit ? e

Ecrire le dual

Proprits ee

Forme canonique de dualit e


Donne A, b, c e min z = cx s.c. Ax b x 0 max v = wb s.c. wA c w 0

(P)

(D)

N. Brauner

172

Illustration conomique e

Comment prouver loptimalit ? e

Ecrire le dual

Proprits ee

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

Lcriture du Dual est automatique : e les variables la fonction objectif les contraintes
N. Brauner 175

Illustration conomique e

Comment prouver loptimalit ? e

Ecrire le dual

Proprits ee

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

176

Illustration conomique e

Comment prouver loptimalit ? e

Ecrire le dual

Proprits ee

Plan

13

Illustration conomique e

14

Comment prouver loptimalit ? e

15

Ecrire le dual

16

Proprits ee

N. Brauner

177

Illustration conomique e

Comment prouver loptimalit ? e

Ecrire le dual

Proprits ee

Proprits ee
Proprit ee Le dual du dual est quivalent au primal e vrier sur un exemple e max z = 2x1 + 3x2 + 4x3 2x1 + x2 x3 3x1 + x2 + x3 x2 x1 , x2 , x3 0 3 2 2 1

N. Brauner

178

Illustration conomique e

Comment prouver loptimalit ? e

Ecrire le dual

Proprits ee

Proprits ee
(P) min z = cx s.c. Ax b x 0 (D) max v = wb s.c. wA c w 0

Thor`me de dualit faible e e e Pour chaque paire de solutions admissibles x de (P) et w de (D) z = cx wb = v

Consquence : que se passe-t-il si lun est non born ? e e

N. Brauner

180

Illustration conomique e

Comment prouver loptimalit ? e

Ecrire le dual

Proprits ee

Et loptimalit ? e
Certicat doptimalit e Si z = cx = wb = v pour des solutions admissibles x de (P) et w et (D), alors x et w sont optimales Thor`me de dualit forte e e e Si (P) a des solutions et (D) a des solutions, alors cx = w b

N. Brauner

181

Illustration conomique e

Comment prouver loptimalit ? e

Ecrire le dual

Proprits ee

Proprit des carts complmentaires ee e e


Pour lexemple des vitamines crire le primal avec les variables dcart (si ) e e crire le dual avec les variables dcart (ti ) e e trouver une solution du primal optimale trouver une solution du dual optimale crire les paires de variables (si , wi ) et (xj , tj ) e que remarquez-vous ?

N. Brauner

182

Illustration conomique e

Comment prouver loptimalit ? e

Ecrire le dual

Proprits ee

Proprit ee
Proprit des carts complmentaires ee e e Pour x optimale de (P) et w optimale de (D) alors une contrainte de (P) est serre ` galit e ae e OU la variable associe ` cette contrainte est nulle dans w e a idem dans lautre sens xj tj = 0 et si wi = 0 preuve

N. Brauner

184

Illustration conomique e

Comment prouver loptimalit ? e

Ecrire le dual

Proprits ee

Proprit des carts complmentaires ee e e


Intrt Si on conna x optimal de (P), alors on peut trouver y ee t en appliquant le thor`me des carts complmentaires (et ainsi e e e e ) prouver loptimalit de x e essayer sur un exemple max z = x1 + x2 4x1 + 5x2 20 2x1 + x2 6 x2 2 x1 , x2 0 avec x1 = 2 et x2 = 2

N. Brauner

186

Illustration conomique e

Comment prouver loptimalit ? e

Ecrire le dual

Proprits ee

Petite philosophie de la dualit e


` A quoi servent les trois thor`mes de dualit e e e Dualit faible : pour faire la preuve doptimalit e e Ecarts complmentaires : pour trouver une solution optimale e du dual connaissant une solution optimale du primal Dualit forte : garantit quune preuve doptimalit (utilisant la e e dualit) est possible e

N. Brauner

188

Programmation linaire en nombres entiers e

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Introduction
Programmation Linaire (PL) e
Variables de dcision continues (rels) e e Algorithme du Simplexe ecace

Probl`mes Linaire en Nombres Entiers (PLNE) e e


Variables de dcision discr`tes (entiers, boolens {0, 1}) e e e Choix dune bonne formulation souvent dicile Pas de mthode gnrale ecace de rsolution e e e e Algorithme de Branch & Bound, Branch & Cut. . .

Programme Linaire Mixte (MIP pour Mixed Integer e Program)


A la fois des variables relles et enti`res e e

N. Brauner

190

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Introduction
Combinatoire Structure discr`te e Tr`s grand nombre de possibilits e e

N. Brauner

191

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Introduction
Probl`me doptimisation combinatoire e Un probl`me doptimisation combinatoire typique e INSTANCE Un ensemble dobjets 1, . . . , n, avec des poids ci SOLUTIONS REALISABLES Un ensemble F de parties de {1, . . . , n} CRITERE maximiser c(S) =
iS

ci

Lensemble F est en gnral dni par des contraintes. e e e Son cardinal peut tre tr`s grand (ici potentiellement 2n ) e e

N. Brauner

192

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Plan

17

Probl`mes classiques e

18

Techniques de modlisation e

19

Relaxation linaire e

20

Branch & Bound

N. Brauner

193

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Plan

17

Probl`mes classiques e

18

Techniques de modlisation e

19

Relaxation linaire e

20

Branch & Bound

N. Brauner

194

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Probl`mes classiques doptimisation combinatoire e


Le sac ` dos a Un beau jour de vacances, vous avez dcid de partir en e e randonne dans le Vercors. Vous voulez remplir votre sac de e capacit 3kg avec les objets les plus utiles : e objets carte gourde 2`me gourde e 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

195

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Probl`mes classiques doptimisation combinatoire e


Le sac ` dos a ` Probl`me gnrique de Sac a Dos e e e un ensemble dobjets N = {1, 2 . . . n} ` chaque objet est associ a e
une utilit ui e un poids wi

un randonneur dispose dun sac-`-dos a dont le poids total ne doit pas dpasser e W (capacit du sac-`-dos) e a dterminer quels objets prendre pour e maximiser lutilit e

N. Brauner

196

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Probl`mes classiques doptimisation combinatoire e


Le sac ` dos a Probl`me doptimisation classique e Utiliser au mieux une capacit e Choix dun portefeuille dinvestissement

Modlisation e INSTANCE : SOLUTIONS : SOLUTIONS REALISABLES : CRITERE :


N. Brauner 197

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Probl`mes classiques doptimisation combinatoire e


Le sac ` dos a variables objectif contraintes xi = 1 si lobjet i est choisi, 0 sinon max
iN iN

ui xi

wi xi W i N

xi {0, 1}

N. Brauner

198

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Probl`mes classiques doptimisation combinatoire e


Remplissage de bo tes (bin packing) Un dmnageur souhaite empaqueter des objets en minimisant le e e nombre de bo de capacit W = 6 ncessaires tes e e 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

Dcrivez une solution ralisable pour le dmnageur e e e e Proposez une modlisation avec un PLNE e
N. Brauner 199

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Probl`mes classiques doptimisation combinatoire e


Remplissage de bo tes (bin packing) des articles N = {1, 2 . . . n} de taille {s1 , s2 . . . sn } ` ranger dans des bo de capacit W a tes e en utilisant de moins de bo possible tes

N. Brauner

200

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Probl`mes classiques doptimisation combinatoire e


Couverture densembles On souhaite choisir les intervenants dans un projet an davoir toutes les comptences ncessaires en minimisant le cot e e u Cot (h ou = u C) Rech. Op. Java Bases de donnes e Thorie des graphes e 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

Dcrivez une solution ralisable pour le projet e e Proposez une modlisation avec un PLNE e
N. Brauner 201

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Probl`mes classiques doptimisation combinatoire e


Couverture densembles matrice A = (aij )i=1..n,j=1..m ` coecients 0 ou 1 a cj > 0, le cot de la colonne j u une colonne j couvre une ligne i si aij = 1 trouver un sous-ensemble des colonnes de A de cot minimum u tel que chaque ligne de A soit couverte au moins une fois

N. Brauner

202

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Probl`mes classiques doptimisation combinatoire e


Partition densembles matrice A = (aij )i=1..n,j=1..m ` coecients 0 ou 1 a cj > 0, le cot de la colonne j u une colonne j couvre une ligne i si aij = 1 trouver un sous-ensemble des colonnes de A de cot minimum u tel que chaque ligne de A soit couverte exactement une fois

N. Brauner

203

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Probl`mes classiques doptimisation combinatoire e


Aectation N1 et N2 deux ensembles de mme cardinal n e A N1 N2 : un collection de couples de nuds reprsentant e toutes les aectations possibles cij : cot du couple (i, j) A u trouver une aectation de cot minimum tel que chaque u lment de N1 est aect ` un et un seul lment de N2 ee ea ee

N. Brauner

204

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Probl`mes classiques doptimisation combinatoire e


Plus court chemin Trouver un chemin de distance minimum entre deux nuds, s et t dun rseau donn. e e

N. Brauner

205

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Plan

17

Probl`mes classiques e

18

Techniques de modlisation e

19

Relaxation linaire e

20

Branch & Bound

N. Brauner

206

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Techniques gnrales de modlisation e e e


La PLNE permet de rsoudre beaucoup de probl`mes e e combinatoires mais ATTENTION ` lecacit de la rsolution. . . a e e Les variables enti`res sont introduites e Pour dcrire des structures discr`tes e e sous-ensemble S {1, . . . , n} vecteur indicateur (x1 , . . . , xn ) {0, 1}n Pour linariser des expressions non linaires e e

N. Brauner

207

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Techniques gnrales de modlisation e e e


x : une variable de dcision e Objectif avec cot xe (fonction ane) : min f 1{x>0} + cx u Le cot est compos dun cot unitaire c et dun cot xe f u e u u pay uniquement si x > 0 e On introduit une variable y indicatrice de {x > 0} y 1 ssi x > 0, et 0 sinon min fy + cx x My y {0, 1}

o` M est une constante x u

N. Brauner

208

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Techniques gnrales de modlisation e e e


Restriction ` un ensemble discret de valeurs a x doit prendre sa valeur parmi {p1 , p2 . . . 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 . . . k

N. Brauner

209

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Techniques gnrales de modlisation e e e


Contraintes de seuil : si x > 0 alors x K (constante) x My x Ky o` M est une constante plus grande que x u y {0, 1} Implication logique : x = 1 y = 1 avec x et y deux variables boolennes {0, 1} e x y OU logique : x ou y doit tre ` Vrai e a avec x et y deux variables boolennes {0, 1} e x +y 1
N. Brauner 210

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Techniques gnrales de modlisation e e e


Contraintes disjonctives deux taches de dures di et dj doivent tre usines sur une e e e mme ressource e ti + di tj si i est ralise avant j e e tj + dj ti si j est ralise avant i e e ti + di tj + M(1 yij ) t + dj ti + Myij j yij {0, 1}

N. Brauner

211

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Techniques gnrales de modlisation e e e


Termes quadratiques linariser xx avec x, x {0, 1} e On introduit une variable y xx On doit traduire y = 1 ssi (x = 1 et x = 1) y y x y x x +x 1y {0, 1}

N. Brauner

212

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Plan

17

Probl`mes classiques e

18

Techniques de modlisation e

19

Relaxation linaire e

20

Branch & Bound

N. Brauner

213

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Formulation
Probl`me combinatoire ` rsoudre e a e max{cx | x X } avec X Zn Une modlisation du probl`me en PLNE e e dnit un poly`dre P = {x Rn | Ax b} e e Dnition e Un PLNE est une formulation de X ssi X = P Zn

N. Brauner

214

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Illustration graphique

N. Brauner

215

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Illustration graphique

N. Brauner

216

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Relaxation Linaire e
Pour rsoudre un PLNE e une ide simple est doublier que les variables sont enti`res e e on recherche alors loptimum du PL sur le poly`dre P e on peut utiliser lalgorithme du simplexe Dnition e La relaxation linaire dune formulation en PLNE est le PL e max{cx | Ax b , x Rn } Lien entre loptimum du PL et loptimum du PLNE ?

N. Brauner

217

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Illustration graphique de la relaxation

N. Brauner

218

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Exemple I
max z = 4x1 s.c. 7x1 x1 + x2

+ x2 36 + 4x2 22 0 entiers

x1 , x2
1 2

Trouvez graphiquement loptimum fractionnaire Trouvez graphiquement loptimum entier

N. Brauner

219

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Exemple II
Stable maximum Ensemble S de sommets dun graphe
F B D E

2 ` 2 non adjacent a

1 2

Quel est loptimum entier sur un triangle ? Quel est loptimum fractionnaire sur un triangle ? la relaxation linaire donne peu dindication ! e
N. Brauner 220

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Exemple III
min z = x1 s.c. x1 17x2 = 3 x1 11x3 = 4 x1 6x4 = 5 entiers

x1 , x2 , x3 , x4 0
1

Trouvez loptimum fractionnaire, son arrondi et loptimum entier

N. Brauner

221

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Proprit de la relaxation linaire ee e


Pour une formulation en PLNE
zIP = max{cx | Ax b , x Zn }

La relaxation linaire e
zL = max{cx | Ax b , x Rn }

vrie e
1 2

zIP zL

Si la solution optimale de la relaxation linaire est enti`re, e e alors cest aussi une solution optimale pour le PLNE

N. Brauner

222

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Plan

17

Probl`mes classiques e

18

Techniques de modlisation e

19

Relaxation linaire e

20

Branch & Bound

N. Brauner

223

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Mthodes numratives e e e
Nombre ni de solutions F = {S1 , S2 , . . . , SN }
- Parcourir toutes les solutions - Pour chaque S F, valuer c(S) e - Retenir la meilleure solution

Probl`me e Le nombre de solutions potentielles est ni mais gigantesque Esprance de vie du soleil e 5 milliards dannes < 258 secondes e

N. Brauner

224

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Challenge de loptimisation combinatoire


Comment trouver la meilleure solution sans parcourir toutes les solutions ? Enumration implicite : liminer a priori des solutions e e Dtecter que des solutions sont mauvaises ou irralisables e e sans les valuer explicitement. e

N. Brauner

225

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Principe du Branch & Bound


On veut rsoudre z = max{cx | x X } e Si on partitionne X en (X1 , X2 )
Alors z = max{z1 , z2 }

X1

X2

z* 1

z* 2

N. Brauner

226

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Principe du Branch & Bound


Si z1 > z2

Alors il est inutile dexplorer le sous-ensemble X2 X2 ne contient pas de solution optimale.


X

X1

X2

z* 1

>

z* 2

N. Brauner

227

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Borne suprieure e
Comment dterminer quil est inutile dexplorer X2 sans e calculer z2 ?
Estimation [par exc`s] de la valeur de z2 e

Dnition e Une fonction des instances dans R est une borne suprieure ssi elle e est suprieure ` la valeur optimum pour chaque instance. e a Pour un PLNE, une borne suprieure est donne par e e sa relaxation linaire e

N. Brauner

228

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Enumration arborescente implicite e


Pour rsoudre z = max{cx | x X } e On dcoupe lensemble des solutions X e Sur chaque Y X , on calcule une borne suprieure B(Y ) de e loptimum z (Y ). Si B(Y ) ` la meilleure solution trouve, alors on lague Y a e e Sinon on dcoupe rcursivement Y e e

N. Brauner

229

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Comment dcouper lespace des solutions ? e


On rsout la relaxation linaire du probl`me sur X ` loptimum e e e a est enti`re, on a trouv loptimum sur X Si la solution x e e Sinon pour une variable (au moins) on a : a < xi < a + 1

P Dcoupage du problme X

x*

N. Brauner

230

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Branchement sur une variable fractionnaire


On partitionne X en deux nouveaux sous-probl`mes : e X1 = x X et xi a X2 = x X et a + 1 xi

P1

x* X

P2
N. Brauner 231

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Exploration de lensemble X2 de solutions


On recherche la meilleure solution sur X2 : On rsout la relaxation linaire sur P2 e e On partitionne en 2 nouveaux sous-probl`mes e

P1

P3 X

P4 P2

N. Brauner

232

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Exploration de lensemble X1 de solutions


On a trouv la solution optimale sur X2 e Existe-t-il une meilleure solution sur X1 ? La borne suprieure ne nous permet pas dlaguer X1 e e

P1

P3 X

P4

N. Brauner

233

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Exploration de lensemble X1 de solutions


On recherche la meilleure solution sur X1 : On partitionne en 2 nouveaux sous-probl`mes e

P5

P6

P3 X

P4

N. Brauner

234

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Fin du Branch & Bound


La solution optimale sur X est la meilleure des 2 solutions trouves sur X1 et X2 . e

P5

P6

P3 X

P4

N. Brauner

235

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Branch & Bound


1 2

rsoudre la relaxation linaire e e brancher sur une variable non enti`re (` choisir) e a 2 sous probl`mes e diviser ` nouveau un nud ls en deux (= choix possibles) a continuer ` sparer sur les nuds dont la valeur est > ` la a e a borne inf jusqu` ce quil ny ait plus de branchement possible a La relaxation linaire na pas de solution e la relaxation linaire donne une solution enti`re e e la valeur de la borne suprieure est infrieure ` la valeur de la e e a meilleure solution enti`re obtenue e

3 4

On coupe une branche si

Note : On ne peut rien couper tant quon na pas de solution disponible


N. Brauner 236

Probl`mes classiques e

Techniques de modlisation e

Relaxation linaire e

Branch & Bound

Branch & Bound


z = 2x1 + 3x2 sc. 5x1 + 7x2 35 4x1 + 9x2 36 x1 , x2 0 entiers faire le dessin
x2 3
z = 13,5 x1 = 2,25 x2 = 3 z = 14,47 x1 = 3,71 x2 = 2,35

x2 2
z = 14,4 x1 = 4,2 x2 = 2

x1 3
Pas de sol ralisable

x1 2
z = 13,33 x1 = 2 x2 = 3,11

x1 5
z = 14,29 x1 = 5 x2 = 1,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 ralisable

x1 5
z = 13 x1 = 5 x2 = 1

x1 6
z = 14,14 x1 = 6 x2 = 0,71

x2 1

x2 0
z = 14

Pas de sol ralisable

x1 = 7 x2 = 0

N. Brauner

237

Application
Approvisionnement des stations service Une compagnie ptroli`re souhaite dterminer les emplacements e e e possibles pour ses dpts (destins ` fournir ses stations e o e a service). Les stations service sont au nombre de n et on a m dpt. On a un seul produit. e o cij : cot unitaire de transport entre un dpt i et la station u e o service j fi : cot xe douverture du dpt i u e o si : capacit du dpt i e e o dj : demande de la station service j (peut tre satisfaite par e plusieurs dpts) e o Formulez un programme linaire qui permet de minimiser les e cots tout en respectant les contraintes. u
N. Brauner 238

Application
Mlange de maximum 4 charbons (exo de D. de Wolf) e On mlange des charbons dans un haut fourneau o` ensuite, une e u raction ` haute temprature produit le coke. Il y a 8 charbons e a e disponibles. Ces charbons sont entrs par des bandes porteuses e qui sont au nombre de 4 (au maximum 4 charbons dirents e dans le mlange). Si un charbon est dans le mlange, il doit e e ltre ` hauteur de minimum 5%. On exige que la teneur du e a mlange en Silicium soit dau plus 1,8 %. Le tableau suivant e reprend les prix et teneur en Si des charbons. Charbon Prix Teneur Si Charbon Prix Teneur Si Charbon 1 12 2% Charbon 5 13 1% Charbon 2 14 2,5 % Charbon 6 9 5% Charbon 3 17 1% Charbon 7 15 2% Charbon 4 10 5% Charbon 8 11 1,5 % On veut dterminer un mlange qui est de cot minimum. e e u
N. Brauner 239

Application
Dimensionnement de lots (DLS) Une demande journali`re dt sur un horizon T e Cot de production pt (x) = ft + at x u Cot de stockage unitaire ht (par jour par unit) u e Quel plan de production choisir pour minimiser les cots ? u

1 2

Comment dcrire une solution ? e Comment dcrire une solution ralisable ? e e

N. Brauner

240

Application
Dimensionnement de lots (DLS)

demande

production

stock
N. Brauner 241

Application
Dimensionnement de lots (DLS) Une demande journali`re dt sur un horizon T e Cot de production pt (x) = ft + at x u Cot de stockage unitaire ht (par jour par unit) u e Quel plan de production choisir pour minimiser les cots ? u

N. Brauner

242

Application
Dimensionnement de lots (DLS) Modlisation du cot de production, non linaire e u e
p(x) = f + ax f

Variables de dcision e yt {0, 1} indicatrice des instants de production yt 1 ssi xt > 0, et 0 sinon Comment traduire le lien entre y et x ?
N. Brauner 243

Utilisation du modeleur AMPL

N. Brauner

244

Plan

N. Brauner

245

AMPL
A faire

N. Brauner

246

Utiliser un solveur via un modeleur


OPL 5.1 et Cplex

N. Brauner

247

Prsentation des outils e

Mod`les e

Lenvironnement

Donnes e

Application

Plan

21

Prsentation des outils e Mod`les e Lenvironnement Donnes e Application

22

23

24

25

N. Brauner

248

Prsentation des outils e

Mod`les e

Lenvironnement

Donnes e

Application

Plan

21

Prsentation des outils e Mod`les e Lenvironnement Donnes e Application

22

23

24

25

N. Brauner

249

Prsentation des outils e

Mod`les e

Lenvironnement

Donnes e

Application

Modeleur et solveur
output mod`le e dvar a[] ; ...
e e

donnes e brutes
(BD, GUI. . . )

(BD, GUI tableur) T a[] T

modeleur

x, cx

min cx s.c. Ax = b l x u

c, A, b E solveur l, u

Solveurs : CPLEX, LPSolve, XPRESS, MINOS. . . Langages de modlisation : GAMS (pionnier), OPL, AMPL, e AIMMS. . .
N. Brauner 250

Prsentation des outils e

Mod`les e

Lenvironnement

Donnes e

Application

Le langage de modlisation OPL e


OPL = Optimization Programming Language Langage pour les probl`mes doptimisation e Supporte des mod`les de programmation mathmatiques pour e e
contraintes ou objectifs linaires ou quadratiques e variables enti`res ou relles e e

Typage avanc pour lorganisation des donnes e e Se connecte ` SGBDR ou tableur a Script pour rcuprer des donnes et rsolutions itratives e e e e e

N. Brauner

251

Prsentation des outils e

Mod`les e

Lenvironnement

Donnes e

Application

Lenvironnement de dveloppement e
IDE : Integrated Development Environment Organiser des projets Saisir des donnes et des mod`les OPL e e Visualiser les donnes et les solutions e Contrler loptimisation o + outils pour le debuggage et aide en ligne

N. Brauner

252

Prsentation des outils e

Mod`les e

Lenvironnement

Donnes e

Application

Intgrer un mod`le dans une application e e


Dvelopper un mod`le OPL avec OPL IDE e e (mod`le et donnes spars) e e e e Compiler dans OPL IDE Ecrire code dans langage prfr pour eee
gnrer dynamiquement le chier de donnes e e e lire le mod`le et les donnes e e rsoudre le probl`me e e rcuprer la solution e e

(C++, MS.net, Java, ASP.net, JSP)

N. Brauner

253

Prsentation des outils e

Mod`les e

Lenvironnement

Donnes e

Application

Plan

21

Prsentation des outils e Mod`les e Lenvironnement Donnes e Application

22

23

24

25

N. Brauner

254

Prsentation des outils e

Mod`les e

Lenvironnement

Donnes e

Application

Dvelopper un mod`le simple e e


On souhaite produire des contures de rhubarbe et de fraise Un pot de rhubarbe ncessite 1kg de rhubarbe et 3kg de sucre e et rapporte (marge) 3 euros Un pot de fraise ncessite 2kg de fraise et 2kg de sucre et e rapporte (marge) 5 euros Les quantits disponibles sont 4kg de rhubarbe, 12kg de fraise e et 18kg de sucre.

max 3xr s.c. xr 3xr xr ,

5xf

4 2xf 12 + 2xf 18 xf 0
N. Brauner 255

Prsentation des outils e

Mod`les e

Lenvironnement

Donnes e

Application

Dvelopper un mod`le simple e e


max 3xr s.c. xr 3xr xr , + 5xf

4 2xf 12 + 2xf 18 xf 0

Cration du projet Contures puis, description du mod`le e e Les variables de dcision e La fonction objectif Les contraintes dvar float+ xr ; maximize 3*xr + 5*xf; subject to { CSucre 3*xr + 2*xf <= 18; : }
N. Brauner 256

Prsentation des outils e

Mod`les e

Lenvironnement

Donnes e

Application

Dvelopper un mod`le simple e e


Lditeur e

Commentaires en vert Mots cls en bleu e


N. Brauner 257

Prsentation des outils e

Mod`les e

Lenvironnement

Donnes e

Application

Rsoudre un mod`le simple e e


Lancer la rsolution et visualiser la solution e Notication Problem Browser

Console

N. Brauner

258

Prsentation des outils e

Mod`les e

Lenvironnement

Donnes e

Application

Plan

21

Prsentation des outils e Mod`les e Lenvironnement Donnes e Application

22

23

24

25

N. Brauner

259

Prsentation des outils e

Mod`les e

Lenvironnement

Donnes e

Application

Lenvironnement
Output

Issues Console Solutions Conicts and Relaxations Engine Log Engine Statistics Proler
N. Brauner 260

Prsentation des outils e

Mod`les e

Lenvironnement

Donnes e

Application

Lenvironnement
Barres doutils Model Outline

Projets (congurations)

N. Brauner

261

Prsentation des outils e

Mod`les e

Lenvironnement

Donnes e

Application

Laide
Menu Aide Sommaire de laide

noter laide sur un mot cl e (keyword help)

N. Brauner

262

Prsentation des outils e

Mod`les e

Lenvironnement

Donnes e

Application

Plan

21

Prsentation des outils e Mod`les e Lenvironnement Donnes e Application

22

23

24

25

N. Brauner

263

Prsentation des outils e

Mod`les e

Lenvironnement

Donnes e

Application

Sparation du mod`le et des donnes e e e


Dans lexercice conture, sparer les donnes du mod`le e e e Dclaration des donnes dans le chier mod`le e e e Produits Pots Prot Besoin Quantits dispo. e {string} Produits = {"rhubarbe", "fraise", "sucre"} ; {string} Pots = {"ConfRhubarbe", "ConfFraise"}; int Profit[Pots] = [3, 5]; int Besoin[Pots][Produits] = [[1, 0, 3],[0, 2, 2]] ; int Dispo[Produits] = [4, 12, 18] ;

N. Brauner

264

Prsentation des outils e

Mod`les e

Lenvironnement

Donnes e

Application

Sparation du mod`le et des donnes e e e


Dclaration des contraintes e constraint cap[Produits] ; Dclaration des variables de dcision e e dvar float+ x[Pots] ; Objectif : maximiser le prot maximize sum(po in Pots) Profit[po]*x[po] ; Contraintes : respecter les quantits disponibles e subject to{ forall (pr in Produits) cap[pr] sum(po in Pots) : Besoin[po][pr]*x[po] <= Dispo[pr] ; }

N. Brauner

265

Prsentation des outils e

Mod`les e

Lenvironnement

Donnes e

Application

Sparation du mod`le et des donnes e e e


Dans lexercice conture, saisir les donnes dans un chier .dat e Dclaration des donnes dans un chier .dat e e Produits = {"rhubarbe", "fraise", "sucre"} ; Pots = {"ConfRhubarbe", "ConfFraise"}; Besoin = [ "ConfRhubarbe":[1, 0, 3], "ConfFraise":[0, 2, 2] ]; Profit = [3, 5]; Dispo = [4, 12, 18] ;
N. Brauner 266

Prsentation des outils e

Mod`les e

Lenvironnement

Donnes e

Application

Sparation du mod`le et des donnes e e e


Dclaration de donnes externes dans un mod`le e e e {string} Produits = ... ; {string} Pots = ...; int Besoin[Pots][Produits] = ...; int Profit[Pots] = ...; int Dispo[Produits] = ...; Ajouter le chier de donns au projet e Ajouter le chier de donnes ` la conguration e a

N. Brauner

267

Prsentation des outils e

Mod`les e

Lenvironnement

Donnes e

Application

Debuggage
Outils de debuggage des mod`les : e Dcrire des contraintes avec donnes e e Tracer lexcution e Utiliser le graphique de Engine Statistics Mettre en pause pour voir solution courante

N. Brauner

268

Prsentation des outils e

Mod`les e

Lenvironnement

Donnes e

Application

Plan

21

Prsentation des outils e Mod`les e Lenvironnement Donnes e Application

22

23

24

25

N. Brauner

269

Prsentation des outils e

Mod`les e

Lenvironnement

Donnes e

Application

Production de moteurs davions


Production de deux composantes (A et B) dun moteur davion. Notication des besoins pour les trois prochains mois. avril mai juin A 1000 3000 5000 B 1000 500 3000 capacits e machine (h) hommes (h) stock (m3 ) avril 400 300 10 000 mai 500 300 10 000 juin 600 300 10 000 capacits e machine (h/unit) homme (h/unit) stock (m3 /unit) e e e A 0.10 0.05 2 B 0.08 0.07 3
N. Brauner 270

Prsentation des outils e

Mod`les e

Lenvironnement

Donnes e

Application

Production de moteurs davions


Production de deux composantes (A et B) dun moteur davion. cots de production : 20 par units de A et 10 par units de B u e e cot de stockage : 1,5% de la valeur u horaire mensuel de base : 225 cot de lheure supplmentaire de travail : 10 u e stock n mars : 500 A et 200 B stock minimum impos n juin : 400 A et 200 B e Trouver un plan de production des trois prochain mois qui minimise les cots. u Proposer une modlisation mathmatique de ce probl`me e e e

N. Brauner

271

Prsentation des outils e

Mod`les e

Lenvironnement

Donnes e

Application

Production de moteurs davions


Variables production : x[produit, mois] stock : s[produit, mois] heures supplmentaires I [mois] e Objectif : production + stock + heures supplmentaires e Contraintes dnition du stock e stock minimum n juin capacits des machines e capacits des hommes e capacits des stocks e dnition des heures supplmentaires e e
N. Brauner 272

Prsentation des outils e

Mod`les e

Lenvironnement

Donnes e

Application

Production de moteurs davions


Modliser ce probl`me avec OPL et le rsoudre avec CPLEX e e e Solution fractionnaire : cot 224724.2857 u Mars 500 200 Avril 500 2857,14 0 2057,14 0 Mai 3000 1214,29 0 2771,43 10 Juin 5400 428,671 400 200 75

Produit A Produit B Stock A Stock B Heures supp

N. Brauner

273

Prsentation des outils e

Mod`les e

Lenvironnement

Donnes e

Application

Production de moteurs davions


Solution enti`re : cot 224724.5 e u Mars 500 200 Avril 500 2858 0 2058 0.06 1 Mai 3000 1214 0 2772 9.98 10 Juin 5400 428 400 200 74.96 75

Produit A Produit B Stock A Stock B Heures supp Heures supp ent

N. Brauner

274

Prsentation des outils e

Mod`les e

Lenvironnement

Donnes e

Application

Production de moteurs davions


Programme linaire avec 15 variables et 20 contraintes e 2 produits 3 mois 1 type de machines 1 type dhommes 1 type de stockage

N. Brauner

275

Prsentation des outils e

Mod`les e

Lenvironnement

Donnes e

Application

Pour aller plus loin


Donnes dans Excel e Ilog script Application VB Web appli et Java AMPL : un autre langage de modlisation e http ://www.ampl.com

N. Brauner

276

Formulations et coupes

Formulation

Ingalit valide e e

Algorithme de plan scant e

Plan

26

Formulation

27

Ingalit valide e e

28

Algorithme de plan scant e

N. Brauner

278

Formulation

Ingalit valide e e

Algorithme de plan scant e

Plan

26

Formulation

27

Ingalit valide e e

28

Algorithme de plan scant e

N. Brauner

279

Formulation

Ingalit valide e e

Algorithme de plan scant e

Remplissage de Boite (bin packing)


Un ensemble de n objets de hauteur hi A ranger dans des bo de hauteur H tes Minimiser le nombre de bo utilises tes e Formulation P en PLNE xij 1 si i est rang dans la bo j e te yj 1 si la bo j est utilise te e min
jN

yj i N j N i, j N
N. Brauner 280

xij = 1 hi xij Hyj i yj , xij {0, 1}


j

Formulation

Ingalit valide e e

Algorithme de plan scant e

Remplissage de Boite (bin packing)


Enormment de symtries sont prsentes e e e Si loptimum utilise 3 bo tes, autant prendre les 3 premi`res ! e Quelle contrainte ajouter ?

N. Brauner

281

Formulation

Ingalit valide e e

Algorithme de plan scant e

Rsolution des 2 formulations e


Le premier PLNE est une formulation du BinPacking Ajouter les contraintes de symtries, nest-ce pas redondant ? e Essayons de rsoudre linstance e 15 objets ` ranger dans des bo de hauteur H = 20 a tes hauteurs 6 7 8 9 10 en trois exemplaires chacun

(tr`s) petit exemple e Quelle est la solution optimale ?

N. Brauner

282

Formulation

Ingalit valide e e

Algorithme de plan scant e

Rsolution des 2 formulations e


15 objets ` ranger dans des bo de hauteur H = 20 a tes hauteurs 3 6 7 8 9 10

Rsolution sous OPL e Formulation I (Cuts o) temps nuds > 3h > 35 millions

Formulation II (Cuts o) temps nuds 129s 500000

Formulation I (Cuts on) temps nuds 3s 2000

N. Brauner

283

Formulation

Ingalit valide e e

Algorithme de plan scant e

Formulations dun PLNE


Probl`me combinatoire ` rsoudre e a e max{cx | x X } avec X Z n Une modlisation du probl`me en PLNE e e poly`dre P = {x R n | Ax b} e Dnition e Un PLNE est une formulation de X ssi X = P Z n Il existe une innit de formulations pour un probl`me e e

N. Brauner

284

Formulation

Ingalit valide e e

Algorithme de plan scant e

Illustration graphique

N. Brauner

285

Formulation

Ingalit valide e e

Algorithme de plan scant e

Illustration graphique

N. Brauner

286

Formulation

Ingalit valide e e

Algorithme de plan scant e

Formulation Idale e
Une formulation P est meilleure que P si P P La formulation idale est la e formulation la plus proche de X Cest lenveloppe convexe conv (X )
X conv(X)

N. Brauner

287

Formulation

Ingalit valide e e

Algorithme de plan scant e

Formulation Idale e
Proprit ee max{cx | x X } = max{cy | y conv (X )} A gauche, un probl`me combinatoire (discret) e A droite, un Programme Linaire (continu) e Si lon a une formulation qui dcrit conv (X ) e la relaxation linaire rsout le probl`me ` loptimum pour tout e e e a objectif linaire e

N. Brauner

288

Formulation

Ingalit valide e e

Algorithme de plan scant e

Moralit e
Dans une formulation en PLNE, il ne faut pas tre conome e e de ses contraintes ! Amliore les bornes des relaxations linaires e e Diminue le nombre de nuds visits e Lidal tant que la relaxation donne directement une solution e e enti`re sans brancher e Existe-t-il des mthodes pour trouver des contraintes qui e amliorent la formulation ? e Peut-on dcrire conv (X ) ? e

N. Brauner

289

Formulation

Ingalit valide e e

Algorithme de plan scant e

Plan

26

Formulation

27

Ingalit valide e e

28

Algorithme de plan scant e

N. Brauner

290

Formulation

Ingalit valide e e

Algorithme de plan scant e

Ingalit valide e e
Probl`me combinatoire ` rsoudre e a e max{cx | x X } avec X Z n

Dnition e Une ingalit valide est une ingalit x 0 vrie par tous les e e e e e e points de X

N. Brauner

291

Formulation

Ingalit valide e e

Algorithme de plan scant e

Une remarque
Si on a une ingalit valide e e y b y une variable enti`re, b un rel. Alors e e y b est aussi une ingalit valide e e Cette remarque permet de gnrer bien des coupes ! e e

N. Brauner

292

Formulation

Ingalit valide e e

Algorithme de plan scant e

Coupes de Chvtal-Gomory a
Programme linaire max{cx | Ax b, x entier}. Pour une ligne i e de la matrice on a aij xj bi
i

Pour tout rel > 0 e aij xj bi


i

Lingalit suivante est donc valide (x 0) e e aij xj bi


i

En appliquant la remarque, on obtient une coupe de C-G aij xj bi


i
N. Brauner 293

Formulation

Ingalit valide e e

Algorithme de plan scant e

Exemple
Probl`me ` 2 variables x et e a y enti`res e Formulation
5/4

3x + 4y 5 Objectif max 9x + 10y


X

5/3

Quel est loptimum de la relaxation linaire ? e Quel est loptimum entier ? Quelles coupes de Chvtal-Gomory trouve-t-on ? a

N. Brauner

294

Formulation

Ingalit valide e e

Algorithme de plan scant e

Ajouts de coupes
Il existe de nombreuses familles de coupes dans la littrature e (Flow Cover, Mixed Integer Rounding, . . .) Leur ajout renforce la formulation Mais Si le probl`me est dicile, dcrire conv (X ) demande un e e nombre exponentiel de contraintes ! Que faire si une bonne formulation ncessite trop de e coupes ?

N. Brauner

295

Formulation

Ingalit valide e e

Algorithme de plan scant e

Plan

26

Formulation

27

Ingalit valide e e

28

Algorithme de plan scant e

N. Brauner

296

Formulation

Ingalit valide e e

Algorithme de plan scant e

Problmatique e
Formulation initiale P = {x R n | Ax b} Famille F de coupes On veut amliorer la formulation e pour dcrire conv (X ) e
X

Le plus simple : reformuler en ajoutant F ` P a Le probl`me : |F| >> 1 e Ajouter toutes les coupes a priori est draisonnable e

N. Brauner

297

Formulation

Ingalit valide e e

Algorithme de plan scant e

Algorithme de Plan Scant (Cutting Plane) e


Probl`me combinatoire e max{cx | x X } avec X Z n La description compl`te de e conv (X ) est inutile Seule la description autour de loptimum nous intresse e
X

Ide e rajouter les ingalits valides uniquement dans la rgion de e e e loptimum


N. Brauner 298

Formulation

Ingalit valide e e

Algorithme de plan scant e

Algorithme de Sparation e
Evidemment on ne sait pas o` est u loptimum On conna loptimum x de la t relaxation linaire e Sparation : Trouver une ingalit e e e valide x 0 de F coupant x : x > 0 Ajouter cette ingalit pour e e amliorer la relaxation linaire e e
X

x*

N. Brauner

299

Formulation

Ingalit valide e e

Algorithme de plan scant e

Algorithme de Plan Scant e


On rsout le relaxation linaire sur la nouvelle formulation e e On cherche une nouvelle ingalit coupant x e e

On it`re jusqu` obtenir une solution x enti`re e a e

x* x* X X

N. Brauner

300

Formulation

Ingalit valide e e

Algorithme de plan scant e

Algorithme de Plan Scant e

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

301

Formulation

Ingalit valide e e

Algorithme de plan scant e

Terminaison de lalgorithme
Un algorithme de Plan Scant termine e Soit en trouvant une solution enti`re : optimum sur X e Soit en cas dchec de lalgorithme de sparation e e Aucune ingalit valide de F nest viole par x e e e Pour achever la rsolution ` loptimum : e a Utiliser un algorithme de Branch & Bound standard sur la formulation obtenue

N. Brauner

302

Formulation

Ingalit valide e e

Algorithme de plan scant e

Comparaison avec le Branch & Bound


Algorithme de Plan Scant : rane la description du poly`dre e e autour de loptimal Algorithme de Branch & Bound : dcoupe le poly`dre en e e morceaux

x* X
X

N. Brauner

303

Formulation

Ingalit valide e e

Algorithme de plan scant e

Branch & Cut


Les algorithmes de plan scant peuvent chouer e e ` sparer une solution fractionnaire a e ou, trop dingalits sont ncessaires e e e Un algorithme de Branch & Bound doit alors tre utilis. e e Branch & Cut Un Branch & Cut consiste ` appliquer un algorithme de plan a scant sur chaque nud avant de brancher e But : amliorer la formulation de chaque nud e Nombre de nuds explors << Branch & Bound e Calcul de chaque nud >> Branch & Bound

N. Brauner

304

Formulation

Ingalit valide e e

Algorithme de plan scant e

Dimensionnement de lots (DLS)


Une demande journali`re dt sur un horizon T e Cot de production pt (x) = ft + at x u Cot de stockage unitaire ht (par jour par unit) u e Quel plan de production choisir pour minimiser les cots ? u

1 2

Comment dcrire une solution ? e Comment dcrire une solution ralisable ? e e

N. Brauner

305

Formulation

Ingalit valide e e

Algorithme de plan scant e

Dimensionnement de lots (DLS)

demande

production

stock
N. Brauner 306

Formulation

Ingalit valide e e

Algorithme de plan scant e

Dimensionnement de lots (DLS)


Une demande journali`re dt sur un horizon T e Cot de production pt (x) = ft + at x u Cot de stockage unitaire h (par jour par unit) u e Quel plan de production choisir pour minimiser les cots ? u

N. Brauner

307

Formulation

Ingalit valide e e

Algorithme de plan scant e

Dimensionnement de lots (DLS)


Modlisation du cot de production, non linaire e u e
p(x) = f + ax f

Variables de dcision e yt {0, 1} indicatrice des instants de production yt 1 ssi xt > 0, et 0 sinon Comment traduire le lien entre y et x ?
N. Brauner 308

Formulation

Ingalit valide e e

Algorithme de plan scant e

Formulations dun PLNE


On obtient la formulation AGG min ft yt + hIt
t

xt + It = dt + It+1 t = 1, . . . , T 1 xT + IT = dT t = 1, . . . , T xt Dt yt yt {0, 1} t = 1, . . . , T

Que se passe-t-il si on essaie de la rsoudre ? e

N. Brauner

309

Formulation

Ingalit valide e e

Algorithme de plan scant e

Limite du Branch & Bound


OPL ne parvient pas ` rsoudre ! Pourtant : a e Le probl`me est facile et lexemple est petit e Il existe des algorithmes qui la rsolvent instantanment e e La formulation naturelle nest pas ecace Peut-on formuler diremment le probl`me ? e e

N. Brauner

310

Formulation

Ingalit valide e e

Algorithme de plan scant e

Formulation UFL
Formulation moins naturelle Variables de dcision e yt {0, 1} indicatrice des instants de production xuv fraction de la demande de v produite le jour u Contraintes ?

N. Brauner

311

Formulation

Ingalit valide e e

Algorithme de plan scant e

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`re de comparaison pour un PLNE ? e

N. Brauner

312

Formulation

Ingalit valide e e

Algorithme de plan scant e

Formulation UFL
Avec la formulation UFL OPL rsout sans faire de Branch & Bound ! e la relaxation linaire donne directement loptimum entier e Si on active les coupes Flow cover OPL rsout la formulation AGG en explorant seulement 5 e nuds ! Que se passe-t-il ?

N. Brauner

313

Formulation

Ingalit valide e e

Algorithme de plan scant e

Conclusion
Lalgorithme de Branch & Bound peu tre inecace e Il est primordial davoir une bonne formulation
Reformulation a priori, formulation tendue e Algorithme de Plan Scant e Algorithme de Branch & Bound

Heureusement, les logiciels commerciaux font du Branch & Cut avec des familles gnriques de coupes e e Jouer sur le paramtrage peut tre utile. e e Enrichir la formulation initiale en connaissant la structure du probl`me (symtries,. . .) aussi ! e e

N. Brauner

314

Programmation dynamique

Optimisation Combinatoire

Principe de Sous-optimalit e

Programmation Dynamique

Dominances

Plan

29

Optimisation Combinatoire

30

Principe de Sous-optimalit e

31

Programmation Dynamique

32

Dominances

N. Brauner

316

Optimisation Combinatoire

Principe de Sous-optimalit e

Programmation Dynamique

Dominances

Plan

29

Optimisation Combinatoire

30

Principe de Sous-optimalit e

31

Programmation Dynamique

32

Dominances

N. Brauner

317

Optimisation Combinatoire

Principe de Sous-optimalit e

Programmation Dynamique

Dominances

Combinatoire
Structure discr`te e Tr`s grand nombre de possibilits e e

N. Brauner

318

Optimisation Combinatoire

Principe de Sous-optimalit e

Programmation Dynamique

Dominances

Probl`mes combinatoires e
Dnition e Un probl`me doptimisation se dnit par e e INSTANCE : dcrit les donnes dentre e e e SOLUTIONS REALISABLES : dcrit lensemble F des e solutions admissibles CRITERE ` optimiser. Mesure c sur les solutions ralisables a e Dnition gnrique : une innit dinstances e e e e On recherche une mthode (algorithme) capable de fournir e pour chaque instance I :
une solution optimale S ou la valeur OPT (I ) du crit`re ` loptimum e a OPT (I ) = c(S ) = max{c(S)|S F}
N. Brauner 319

Optimisation Combinatoire

Principe de Sous-optimalit e

Programmation Dynamique

Dominances

Probl`mes combinatoires e
Un probl`me doptimisation combinatoire typique e INSTANCE : Un ensemble dobjets 1, . . . , n, avec des poids ci SOLUTIONS REALISABLES : Un ensemble F de parties de {1, . . . , n} CRITERE maximiser c(S) =
iS

ci

Lensemble F est en gnral dni par des contraintes. e e e Son cardinal peut tre tr`s grand (ici potentiellement 2n ) e e

N. Brauner

320

Optimisation Combinatoire

Principe de Sous-optimalit e

Programmation Dynamique

Dominances

Le sac ` dos a
Un randonneur veut remplir son sac de capacit 4kg avec les e objets les plus utiles objets carte gourde 2`me gourde e 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

321

Optimisation Combinatoire

Principe de Sous-optimalit e

Programmation Dynamique

Dominances

Le Sac ` dos a
Probl`me doptimisation classique e Utiliser au mieux une capacit e Choix dun portefeuille dinvestissement Appara dans des probl`mes plus t e complexes Modlisation e INSTANCE : SOLUTIONS REALISABLES : CRITERE :

N. Brauner

322

Optimisation Combinatoire

Principe de Sous-optimalit e

Programmation Dynamique

Dominances

Mthodes numratives e e e
Nombre ni de solutions F = {S1 , S2 , . . . , SN }
- Parcourir toutes les solutions - Pour chaque S F, valuer c(S) e - Retenir la meilleure solution

Probl`me e Le nombre de solutions potentielles est ni mais gigantesque Esprance de vie du soleil e 5 milliards dannes < 258 secondes e

N. Brauner

323

Optimisation Combinatoire

Principe de Sous-optimalit e

Programmation Dynamique

Dominances

Challenge de loptimisation combinatoire


Comment trouver la meilleure solution sans parcourir toutes les solutions ? Utiliser la structure du probl`me e Enumration implicite : liminer a priori des solutions e e Dtecter que des solutions sont mauvaises ou irralisables e e sans les valuer explicitement. e Programmation dynamique : rduire lespace de recherche ` e a des sous-solutions optimales.

N. Brauner

324

Optimisation Combinatoire

Principe de Sous-optimalit e

Programmation Dynamique

Dominances

Plan

29

Optimisation Combinatoire

30

Principe de Sous-optimalit e

31

Programmation Dynamique

32

Dominances

N. Brauner

325

Optimisation Combinatoire

Principe de Sous-optimalit e

Programmation Dynamique

Dominances

Principe de sous-optimalit e
On veut rsoudre un probl`me P sur une instance I e e Structure spcique de P e Les morceaux dune solution optimale sont optimaux
P P1 P2 P
3

Le probl`me P se dcompose en sous-probl`mes P1 , . . . , Pk . e e e Loptimum sur P sobtient ` partir des optimaux des a sous-probl`mes. e

N. Brauner

326

Optimisation Combinatoire

Principe de Sous-optimalit e

Programmation Dynamique

Dominances

Principe de sous-optimalit e
Principe de sous-optimalit e Loptimum sur une instance I peut se construire ` partir de a solutions optimales sur des instances plus simples I1 , . . . , Ik OPT (I ) = f (OPT (I1 ), . . . , OPT (Ik )) On a une formulation rcursive de OPT (I ) e Il sut de calculer loptimum pour OPT (I1 ), . . . , OPT (Ik ) puis dappliquer f Chaque OPT (Ij ) sexprime ` son tour en fonction dinstances a plus simples Jusqu` obtenir une instance de base I directement calculable a

N. Brauner

327

Optimisation Combinatoire

Principe de Sous-optimalit e

Programmation Dynamique

Dominances

Calcul rcursif de loptimum e


I1 I I2 I3

N. Brauner

328

Optimisation Combinatoire

Principe de Sous-optimalit e

Programmation Dynamique

Dominances

Dcomposition en sous-probl`mes e e

Instance I ` rsoudre a e Partition des solutions selon lobjet 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. Brauner 329

Optimisation Combinatoire

Principe de Sous-optimalit e

Programmation Dynamique

Dominances

Dcomposition en sous-probl`mes e e

Deux sous-probl`mes ` rsoudre e a e Sur F : probl`me P restreint aux n 1 premiers objets e Sur F : galement restreint aux n 1 premiers objets e mais structure des solutions ralisables ? e
N. Brauner 330

Optimisation Combinatoire

Principe de Sous-optimalit e

Programmation Dynamique

Dominances

Dcomposition en sous-probl`mes e e

Dcrire F comme {S F|n S} est inecace e numration explicite de toutes les solutions e e F doit pouvoir tre dcrit comme un sous-probl`me de P e e e
N. Brauner 331

Optimisation Combinatoire

Principe de Sous-optimalit e

Programmation Dynamique

Dominances

Sac ` dos a
` Sac a dos Instance: n objets de poids wi et dutilit ui , un sac de taille e W. Solution: sous-ensemble S dobjets tel que w (S) W . Critere: lutilit totale u(S) des objets e

Quel est loptimum de OPT (I ) par rapport ` lobjet n ? a Comment crire le principe de sous-optimalit ? e e

N. Brauner

332

Optimisation Combinatoire

Principe de Sous-optimalit e

Programmation Dynamique

Dominances

Paramtrisation e
Principe de sous-optimalit : les probl`mes qui apparaissent dans la e e dcomposition correspondent au probl`me initial sur des instances e e plus simples Instance I pour un sous-probl`me e I di`re de I par certains param`tres (entiers) p1 , . . . , pl e e Pour le Sac ` dos : les objets considrs et la taille du sac a ee On dcrit I par la valeur de ses param`tres (x1 , . . . , xl ) e e Dnition e On appelle tat le vecteur de param`tres (x1 , . . . , xl ) dcrivant une e e e sous-instance.

N. Brauner

333

Optimisation Combinatoire

Principe de Sous-optimalit e

Programmation Dynamique

Dominances

Graphe dEtat
Vecteur de param`tres (x1 , . . . , xl ) : tat e e Dpendance entre les instances (calcul de f ) e
parametre 2

I
3 2 1 0 0 1 2 3 4 5 6 parametre 1

N. Brauner

334

Optimisation Combinatoire

Principe de Sous-optimalit e

Programmation Dynamique

Dominances

Plan

29

Optimisation Combinatoire

30

Principe de Sous-optimalit e

31

Programmation Dynamique

32

Dominances

N. Brauner

335

Optimisation Combinatoire

Principe de Sous-optimalit e

Programmation Dynamique

Dominances

Programmation Dynamique
` Sac a dos Instance: n objets de poids wi et dutilit ui , un sac de taille e W. Solution: sous-ensemble S dobjets tel que w (S) W . Critere: lutilit totale u(S) des objets e

Dessinez le graphe dtat pour 4 objets de poids 1 et un sac e de capacit 3. e Que remarque-t-on ?

N. Brauner

336

Optimisation Combinatoire

Principe de Sous-optimalit e

Programmation Dynamique

Dominances

Programmation Dynamique
Un tat peut tre calcul un tr`s grand nombre de fois e e e e Ide : on drcursive e ee On mmorise les tats au lieu de les recalculer e e Il sut de parcourir les tats dans un ordre topologique e inverse du graphe dtat e Evaluer les tats de base OPT [0, . . . , 0]. e Parcourir les tats jusqu` X e a
Pour chaque tat X , dpendant de e e X1 , . . . , Xk dj` valus, mmoriser eae e e OPT [X ] = f (OPT [X1 ], . . . , OPT [Xk ))

Retourner OPT [X ]
N. Brauner 337

Optimisation Combinatoire

Principe de Sous-optimalit e

Programmation Dynamique

Dominances

Sac ` dos a
Sac ` dos de taille 7, avec 4 objets a valeurs des objets 2 poids des objets 2 4 3 5 4 6 5

Calculer le tableau OPT

N. Brauner

338

Optimisation Combinatoire

Principe de Sous-optimalit e

Programmation Dynamique

Dominances

Ecacit e
Quel est le temps de rsolution ? e Dpend e
du nombre dtats e du temps t pour valuer la fonction f en chaque tat. e e

Le temps de rsolution est alors e t(x1 , . . . , xl )


(x1 ,...,xl )Etats

Souvent on a une borne uniforme sur t(x1 , . . . , xl ) T Le temps de rsolution est major par e e T #Etats

N. Brauner

339

Optimisation Combinatoire

Principe de Sous-optimalit e

Programmation Dynamique

Dominances

Sac ` dos a
Temps de rsolution du sac ` dos e a Quel est le temps pour valuer un tat (i, w ) ? e e Quel est le nombre dtats ? e

N. Brauner

340

Optimisation Combinatoire

Principe de Sous-optimalit e

Programmation Dynamique

Dominances

Calcul dune solution optimale


La programmation dynamique fournit OPT (I ) Comment obtenir une solution S ? Conserver des pointeurs dans le tableau : chemin dans le graphe dtat e Mthode de Backtracking e Les 2 mthodes consistent ` remonter le calcul de OPT (I ) e a Donner une solution optimale pour le sac ` dos ` partir du a a tableau OPT de la programmation dynamique

N. Brauner

341

Optimisation Combinatoire

Principe de Sous-optimalit e

Programmation Dynamique

Dominances

Plan

29

Optimisation Combinatoire

30

Principe de Sous-optimalit e

31

Programmation Dynamique

32

Dominances

N. Brauner

342

Optimisation Combinatoire

Principe de Sous-optimalit e

Programmation Dynamique

Dominances

Dimensionnement de lots
Une demande journali`re dt sur un horizon T e Cot de production pt (x) = ft + at x u Cot de stockage unitaire ht (par jour par unit) u e Quel plan de production choisir pour minimiser les cots ? u Comment dcrire une solution ? e

N. Brauner

343

Optimisation Combinatoire

Principe de Sous-optimalit e

Programmation Dynamique

Dominances

Dimensionnement de lots

demande

production

stock
N. Brauner 344

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`tres sont ncessaires ? e e Quel est le temps de rsolution ? e

N. Brauner

345

Optimisation Combinatoire

Principe de Sous-optimalit e

Programmation Dynamique

Dominances

Dominance
Denition (Dominance) Une dominance est une proprit D vrie par au moins une ee e e solution optimale.

Proprit D

Solutions ralisables

Solutions optimales

N. Brauner

346

Optimisation Combinatoire

Principe de Sous-optimalit e

Programmation Dynamique

Dominances

Dimensionnement de lots
Politiques ZIO Une politique ZIO consiste ` ne produire que si le stock est vide a si It > 0, alors xt = 0 Si pour chaque instant at + ht at+1 , alors les politiques ZIO sont dominantes Argument dchange e On consid`re un planning (optimal) qui ne vrie pas la e e dominance On montre quon peut le modier en prservant lobjectif e

N. Brauner

347

Optimisation Combinatoire

Principe de Sous-optimalit e

Programmation Dynamique

Dominances

Algorithme de Wagner & Within


Exprimer un principe de sous-optimalit en utilisant la e dominance Quel est maintenant le temps de rsolution ? e

N. Brauner

348

Optimisation Combinatoire

Principe de Sous-optimalit e

Programmation Dynamique

Dominances

Bilan de la programmation dynamique


Paradigme pouvant tre tr`s ecace e e Pas de condition sur la forme de la fonction objectif... . . .mais la proprit de sous-optimalit doit tre vrie ee e e e e Gourmand en mmoire e Devient inoprant si lespace des tats est grand e e Ncessit de trouver des dominances pour le rduire e e e

N. Brauner

349

Mthodologie et tudes de cas e e

Mthodologie e

Dcoupe de rouleaux e

Charbon

Localisation

Planication dexpriences e

Plan

33

Mthodologie e Dcoupe de rouleaux e Charbon Localisation Planication dexpriences e

34

35

36

37

N. Brauner

351

Mthodologie e

Dcoupe de rouleaux e

Charbon

Localisation

Planication dexpriences e

Plan

33

Mthodologie e Dcoupe de rouleaux e Charbon Localisation Planication dexpriences e

34

35

36

37

N. Brauner

352

Mthodologie e

Dcoupe de rouleaux e

Charbon

Localisation

Planication dexpriences e

Mthodologie e
Face ` un probl`me pratique de dcision : a e e Comprendre le probl`me e En dgager les aspects mathmatiques e e Reconna un type de probl`me classique tre e
informs http ://www2.informs.org/Resources/ wikipedia (portail RO fait et corrig par des chercheurs) e

N. Brauner

353

Mthodologie e

Dcoupe de rouleaux e

Charbon

Localisation

Planication dexpriences e

Mthodologie e

Analyser la complexit e
que peut-on esprer pour le temps de rsolution imparti ? e e solution exacte, approche, avec performance... e probl`mes NP-complets e
http ://www.nada.kth.se/viggo/problemlist/

ordonnancement
http ://www.mathematik.uni-osnabrueck.de/ research/OR/class/
N. Brauner 354

Mthodologie e

Dcoupe de rouleaux e

Charbon

Localisation

Planication dexpriences e

Mthodologie e
Proposer une formulation
graphes, programmation linaire, PPC... e

Implmenter une solution e


solveurs, librairies, algorithmes connus, heuristiques, mtaheuristiques, programmation dynamique, e programme ad hoc

Analyser et interprter les rsultats e e Valider par rapport ` la demande initiale a Itrer avec le demandeur si ncessaire e e

N. Brauner

355

Mthodologie e

Dcoupe de rouleaux e

Charbon

Localisation

Planication dexpriences e

Plan

33

Mthodologie e Dcoupe de rouleaux e Charbon Localisation Planication dexpriences e

34

35

36

37

N. Brauner

356

Mthodologie e

Dcoupe de rouleaux e

Charbon

Localisation

Planication dexpriences e

Dcoupe e
Rouleaux de papier de longueur standard 180 cm Couteaux de dcoupe (nombre et position arbitraires) e Couper des rouleaux de mme diam`tre e e Liste des commandes pour la prochaine priode e longueur 80 45 27 nombre de rouleaux 200 120 130

Trouver les schmas de dcoupe qui minimisent la perte e e

N. Brauner

357

Mthodologie e

Dcoupe de rouleaux e

Charbon

Localisation

Planication dexpriences e

Dcoupe e
Etapes de la rsolution e Solution manuelle Borne infrieure e Schmas de dcoupe e e Variables et contraintes Fonction objectif 1, rsolution et analyse e Fonction objectif 2, interprtation et rsolution e e . . . et la contrainte dintgralit ? e e

N. Brauner

358

Mthodologie e

Dcoupe de rouleaux e

Charbon

Localisation

Planication dexpriences e

Plan

33

Mthodologie e Dcoupe de rouleaux e Charbon Localisation Planication dexpriences e

34

35

36

37

N. Brauner

359

Mthodologie e

Dcoupe de rouleaux e

Charbon

Localisation

Planication dexpriences e

Fabrication de charbon
On mlange des charbons dans un haut fourneau o` ensuite, une e u raction ` haute temprature produit le coke. Il y a 8 charbons e a e disponibles. Ces charbons sont entrs par des bandes porteuses e qui sont au nombre de 4 (au maximum 4 charbons dirents e dans le mlange). Si un charbon est dans le mlange, il doit e e ltre ` hauteur de minimum 5%. On exige que la teneur du e a mlange en Silicium soit dau plus 1,8 %. Le tableau suivant e reprend les prix et teneur en Si des charbons. Charbon Prix Teneur Si Charbon Prix Teneur Si Charbon 1 12 2% Charbon 5 13 1% Charbon 2 14 2,5 % Charbon 6 9 5% Charbon 3 17 1% Charbon 7 15 2% Charbon 4 10 5% Charbon 8 11 1,5 % On veut dterminer un mlange qui est de cot minimum. e e u (exo de D. de Wolf) N. Brauner
360

Mthodologie e

Dcoupe de rouleaux e

Charbon

Localisation

Planication dexpriences e

Plan

33

Mthodologie e Dcoupe de rouleaux e Charbon Localisation Planication dexpriences e

34

35

36

37

N. Brauner

361

Mthodologie e

Dcoupe de rouleaux e

Charbon

Localisation

Planication dexpriences e

Approvisionnement des stations service


Une compagnie ptroli`re souhaite dterminer les emplacements e e e possibles pour ses dpts (destins ` fournir ses stations e o e a service). Les stations service sont au nombre de n et on a m dpts. On a un seul produit. e o cij : cot unitaire de transport entre un dpt i et la station u e o service j fi : cot xe douverture du dpt i u e o si : capacit du dpt i e e o dj : demande de la station service j (peut tre satisfaite par e plusieurs dpts) e o Dterminer les emplacements des stations services qui e permettent de minimiser les cots pour les donnes suivantes. u e

N. Brauner

362

Mthodologie e

Dcoupe de rouleaux e

Charbon

Localisation

Planication dexpriences e

Approvisionnement des stations service


6 dpts possibles, 7 stations services e o dpt e o A B C D E F cot ouverture u 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

363

Mthodologie e

Dcoupe de rouleaux e

Charbon

Localisation

Planication dexpriences e

Approvisionnement des stations service


Cots de transport u 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. Brauner

364

Mthodologie e

Dcoupe de rouleaux e

Charbon

Localisation

Planication dexpriences e

Plan

33

Mthodologie e Dcoupe de rouleaux e Charbon Localisation Planication dexpriences e

34

35

36

37

N. Brauner

365

Mthodologie e

Dcoupe de rouleaux e

Charbon

Localisation

Planication dexpriences e

Planication dexpriences e
Dans une industrie chimique, une phase amont teste dirents e produits de synth`se pour dterminer les meilleures e e compositions. Les ractions se font ` temprature leve dans un four de e a e e e cuisson Le process : Remplissage 1/2 journe e Cuisson de 3 ` 14 jours a Filtrage 2 jours

N. Brauner

366

Mthodologie e

Dcoupe de rouleaux e

Charbon

Localisation

Planication dexpriences e

Cuisson
Un robot a t achet pour automatiser la cuisson ee e Chaque exprience est charge dans une barre de cuisson e e

On dispose de 8 barres de cuisson Le robot peut traiter les 8 barres simultanment e La temprature et la dure de chaque barre est programmable. e e

N. Brauner

367

Mthodologie e

Dcoupe de rouleaux e

Charbon

Localisation

Planication dexpriences e

Remplissage
Cette tape correspond e A la prparation dune barre de cuisson e Au mlange des dirents constituants e e Pour la raliser, 3 postes de travail ont t installs, e ee e chacun pouvant traiter une barre. Un oprateur est requis pour surveiller le droulement des e e oprations. e

N. Brauner

368

Mthodologie e

Dcoupe de rouleaux e

Charbon

Localisation

Planication dexpriences e

Filtrage
Cette tape correspond e A lanalyse des rsultats de lexprience e e Elle est ralise de mani`re semi-automatique e e e Un oprateur doit surveiller le droulement des analyses e e Les 8 barres de cuisson peuvent tre analyses simultanment e e e

N. Brauner

369

Mthodologie e

Dcoupe de rouleaux e

Charbon

Localisation

Planication dexpriences e

Oprateur e
La prsence dun chimiste quali est requise e e Pendant le remplissage Pendant le ltrage Au dmarrage de la cuisson (programmation du robot) e A la n de la cuisson lancer le ltrage pour arrter la raction e e le ltrage peut ensuite tre interrompu e Seule la cuisson peut tre ralise sans la prsence du e e e e chimiste

N. Brauner

370

Mthodologie e

Dcoupe de rouleaux e

Charbon

Localisation

Planication dexpriences e

Disponibilits e
Le planning des absences du chimiste est connu ` lavance a (week-end, congs, autres obligations) e

L M M matin apresmidi

J V S

D L

J V S

D L

V S matin apresmidi

D L M M J

S D

L M

N. Brauner

371

Mthodologie e

Dcoupe de rouleaux e

Charbon

Localisation

Planication dexpriences e

Les buts de lindustriels


Planier les expriences ` eectuer sur un horizon de lordre de 1 e a mois an de Maximiser lutilisation du robot (investissement important) Finir au plus tt pour obtenir les rsultats des tests o e De nouvelles expriences sont ` planier chaque mois e a

N. Brauner

372

Mthodologie e

Dcoupe de rouleaux e

Charbon

Localisation

Planication dexpriences e

Jeu de donnes e
Vous devez planier 17 expriences e 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 disponibilits de loprateur e e
L M M semaine 1 semaine 2 semaine 3 semaine 4 semaine 5 J V S D

N. Brauner

373

Vous aimerez peut-être aussi