Vous êtes sur la page 1sur 18

Techniques d’Optimisation

Chapitre 3: Programmation en 0-1


(bivalente)

Dr TARI Abdelkamel
Mai 2012
Plan
 Introduction à la PLB
 Problème de recouvrement et de
partionnement
 Algorithme de BALAS
 Amélioration de BALAS
Introduction
Un PLB s’écrit:
Min Z = ƒ (x1…..x n)
gi(x1….x n) ≤ b avec i I={1, …, m}
xj= (1, 0) pour j  J{1, …, n}
Un PLNE peut être ramené à un PLB par l’une des
transformations: k
_ xk ≤ uk avec xk   y j avec y j  (1,0) j  1,..., k
j 1
k
- xk   2 j y j avec y j  (1,0)
j 1
et k le plus petit entier tel que 2(k+1) ≥ uk +1
Inconvénient: Nombre de variables augmentent !!!

Techniques d'Optimisation
3
ed2c'2012
Problème de Recouvrement et Partionnement (1/2)
Soient m tâches s1…, s m à réaliser avec n moyens E1…, En
Un moyen Ej réalise une ou plusieurs tâches avec un coût cj =
cj(Ej).
Problème de recouvrement : Réaliser toutes les tâches par les
moyens au moindre coût.
Problème de partitionnement: les moyens sont exclusifs (une
tâche est réalisée par un et un seul moyen)
Modélisation:
S={s1…, s m} l’ensemble des tâches et ζ ={E1, …, En} l’ensemble
des moyens où Ej  S (Ej  0) et  Ej = S.
H=(S, ζ) est appelé hypergraphe.

Techniques d'Optimisation
4
ed2c'2012
Problème de Recouvrement et Partionnement (2/2)
Modèle:  Min Z   n
cjxj
 j 1

 n
  aij xij  1i  1,..., m
 j 1
 x j  (1, 0) j  1,..., n

A= (aij) la matière d’incidence tâches-moyens de H :


1 si si  E j
aij  
0 sin on
X= (x1, x2, …, xn)t variables de décision avec x  1 si E j  F
j 
0 sin on

Techniques d'Optimisation
5
ed2c'2012
Algorithme de Ballas (1/4)
Approche Branch and Bound (arborescence des solutions)
Principe de séparation : xj=1 sur une branche et xj=0 sur l’autre
La racine correspond à toutes les variables nulles (J0=)
La solution initiale n’est pas réalisable
Une itération: Améliorer l’infaisabilité de la solution
 Contraindre un sous ensemble de variables à la valeur 1.
Stratégie d’exploration:
Profondeur d’abord: Exploration d’une branche jusqu'à obtenir sa
feuille ou la couper.
Exploration intelligente :
 Mêmes techniques d’élagage que B&B
 Utilisation d’une série de tests pour éliminer des branches
inutiles.
Techniques d'Optimisation
6
ed2c'2012
Algorithme de Ballas (2/4)
Soit le PLB suivant:

Si cj < 0 alors poser x’j = (1 – xj).


Notations:
+i : La variable xi est fixée à 1 et –i si elle prend la valeur 0
Jt : La solution partielle au nœud t, si Jt =  alors toutes les
variables sont libres
Nt : L’ensemble des variables libres au nœud t
Zt : La valeur de z à l’itération t.
Z* : La meilleure solution trouvée à l’itération t (au départ Z * = ∞)
Sit : La valeur de la variable d’écart à l’itération t.
Techniques d'Optimisation
7
ed2c'2012
Algorithme de Ballas (3/4)
Ligne i au nœud t:

Infaisabilité de xj au nœud t:

Tests à effectuer selon l’ordre suivant:


Test 1: Ignorer la variable libre xr vérifiant: Si < 0  i et air ≥ 0.
Mettre à jour Nt
Test 2 : Ignorer la variable libre xr vérifiant cr + Zt ≥ Z*. Mettre à
jour Nt (au départ, Z*=+).
Test 3: S’il existe Sit < 0 tq: alors supprimer Jt.

Test 4: Si Nt ≠, choisir xk tq:


Techniques d'Optimisation
8
ed2c'2012
Algorithme de Ballas (4/4)
Deux cas se présentent :
• Cas 1  : Si et xk=1 alors Jt+1 = Jt  {+ k} est une solution
réalisable. Remplacer Z* par Z(t+1) si Z(t+1) < Z*. Supprimer J(t+1).
• Cas 2 : Si , appliquer les précédents tests sur J(t+1).
Retour arrière lorsqu’un nœud est supprimé.
Arrêt de l’algorithme lorsque tous les nœuds sont coupés.
Si Z*= alors il n’existe pas de solution réalisable pour le PLB

Test 3 bis:
Glover et Zionts ont proposé une modification du test 3 :
Dt = {jϵ Nt /

Si Dt = Nt, supprimer Jt

Techniques d'Optimisation
9
ed2c'2012
Exemple illustratif
Soit le PLB suivant: Le PLB’ est:
Max Z = 3x1+2x2 - 5x3 -2x4 +3x5 Min Z= 3x1+2x2 + 5x3 +2x4 +3x5
x1+x2 + x3 +2x4+x5 ≤ 4 -- x1 - x2 + x3 + 2x4 - x5 + S1 = 1
7x1+ 3 x3 - 4x4+ 3 x5 ≤ 8 - 7x1 + 3 x3 - 4x4 - 3x5 + S2 = -2
11 x1 – 6x2 +3x4 – 3x5 ≥ 3 11 x1 – 6x2 -3x4 – 3x5 + S3= -1
xj = (0,1) j=1, .., 5 xj = (0,1) j=1, ..,5
Si  0
Transformations:
Max Z  Min (-Z)
xj= 1- xj pour j=1, 2 et 5

Techniques d'Optimisation
10
ed2c'2012
Exemple illustratif
Itération 0: J0 = , N0 ={1, 2, 3, 4, 5}, Z0= 0, Z*=
Test 1: Supprimer x3 et N0 ={1, 2, 4, 5}
Test 2 : -
Test 3: Garder N0 ={1, 2, 4, 5 }
Test 4 : I5= Max (Ij, j N0)= 0. Séparer sur x5
Itération 1: x5= 1, J1 = {+5}, N1 ={1, 2, 3, 4}, Z1= 3< Z*=. Poser Z*=3. Supprimer
J1
Itération 2: x5= 0, J2 = {-5}, N2 ={1, 2, 3, 4}, Z2= 0, Z*=3
Test 1: Supprimer x3 et N2 ={1, 2, 4}
Test 2 : Supprimer x1 et N2 ={2, 4}
Test 3 : Garde N2 ={ 2, 4}
Test 4 : I4= Max {Ij, j N0}= -1. Séparer sur x4
Itération 3: x4= 1, J3 = {-5, +4}, N3 ={1, 2, 3}, Z3= 2, Z*=3
Test 1: Supprimer x3 et N3 ={1, 2}
Test 2 : Supprimer x1 et x2 ,N3=, J3 à supprimer. Retour arrière au nœud 4.
Itération 4: x4= 0, J4 = {-5, -4}, N2 ={1, 2, 3}, Z4= O, Z*=3
Test 1: Supprimons x3 et N2 ={1, 2}
Test 2 : Supprimer x1 et N2 ={2}
Test 3 : Supprimer x2. Supprimer J4. Terminer, la solutionTechniques
optimale d'Optimisation
est atteinte au nœud 1.
ed2c'2012
11
Arborescence des solutions

Techniques d'Optimisation
12
ed2c'2012
Amélioration de Ballas (1/4)
Réduction de l’explosion combinatoire des sommets de
l’arborescence des solutions
– Construction de contraintes cumulatives (surrogate
constraint)
Soit un ensemble de contraintes

 aij x j  bi i  1,..., m
k k

jN t
(1)

à remplacer par:
m n m
  i a x j   i bik
k
ik
(2)
i 1 j 1 i 1
 est un vecteur positif non négatif
Dk et Dk(x) représente les solutions réalisables respectivement
de (1) et (2) alors Dk  Dk(x)
Techniques d'Optimisation
13
ed2c'2012
Amélioration de Ballas(2/4)
Si x’ est solution réalisable de (P) alors x’ est aussi réalisable pour la
contrainte (2)
Si la contrainte (2) ne possède pas de solution réalisable, il en sera de
même pour (P).
Théorème: La contrainte  i   a j x j  0
( >0) est dite bi
jNt
variablement irréalisable si et seulement si:

Max i  
 i   a j x j où x j  ( 0,1) j  1, ..., n 

 j Nt 
= i -  Min(0, aij ) < () 0
j
Pour une solution réalisable de  i   a j x j  () et
0 si
jNt

 i   Min (0, aij )  aij 0  0 ()


j

alors : xj0= 0 pour aij0> et xj0=1 si aij0 <0


Techniques d'Optimisation
ed2c'2012 14
Amélioration de Ballas(3/4)
Explication du théorème:
• Si i) est satisfaite pour la contrainte combinée (2) alors la
solution partielle correspondante doit être coupée.
• ii) offre un moyen simple de fixer les valeurs de certaines
variables libres à 1 ou 0.
Appliquer le théorème aux deux contraintes:
a) -5 – (-x1 -2 x2 +3 x3) ≥ 0 est irréalisable
b) -1 – (-2 x1 + x2 + x3+ x4) ≥ 0  x1= 1
Choix de la meilleure contrainte combinée:
Glover: 1 (A x – b ) ≤ 0  est meilleure que « 2 (A x – b ) ≤
0 » relativement à la solution partielle Jt si
Min x { cx /1 (A x – b) ≤ 0 }  Min x{ cx /1 (A x – b) ≤0 }
Techniques d'Optimisation
15
ed2c'2012
Amélioration de Ballas (4/4)
Geoffrion: La meilleure contrainte cumulative est celle qui
vérifie: Min Max  ( A x  b)  ( Z min  c x ) 
 x

 Résoudre le programme linéaire:


m
Min w =  S it  i   y j 
t ( Z Min  Z t
)
i1i 1m jNt
  aij i  y j  c j
i 1

i , y j  0 i  M et j  N t

Si wt Min < 0 alors Jt doit être coupée ( d’après i) du théorème de


Geoffrion)
Si wt Min ≥ 0, utiliser les valeurs optimales de  pour construire la
contrainte combinée , la rajoutée au problème et utiliser le ii)
du théorème précédent pour fixer les valeurs de certaines
variables libres
Techniques d'Optimisation 16
ed2c'2012
Exemple illustratif
Soit le PLB suivant :
Min Z = (3, 2, 5, 2, 2) t (x1, x2, x3, x4, x5)
 x1 
 
 1 1 1 2  1  x2   1 
      2
 7 0 3 4  3   x3  
 11  
 6 0 3  3  x4 
 1
 
xj = (0, 1)
x 
 5 
La résolution du programme linéaire
Min w2 = 1 – 2 2 - 3 + y1 + y2 + y3 + y4 + 3
1 + 7 2 - 11 3 - y1 ≤3
1 + ­6 3 – y2 ≤2
-1 - 3 2 - y3 ≤5
-2 1 + 4 2 + 3 3 – y4 ≤ 2
i, yj ≥ 0 i, j =1, 2, 3 Techniques d'Optimisation
ed2c'2012
17
Exemple illustratif (2/2)
La solution du programme linéaire est: 1 = - 0. 99 2 = 0. 48 et
3 = 0. 03, w2Min= - 0.99 + (ZMin – 1 – Z2)= 0. 1 > 0.
Comme w2Min > 0, la contrainte combinée est :
0.48 ( -2 – (-7 x1 + 3 x3 – 4 x4)) + 0.03 (-1 – (11 x1 – 6 x2 -3 x4)) +
((3-1) – (3x1 + 2 x2 + 5 x3 + 2 x4)) ≥ 0.
Ou encore : -0.03 x1 + 1.82 x2 + 6.44 x3 -0.01 x4 ≤ 1.01.
En utilisant le théorème de Geoffrion, on déduit que x2 et x3
doivent être fixés à 0 pour espérer avoir une solution
réalisable.

Techniques d'Optimisation
18
ed2c'2012

Vous aimerez peut-être aussi