Académique Documents
Professionnel Documents
Culture Documents
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
bivalentes n'ayant qu'une contrainte : (K) a 1x1 + ... + a n x n ≤ b
SA
x j ∈ {0,1}, j = 1,2,.., n
TE
x j ∈ ℵ, j = 1,2,.., n
ER
Max Z = C. x
A. x ≤ b
IV
" relachant" les contraintes d'intégrité sur les variables est dit programme linéaire relaxé de
(P).
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.
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
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
résolution effective des PLNE. Il existe des méthodes spécifiques de résolution des PLVB qui
U
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
n
max ∑ c j x j
D
j=1
A
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
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
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
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
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
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
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
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
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
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
x1 + x2 = 6
3x1 + 2x2 = 15
IV
9x1 + 5x2 = 45
N
U
(3,3)
(15/4, 9/4)
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
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
Comme l'ancienne solution reste duale réalisable, il est avantageux d'utiliser pour cela
N
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
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
Alors dans la solution optimale de (P), une des variables hors bases doit être différente de 0,
A
Les algorithmes fondées sur cette idée ne sont pas efficaces et ne sont pas utilisés.
SI
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
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.
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
Définition 3. Soit un PLNE(P), On dit qu'une inéquation a.. x ≤ α est valide, si elle est
TE
Théorème 3. relativement à une base B, pour toute valeur du scalaire "a" l'inéquation
IV
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
j∉ I
(2)
j∉I
A
j∉I
∑ < a'
TE
Exemple 4.
IV
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
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
x1 1 1 0 0 1
SA
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
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
b. Max z = 6 x1 + 6 x2 + x3
SA
6 x1 - 3 x2 + 7x3 ≤ 8
x1, x2 et x3∈ N.
SI
2 x1 + 2 x2 + 4x3 + x4 + x5 ≤ 5
N
xi ∈ N, i = 1,…,5.
U
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