Programmation linéaire en nombres entiers : les méthodes de troncature

Documents pareils
Optimisation Discrète

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

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

Programmation linéaire

Travaux dirigés n 1. Programmation linéaire

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

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

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

Programmation linéaire et Optimisation. Didier Smets

Pourquoi l apprentissage?

Algorithmes de recherche

Programmation Linéaire - Cours 1

LE PROBLEME DU PLUS COURT CHEMIN

Programmation linéaire

LES MÉTHODES DE POINT INTÉRIEUR 1

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/ Présentation. 1.2 Ressources

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Raisonnement par récurrence Suites numériques

RÉSOLUTION DE SYSTÈMES À DEUX INCONNUES

Dualité dans les espaces de Lebesgue et mesures de Radon finies

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Chapitre 5 : Flot maximal dans un graphe

RECHERCHE OPERATIONNELLE

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Série TD 3. Exercice 4.1. Exercice 4.2 Cet algorithme est destiné à prédire l'avenir, et il doit être infaillible! Exercice 4.3. Exercice 4.

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Suites numériques 3. 1 Convergence et limite d une suite

Ordonnancement. N: nains de jardin. X: peinture extérieure. E: électricité T: toit. M: murs. F: fondations CHAPTER 1

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

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

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

Par combien de zéros se termine N!?

Quelques tests de primalité

Modèle de calcul des paramètres économiques

CHAPITRE 5. Stratégies Mixtes

6. Hachage. Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses

Ebauche Rapport finale

Examen optimisation Centrale Marseille (2008) et SupGalilee (2008)

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

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

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

Théorèmes de Point Fixe et Applications 1

Programmation linéaire

OPTIMISATION À UNE VARIABLE

NOTIONS DE PROBABILITÉS

1. Création d'un état Création d'un état Instantané Colonnes Création d'un état Instantané Tableau... 4

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Lagrange, où λ 1 est pour la contrainte sur µ p ).

Conception d'un réseau de transport d'électricité

Résolution d équations non linéaires

1.6- Génération de nombres aléatoires

Vers l'ordinateur quantique

Équations non linéaires

Travaux pratiques avec RapidMiner

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

Fonctions de plusieurs variables

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

Introduction. I Étude rapide du réseau - Apprentissage. II Application à la reconnaissance des notes.

Théorie et codage de l information

modélisation solide et dessin technique

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

CHAPITRE VIII : Les circuits avec résistances ohmiques

6. Les différents types de démonstrations

Les opérations binaires

Cours de Master Recherche

Algorithmique et Programmation

Introduction : Cadkey

D'UN THÉORÈME NOUVEAU

Représentation d un entier en base b

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

Atelier Transversal AT11. Activité «Fourmis» Pierre Chauvet.

Définition : On obtient les nombres entiers en ajoutant ou retranchant des unités à zéro.

Recherche dans un tableau

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

Chapitre 3. Les distributions à deux variables

Probabilités sur un univers fini

Chapitre 2 Le problème de l unicité des solutions

Plus courts chemins, programmation dynamique

C f tracée ci- contre est la représentation graphique d une

3 Approximation de solutions d équations

Introduction à l étude des Corps Finis

Introduction a l'algorithmique des objets partages. Robert Cori. Antoine Petit. Lifac, ENS Cachan, Cachan Cedex. Resume

Fonctions de plusieurs variables : dérivés partielles, diérentielle. Fonctions composées. Fonctions de classe C 1. Exemples

MODE D'EMPLOI DE LA CALCULATRICE POUR LES COURTS SÉJOURS DANS L'ESPACE SCHENGEN

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

DOCM Solutions officielles = n 2 10.

Installation de serveurs DNS, WINS et DHCP sous Windows Server 2003

Principe de symétrisation pour la construction d un test adaptatif

Chapitre VI - Méthodes de factorisation

Université Paris-Dauphine DUMI2E 1ère année, Applications

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

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.

CODE CIVIL FRANÇAIS (ANTERIEUR A 1960)

Quantification Scalaire et Prédictive

Resolution limit in community detection

Représentation des Nombres

Transcription:

Programmation linéaire en nombres entiers : les méthodes de troncature 1

Introduction Le principe des méthodes de troncature est le suivant: - on part d'une solution de base qui ne satisfait pas à toutes les contraintes du problème, soit que les variables astreintes à être entières ne le soient pas, soit que certaines variables soient négatives; - on ajoute alors une équation choisie de façon que toute solution entière vérifie nécessairement cette équation. L'introduction d'une telle équation se traduit par l'apparition d'une nouvelle variable de valeur négative et conduit, par conséquent, à l'application de l'algorithme dual du simplexe. Il s agit d ajouter des contraintes afin d'amputer des "morceaux" au polyèdre des solutions réalisables du problème continu, jusqu'à ce que la solution optimale de ce dernier satisfasse les contraintes d'intégralité. 2

Le "morceau" à amputer devra évidemment contenir la solution optimale du problème continu et il faut aussi s'assurer qu'aucune solution entière n'est amputée. Après l'ajout d'une contrainte, on réoptimise en utilisant le dual du simplexe. On se rapproche ainsi de l'optimum entier. Méthode des formes entières (ou des coupes de Gomory) Exemple : Soit à résoudre le programme linéaire entier Max z = x + 3y 10x + 18y 45, 6x + 7y 21 x, y 0, entiers. 3

En oubliant les contraintes d'intégrité et en résolvant par la méthode du simplexe, on obtient: x = 0, y = 2.5, zmax = 7.5 qui n'est pas entière. y (0,2.5) x 4

Il est clair que la solution optimale de (PE) doit être l'un des points entiers contenus dans cet ensemble de solutions réalisables de (P). Ainsi, nous allons ajouter une coupe qui va réduire les solutions réalisables de (P) sans pour autant réduire les solutions réalisables entières de (PE). Par exemple, si on fait la coupe x + 2y 4, on enlève de cet ensemble des solutions réalisables la partie hachurée, et il est bien clair qu'aucun point entier n'a été éliminé. 5

On forme donc le programme linéaire (PE1): Max z =x + 3y 10x + 18y 45, 6x + 7y 21 x + 2y 4 x, y 0, entiers qui donne, en oubliant les contraintes d'intégrité, comme solution optimale: x = 0, y = 2 et zmax = 6 et vu qu'elle est entière, c'est aussi la solution optimale de (PE)! Note : Dans cet exemple, nous avons trouvé la solution optimale d'un PLE en construisant un nouveau PLE issu du précédent et d'une nouvelle contrainte ou coupe qui respecte le PLE initial. 6

Description de la méthode des formes entières Supposons que le problème (PE) soit de la forme: n a ij x j = b i, i = 1, 2,..., m j=1 x j 0, j = 1, 2,..., n x j entier, j = 1, 2,..., n n Max z = c j x j j=1 * Hypothèse : Il existe au moins une solution réalisable et la fonction objective est finie à l'optimum (utilisez le simplexe!). 7

Nous voulons construire une contrainte additionnelle qui devra être satisfaite par toute solution réalisable de PE. Soit n a j x j = b (**) j=1 une équation obtenue par suite d'opérations élémentaires sur *. Nous savons qu'une solution réalisable de * l'est aussi pour **. Il se peut qu'il y ait des a j non entiers ou que b ne soit pas entier. Soit [d] la partie entière du nombre réel d (le plus grand entier d). Vu que les x j sont des entiers non négatifs, toute valeur des x j qui satisfait * doit aussi satisfaire ** et par conséquent la contrainte plus faible : n [a j ] x j b j=1 8

Mais le terme de gauche de celle-ci doit être entier et donc on a certainement la contrainte: n [a j ] x j [b] (***) j=1 qui est vérifiée par l'ensemble des solutions réalisables de (PE). Cette inégalité représente la coupe que nous effectuons ; en ajoutant une variable d'écart positive r (nécessairement entière), nous avons : n [a j ] x j + r = [b], r 0, entier j=1 La première méthode qui nous vient à l'esprit est de faire comme dans l'exemple précédent, i.e. d'ajouter cette coupe au PE et de résoudre par la méthode du simplexe le programme linéaire associé. 9

Afin de se servir de tous les calculs faits antérieurement, l'inégalité (***) soustraite de l'équation (**) donne n (a j -[a j ]) x j b - [b] j=1 Nous notons par <a j > = a j -[a j ], la partie fractionnaire de a j ; il en est de même pour <b>. Cette inégalité devient après l'introduction d'une variable de surplus entière non négative : n - <a j > x j + a = - <b> j=1 C'est cette équation que nous prendrons comme coupe. 10

Exemple : Soit à résoudre le programme linéaire entier sous forme standard Max z =5x + 2y 2x + 3y + e 1 = 17 (PE) 10x + 3y + e 2 = 45 x, y, e 1, e 2 0, entiers. On obtient comme ensemble des solutions réalisables de (P) le programme linéaire associé à (PE) la région bornée ci-contre où on a négligé les variables d'écart e 1 et e 2. Les points entiers indiqués sont les solutions réalisables de (PE). 11

y (3.5,10 / 3) x 12

En oubliant les contraintes d'intégrité, on obtient à la dernière itération de l'algorithme du simplexe la forme suivante: Max z - 145/6 = -5 /24 e 1-11 / 24 e 2 y + 5 /12 e 1-1 /12 e 2 = 10 /3 (P') x - 1 /8 e 1 +1 /8 e 2 = 7 /2 x, y, e 1, e 2 0, entiers. La solution optimale x = 7 /2, y = 10 /3, e 1 = e 2 = 0 n'est pas entière. Il nous faut donc introduire une coupe. Nous choisissons la ligne r telle que <b r > = max <b i > i Ici, <b 1 > = 1 /3, <b 2 > = 0.5. Donc, on prend r = 2. Notre coupe est: -<a 21 > x - <a 22 > y - <a 23 > e 1 -<a 24 > e 2 + s 1 = - <b 2 > c'est-à-dire -7/8 e 1-1 /8 e 2 + s 1 = -½. 13

Ajoutons cette coupe à (P'); nous obtenons: Max z - 145/6 = -5 /24 e 1-11 / 24 e 2 y + 5 /12 e 1-1 /12 e 2 = 10 /3 (P'') x - 1 /8 e 1 +1 /8 e 2 = 7 /2-7 /8 e 1-1 /8 e 2 + s 1 = -1 /2 z ne peut que décroître par l'adjonction d'une nouvelle contrainte. Et nous avons toutes les conditions (b 0, c 0) pour appliquer l'algorithme dual du simplexe. On obtient: Max z - 505/21 = -3/7 e 2-5 /21 s 1 y -1/7 e 2 +10/21 s 1 = 65/21 (P''') x +1 /7 e 2-1 /7 s 1 = 25 /7 e 1 +1/7 e 2-8 /7 s 1 = 4 /7 14

Vu que la solution optimale n'est pas entière, on introduit une nouvelle coupe issue de la ligne 2 car <b 2 > = 4 /7 = max <b i >. Cette coupe est: -1 /7 e 2-6 /7 s 1 + s 2 = -4/7. On l'ajoute à (P''') pour obtenir: Max z - 505 / 21 = -3/7 e 2-5 /21 s 1 y -1 /7 e 2 +10 /21 s 1 = 65 /21 (P'''') x +1 /7 e 2-1 /7 s 1 = 25 /7 e 1 +1 /7 e 2-8 /7 s 1 = 4 /7-1 /7 e 2-6 /7 s 1 + s 2 = -4 /7. On voit facilement qu'on doit appliquer l'algorithme dual du simplexe. Après avoir introduit 6 autres coupes et effectué 8 autres itérations, nous obtenons la solution optimale entière x = 4, y = 1, e 1 = 6, e 2 = 2, s 1 = 5, s 2 = 4, s 3 = 3, s 4 = 3, s 5 = 2, s 6 = 2, s 7 = 0, s 8 = 0 et z max = 22. 15

y Projection des coupes dans le plan xy (0,3) (7 /2, 3) (7 /2, 10 /3) (25 /7, 65 /21) (11 /3, 25 /9) La solution optimale de PE est éloignée de celle de PL. Il en est rarement autrement. (3.7, 2.5) (11 /3, 7 /3) (0,2) (4, 5 /3) (0,1) (4, 1) (3,0) (4,0) x 16

Énoncé de l algorithme : (0) A et b étant entiers, résoudre le problème par une méthode de programmation linéaire en oubliant les contraintes d'intégrité. Aller à (1). (1) Si la solution optimale est entière, terminer, c'est aussi la solution optimale du problème posé. Sinon, aller à (2). (2) Déterminer <b r > = max <b i >. Ajouter au système d'équations obtenu à la dernière itération la coupe p - <a rj > x j + s = - <b r > j=1 où p est le nombre de variables avant d'ajouter cette coupe. Aller à (3). 17

(3) Appliquez l'algorithme dual du simplexe à partir du tableau optimal précédent et retournez à (1). Même s'il est possible de prouver que cet algorithme se termine en un nombre fini d'étapes, il peut conduire en pratique à un nombre si grand d'itérations qu'on ne puisse trouver (à un coût raisonnable ou par manque de bits sur ordinateur) la solution optimale même avec les moyens modernes actuels. De plus, s'il nous faut arrêter les calculs, nous ne sommes pas assurés d'avoir une solution primale-réalisable de telle sorte qu'en général, on ne peut même pas espérer avoir une approximation même grossière de la solution optimale. =========================== 18