• Aucun résultat trouvé

3.2 M´ethodes de r´esolution pour l’optimisation combinatoire

3.2.1 M´ethodes exactes pour la r´esolution des probl`emes lin´eaires

L’objectif du probl`eme `a atteindre, les contraintes `a respecter et les variables de d´ecisions sont sp´ecifi´es de fa¸con math´ematique. La Programmation Lin´eaire en Nombres Entiers (PLNE) permet de mod´eliser math´ematiquement le probl`eme dans le cas o`u les objectifs et les contraintes sont lin´eaires et que les variables sont toutes enti`eres. La Pro- grammation Lin´eaire (PL) est dite mixte si certaines variables sont enti`eres et d’autres r´eelles.

Section 3.2. M´ethodes de r´esolution pour l’optimisation combinatoire Si les variables ne sont pas toutes enti`eres, on parle de programmation mixte, en anglais Mixed Integer Programming (MIP), si les objectifs et contraintes ne sont pas lin´eaires. On parle de Mixed Integer Linear Programming (MILP) si le probl`eme est lin´eaire. Si toutes les variables sont enti`eres, on parle d’Integer Programming (IP) ou d’Integer Linear Programming (ILP) si le probl`eme est lin´eaire. Nous ne nous int´eressons dans la suite qu’aux probl`emes lin´eaires.

Le Tableau 3.1 r´esume les diff´erents probl`emes en fonction de leurs caract´eristiques. Variables enti`eres Variables r´eelles

Probl`eme lin´eaire PLNE ou ILP PL ou MILP Probl`eme non lin´eaire IP MIP

Tableau 3.1 – D´efinition des probl`emes

La formalisation du probl`eme du bin packing donn´ee par les ´Equations (2.43) `a (2.47) est un exemple de PLNE. La PLNE est difficile alors que la programmation lin´eaire r´eelle est polynomiale. L’algorithme du simplexe est le plus utilis´e pour sa rapidit´e moyenne. Cependant, il ne garantit pas l’acc`es `a une solution optimale en un temps polynomial.

Une solution est admissible si elle v´erifie toutes les contraintes au probl`eme. Une fa¸con intuitive de r´esoudre un probl`eme serait l’´enum´eration de toutes les solutions admissibles afin de trouver celle qui optimise la fonction objectif. Mais chaque probl`eme poss`ede une grande combinatoire de solutions admissibles. Des m´ethodes de r´esolution exactes ont ´et´e d´evelopp´ees pour optimiser la r´esolution de ces probl`emes.

Algorithme du simplexe Pour r´esoudre un probl`eme lin´eaire dont les variables sont r´eelles, l’algorithme du simplexe a ´et´e propos´e (Dantzig, 1990). C’est un algorithme it´eratif permettant de rechercher une solution voisine `a partir d’une solution admissible qui am´eliore la fonction objectif.

Les m´ethodes suivantes s’appliquent aux programmes lin´eaires lorsqu’il y a des va- riables enti`eres :

G´en´eration de colonnes La g´en´eration de colonnes est une am´elioration de l’algo- rithme du simplexe. Elle vise `a g´en´erer les variables au fur et `a mesure de la r´esolution du probl`eme (Desaulniers et al., 2005). Elle est bas´ee sur la d´ecomposition de Danzig-Wolfe. Algorithme de Benders A l’inverse, la d´ecomposition de Benders g´en`ere les` contraintes au fur et `a mesure de la r´esolution du probl`eme (Benders, 1962). C’est une approche par g´en´eration de lignes.

Relaxation lin´eaire La relaxation lin´eaire relˆache la contrainte d’int´egrit´e des va- riables. Ainsi, l’algorithme du simplexe peut notamment ˆetre utilis´e sur le probl`eme relax´e. Si la solution optimale de la relaxation lin´eaire est enti`ere, alors c’est aussi une solution optimale pour le PLNE. Si elle n’est pas enti`ere, on a une borne inf´erieure au probl`eme.

Branch-and-bound La m´ethode de recherche arborescente par s´eparation et ´evaluation est bas´ee sur l’algorithme du branch-and-bound, en anglais connu sous l’acro- nyme B&B. C’est une m´ethode ´enum´erative intelligente, qui permet grˆace `a des propri´et´es du probl`eme, de ne pas parcourir toutes les solutions r´ealisables pour trouver une solution optimale. Une fonction d’´evaluation est utilis´ee sur la relaxation lin´eaire, qui permet de dire si la solution partielle est candidate `a l’optimalit´e ou pas. Sinon, toutes les solutions compos´ees de cette solution partielle peuvent ˆetre ´ecart´ees. Pour un PLNE `a maximiser, une borne sup´erieure est donn´ee par sa relaxation lin´eaire. Ainsi, dans le cas du probl`eme de maximisation, l’algorithme est le suivant :

– D´ecouper l’ensemble des solutions X,

– Sur chaque nœud Y ⊆ X, calculer une borne sup´erieure B(Y ) de l’optimum H(Y∗),

– Si B(Y ) est inf´erieure ou ´egale `a la meilleure solution trouv´ee, alors on ´elague Y , – Sinon on d´ecoupe successivement Y .

Il est facile de se ramener `a un probl`eme de minimisation `a partir d’un probl`eme de maximisation car maximiser H revient `a minimiser son oppos´e. L’algorithme de branch- and-bound d´ecoupe le probl`eme en plusieurs probl`emes. (Lawler and Wood, 1966) font un ´etat de l’art sur la m´ethode du branch-and-bound.

Cutting planes La m´ethode de coupes (cutting planes method) est bas´ee sur l’algo- rithme de plans s´ecants (Kelley, 1960). Elle permet d’ajouter des contraintes au probl`eme afin de r´eduire son ensemble de solutions admissibles. Cette m´ethode fonctionne `a partir de la relaxation lin´eaire du probl`eme. L’algorithme est le suivant :

Tant que la solution au probl`eme non relax´e n’a pas ´et´e trouv´ee, – R´esoudre la formulation relax´ee, l’optimum est not´e X∗,

– Si X∗ est entier, alors c’est la solution au probl`eme non relax´e.

– Sinon, trouver une in´egalit´e valide viol´ee par X∗ et l’ajouter au probl`eme relax´e. Une

in´egalit´e est valide si elle est respect´ee par toutes les solutions admissibles discr`etes. L’algorithme de plans s´ecants affine la description du probl`eme autour de l’optimal. Branch-and-cut La m´ethode branch-and-cut combine l’algorithme de plans s´ecants et l’algorithme de branch-and-bound (Padberg and Rinaldi, 1991). Elle consiste `a appliquer l’algorithme de plans s´ecants sur chaque nœud avant de brancher.

Branch-and-price La m´ethode branch-and-price combine l’algorithme du branch- and-bound et la g´en´eration de colonnes apr`es relaxation du probl`eme (Johnson, 1989). La g´en´eration de colonnes est appliqu´ee `a chaque nœud du branch-and-bound.

La Figure 3.1 positionne les diff´erentes m´ethodes les unes par rapport aux autres. Des solveurs permettent de r´esoudre ces probl`emes de fa¸con exacte, comme le solveur CPLEX de IBM. Les solveurs modernes utilisent la m´ethode branch-and-cut.