chapitre 4 la programmation linéaire en nombres entiers · universite saad dahlab de blida...
Post on 09-May-2018
228 Views
Preview:
TRANSCRIPT
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
top related