14
UNIVERSITE SAAD DAHLAB DE BLIDA Chapitre 4 : La Programmation Linéaire en Nombres Entiers. Chapitre 4 La Programmation Linéaire en Nombres Entiers 1. Introduction Soit A: m x n une matrice, b un m-vecteur colonne et c un n-vecteur ligne. Nous supposons que A, b et c sont à coordonnées entières. Définition 1. Le problème (P) = = ) n ,.., 2 , 1 j , j x ( n x b x A. x C. Max Z est appelé " programme linéaire en nombres entiers". (P) peut s'écrire en ( P ˆ ) = = = n ,.., 2 , 1 j , j x b x A. x C. Max Z Remarque 1. a)Nous ferons l'hypothèse que l'ensemble D = { X / A.X b, X 0 } est borné. Par conséquent S = { X / A.X b, x j , j = 1, 2, …, n } est fini et (P) est un POC. b) Le problème (P) { } = = ) n ,.., 2 , 1 j , 1 , 0 j x b x A. x C. Max Z est appelé "programme linéaire en { 0, 1 } ou en variables bivalentes. Exemple 1. Le problème du sac à dos se formule comme un problème linéaire en variables bivalentes n'ayant qu'une contrainte : (K) { } = + + + + = n ,.., 2 , 1 j , 1 , 0 j x b n x n a ... 1 x 1 a n x n c ... 1 x 1 c Max Z Par extension (K') = + + + + = n ,.., 2 , 1 j , j x b n x n a ... 1 x 1 a n x n c ... 1 x 1 c Max Z est appelé problème de " sac à dos". Remarque 2. a)Le problème linéaire (P') = = ) n ,.., 2 , 1 j , 0 j x b x A. x C. Max Z est obtenu à partir de (P) en " relachant" les contraintes d'intégrité sur les variables est dit programme linéaire relaxé de (P).

Chapitre 4 La Programmation Linéaire en Nombres Entiers · UNIVERSITE SAAD DAHLAB DE BLIDA Chapitre 4 : La Programmation Linéaire en Nombres Entiers. 55 Un PLNE dont les variables

Embed Size (px)

Citation preview

UNIVERSIT

E SAAD DAHLAB D

E BLIDA

Chapitre 4 : La Programmation Linéaire en Nombres Entiers.

Chapitre 4

La Programmation Linéaire en Nombres Entiers

1. Introduction

Soit A: m x n une matrice, b un m-vecteur colonne et c un n-vecteur ligne.

Nous supposons que A, b et c sont à coordonnées entières.

Définition 1. Le problème (P)

=ℵ∈ℵ∈≤=

)n,..,2,1j,jx(nx

b x A.

xC. Max Z

est appelé " programme linéaire

en nombres entiers".

(P) peut s'écrire en ( P̂ )

=ℵ∈==

n,..,2,1j,jx

b x A.

xC. Max Z

Remarque 1. a)Nous ferons l'hypothèse que l'ensemble D = { X / A.X ≤ b, X ≥ 0 } est borné.

Par conséquent S = { X / A.X ≤ b, xj ∈ , j = 1, 2, …, n } est fini et (P) est un POC.

b) Le problème (P)

{ }

=∈≤=

)n,..,2,1j, 1 ,0 jx

b x A.

xC. Max Z

est appelé "programme linéaire en { 0, 1 } ou

en variables bivalentes.

Exemple 1. Le problème du sac à dos se formule comme un problème linéaire en variables

bivalentes n'ayant qu'une contrainte : (K)

{ }

=∈≤++++=

n,..,2,1j,1,0jx

b nxna...1x1anxnc...1x1c Max Z

Par extension (K')

=ℵ∈≤++++=

n,..,2,1j,jx

b nxna...1x1anxnc...1x1c Max Z

est appelé problème de " sac à dos".

Remarque 2. a)Le problème linéaire (P')

=≥≤=

)n,..,2,1j,0jx

b x A.

xC. Max Z

est obtenu à partir de (P) en

" relachant" les contraintes d'intégrité sur les variables est dit programme linéaire relaxé de

(P).

UNIVERSIT

E SAAD DAHLAB D

E BLIDA

54

Toute solution réalisable de (P) est solution réalisable de (P'). Si (P') a une solution X à

coordonnées entières alors X est solution optimale de (P).

b) la méthode de résolution du problème (P) en arrondissant aux entiers les plus proches une

solution de (P') est en général mauvaise.

Contre-exemple 1. Soit le problème du sac à dos,

Max z = 10 x1 + 8 x2 + 5 x3

6 x1 + 5 x2 + 4 x3 ≤ 9

x1, x2 et x3 ∈ { 0, 1}.

Le problème (P') relaxé a pour solution : x1 = 3 / 2, x2 = x3 = 0.

Si on arrondit x1 à 2 on obtient une solution non réalisable.

Si on arrondit x1 à 1, on a un résultat bien éloigné de la solution optimale x1 = 0, x2 = x3 = 1.

L'application de l'algorithme glouton conduit également à la solution x1 = 1, x2 = x3 = 0.

( cj / aj sont croissants. 4

5

5

8

6

10≥≥ )

Remarque 3.

a. Un programme linéaire en variables bivalentes peut se ramener à un programme linéaires

en nombre entiers en rajoutant les contraintes xj ≤ 1 pour j = 1, 2, …, n.

b. Réciproquement tout programme linéaire en nombre entiers peut se formuler comme un

programme linéaire en 0-1. En effet compte-tenu de la remarque 1, chaque variable xj de

(P) est bornée. Faisons le développement de chaque variable en base 2.

On peut écrire que xj = ∑=

jt

0kkjyk2 , ykj ∈ { 0, 1}.

La variable xj peut être remplacée dans (P) par son développement binaire (*) ce qui conduit

bien à un PLVB équivalent à (P).

Remarque 4. Ces transformations ne seront pas cependant utilisés en général pour la

résolution effective des PLNE. Il existe des méthodes spécifiques de résolution des PLVB qui

sont efficaces que les méthodes générales.

Remarque 5. La classe des PLVB est importante car ceux-ci constituent des modèles

adéquats pour un grand nombre de POC. Les variables correspondent à des décisions binaires

: je choisis tel sommet ou tel arc du graphe ou bien je ne le choisis pas, j'implante une usine

ou je ne l'implante pas, j'achète ou je n'achète pas. Les PLVB sont des problèmes

d'optimisation à fonction objective séparée.

Module: Procédures PSE, PLNE, programmation dynamique et Métaheuristiques, dispensé par le Dr. DERBALA Ali.

UNIVERSIT

E SAAD DAHLAB D

E BLIDA

Chapitre 4 : La Programmation Linéaire en Nombres Entiers. 55

Un PLNE dont les variables peuvent prendre des valeurs élevées est souvent un " faux" POC.

Si xj : représente par exemple, le nombre de véhicules du type j et si on trouve dans la solution

xj = 300,6, on peut en général arrondir sans commettre de grosses erreurs.

La contrainte d'intégrité est d'autant plus astreignante que la valeur de la variable sur laquelle

porte cette contrainte est faible. Nous étudierons les méthodes de coupes, des méthodes de

résolution des PLNE. Les méthodes de "recherche arborescente" ( ou d'énumération partielle)

sont les plus utilisées et permettent de résoudre certains POC difficiles tel que le PVC, les

problèmes d'ordonnancement, les problèmes de localisation et de classification et le problème

d'affectation généralisé. Ils ont fait l'objet d'une étude au chapitre auparavant. Les méthodes

des coupes ont permis de résoudre des problèmes particuliers de partitionnement ou de

recouvrement. Une troisième classe de méthodes est celle qui utilisent la représentation d'un

PLNE comme un plus court chemin dans un graphe et la théorie des groupes finis.

2. Résolution des PLNE par des Procédures de Séparation et Evaluation

Un voyageur muni d'un sac qui lui sert à transporter des produits de valeurs. Son problème

consiste à maximiser la valeur totale des objets qu'il emporte, sans toutefois dépasser une

limite de poids "b" correspondant à ses capacités physiques.

Si on associe à l'objet j une valeur cj et un poids wj, la combinaison optimale d'objets à

emporter sera obtenue en résolvant le programme :

ℵ∈

≤∑

=

=

j

n

1jjj

n

1jjj

x

bxw

xcmax

Une solution triviale est celle de choisir de façon prioritaire les objets dont le rapport

qualité/poids est le plus avantageux, quitte à tronquer pour obtenir une solution entière ( cette

solution peut s'avérer mauvaise).

Exemple 2. Soit le problème du sac à dos,

Max z = 2 x1 + 3 x2 + 7 x3

3 x1 + 4 x2 + 8 x3 ≤ 14

x1, x2 et x3 ∈ .

Sans contrainte d'intégrité, la solution optimale est x* = (0, 0, 14/8) et Z(x*) = 49/4 = 12,25.

En tronquant, on obtient la solution Y = (0, 0, 1) de valeur 7.

UNIVERSIT

E SAAD DAHLAB D

E BLIDA

56

La solution tronquée est éloignée de l'optimale.

La solution optimale peut s'obtenir en énumérant toutes les solutions réalisables et en

conservant la meilleure. Elles sont données par le tableau suivant:

Tableau 1. Enumération des solutions

x1 x2 x3 Valeur Z(x)

0 1 1 10

2 0 1 11

0 3 0 9

2 2 0 10

3 1 0 9

4 0 0 8

La solution optimale entière est x* = ( 2, 0, 1) de valeur 11 qui diffère passablement de la

solution optimale linéaire .

Cette technique d'énumération ne peut s'appliquer à des problèmes de grande taille.

3. Une première stratégie de résolution : l'énumération implicite.

Considérons un programme mathématique mixte. Au départ, on ne se contente pas des

contraintes d'intégrité et on se contente de résoudre un programme linéaire ( relaxation

linéaire du problème en variables entières).

Si la solution optimale de ce programme satisfait aux contraintes d'intégrité, alors cette

solution est aussi solution optimale du PLVE. Sinon il doit exister au moins une variable xj

dont sa valeur "α" est fractionnaire. On sépare alors le problème en deux sous problèmes.

Un sous problème contiendra la contrainte " xj ≤ [α ] " et le second la contrainte "xj ≥ [α] +1".

Il est clair que ceci crée une partition du problème relaxé. On répète le processus pour chacun

des sous problèmes. Cette procédure est représentée sous forme d'un arbre, où à chaque

niveau, une partition du sommet père s'effectue suivant la règle décrite précédemment.

Il s'agit alors de parcourir cet arbre d'énumération afin d'y trouver la solution optimale.

L'exploration d'un chemin de l'arbre peut prendre fin pour trois raisons:

- la solution devient entière

- le domaine admissible d'un sous problème devient vide;

Module: Procédures PSE, PLNE, programmation dynamique et Métaheuristiques, dispensé par le Dr. DERBALA Ali.

UNIVERSIT

E SAAD DAHLAB D

E BLIDA

Chapitre 4 : La Programmation Linéaire en Nombres Entiers. 57

- la valeur de l'objectif correspondant à la solution optimale du problème relaxé est

inférieure(moins bonne) à celle d'une solution admissible. Comme, possiblement obtenue

à un autre sommet de l'arbre.

Le sommet est dit "sondé" et il est inutile de pousser plus loin dans cette direction.

Appliquons là au problème du sac à dos.

La solution optimale de chaque relaxation linéaire est obtenue en favorisant les variables de

rapport qualité/poids élevé tout en respectant les contraintes rajoutées sur les branches de

l'arbre d'énumération.

( 0, 0, 14/8)

x3 ≤ 1 Obj = 12,25 x3 ≥ 2

( 0, 6/4, 1) x2 ≥ 2 sondé(non réalisable)

x2 ≤ 1 Obj = 11,5

(0, 2, 3/4)

(2/3, 1, 1) Obj = 11,25( pas meilleur que RL5)

x1 = 0 Obj = 11.1/3 x1 ≥ 1

(0, 1, 1) x2 = 0 (1, 3/4, 1) x2 ≥ 1

Obj = 13 Obj = 11. 1/4

Sondé réalisable

(2, 0, 1) (1, 1, 7/8)

Obj = 11 Obj = 11. 1/8

Sondé ( réalisable) Sondé ( pas meilleur que RL5)

Plusieurs remarques sont de rigueur:

- Dans l'exemple, l'algorithme semble moins efficace que l'énumération complète. En effet

s'il y a que 12 solutions,, dont seulement 5 sont efficaces.

RL0

RL1 RL8

RL2RL7

RL3 RL4

RL5 RL6

UNIVERSIT

E SAAD DAHLAB D

E BLIDA

58

Sur des problèmes de grande taille, par contre, le nombre de sommets visités est en général

beaucoup plus faible que le nombre de solutions réalisables.

- On peut tirer profit de la structure du problème pour obtenir des informations additionnelles

sur la valeur des variables. Il est clair que x3 ne peut excéder 2.

- On peut remplacer une contrainte de la forme x3 ≥ 1 par x3 = 1, ce qui fixe la valeur de x3 et

l'élimine du sous problème.

- Le problème linéaire associé à un sommet ne diffère du problème père que par une

contrainte. - Il est alors judicieux de résoudre ce problème par l'algorithme dual du simplexe,

l'algorithme du simplexe appliqué au problème dual.

- L'ordre dans lequel l'arbre est exploré est important. Si RL3 n'avait pas été visité avant RL5,

celui-ci n'aurait pu être sondé aussi tôt.

- La solution optimale est obtenue au troisième nœud. Il faut cependant pousser l'exploration

plus loin pour démontrer que cette solution est bien optimale.

- Si l'objectif du P.L relaxé vaut Z, la solution entière ne peut valoir plus que [Z] puisque les

coefficients de l'objectif sont entiers. Ceci ne serait pas si les coefficients étaient

fractionnaires.

- Au sommet initial, aucune solution admissible n'est encore disponible. On pourrait en

obtenir à l'aide d'algorithmes heuristiques. On pourrait choisir les variables dans l'ordre

décroissant de leur Qualité/Prix, en exigeant que les variables soient entières. Ceci donnerait x

= (0, 1, 1) de valeur 10. Cette valeur pourrait servir à sonder de futurs sommets. Cette

technique peut être appliquée à chaque sommet de l'arbre.

- On parvient fréquemment à une solution optimale après avoir exploré quelques dizaines de

sommets.

4. Une seconde stratégie: les hyperplans coupants

Considérons le programme linéaire : Max z = 4 x1 + 5/2 x2

x1 + x2 ≤ 6

9 x1 + 5 x2 ≤ 45

x1, x2 ∈ N.

En introduisant les variables d'écarts, le problème devient :

Max z = 4 x1 + 5/2 x2

x1 + x2 + x3 = 6 (1)

9 x1 + 5 x2 + x4 = 45 (2)

Module: Procédures PSE, PLNE, programmation dynamique et Métaheuristiques, dispensé par le Dr. DERBALA Ali.

UNIVERSIT

E SAAD DAHLAB D

E BLIDA

Chapitre 4 : La Programmation Linéaire en Nombres Entiers. 59

multiplions l'équation (1) par -5 et l'additionnant à la 2nd.

Le résultat sera : 4 x1 - 5 x3 + x4 = 15. Ou encore x1 = 15/4 + 5/4 x3 - 1/4 x4 .

multiplions l'équation (1) par -9 et l'additionnant à la 2nd.

Le résultat sera : - 4 x2 - 9 x3 + x4 = -9. Ou encore x2 = 9/4 - 9/4 x3 + 1/4 x4 où x3, x4 ∈ N.

La variable de base x1 n'est pas entière, cette solution de base n'est pas admissible.

On réécrit la 1ère contrainte x1 - 5/4 x3 + 1/4 x4 = 15/4 sous la forme

x1 + ( - 2 + 3/4) x3 + (0 +1/4 x4 )= 3 + 3/4.

Ceci est réalisé en utilisant l'identité a = [a] + ( a - [a] ) où a - [a] est la partie fractionnaire de

a ( 0 ≤ a - [a] ≤ 1 ). En mettant tous les coefficients entiers à gauche et les coefficients

fractionnaires à droite de l'égalité on obtient que : x1 - 2 x3 - 3 = 3/4 - 3/4 x3 - 1/4 x4.

Puisque les variables x3 et x4 sont entières et que la partie fractionnaire, la constante du

membre de droite, est inférieure à 1, le membre de droite est aussi entier strictement

inférieure à 1. D'où 3/4 - 3/4 x3 - 1/4 x4 ≤ 0. En utilisant les identités x3 = 6 - x1 - x2 (1)

x4 = 45 - 9 x1 - 5 x2 , on obtient la coupe 3x1 + 2 x2 ≤ 15.

Cette contrainte linéaire rend inadmissible la solution courante admissible, sans éliminer

aucune autre solution entière. Le nouveau problème devient:

Max z = 4 x1 + 5/2 x2

x1 + x2 ≤ 6

9 x1 + 5 x2 ≤ 45

3x1 + 2 x2 ≤ 15

x1, x2 ∈ N.

Si la solution du nouveau problème est entière, elle sera la solution de notre problème. Sinon,

on construit une nouvelle coupe et on recommence.

x1 + x2 = 6

3x1 + 2x2 = 15

9x1 + 5x2 = 45

(3,3)

(15/4, 9/4)

Fig 1. Représentation dans le plan des contraintes

UNIVERSIT

E SAAD DAHLAB D

E BLIDA

60

La résolution du nouveau problème linéaire s'effectue, comme dans l'algorithme de Branch

and Bound, à l'aide de l'algorithme du simplexe appliqué au problème dual, afin de tirer profit

de la solution duale optimale obtenue précédemment.

Cette technique seule ne permet pas de résoudre des problèmes de grande taille. Cependant

elle peut être combinée de façon efficace avec la technique de Branch and Bound.

5. Principe des méthodes de coupes

L'idée de base sur laquelle se fondent ces méthodes est la suivante. On commence par

résoudre le programme linéaire en continu ( dit aussi relaxé). Si la solution optimale obtenue

est un point extrême à coordonnées entières, c'est terminée. Elle est la solution de notre

problème initial à variables entières. Dans le cas contraire, il est facile de voir que l'on peut

toujours tronquer le domaine des solutions ( en rajoutant une contrainte supplémentaire au

problème) de façon à éliminer ce point extrême dans exclure aucune solution entière.

Une telle contrainte est appelée "coupe" ou "troncature".

Exemple 3. soit à résoudre le PLNE

Min z = -10 x1 - 11 x2

10 x1 + 12 x2 ≤ 59

x1, x2 ∈ N.

l'optimum continu est ( 59/10, 0) et minz = - 59.

La contrainte supplémentaire : x1 ≤ 5 élimine ce point sans exclure aucune solution entière.

C'est bien une coupe.

De même toute contrainte supplémentaire du type : x1 + x2 ≤ α avec 5 ≤ α ≤ 59/10 est une

coupe. A montrer!

Beaucoup de coupes sont donc possibles. En principe, il en existe toujours une infinité.

Après avoir rajouté une coupe ( ou éventuellement plusieurs), le PL augmenté des contraintes

est à nouveau résolu en continu par la méthode du simplexe.

Comme l'ancienne solution reste duale réalisable, il est avantageux d'utiliser pour cela

l'algorithme duale du simplexe.

Si les coupes sont correctement choisies à chaque étape, le polyèdre initial se réduit jusqu'à

coïncider avec l'enveloppe convexe des solutions entières, au moins au voisinage de la

solution optimale.

Le choix des coupes est déterminant pour la convergence de la méthode.

Module: Procédures PSE, PLNE, programmation dynamique et Métaheuristiques, dispensé par le Dr. DERBALA Ali.

UNIVERSIT

E SAAD DAHLAB D

E BLIDA

Chapitre 4 : La Programmation Linéaire en Nombres Entiers. 61

Si on choisit dans l'exemple les coupes de la forme:

x1 + x2 ≤ αk avec α1 = 58/10 et αk = αk-1 - 1/ 10k., l'algorithme ne converge pas vers une

solution entière ( A montrer encore une fois!).

Par contre, si on choisit comme coupes les deux contraintes

x1 + x2 ≤ 5 et x2 ≤ 4, on obtient directement l'optimum entier x1 = 1 et x2 = 4.

On ne connaît pas de méthodes systématiques pour engendre toutes les équations ou

inéquations définissant l'enveloppe convexe des points entiers contenu dans un polyèdre

convexe donné.

6. Les coupes de Gomory et de Dantzig

Définition 2.

soit (P)

ℵ∈==

nx

b x A.

xC. Max Z

le PLNE écrit "sous forme canonique" par rapport à une base B.

B = { a1, …, am}, AB = I, CJ = 0. Les coefficients de base dans la fonction objectif sont nuls.

Théorème 1. si les trois conditions suivantes b ≥ 0 c ≤ 0 et b entier sont satisfaites, alors le

vecteur X a coordonnées xi =

+==

n1,...,m i 0

m1,..., ipour ib est solution optimale de (P).

La première coupe à avoir été proposé est celle dite de Dantzig.

Supposons que b ≥ 0, c ≤ 0 et b est n'est pas entier.

Alors dans la solution optimale de (P), une des variables hors bases doit être différente de 0,

c-à-d supérieure ou égale à 1.

La coupe de Dantzig s'écrit alors ∑∉

≥Ii

1ix .

Les algorithmes fondées sur cette idée ne sont pas efficaces et ne sont pas utilisés.

6.1. Polyèdres de sommets entiers

Soit le PLNE (P) :

ℵ∈==

nx

b x A.

xC. Min Z

où A est une matrice: m x n, b un m-vecteur entier.

En relaxant la condition d'intégrité x ∈N n du problème (P),

UNIVERSIT

E SAAD DAHLAB D

E BLIDA

62

on obtient le problème (Pc)

≥==

0 x

b x A.

xC. Min Z

.

Une matrice A est dite "totalement unimodulaire" si toute matrice carrée extraite de A a son

déterminant égal à -1, 0 ou +1.

En particulier, cela entraîne que les coefficients d'une matrice totalement unimodulaire sont

eux-mêmes égaux à -1, 0 ou +1 puisqu'ils sont les déterminants de sous-matrices d'ordre 1.

Théorème 2. ( Hoffman et Kruskall 1956)

La solution optimale de base de (Pc) est entière, quelque soit le vecteur b à coordonnées

entières et le vecteur des coûts c, si et seulement si la matrice A est totalement unimodulaire.

Preuve: La solution de (Pc) est un sommet du polyédre.

Minz = CHB XHB + Π. b

XI + AB

-1. AHB. XJ = AB-1b

XI, XJ ≥ 0.

On sait que AB-1 = 1/ det AB x t(AB

* ) où aij* = (-1)i+j Aij

Aij représente le déterminant de la sous matrice de A obtenue en éliminant la ième ligne et

la jième colonne de A.

comme det AB = -1 ou + 1, Aij = -1, 0 ou + 1, on en déduit que (aij

-1 )B est entier et que le

vecteur xB est entier.

Remarques 6. La matrice d'incidence sommets-arcs d'un graphe est totalement unimodulaire.

La matrice d'incidence sommets-arêtes est totalement unimodulaire si le graphe est biparti.

Définition 3. Soit un PLNE(P), On dit qu'une inéquation a.. x ≤ α est valide, si elle est

satisfaite par toute solution réalisable de PLNE (P).

Une coupe est une inéquation valide qui n'est pas satisfaite pour tout point de (Pc) .

Théorème 3. relativement à une base B, pour toute valeur du scalaire "a" l'inéquation

]iab[

Ijib]a[jx ) ]ij'aa[ij'a]a[ ( −

∉≥−∑ est valide.

Pour certaines valeurs de a et en particulier a = 1, l'inéquation ][ ) ]'[' ( iIj

ijijij bbxaa −≥−∑∉

est

une coupe.

Module: Procédures PSE, PLNE, programmation dynamique et Métaheuristiques, dispensé par le Dr. DERBALA Ali.

UNIVERSIT

E SAAD DAHLAB D

E BLIDA

Chapitre 4 : La Programmation Linéaire en Nombres Entiers. 63

Notation: [.] et <.> désigneront respectivement la partie entière et la partie fractionnaire d'un

nombre.

Preuve: pour la ième contrainte de la solution optimale on a :

iIj

jiji bx'ax =+∑∉

si a ≠ 0 alors : iIj

jiji abx'aaax =+ ∑∉

Décomposons chaque coefficient en la somme de sa partie entière et sa partie fractionnaire.

On aura: [ ] .ab ][ab x 'a .a xax ]'a .a[x a iiIj

jijiIj

jiji ><+=><+><++ ∑∑∉∉

Comme 0 ≤ <a> < 1 et xj ≥ 0, on aura : .ab ][abx ]'a .a[ x[a] iiIj

jiji ><+≤+∑∉

Comme 0 ≤ <a.bi > < 1 et ∑∉

+Ij

jiji x ]'a .a[ x[a] est entier, [abi].x ]'a .a[ x[a]Ij

jiji ≤+∑∉

Multiplions l'équation : iIj

jiji b x'a x =+∑∉

par [a], on obtiendra :

(1) b [a]x'a. [a] x[a] iIj

jiji =+ ∑∉

Multiplions par (-1) l'inéquation : [ ]iIj

jiji abx ]'a .a[ x[a] ≤+ ∑∉

qui deviendra :

[ ]∑∉

−≥Ij

ijiji (2) abx ]'a .a[- x[a]-

En additionnant (1) et (2), on a: ]iab[

Ijib]a[jx ) ]ij'aa[ij'a]a[ ( −

∉≥−∑ .

Pour a = 1, >≥<><∑∉

iIj

jij b xa' est une coupe.

Elle n'est pas satisfaite pour la solution de base de (Pc).

Exemple 4.

En appliquant la méthode des coupes, résoudre le PLNE suivant :

Max Z = 28 x1 + 11 x2

(P)

ℵ∈ℵ∈≤+

21

21

x, x

25 x6 x14

Max Z = 28 x1 + 11 x2

(Pc)

ℵ∈ℵ∈ℵ∈=++

321

321

xet x, x

25 x x6 x14

UNIVERSIT

E SAAD DAHLAB D

E BLIDA

64

En appliquant l'algorithme du simplexe relaxé de (Pc), on a une solution optimale:

x1= 25/14, x2 = x3 = 0 et z* = 50. Cette solution est obtenue après transformation de la

contrainte et de la fonction objectif.

x1 + 6/14 x2 + 1/14 x3 = 25/14 et Maxz = 50 - x2 - 2 x3.

x1 n'est pas entière, les variables x2 et x3 sont hors base.

On choisit une coupe de type : ∑∉

><Ij

jij x a' ≥ <bi>.

C'est à dire: 6/14 x2 + 1/14 x3 ≥ (25/14) - 1 = 11/14.

- 6/14 x2 - 1/14 x3 + x4 = - 11/14.

On résout le programme linéaire augmenté :

{

1,...,4 i , x

11/14- x x1/14 - x6/14-

25/14 x14/1 x6/14 x

x2 - x- 50 Max Z

)(

i

432

321

32

=ℵ∈=+=++

=

aP

On résout ce problème avec la méthode duale du simplexe.

B xBBx x1 x2 x3 x4

x1

x4

25/14

-11/14

1

0

6/14

-6/14

1/14

-1/14

0

1

Zj - cj 50 0 1 2 0

x1

x2

1

11/6

1

0

0

1

0

1/6

1

-14/6

Zj - cj 289/6 0 0 11/6 14/6

On trouve que : x1 = 1, x2 = 11/6, x3 = x4= 0.

x2 n'est pas entière.

x2 + 1/6x3 - 14/6 x4 = x2 + 1/6x3 + (- 3 + 4/6) x4 = 11/6 = 1 + 5/6.

On choisit la seconde coupe: 1/6x3 + 4/6 x4 ≥ 5/6.

Soit: - 1/6x3 - 4/6 x4 + x5 = 5/6.

Le problème augmenté une seconde fois devient :

Max Z = 289/6 - 11/6 x3 - 14/6x4

(Pa)2

=ℵ∈−=+=+

=+

1,...,4 i , x

6/5 x x4/6 - x1/6-

11/6 14/6x- x1/6 x

1 x x

i

543

432

41

Module: Procédures PSE, PLNE, programmation dynamique et Métaheuristiques, dispensé par le Dr. DERBALA Ali.

UNIVERSIT

E SAAD DAHLAB D

E BLIDA

Chapitre 4 : La Programmation Linéaire en Nombres Entiers. 65

B xBBx x1 x2 X3 x4 x5

x1

x2

x5

1

11/6

- 5/6

1

0

0

0

1

0

0

1/6

-1/6

1

-14/6

-4/6

0

0

1

Zj - cj 289/6 0 0 11/6 14/6 0

On le résout une seconde fois par la méthode duale du simplexe et on obtiendra:

La solution optimale: x1* = 0, x2

* = 4 et Z* = 44.

Exercices

1. Résoudre :

minZ = - 20 x1 - 16 x2 - 11 x3 - 9 x4 - 7 x5 - x6

9 x1 + 8 x2 + 6 x3 + 5 x4 + 4 x5 + x6 ≤ 12

xi ∈ { 0, 1}, i = 1,…, 6.

2. Résoudre par une PSE

a. Max z = 2 x1 + x2

3 x1 + 4 x2 ≤ 15

x1 - 4 x2 ≤ 0

x1, x2 ∈ N.

( Montrer que (3, 1) est l'optimum et que Z(3, 1) = 7.

b. Max z = 6 x1 + 6 x2 + x3

- 3x1 + 6x2 + 7x3 ≤ 8

6 x1 - 3 x2 + 7x3 ≤ 8

x1, x2 et x3∈ N.

c. Max z = 5x1 + 4x2 + 3x3 + 2 x4 + x5

7x1 + 4x2 + 5x3 + 3x4 + 2x5 ≤ 13

2 x1 + 2 x2 + 4x3 + x4 + x5 ≤ 5

xi ∈ N, i = 1,…,5.

( vérifier que X= ( 0, 0, 1, 1, 0) et Y = ( 1, 1, 0, 0, 1) sont optimales et que Z(X) = Z(Y) = 10)

66

3. En appliquant la méthode des coupes , résoudre le PLNE suivant :

Max Z = 3 x1 + 2 x2

- x1 + x2 ≤ 1

x1 + 2 x2 ≤ 10

7 x1 + 2 x2 ≤ 28.

x1 ∈N, x2 ∈N

(indication: La solution optimale: x1* = x2

* = 3 et Z* = 15.)

4. Montrer que le PLNE suivant n'a pas de solutions :

Min Z = 3 x1 + 2 x2

x1 ≤ 3/2

2 x2 ≤ 5/3

5 x1 + 6 x2 ≥ 15.

x1 ∈N, x2 ∈N

Module: Procédures PSE, PLNE, programmation dynamique et Métaheuristiques, dispensé par le Dr. DERBALA Ali.

UNIVERSIT

E SAAD DAHLAB D

E BLIDA