Génération de colonnes pour la résolution des problemes de foresterie par: Hatem BEN AMOR FOR@C Universite Laval Quebec
Plan Principe de génération de colonnes Rappels sur la programmation linéaire Idée de base Schéma général Génération de colonnes en foresterie Exemples de sous-problemes Obtention de solutions entieres Exemple: Optimisation des opérations dans un complexe de sciage
Rappels sur la programmation linéaire Choisir une base de départ B Variables (colonnes): de base / hors base Calculer le vecteur de multiplicateurs correspondant : p Chercher une variable hors base de cout réduit négatif qui entre dans la base Si pas de variable de cout réduit négatif, STOP: optimalité atteinte
Idée de base Nombre de colonnes tres élevé Faire le pricing sur un (petit) sous-ensemble des colonnes Augmenter l’ensemble des colonnes considérées au fur et a mesure si nécessaire But: Obtenir une solution optimale en prenant en considération un ensemble réduit de colonnes Résolution plus efficace
Principe Considérer une version restreinte du probleme avec un « petit » ensemble de colonnes: probleme maitre restreint Résoudre PMR Si solution optimale, STOP Sinon, ajouter des colonnes et réoptimiser
Génération de colonnes: principe Programme linéaire (Problème maître): Primal (P) Dual (D) A a un très grand nombre de colonnes Impossible à considérer simultanément
Génération de colonnes: principe Considérer un sous ensemble de colonnes Problème maître restreint Primal (MP k) Dual (MD k) Solutions : réalisable pour (P) Optimalité atteinte?
Génération de colonnes: principe Calculer le coût réduit minimum Oracle ou sous-problème Si , est optimale pour (P) Sinon On vient d ’identifier une colonne de coût réduit < 0 ajouter au problème maître restreint: (MP k+1) Réoptimiser (MP k+1)
Génération de colonnes: principe
Génération de colonnes: point de vue dual
GC: sous-probleme Structure particuliere: résolution plus efficace que l’ énumération explicite de toutes les colonnes Dépend de l’application Critique pour l’efficacité de l’algorithme Résolution approximative Ajouter plusieurs colonnes a la fois
GC: sous-probleme Probleme de plus court/plus long chemin Probleme de sac-a-dos Programme linéaire Probleme en nombres entiers Oracle: entrée : vecteur de multiplicateurs p sortie : colonne(s) a cout réduit négatif
Génération de colonnes: difficultés et instabilté Oscillations fréquentes des valeurs des variables duales Évolution des bornes supérieure et inférieure Borne supérieure (primal) Borne inférieure (dual) «Qualité» des colonnes générées? Contrôler l ’évolution des variables duales
GC en foresterie Tronconnage (decoupe unidimensionnelle): Sciage : Sous-probleme: sac-a-dos (Gilmore et Gomory 61, Faaland et Briggs 84), plus long chemin sur un graphe etendu (Sessions etal. 89, V. de Carvalho 99), plus court chemin avec contraintes (Ben Amor 97) Sciage : Sous-probleme (oracle): Optimiseur de patrons de sciage generalement propre a l’entreprise (Geerts 83, Eng etal. 86, Manness et Adams 90, Ronqvist et Liden 00, Ben Amor etal 04, etc …) Interpretation des multiplicateurs Adapter le pricing Cutting bills …
GC en foresterie Modeles integres tronconnage-sciage: Tronconnage: Eng et Daellenbach 84 Manness et Briggs 90 Liden et Ronnqvist 00 Tronconnage: Eng etal. 86 Sessions etal. 89 Sciage Manness et Norton 02 Ben Amor etal. 04
Resolution en nombres entiers Branch-and-price: extension du Branch-and-Bound Schemas de branchement: tenir compte du sous-probleme Variables de volume ou de quantite: grandes valeurs Pas besoin d’imposer l’integrite Variables binaires: integrite requise Schemas de branchement assez efficaces