J'ai une famille de problèmes de programmation linéaire: maximiser sous réserve de , . Les éléments de , et sont des entiers non négatifs, strictement positifs. ( devrait également faire partie intégrante, mais je m'en occuperai plus tard.)A x ≤ b x ≥ 0 A b c c x
Il arrive souvent dans mon application que les coefficients et soient tels qu'un algorithme simplifié en un seul passage donne la solution optimale pour chaque choix de : l'algorithme en un seul passage détermine les éléments en séquence, en choisissant chacun pour être la plus grande valeur possible cohérente avec les valeurs déjà déterminées . En langage simplex, la séquence de saisie des variables est juste de à , et elle se termine après étapes. Cela économise beaucoup de temps par rapport au simplex complet.c b x 1 , … , x n x j x 1 , … , x j - 1 x 1 x n n
Cet algorithme fonctionne lorsque les colonnes de et les éléments de ont été triés de «bon marché» à «coûteux». Une variable "bon marché" est une colonne de avec des valeurs généralement petites, pour laquelle l'élément correspondant de est grand: pour cet élément de vous obtenez beaucoup de sortie avec peu de demande sur la contrainte . Donc, l'algorithme dit simplement "faites d'abord les choses faciles".c A c x b
Ma question est: quelle propriété de et nous assurerait que cet algorithme simplifié fonctionne pour tout ? Ma conjecture initiale était que les éléments non nuls de devraient augmenter dans chaque ligne, mais ce n'est pas correct.c b A
Voici quelques exemples, tous avec : , , , A 4 = ( 1 0 1 0 1 0 0 1 1 ) . Pour tous ces éléments, l'algorithme séquentiel donne la solution optimale pour toutes les valeurs de b (par expérimentation numérique). Un 3 est le seul pour lequel toutes les permutations de colonnes fonctionnent également. UNEA 1 = ( 1 1 1 1 2 3 3 2 0 ) A 2 = ( 0 0 1 3 0 2 0 3 2 ) A 3 = ( 1 1 1 1 0 0 1 0 1 ) et A 3 sont particulièrement déroutants, car ( 1 , 1 , 3 ) semble plus cher que ( 1 , 3 , 0 ) et ( 1 , 1 , 1 ) plus cher que ( 1 , 0 , 0 ) .
Je serais extrêmement reconnaissant pour tout pointeur sur la littérature, pour tout problème comme celui-ci, ou pour toute suggestion. Il doit y avoir eu d'autres cas où certaines variables peuvent être considérées comme «moins chères» que d'autres et peuvent être effectuées en toute sécurité en premier. Avec tout le travail qui a été fait sur la programmation linéaire au fil des ans, il semble que quelque chose de similaire ait dû se produire, mais je n'ai pas pu le trouver.