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.
la source
Grâce à la suggestion du professeur Spivey, j'ai finalement trouvé ce que je pense être l'état de l'art: Ulrich Faigle, Alan J. Hoffman et Walter Kern, "A Characterization of Nonnegative Box-Greedy Matrices", SIAM J. Disc. Math. 9 (1996) pp 1-6. Une matrice est "gourmande" si l'algorithme que j'ai décrit ci-dessus donne la solution optimale pour tout . Une matrice est "box-greedy" si l'algorithme gourmand donne la solution optimale avec la condition supplémentaire x ≤ d pour tout b et tout d ≥ 0 . De toute évidence, la boîte gourmande est une condition plus forte que la gourmande.b x≤d b d≥0
Supposons toujours que . Faigle, Hoffman et Kern prouvent que A est une boîte gourmande si et seulement si elle n'a pas de sous-matrice k × ( k + 1 ) (pour tout k ) de la forme ( r 1 s 1c1≥⋯≥cn>0 A k×(k+1) k avec chaquerj>0et∑i:si>0ri⎛⎝⎜⎜⎜⎜⎜r1r2⋮rks1s2⋱sk⎞⎠⎟⎟⎟⎟⎟ rj>0 . Lors de l'extraction des sous-matrices, des permutations arbitraires de lignes sont autorisées mais pas de colonnes, et un sous-ensemble arbitraire de lignes et de colonnes est autorisé. Ainsi en particulier, aveck=1, les éléments non nuls de chaque ligne deAdoivent être non décroissants.∑i:si>0risi>1 k=1 A
Il s'avère, malheureusement, que dans mon problème, les matrices ne sont pas des boîtes gourmandes même si je crois toujours qu'elles sont gourmandes. Par exemple, dans mon ci-dessus, la condition est violée et cette matrice n'est pas gourmande en boîte bien qu'elle soit gourmande. Pour autant que je sache, il n'y a aucun résultat sur l'identification des matrices gourmandes.A1
la source
L'exemple le plus simple pour quelque chose comme ça pourrait être le problème du sac à dos fractionnaire où les articles peuvent être fractionnés. ce problème (et son double lp) peut être résolu en triant les articles pour le bénéfice par poids, en choisissant la séquence la plus longue dans cet ordre qui est faisable et en fractionnant le dernier article.
la source