Décomposition de Benders

La décomposition de Benders est une technique d'optimisation qui permet de trouver des solutions à des problèmes d'optimisation linéaire de très grande taille ayant une structure de blocs. On rencontre souvent cette structure dans les applications comme la programmation stochastique. Cet algorithme génère des contraintes au fur et à mesure de sa progression vers la solution. La technique porte le nom de Jacques F. Benders.

La stratégie derrière la décomposition de Benders peut être résumée ainsi : diviser pour mieux régner. Autrement dit, dans la décomposition de Benders, les variables du problème d'origine sont divisées en deux sous-ensembles de sorte qu'un problème maître de première étape est résolu sur le premier ensemble de variables, et les valeurs du deuxième ensemble de variables sont déterminées dans un second- sous-problème d'étape pour une solution de première étape donnée. Si le sous-problème détermine que les décisions fixes de la première étape sont en fait irréalisables, alors les coupes de Benders sont générées et ajoutées au problème principal, qui est ensuite résolu jusqu'à ce qu'aucune coupe ne puisse être générée. Puisque la décomposition de Benders ajoute de nouvelles contraintes au fur et à mesure qu'elle progresse vers une solution, l'approche est donc considérée comme une approche génération de lignes, ce qui contraste avec l'approche par décomposition de Dantzig-Wolfe basée sur la génération de colonnes.

Méthodologie modifier

Supposons un problème qui se produit en deux étapes ou plus, où les décisions pour les étapes ultérieures reposent sur les résultats des étapes précédentes. Une tentative de décision de première étape peut être faite sans connaissance préalable de l'optimalité en fonction des décisions d'étapes ultérieures. Cette décision de première étape est le problème principal. Les étapes suivantes peuvent alors être analysées comme des sous-problèmes distincts. Les informations de ces sous-problèmes sont renvoyées au problème principal. Si les contraintes d'un sous-problème ont été violées, elles peuvent être ajoutées au problème principal. Le problème principal est alors résolu.

Le problème principal représente un ensemble convexe initial qui est en outre contraint par les informations recueillies à partir des sous-problèmes. Étant donné que l'espace réalisable ne fait que rétrécir à mesure que des informations sont ajoutées, la valeur objectif de la fonction principale fournit une limite inférieure sur la fonction objectif du problème global.

La décomposition de Benders est applicable aux problèmes avec une structure diagonale par blocs.

Formulation mathématique modifier

Supposons un problème de structure suivante :

 

  représentent les contraintes partagées par les deux étapes de variables et   représente l'ensemble des possibles pour  . Notez que pour tout   fixe, le problème résiduel est :

 

Le dual du problème résiduel est :

 

En utilisant la double représentation du problème résiduel, le problème original peut être réécrit comme un problème Min-Max équivalent

 

La décomposition de Benders repose sur une procédure itérative qui choisit des valeurs successives de   sans tenir compte du problème interne, sauf via un ensemble de contraintes de coupe créées via un mécanisme de retour à partir du problème de maximisation. Bien que la formulation Min-Max soit écrite en termes de  , pour un   optimal, le   correspondant peut être trouvé en résolvant le problème original avec   corrigé.

Formulation du problème principal modifier

Les décisions pour le problème de la première étape peuvent être décrites par le plus petit problème de minimisation

 

Initialement l'ensemble des coupes est vide. La résolution de ce problème principal constituera une "première estimation" d'une solution optimale au problème global, avec la valeur de   illimitée ci-dessous et   prendre n'importe quelle valeur réalisable.

L'ensemble des coupes sera rempli dans une séquence d'itérations en résolvant le problème de maximisation interne de la formulation Min-Max. Les coupes guident à la fois le problème principal vers un   optimal, s'il en existe un, et garantissent que   est réalisable pour le problème complet. L'ensemble de coupes définit la relation entre  ,   et implicitement  .

Étant donné que la valeur de   commence sans contrainte et que nous n'ajoutons des contraintes qu'à chaque itération, ce qui signifie que l'espace réalisable ne peut que rétrécir, la valeur du problème principal à toute itération fournit une borne inférieure sur la solution à l'ensemble problème. Si pour certains   la valeur objective du problème maître est égale à la valeur de la valeur optimale du problème interne, alors selon la théorie de la dualité la solution est optimale.

Formulation du sous-problème modifier

Le sous-problème considère la solution suggérée   au problème maître et résout le problème de maximisation interne à partir de la formulation minimax. Le problème interne est formulé en utilisant la représentation duale :

 

Alors que le problème principal fournit une borne inférieure sur la valeur du problème, le sous-problème est utilisé pour obtenir une borne supérieure. Le résultat de la résolution du sous-problème pour tout   donné peut être soit une valeur optimale finie pour laquelle un point extrême   peut être trouvé, une solution illimitée pour laquelle un rayon extrême   dans le Cône asymptotique peut être trouvé, ou une constatation que le sous-problème est irréalisable.

Procédure modifier

Chaque itération entre le problème principal et le sous-problème fournit une mise à jour des bornes supérieure et inférieure de la fonction objectif. Le résultat du sous-problème fournit soit une nouvelle contrainte à ajouter au problème maître, soit un certificat indiquant qu'aucune solution optimale finie n'existe pour le problème. La procédure se termine lorsqu'il est démontré qu'aucune solution optimale finie n'existe ou lorsque l'écart entre la borne supérieure et la borne inférieure est suffisamment petit. Dans un tel cas, la valeur de   est déterminée en résolvant le problème des résidus primaires fixant  .

Formellement, la procédure commence avec la borne inférieure définie sur  , la borne supérieure définie sur   et les coupures dans le problème maître vides. Une solution initiale est produite en sélectionnant n'importe quel  . Ensuite, la procédure itérative commence et se poursuit jusqu'à ce que l'écart entre la borne supérieure et la borne inférieure soit au plus   ou qu'il soit démontré qu'aucune solution optimale finie n'existe.

La première étape de chaque itération commence par mettre à jour la borne supérieure en résolvant le sous-problème étant donné la valeur la plus récente de  .

Il y a trois résultats possibles à la résolution du sous-problème.

Dans le premier cas, la valeur objective du sous-problème est illimitée au-dessus. Selon la théorie de la dualité, lorsqu'un problème dual a un objectif illimité, le problème primal correspondant est infaisable. Cela signifie que le choix de   ne satisfait pas   pour tout  . Cette solution peut être supprimée du problème maître en prenant un rayon extrême   qui certifie que le sous-problème a un objectif illimité et en ajoutant une contrainte au maître affirmant que  .

Dans le second cas, le sous-problème est infaisable. Étant donné que le double espace réalisable du problème est vide, soit le problème d'origine n'est pas réalisable, soit il existe un rayon dans le problème primal qui certifie que la valeur objective est illimitée en dessous. Dans les deux cas, la procédure se termine.

Dans le troisième cas, le sous-problème a une solution optimale finie. Selon la théorie de la dualité pour les programmes linéaires, la valeur optimale du sous-problème est égale à la valeur optimale du problème original contraint sur le choix de  . Cela permet de mettre à jour la borne supérieure à la valeur de la solution optimale du sous-problème, si elle est meilleure que la borne supérieure courante. Étant donné un point extrême optimal  , cela donne également une nouvelle contrainte qui oblige le problème principal à considérer la valeur objective sous cette solution particulière en affirmant que  . Cela augmentera strictement la valeur de   à la solution   dans le problème maître si le choix de   était sous-optimal.

Enfin, la dernière partie de chaque itération crée une nouvelle solution au problème maître en résolvant le problème maître avec la nouvelle contrainte. La nouvelle solution   est utilisée pour mettre à jour la borne inférieure. Si l'écart entre la meilleure limite supérieure et inférieure est inférieur à   alors la procédure se termine et la valeur de   est déterminée en résolvant le problème résiduel primal fixant  . Sinon, la procédure continue à l'itération suivante.

Références modifier

  • J. F. Benders, "Partitioning procedures for solving mixed-variables programming problems," Numer. Math. 4, 3 (Sept. 1962), pp. 238–252. [1]