Chapitre 6 : Programmation linéaire en nombres entiers



Documents pareils
Programmation linéaire

Chapitre 5 : Flot maximal dans un graphe

Programmation linéaire

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Cours de Master Recherche

Nouvelles propositions pour la résolution exacte du problème de sac à dos bi-objectif unidimensionnel en variables binaires

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Optimisation Discrète

Journées Télécom-UPS «Le numérique pour tous» David A. Madore. 29 mai 2015

Programmation Linéaire - Cours 1

Exercices du Cours de la programmation linéaire donné par le Dr. Ali DERBALA

Programmation linéaire et Optimisation. Didier Smets

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

Plus courts chemins, programmation dynamique

Chp. 4. Minimisation d une fonction d une variable

Optimisation des fonctions de plusieurs variables

Cours de recherche opérationnelle I

Cours 02 : Problème général de la programmation linéaire

Cours de Recherche Opérationnelle IUT d Orsay. Nicolas M. THIÉRY. address: Nicolas.Thiery@u-psud.fr URL:

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires

Application de K-means à la définition du nombre de VM optimal dans un cloud

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Jean-Philippe Préaux

Sujet 4: Programmation stochastique propriétés de fonction de recours

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable T : pour travailler et mémoriser le cours

RECHERCHE OPERATIONNELLE

Feuille TD n 1 Exercices d algorithmique éléments de correction

Cours d analyse numérique SMI-S4

Résolution du RCPSP avec production et consommation de ressources : modèles PLNE basés sur les événements

Cours des Méthodes de Résolution Exactes Heuristiques et Métaheuristiques

Intégration et probabilités TD1 Espaces mesurés

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

3 Approximation de solutions d équations

Probabilités sur un univers fini

Théorèmes de Point Fixe et Applications 1

Calcul différentiel sur R n Première partie

OUTILS EN INFORMATIQUE

Une forme générale de la conjecture abc

Chapitre 3. Les distributions à deux variables

INFO-F Algorithmique 3 et Recherche Opérationnelle

Annexe 6. Notions d ordonnancement.

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

Une introduction aux codes correcteurs quantiques

Excel Avancé. Plan. Outils de résolution. Interactivité dans les feuilles. Outils de simulation. La valeur cible Le solveur

Eteindre. les. lumières MATH EN JEAN Mme BACHOC. Elèves de seconde, première et terminale scientifiques :

Intelligence Artificielle Planification

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Image d un intervalle par une fonction continue

Intégration et probabilités TD1 Espaces mesurés Corrigé

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

FORD C-MAX + FORD GRAND C-MAX CMAX_Main_Cover_2013_V3.indd /08/ :12

Le théorème de Perron-Frobenius, les chaines de Markov et un célèbre moteur de recherche

CCP PSI Mathématiques 1 : un corrigé

Résolution d équations non linéaires

Polynômes à plusieurs variables. Résultant

La classification automatique de données quantitatives

Conception de réseaux de télécommunications : optimisation et expérimentations

Fonctions de plusieurs variables

Résolution de systèmes linéaires par des méthodes directes

Limites finies en un point

CHAPITRE V SYSTEMES DIFFERENTIELS LINEAIRES A COEFFICIENTS CONSTANTS DU PREMIER ORDRE. EQUATIONS DIFFERENTIELLES.

Représentation des Nombres

TD1 PROPAGATION DANS UN MILIEU PRESENTANT UN GRADIENT D'INDICE

Première partie. Préliminaires : noyaux itérés. MPSI B 6 juin 2015

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

Séminaire TEST. 1 Présentation du sujet. October 18th, 2013

chapitre 4 Nombres de Catalan

Info0804. Cours 6. Optimisation combinatoire : Applications et compléments

Comparaison de fonctions Développements limités. Chapitre 10

Prudence, Epargne et Risques de Soins de Santé Christophe Courbage

Nombre de marches Nombre de facons de les monter

Programmation mathématique Discrète et Modèles Linéaires

Cours de Probabilités et de Statistique

Objectifs. Clustering. Principe. Applications. Applications. Cartes de crédits. Remarques. Biologie, Génomique

Chapitre 2. Eléments pour comprendre un énoncé

Cours Optimisation Partie Optimisation Combinatoire. Année scolaire Gérard Verfaillie ONERA/DCSD/CD, Toulouse

Feuille d exercices 2 : Espaces probabilisés

Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin.

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé

par Denis-Charles Cisinski & Georges Maltsiniotis

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,

Le produit semi-direct

Laboratoire d Automatique et Productique Université de Batna, Algérie

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Modélisation de bases de données : Le modèle relationnel

TRACER LE GRAPHE D'UNE FONCTION

Correction du baccalauréat ES/L Métropole 20 juin 2014

Problème 1 : applications du plan affine

MATHÉMATIQUES DISCRÈTES (4) CRYPTOGRAPHIE CLASSIQUE

LES MÉTHODES DE POINT INTÉRIEUR 1

I. Polynômes de Tchebychev

Analyse en Composantes Principales

Théorème du point fixe - Théorème de l inversion locale

Développement décimal d un réel

Eléments de Théorie des Graphes et Programmation Linéaire

Bac Blanc Terminale ES - Février 2011 Épreuve de Mathématiques (durée 3 heures)

EXERCICE 4 (7 points ) (Commun à tous les candidats)

FIMA, 7 juillet 2005

Transcription:

Graphes et RO TELECOM Nancy 2A Chapitre 6 : Programmation linéaire en nombres entiers J.-F. Scheid 1

Plan du chapitre I. Introduction et exemples II. Solutions optimales à valeurs entières III. Procédures de Séparation et d Evaluation ("Branch and Bound") 1 Programmation linéaire en variables binaires 2 Programmation linéaire en nombres entiers (PLNE) à valeurs bornées IV. Introduction aux méthodes des coupes pour les PLNE 2

I. Introduction et exemples PL en nombres entiers déjà rencontrés : pb d affectation, pb de flot maximal, pb de production en nb entiers Le caractère entier de la solution résulte directement de la structure du programme et plus précisément des propriétés de la matrice A des contraintes (Ax b). Pour certains problèmes où on cherche une solution optimale entière (par ex. quantité entière de produit...), il faut inclure la contrainte de nombres entiers dans le programme, sans quoi la solution optimale n est pas entière (pb de sac à dos, pb de remplissage) 3

Exemple 1. Problème de sac à dos (knapsack) Un randonneur emporte dans son sac à dos un poids limité à P. Chaque objet i qu il peut emporter pèse un poids p i et possède une utilité c i pour la randonnée. Quels objets le randonneur doit-il emporter pour maximiser l utilité totale, sans dépasser le poids total permis? 4

Modélisation du problème de sac à dos n objets de poids p i et d utilité c i { 1 si le randonneur prend l objet i Variables x i = 0 sinon Problème de sac à dos max x [ F (x) = ] n c i x i i=1 maximisation de l utilité totale n p i x i P limitation du poids total i=1 x i {0, 1} 5

Exemple 2. Problème de remplissage (généralisation) On veut remplir la cale d un bateau, d un entrepôt... limité en poids (P) et volume (V ). n objets de poids p i, de volume v i et d utilité c i. Variables x i = quantité de l objet i avec x i {0,, m}. Problème de remplissage max x [ F (x) = ] n c i x i i=1 maximisation de l utilité totale n p i x i P limitation du poids total i=1 n v i x i V limitation du volume total i=1 x i {0,, m} 6

Remarques. Pb de sac à dos et remplissage = pbs typiques de programmation linéaire en nombres entiers (PLNE). Mais, il ne s agit plus strictement de programmation linéaire car l ensemble des solutions réalisables n est plus un polyèdre mais un ensemble discret de points. 7

II. Solutions optimales à valeurs entières PL sous forme standard (PL) [ ] max F (x) = c x x R n Ax = b x 0 où A matrice m n à coefficients entiers. Les vecteurs c et b sont entiers. En général, la solution optimale de (PL) n est pas entière. On cherche une condition suffisante sur la matrice A pour que la solution optimale soit entière. 8

Définition Une matrice A de taille m n est dite totalement unimodulaire si toute sous-matrice carrée de A a un déterminant qui vaut 0, +1 ou 1. Une sous-matrice est une matrice obtenue à partir d une matrice en ne gardant que certaines lignes ou colonnes. Remarque. Toute matrice totalement unimodulaire est nécessairement composée de 0, +1 ou 1. Théorème Soit A une matrice totalement unimodulaire et b et c des vecteurs entiers. Si (PL) admet une solution optimale, il admet une solution optimale entière. Remarque. Le résultat est encore vrai si (PL) est écrit sous forme canonique pure avec des contraintes inégalités de la forme Ax b où A est totalement unimodulaire. 9

Comment reconnaître une matrice totalement unimodulaire? Proposition (Condition suffisante) Soit A une matrice contenant seulement les éléments 0, +1 ou 1 et qui satisfait les 2 conditions suivantes : 1 Chaque colonne contient au plus 2 éléments non-nuls. 2 Les lignes de A peuvent être partitionnées en 2 sous-ensembles I 1 et I 2 tels que pour chaque colonne contenant 2 éléments non-nuls : si les 2 éléments non-nuls ont le même signe alors l un est dans I 1 et l autre dans I 2. si les 2 éléments non-nuls sont de signes différents alors ils sont tous les deux dans I 1 ou tous les deux dans I 2. Alors A est totalement unimodulaire. 10

Applications : Problème d affectation : répartition de tâches (cf. TD) : n tâches à réaliser sur m machines en minimisant le coût total. Données : coût c ij de la tâche i effectuée sur la machine j. Variables : { 1 si la tâche i est effectuée par la machine j, x ij = 0 sinon Contraintes : chaque tâche est exécutée une et une seule fois. chaque machine ne peut pas exécuter plus de p tâches (p n). 11

Programme linéaire : n m min c ij x ij i=1 j=1 m i, x ij = 1 j=1 n j, x ij p i=1 i, j, x ij 0 Forme matricielle sans contrainte d intégrité sur les variables : x = (x 11,, x n1 x 12,, x n2 x 1n,, x nm ) R n m min F (x) = c x Ax = b Bx p x 0 12

La matrice A est de taille n nm : A = 1 1 1......... 1 1 1 La matrice B est de taille m nm : 1 1 0 0 0 1 1 0 B =... 0 0 1 1 13

Les contraintes s écrivent A ( ) A 0 A = B I d = ( ) x = e ( ) b avec p 1 1 1......... 0 1 1 1 1 1 0 0 1...... 0 0 1 1 1 I 1 I 2 A est totalement unimodulaire donc x est entier. 14

Problème de flot maximal dans un graphe max [F = v] f,v Af + v = 0 f c f 0 A est la matrice d incidence du graphe, de taille n m. A est totalement unimodulaire si c est entier alors f est entier. 15

Remarque. Dans les pb de sac à dos/ remplissage, la solution optimale n est pas entière en général. il faut rajouter la contrainte d intégrité dans le problème. 16

III. Procédures de Séparation et d Evaluation (Branch and Bound) 1) Programmation linéaire en variables binaires a) Cas des coefficients positifs Problème de sac à dos avec a i et c i positifs ou nuls. [ max F (x) = x n a i x i d i=1 x i {0, 1} ] n c i x i 2 n cas à examiner a priori. On réduit ce nombre en procédant par "Séparation et Evaluation" (Branch and Bound). i=1 17

Principe des Procédures de Séparation et Evaluation (PSE) Séparation L examen d un objet (le prendre ou le laisser) sépare l ensemble des solutions possibles en 2. Développement d une arborescence dont chaque sommet correspond à un sous-ensemble de solutions réalisables. La racine de l arborescence représente l ensemble de toutes les solutions réalisables. 18

x = 1 i x = 0 i 19

Evaluation Estimation principale. Pour chaque sommet S k, on évalue une valeur b k qui est un majorant de la meilleure solution correspondant à S k (un minorant si on a un "min"). Si b k < F où F est la valeur de F pour une solution réalisable connue, alors le sommet S k n est pas exploré : S k ne peut pas contenir une meilleure solution que celle déjà obtenue (b k < F max F ). Initialement, pour le sommet S 0, on choisit b 0 = n i=1 c i (correspond à prendre x 1 = x 2 = = x n = 1 dans F ) 20

Estimation secondaire. Pour éviter de construire des sommets S k qui n ont pas de solution réalisable, on évalue une valeur secondaire e k associée à la contrainte et à S k. L estimation e k est un majorant de la variable d écart pour le sous-ensemble S k des solutions réalisables. Si e k < 0 alors le sommet S k n est pas construit. Initialement, pour le sommet S 0, on choisit e 0 = d (d : second membre) (correspond à prendre x 1 = x 2 = = x n = 0 dans les contraintes) 21

Calcul des estimations b k et e k Examen de la variable x i correspondant au sommet S k. b k S k+1 x = 1 X X 1 b e i S k+1 k+1 k+2 k+2 k X X e k x = 0 i X = 0 ou 1 : variable non encore identifiée S k+2 X X 0 b e Mise à jour des estimations principale et secondaire b k+1 = b k e k+1 = e k a i b k+2 = b k c i e k+2 = e k Stratégie de parcours : on explore en priorité le sommet S k qui a la meilleure estimation principale b k. 22

Détermination de F : valeur de F pour une solution réalisable connue. Deux façons de construire une solution réalisable 1 On renumérote les variables par leurs coefficients dans F décroissants : c 1 c 2 c n. On regarde si on peut donner la valeur x 1 = 1 puis on examine x 2, etc... on obtient la valeur F 1 2 On renumérote les variables par les coefficients c i a i décroissants : cn a n. c 1 a 1 c 2 a 2 On regarde si on peut donner la valeur x 1 = 1 puis on examine x 2, etc... on obtient la valeur F 2 On choisit F = max(f 1, F 2 ) 23

Exemple max [F (x) = 16x 1 + 18x 2 + 15x 3 ] x x 1 + 4x 2 + 3x 3 7 x i {0, 1} Estimations initiales : b 0 = c 1 + c 2 + c 3 = 49 ; e 0 = 7. Détermination de F i 1 2 3 c i 16 18 15 c i /a i 16 4,5 5 Calcul de F 1 : on examine d abord x 2 : x 2 = 1 ; puis x 1 = 1 et enfin x 3 = 0 F 1 = 34 Calcul de F 2 : on examine d abord x 1 : x 1 = 1 ; puis x 3 = 1 et enfin x 2 = 0 F 2 = 31 On choisit F = max(f 1, F 2 ) = 34. 24

On obtient max F = 34 avec x 1 = 1, x 2 = 1, x 3 = 0. 25 S 5 impossible car e 5< 0 S 3 b 3 =49 e 3 =2 S 1 b 0 x = 1 S 0 =49 e 0 =7 1 1 x = 0 S 2 1 0 b =49 =6 b 2 =33 e 2 =7 1 e 1 x = 1 x = 0 2 2 S 4 1 1 1 0 x = 1 x = 0 3 3 S 6 1 1 0 b =34 e =2 6 6 b 4 =31 e =6 arret car b < F =34 4 4 arret car b < F =34 2

b) Cas général : cas où les coefficients ne sont plus nécessairement positifs. S il existe des coefficients c i négatifs, on se ramène au cas des coeff. positifs par un changement de variables : Si c k < 0 alors on pose On obtient alors y k = 1 x k {0, 1} F (x) = c l x l + c k x k = c l x l + ( c k )y k + c k l tq k tq l tq k tq k tq c l >0 c k <0 c l >0 c k <0 c k <0 De même n i=1 a i x i = a l x l + a k x k = a l x l + ( a k )y k + a k l tq k tq l tq k tq k tq c l >0 c k <0 c l >0 c k <0 c k <0 26

Si c l > 0, alors on pose Si c k < 0, alors on pose c l = c l > 0, a l = a l, x l = x l c k = c k> 0, a k = a k, x k = y k F (x ) = n c i x i + k tq i=1 n a i x i = i=1 n i=1 c k <0 c k a ix i + a k k tq c k <0 27

Le problème du sac à dos est équivalent à [ ] n max F (x ) = c x i x i i=1 n a ix i d = d a k i=1 k tq c k <0 x i {0, 1} On a c i > 0 mais a i de signe quelconque. On procède donc comme pour le cas des coefficients positifs sauf pour les estimations secondaires e k (variables d écart). 28

On note I + (resp. I ) l ensemble des indices i tels que a i > 0 (resp. a i < 0). On a e = d n a ix i = d a i x i }{{} i I <0 j I + } {{ } =ẽ i=1 a j }{{} >0 x j e ẽ = d i I a ix i On prend comme estimations secondaires les majorants ẽ de la variable d écart e avec : n b 0 = i=1 c i ẽ 0 = d i I a i 29

Calcul des estimations b k et ẽ k Examen de la variable x i correspondant au sommet S k. b k S k+1 x = 1 X X 1 b ~ e i S k+1 k+1 k+2 k+2 k X X ~ e k x = 0 i X = 0 ou 1 : variable non encore identifiée S k+2 X X 0 b ~ e Mise à jour des estimations principale et secondaire b k+1 = b k ẽ k+1 = { ẽ k a i si a i > 0 ẽ k si a i 0 b k+2 = b k c i ẽ k+2 = { ẽ k si a i > 0 ẽ k + a i si a i 0 30

Exemple On pose y 2 = x 2 = 1 x 2. max [F (x) = 12x 1 8x 2 + 4x 3 ] x 4x 1 + 2x 2 x 3 5 x i {0, 1} Problème équivalent (x 1 = x 1, x 3 = x 3) : [ max F (x ) = 12x x 1 + 8x 2 + 4x ] 3 4x 1 2x 2 x 3 3 x i {0, 1} Estimations initiales : b 0 = c 1 + c 2 + c 3 = 12 + 8 + 4 = 24 ; ẽ 0 = d (a 2 + a 3 ) = 3 + 2 + 1 = 6 (a 2, a 3 < 0) Détermination de F par coefficients c i décroissants : on examine d abord x 1 : x 1 = 1 ; puis x 2 = 1 et enfin x 3 = 1 F = 24 31

6 6 S 0 ~ b 0 =24 e 0 =6 S x 1 1= 1 x 1= 0 S 2 1 0 b =24 ~ 1 e 1 =2 b 2 =12 ~ e 2 =6 S 3 x 2= 1 x 2= 0 S arret car b 2< F =24 4 1 1 1 0 b 3 =24 ~ e 3 =2 b 4 =16 ~ e 4 =0 x 3= 1 x 3= 0 arret car ~ e =0 4 S 5 S 6 1 1 1 1 1 0 b 5 =24 ~ e 5 =2 b =20~ e =1 On obtient max F = 24 avec x 1 = 1, x 2 = 1, x 3 = 1. Retour au pb initial : x1 = 1, x 2 = 0, x 3 = 1 et max F = 16. 32

c) Problème de sac à dos généralisé (pb de remplissage) n max F (x) = c j x j x j=1 n a ij x j d i i = 1,, m j=1 x j {0, 1} j = 1,, n Même façon de procéder que dans le cas d une seule contrainte. A chaque étape k, il y a maintenant m évaluations secondaires e k,1,, e k,m correspondant à chacune des contraintes. 33

2) PL en nombres entiers à valeurs bornées. On suppose que les variables sont à valeurs entières bornées et qu on connait les bornes. Par exemple, les variables x j du problème de sac à dos sont telles que x j {0, 1,, m j } On utilise les PSE en considérant des séparations possibles en (m j + 1) sous-ensembles pour l examen de la variable x j. Remarque. On a intérêt à séparer en dernier les variables avec une valeur m j grande. 34

IV. Introduction aux méthodes de coupes Programmation linéaire en nombres entiers (cas général) [ ] max F (x) = c x x (PLNE) Ax b x 0 x entier Principe général des méthodes de coupes. Il s agit de méthodes itératives. A chaque itération : 1 on résout un (PL) sans contrainte d intégrité sur les variables (simplexe). On obtient une solution optimale qui n est pas nécessairement entière (sinon, c est gagné...). 2 on rajoute une contrainte supplémentaire qui va éliminer la solution non-entière obtenue précédemment, mais sans éliminer de solution entière au problème de départ (PLNE). Cette contrainte supplémentaire s appelle une coupe. 3 on recommence jusqu à obtenir une solution entière. 35

Différentes coupes possibles. 1) Coupes entières 1 On commence par résoudre le problème sans la contrainte d intégrité sur les variables : relaxation linéaire de (PLNE). On note ce problème (P 0 ). On obtient (ou pas...) une solution optimale x qui n est pas nécessairement entière. 36

2 Supposons qu il existe une composante x k non-entière. Pour obliger la variable x k à être entière, on sépare l ensemble des solutions en 2 sous-ensembles disjoints : : partie entière {x k x k } et {x k x k + 1} 3 On résout alors 2 problèmes (P 1 ) et (P 2 ) avec les contraintes supplémentaires issues de la séparation : [ ] max F (x) = c x x (P 1 ) Ax b x k x k x 0 et même chose pour (P 2 ) avec la contrainte x k xk + 1 à la place. 37

On itère jusqu à obtenir des variables entières. ( P ) x <[x l * ] x >[x ] +1 k k k * k ( P ) ( ) l+1 P l+2.. 38

2) Coupes de Gomory (PLNE) [ ] max F (x) = c x x Ax b x 0 x entier (x N n ) Idée : On remplace les contraintes dans (PLNE) par d autres contraintes linéaires (les coupes) qui correspondent à l enveloppe convexe des variables entières se trouvant à l intérieur du polyèdre {x R n Ax b, x 0}. 39

3 2 1 0 1 2 3 4 6 5 40

Remarque : On peut combiner l ajout des contraintes (les coupes) et la séparation/évaluation (Branch-and-bound) des solutions. On obtient des méthodes de type Branch-and-cut. La plupart des solveurs modernes utilisent des méthodes Branch-and-cut. 41

Quelques solveurs PLNE CPLEX (IBM ILOG). Code commercial mais licence éducation gratuite. GLPK (GNU Linear Programming Kit) COIN-OR (COmputational INfrastructure for Operations Research), Logiciel OpenSource. KNITRO. Code commercial. Xpress Optimizer. Code commercial, version bridée gratuite. Services en ligne AMPL (Automatic Mathematical Programming Language) ; version bridée gratuite (nb variables 300) NEOS Solvers 42