Vous êtes sur la page 1sur 14

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.
 Max Z = C. x

Définition 1. Le problème (P)  A. x ≤ b est appelé " programme linéaire
x ∈ ℵ ( x ∈ ℵ, j = 1,2,.., n )
n
 j

en nombres entiers".

A
 Max Z = C. x

ID
(P) peut s'écrire en ( P̂ )  A. x = b
 x ∈ ℵ, j = 1,2,.., n

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

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

D
 Max Z = C. x B

b) Le problème (P)  A. x ≤ b est appelé "programme linéaire en { 0, 1 } ou
LA
 x ∈ { 0, 1 }, j = 1,2,.., n )
 j
H

en variables bivalentes.
A
D

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


D

 Max Z = c1x1 + ... + c n x n


A


bivalentes n'ayant qu'une contrainte : (K)  a 1x1 + ... + a n x n ≤ b
SA

 x j ∈ {0,1}, j = 1,2,.., n


TE

Max Z = c1x1 + ... + c n x n



Par extension (K')  a 1x1 + ... + a n x n ≤ b est appelé problème de " sac à dos".
SI

 x j ∈ ℵ, j = 1,2,.., n

ER

 Max Z = C. x

A. x ≤ b
IV

Remarque 2. a)Le problème linéaire (P')  est obtenu à partir de (P) en


 x ≥ 0, j = 1,2,.., n )
 j
N
U

" 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.


Module: Procédures PSE, PLNE, programmation dynamique et Métaheuristiques, dispensé par le Dr. DERBALA Ali. 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,

A
Max z = 10 x1 + 8 x2 + 5 x3

ID
6 x1 + 5 x2 + 4 x3 ≤ 9

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

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

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

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

LA
10 8 5
( cj / aj sont croissants. ≥ ≥ )
6 5 4
H
Remarque 3.
A

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


D

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


D

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


A

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


SA

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


TE

tj
On peut écrire que xj = ∑ 2 k y kj , ykj ∈ { 0, 1}.
k =0
SI

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

bien à un PLVB équivalent à (P).


IV

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


N

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

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.
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

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

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

BL
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.

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

B
Un voyageur muni d'un sac qui lui sert à transporter des produits de valeurs. Son problème
LA
consiste à maximiser la valeur totale des objets qu'il emporte, sans toutefois dépasser une
H

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


A

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


D

n
max ∑ c j x j
D

j=1
A

emporter sera obtenue en résolvant le programme :  n


∑ w j x j ≤ b
SA

 j=1
 x j ∈ℵ

TE

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
SI

solution peut s'avérer mauvaise).


ER
IV

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


Max z = 2 x1 + 3 x2 + 7 x3
N

3 x1 + 4 x2 + 8 x3 ≤ 14
U

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.
Module: Procédures PSE, PLNE, programmation dynamique et Métaheuristiques, dispensé par le Dr. DERBALA Ali. 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

A
x1 x2 x3 Valeur Z(x)

D
0 1 1 10

I
2 0 1 11

BL
0 3 0 9

E
2 2 0 10

D
3 1 0 9

B
4 0 0 8

LA
La solution optimale entière est x* = ( 2, 0, 1) de valeur 11 qui diffère passablement de la
solution optimale linéaire . H
A
Cette technique d'énumération ne peut s'appliquer à des problèmes de grande taille.
D
D

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


A

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


SA

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


E

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


T

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


SI

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

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".
IV

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

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

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;
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

A
l'arbre d'énumération.

D
RL0

I
BL
( 0, 0, 14/8)

E
x3 ≤ 1 Obj = 12,25 x3 ≥ 2

D
RL1 RL8

B
( 0, 6/4, 1) x2 ≥ 2
LA
sondé(non réalisable)
x2 ≤ 1 Obj = 11,5
H
RL7
A

RL2
D

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

x1 ≥ 1
A

x1 = 0 Obj = 11.1/3
SA

RL3 RL4
TE

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


Obj = 13 Obj = 11. 1/4
SI

Sondé réalisable RL5 RL6


ER

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


IV

Obj = 11 Obj = 11. 1/8


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

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.
Module: Procédures PSE, PLNE, programmation dynamique et Métaheuristiques, dispensé par le Dr. DERBALA Ali. 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.

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

D
l'élimine du sous problème.

I
BL
- 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,

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

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

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

LA
- 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.

H
A
- Si l'objectif du P.L relaxé vaut Z, la solution entière ne peut valoir plus que [Z] puisque les
D
coefficients de l'objectif sont entiers. Ceci ne serait pas si les coefficients étaient
fractionnaires.
D
A

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


SA

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
TE

= (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.
SI

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

sommets.
IV

4. Une seconde stratégie: les hyperplans coupants


N

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


U

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)
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

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

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

I
BL
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.

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

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

B
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. LA
Cette contrainte linéaire rend inadmissible la solution courante admissible, sans éliminer
H
A

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


D

Max z = 4 x1 + 5/2 x2
x1 + x2 ≤ 6
D
A

9 x1 + 5 x2 ≤ 45
SA

3x1 + 2 x2 ≤ 15
x1, x2 ∈ N.
TE

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

on construit une nouvelle coupe et on recommence.


ER

x1 + x2 = 6
3x1 + 2x2 = 15
IV

9x1 + 5x2 = 45
N
U

(3,3)
(15/4, 9/4)

Fig 1. Représentation dans le plan des contraintes


Module: Procédures PSE, PLNE, programmation dynamique et Métaheuristiques, dispensé par le Dr. DERBALA Ali. 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

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

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

BL
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

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

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

B
LA
Exemple 3. soit à résoudre le PLNE
Min z = -10 x1 - 11 x2
H

10 x1 + 12 x2 ≤ 59
A
D

x1, x2 ∈ N.
D

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


A

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


SA

C'est bien une coupe.


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

coupe. A montrer!
SI

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
ER

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


IV

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

l'algorithme duale du simplexe.


U

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.
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

A
Définition 2.

ID
 Max Z = C. x

A. x = b

BL
soit (P)  le PLNE écrit "sous forme canonique" par rapport à une base B.
 x ∈ℵ n

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

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

b pour i = 1,..., m
vecteur X a coordonnées xi =  i est solution optimale de (P).
0 i = m + 1,..., n
H
A

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


D

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


D

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

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


SA

La coupe de Dantzig s'écrit alors ∑ x i ≥ 1 .


i∉I
TE

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

6.1. Polyèdres de sommets entiers


ER

 Min Z = C. x

Soit le PLNE (P) :  A. x = b où A est une matrice: m x n, b un m-vecteur entier.
IV

 x ∈ℵ n

N

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


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

 Min Z = C. x

on obtient le problème (Pc)  A. x = b .
 x≥0

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)

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

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

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

BL
Minz = CHB XHB + Π. b
XI + AB-1. AHB. XJ = AB-1b

E
D
XI, XJ ≥ 0.
On sait que AB-1 = 1/ det AB x t(AB* ) où aij* = (-1)i+j Aij
B
LA
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.
H

comme det AB = -1 ou + 1, Aij = -1, 0 ou + 1, on en déduit que (aij-1 )B est entier et que le
A
D

vecteur xB est entier.


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

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


SA

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

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) .
SI
ER

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

∑ ( [a ]a 'ij −[aa'ij ] ) x j ≥ [a ]b i − [ab i ] est valide.


j∉I
N

Pour certaines valeurs de a et en particulier a = 1, l'inéquation ∑ ( a 'ij −[a 'ij ] ) x j ≥ bi − [bi ] est
U

j∉I

une coupe.
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 :
x i + ∑ a 'ij x j = b i
j∉I

si a ≠ 0 alors : ax i + a ∑ a 'ij x j = ab i
j∉I

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

D
On aura: [a] xi + ∑ [a. a 'ij ] x j + < a > x i + ∑ < a. a 'ij > x j = [ab i ] + < ab i > .

I
j∉I j∉I

BL
Comme 0 ≤ <a> < 1 et xj ≥ 0, on aura : [a] x i + ∑ [a. a 'ij ] x j ≤ [ab i ] + < ab i > .
j∉I

E
Comme 0 ≤ <a.bi > < 1 et [a] x i + ∑ [a. a 'ij ] x j est entier, [a] x i + ∑ [a. a 'ij ] x j ≤ [abi].

D
j∉I j∉I

B
Multiplions l'équation : x i + ∑ a 'ij x j = b i par [a], on obtiendra :
j∉I

[a] x + [a] .∑ a ' ij x = [a] b i


LA (1)
H
i j
j∉ I
A

Multiplions par (-1) l'inéquation : [a] x i + ∑ [ a . a ' ij ] x j ≤ [ab i ] qui deviendra :


D

j∉ I

- [a] x i - ∑ [a. a 'ij ] x j ≥ −[ab i ]


D

(2)
j∉I
A

En additionnant (1) et (2), on a: ∑ ( [a ]a 'ij −[aa'ij ] ) x j ≥ [a ]b i − [ab i ] .


SA

j∉I

∑ < a'
TE

Pour a = 1, ij > x j ≥< b i > est une coupe.


j∉I
SI

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


ER

Exemple 4.
IV

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


N

Max Z = 28 x1 + 11 x2
U

14 x 1 + 6 x 2 ≤ 25
(P) 
 x 1 ∈ ℵ, x 2 ∈ ℵ
Max Z = 28 x1 + 11 x2
 14 x1 + 6 x 2 + x 3 = 25
(Pc) 
 x 1 ∈ ℵ, x 2 ∈ ℵet x 3 ∈ ℵ
Module: Procédures PSE, PLNE, programmation dynamique et Métaheuristiques, dispensé par le Dr. DERBALA Ali. 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 : ∑ < a'
j∉I
ij > x j ≥ <bi>.

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

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

BL
On résout le programme linéaire augmenté :
Max Z = 50 - x 2 - 2 x 3

E
x1 + 6/14 x 2 + 1 / 14 x 3 = 25/14
( Pa ) {

D
- 6/14 x 2 - 1/14 x 3 + x 4 = - 11/14
x i ∈ ℵ, i = 1,...,4

B
LA
On résout ce problème avec la méthode duale du simplexe.
B xB xB x1 x2 x3 x4
H
A
x1 25/14 1 6/14 1/14 0
D

x4 -11/14 0 -6/14 -1/14 1


Zj - cj 50 0 1 2 0
D
A

x1 1 1 0 0 1
SA

x2 11/6 0 1 1/6 -14/6


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

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


SI

x2 n'est pas entière.


ER

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


IV

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


N

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


U

Le problème augmenté une seconde fois devient :


Max Z = 289/6 - 11/6 x3 - 14/6x4
 x1 + x4 =1
 x 2 + 1/6 x 3 - 14/6x 4 = 11/6

(Pa)2 
 - 1/6 x 3 - 4/6 x 4 + x 5 = −5 / 6
 x i ∈ ℵ, i = 1,...,4
Chapitre 4 : La Programmation Linéaire en Nombres Entiers. 65

B xB xB x1 x2 X3 x4 x5

x1 1 1 0 0 1 0
x2 11/6 0 1 1/6 -14/6 0
x5 - 5/6 0 0 -1/6 -4/6 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.

A
ID
Exercices

BL
1. Résoudre :
minZ = - 20 x1 - 16 x2 - 11 x3 - 9 x4 - 7 x5 - x6

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

D
xi ∈ { 0, 1}, i = 1,…, 6.
B
LA
2. Résoudre par une PSE
a. Max z = 2 x1 + x2
H

3 x1 + 4 x2 ≤ 15
A

x1 - 4 x 2 ≤ 0
D

x1, x2 ∈ N.
D

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


A

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

- 3x1 + 6x2 + 7x3 ≤ 8


TE

6 x1 - 3 x2 + 7x3 ≤ 8
x1, x2 et x3∈ N.
SI

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


ER

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


IV

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

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

( 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)


Module: Procédures PSE, PLNE, programmation dynamique et Métaheuristiques, dispensé par le Dr. DERBALA Ali. 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.)

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

ID
Min Z = 3 x1 + 2 x2

BL
x1 ≤ 3/2
2 x2 ≤ 5/3

E
D
5 x1 + 6 x 2 ≥ 15.

B
x1 ∈N, x2 ∈N
LA
H
A
D
D
A
SA
TE
SI
ER
IV
N
U

Vous aimerez peut-être aussi