Chapitre 6 : Programmation linéaire en nombres entiers

Documents pareils
Programmation linéaire

Programmation linéaire

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

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

Chapitre 5 : Flot maximal dans un graphe

Optimisation Discrète

Programmation Linéaire - Cours 1

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

Cours de Master Recherche

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

Programmation linéaire et Optimisation. Didier Smets

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 des fonctions de plusieurs variables

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:

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

Chp. 4. Minimisation d une fonction d une variable

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

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

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

Cours de recherche opérationnelle I

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

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

Cours d analyse numérique SMI-S4

INFO-F Algorithmique 3 et Recherche Opérationnelle

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

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

Chapitre 3. Les distributions à deux variables

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

3 Approximation de solutions d équations

CCP PSI Mathématiques 1 : un corrigé

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

Plus courts chemins, programmation dynamique

Fonctions de plusieurs variables

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

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

Bien lire l énoncé 2 fois avant de continuer - Méthodes et/ou Explications Réponses. Antécédents d un nombre par une fonction

RECHERCHE OPERATIONNELLE

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

Équations non linéaires

Polynômes à plusieurs variables. Résultant

LES MÉTHODES DE POINT INTÉRIEUR 1

Jean-Philippe Préaux

Théorèmes de Point Fixe et Applications 1

Résolution d équations non linéaires

La classification automatique de données quantitatives

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

Calcul différentiel sur R n Première partie

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

Continuité et dérivabilité d une fonction

Théorie et codage de l information

Une introduction aux codes correcteurs quantiques

OUTILS EN INFORMATIQUE

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

Problème 1 : applications du plan affine

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

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

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

CHAPITRE 5. Stratégies Mixtes

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

Baccalauréat ES Pondichéry 7 avril 2014 Corrigé

Cours d Analyse. Fonctions de plusieurs variables

Taux d évolution moyen.

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

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

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

Probabilités sur un univers fini

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

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

Introduction à l étude des Corps Finis

chapitre 4 Nombres de Catalan

Chapitre 2. Matrices

Resolution limit in community detection

Chapitre 6. Fonction réelle d une variable réelle

Chapitre 1 : Évolution COURS

a et b étant deux nombres relatifs donnés, une fonction affine est une fonction qui a un nombre x associe le nombre ax + b

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

Limites finies en un point

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

Groupe symétrique. Chapitre II. 1 Définitions et généralités

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,

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

Image d un intervalle par une fonction continue

Les indices à surplus constant

I. Polynômes de Tchebychev

Développement décimal d un réel

Chapitre 3. Quelques fonctions usuelles. 1 Fonctions logarithme et exponentielle. 1.1 La fonction logarithme

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : hivert

Les 10 grands principes de l utilisation du data mining pour une gestion de la relation client réussie

Texte Agrégation limitée par diffusion interne

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

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

Analyse en Composantes Principales

TD1 PROPAGATION DANS UN MILIEU PRESENTANT UN GRADIENT D'INDICE

Intelligence Artificielle Planification

FctsAffines.nb 1. Mathématiques, 1-ère année Edition Fonctions affines

Exercice autour de densité, fonction de répatition, espérance et variance de variables quelconques.

Pour l épreuve d algèbre, les calculatrices sont interdites.

Transcription:

Graphes et RO TELECOM Nancy 2A Chapitre 6 : Programmation linéaire en nombres entiers J.-F. Scheid v2.1 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 [ max F (x) = x n a i x i d i=1 x i {0, 1} ] n c i x i i=1 avec a i et c i positifs ou nuls. 2 n cas à examiner a priori. On réduit ce nombre en procédant par "Séparation et Evaluation" (Branch and Bound) : on n examine pas les valeurs de toutes les variables. 17

Principe des Branch-and-Bound (séparation et évaluation) Branch (séparation) On examine successivement les valeurs possibles des variables (0 ou 1). L examen d une variable sépare l ensemble des solutions possibles en 2 sous-ensembles. développement d un arbre dont chaque sommet correspond à un sous-ensemble de solutions réalisables. se trouver en un sommet du graphe, c est avoir donner les valeurs à p variables (en ayant écarté les valeurs ne donnant pas de solution réalisable) sans connaître les valeurs des n p autres variables non encore examinées. La racine de l arborescence représente l ensemble de toutes les solutions réalisables. 18

x = 1 i x = 0 i 19

Bound (estimation) 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") : 0 b k max F Si b k < F où F est la valeur de F pour une solution réalisable particulière (connue), alors le sommet S k n est pas exploré : S k ne peut pas contenir une meilleure solution que celle déjà obtenue car dans ce cas : 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. On ne construit pas les sommets S k qui n ont pas de solution réalisable. Pour cela, on évalue une estimation 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 : 0 e = d n a i x i e k i=1 Si e k < 0 alors le sommet S k n est pas construit. Initialement, pour le sommet S 0, on choisit e 0 = d (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 particulière. 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

000000000000000000000000000000000000 000000000000000000000000000000000000 000000000000000000000000000000000000 000000000000000000000000000000000000 000000000000000000000000000000000000 000000000000000000000000000000000000 000000000000000000000000000000000000 000000000000000000000000000000000000 000000000000000000000000000000000000 000000000000000000000000000000000000 00000000000000000000000000000000000 00000000000000000000000000000000000 00000000000000000000000000000000000 00000000000000000000000000000000000 00000000000000000000000000000000000 00000000000000000000000000000000000 00000000000000000000000000000000000 00000000000000000000000000000000000 0000000000000000000000000000000000 0000000000000000000000000000000000 000000000000000000000000000000000 000000000000000000000000000000000 00000000000000000000000000000000 0000000000000000000000000000000 000000000000000000000000000000 000000000000000000000000000000 00000000000000000000000000000 000000000000000000000000000 00000000000000000000000000 0000000000000000000000000 0000000000000000000000000 0000000000000000000000 00000000000000000000 00000000000000000 000000000000000 000000000000 0000000000 0000000 0000 111111111111111111111111111111111111 111111111111111111111111111111111111 111111111111111111111111111111111111 111111111111111111111111111111111111 111111111111111111111111111111111111 111111111111111111111111111111111111 111111111111111111111111111111111111 111111111111111111111111111111111111 111111111111111111111111111111111111 111111111111111111111111111111111111 11111111111111111111111111111111111 11111111111111111111111111111111111 11111111111111111111111111111111111 11111111111111111111111111111111111 11111111111111111111111111111111111 11111111111111111111111111111111111 11111111111111111111111111111111111 11111111111111111111111111111111111 1111111111111111111111111111111111 1111111111111111111111111111111111 111111111111111111111111111111111 111111111111111111111111111111111 11111111111111111111111111111111 1111111111111111111111111111111 111111111111111111111111111111 111111111111111111111111111111 11111111111111111111111111111 111111111111111111111111111 11111111111111111111111111 1111111111111111111111111 1111111111111111111111111 1111111111111111111111 11111111111111111111 11111111111111111 111111111111111 111111111111 1111111111 1111111 1111 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 GUROBI, code commercial avec licence éducation gratuite. CPLEX (IBM ILOG), code commercial avec licence éducation gratuite. CBC (Coin-or Branch and Cut)/ COIN-OR (COmputational INfrastructure for Operations Research), logiciel OpenSource. GLPK (GNU Linear Programming Kit) KNITRO (non-linéaire), 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