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
Techniques d'Optimisation ed2c'2012 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: _ xk ≤ uk avec - et k le plus petit entier tel que 2(k+1) ≥ uk +1 Inconvénient: Nombre de variables augmentent !!! Techniques d'Optimisation 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 ed2c'2012
Problème de Recouvrement et Partionnement (2/2) Modèle: A= (aij) la matière d’incidence tâches-moyens de H : X= (x1, x2, …, xn)t variables de décision avec Techniques d'Optimisation 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 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 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 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 ed2c'2012
Techniques d'Optimisation ed2c'2012 Exemple illustratif Le PLB’ est: Min Z= 3x1+2x2 + 5x3 +2x4 +3x5 -- x1 - x2 + x3 + 2x4 - x5 + S1 = 1 - 7x1 + 3 x3 - 4x4 - 3x5 + S2 = -2 11 x1 – 6x2 -3x4 – 3x5 + S3= -1 xj = (0,1) j=1, ..,5 Si 0 Soit le PLB suivant: Max Z = 3x1+2x2 - 5x3 -2x4 +3x5 x1+x2 + x3 +2x4+x5 ≤ 4 7x1+ 3 x3 - 4x4+ 3 x5 ≤ 8 11 x1 – 6x2 +3x4 – 3x5 ≥ 3 xj = (0,1) j=1, .., 5 Transformations: Max Z Min (-Z) xj= 1- xj pour j=1, 2 et 5 Techniques d'Optimisation ed2c'2012
Techniques d'Optimisation 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 solution optimale est atteinte au nœud 1. Techniques d'Optimisation ed2c'2012
Arborescence des solutions Techniques d'Optimisation 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 (1) à remplacer par: (2) 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 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 ( >0) est dite bi variablement irréalisable si et seulement si: = i - < () 0 Pour une solution réalisable de et si alors : xj0= 0 pour aij0> et xj0=1 si aij0 <0 Techniques d'Optimisation ed2c'2012
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 ed2c'2012
Amélioration de Ballas (4/4) Geoffrion: La meilleure contrainte cumulative est celle qui vérifie: Résoudre le programme linéaire: Min wt = 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 ed2c'2012
Techniques d'Optimisation ed2c'2012 Exemple illustratif Soit le PLB suivant : Min Z = (3, 2, 5, 2, 2) t (x1, x2, x3, x4, x5) xj = (0, 1) 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
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 ed2c'2012