Solution de programmation linéaire en un seul passage avec des variables ordonnées


9

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 xcxAxbx0Abccx

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 nAcbx1,,xnxjx1,,xj1x1xnn

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 bAcAcxb

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 AAcbA

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 )c=(1,1,1)A1=(111123320)A2=(001302032)A3=(111100101)A4=(101010011)bA3 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 ) .A1A3(1,1,3)(1,3,0)(1,1,1)(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.

Réponses:


4

Le cas le plus célèbre dans lequel un algorithme gourmand est connu pour résoudre un LP est probablement le cas spécial du problème de transport. Hoffman ("On simple linear programmes", dans Convexity , vol. 7 of Proceedings of Symposia in Pure Mathematics , pages 317-327, 1963) a prouvé que si la matrice des coûts pour un problème de transport (de maximisation) satisfait la propriété Monge ( lorsque 1 i < k n , 1 jcij+cklcil+ckj1i<kn ) alors une solution optimale peut être trouvée de manière gourmande comme celle que vous décrivez. 1j<ln

Hoffman a également un papier d'enquête (" Sur les algorithmes gourmands qui réussissent ") de 1985 dans lequel il discute des cas connus dans lesquels un algorithme gourmand donne une solution optimale à un LP. Outre ses propres travaux cités ci-dessus (à propos desquels, dit-il, "la plupart des problèmes de programmation linéaire connus [en 1963] pour être sensibles à un algorithme gourmand étaient des cas particuliers de l'idée de Monge"), il mentionne l'interprétation de programmation linéaire par Edmonds d'un généralisation des matroïdes et discussion du cas où est non négatif, entre autres.A

J'imagine qu'il y a des résultats plus récents, mais j'espère que cela répond au moins partiellement à votre question et vous donne quelques idées sur où chercher.


2
Je remercie le professeur Spivey pour sa suggestion. Il m'a fallu un certain temps pour chasser les références mais je vais fournir une description plus complète comme réponse.
Robert Almgren

3

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.bxdbd0

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 1c1cn>0Ak×(k+1)kavec chaquerj>0eti:si>0ri(r1s1r2s2rksk)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>1k=1A

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


Je suis content que ma réponse vous ait aidé à trouver cela!
Mike Spivey

3

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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.