順序付けられた変数を使用した1つのパスでの線形計画ソリューション


9

最大化:私は、線形計画問題の家族持っているcxの対象Axbx0Ab、およびの要素cは非負の整数で、cは正の整数です。(xも必要ですが、後で心配します。)

私のアプリケーションでは、係数Acが、単純なワンパスアルゴリズムがすべての選択に対して最適な解を与えるようなものであることがよくあります。ワンパスアルゴリズムはb、要素x1,,xnを順番に決定し、各xjは、すでに決定されている値と一致する可能な最大値になりますx1,,xj1。シンプレックス言語では、変数を入力する順序はx1からxnステップ後に終了します。これは、完全なシンプレックスと比較して多くの時間を節約します。n

このアルゴリズムは、の列とcの要素が「安い」から「高価」にソートされている場合に機能します。「安価な」変数は、一般に小さい値を持つAの列であり、cの対応する要素は大きくなります。xのその要素の場合、制約bへの要求が少ない大量の出力が得られます。したがって、アルゴリズムは「最初に簡単なことを行う」とだけ言っています。AcAcxb

私の質問は、cのどのプロパティが、この単純化されたアルゴリズムがすべてのbで機能することを保証するかです。私の最初の推測では、Aの非ゼロ要素は各行で増加するはずですが、それは正しくありません。AcbA

ここではいくつかの例と全てであるA 1 = 1 1 1 1 2 3 3 2 0A 2 = 0 0 1 3 0 2 0 3 2A 3 = 1 1 1 1 0 0 1 0 1A 4c=(1,1,1)A1=(11112202=0010202=111100101。これらすべてについて、シーケンシャルアルゴリズムは、(数値実験により) bのすべての値に対して最適な解を与えます。A 3は、列のすべての順列も仕事のための唯一のものです。1および A 3は、特に以来、不可解されている1 1 3 よりも高価に見える1 3 0 1 4=101010011b111(1,3,0)よりも高価1 0 0 (1,1,1)(1,0,0)

文献へのポインタ、このような問題、または提案があった場合、私はものすごく感謝します。一部の変数が他の変数よりも「安価」であると判断でき、最初に安全に実行できる他のケースがあったはずです。長年にわたって線形プログラミングで行われてきたすべての作業により、同様の何かが思い浮かんだようですが、私はそれを見つけることができませんでした。

回答:


4

おそらく、貪欲なアルゴリズムがLPを解くことが知られている最も有名な例は、輸送問題の特別な場合です。ホフマン(「単純線形プログラム」、Convexity、vol。7のProceedings of Symposia in Pure Mathematics、ページ317-327、1963)は、(最大化)輸送問題のコストマトリックスがMongeプロパティ場合1 I < K N1 Jcij+cklcil+ckj1i<kn、次に最適なソリューションを使用して、記述のような貪欲な方法で見つけることができます)。 1j<ln

ホフマンは1985年からの調査論文(「成功する貪欲なアルゴリズムについて」)をもち、貪欲なアルゴリズムがLPに最適な解を与える既知のケースについて論じています。上記で引用した彼自身の研究(「1963年までに貪欲なアルゴリズムの影響を受けやすいことがわかっている線形プログラミング問題のほとんどはモンジュのアイデアの特別なケースであった」と述べている)に加えて、彼はエドモンズの線形計画法の解釈について言及しています。特に、マトロイドの一般化と、が非負の場合の議論。A

もっと最近の結果があると思いますが、うまくいけば、これは少なくとも部分的にあなたの質問に答え、どこを見るべきかについていくつかのアイデアを与えてくれます。


2
Spivey教授の提案に感謝します。参照を追跡するのに少し時間がかかりましたが、答えとしてより詳細な説明を提供します。
Robert Almgren、2011年

3

Spivey教授の提案のおかげで、私はようやく最新の技術であると考えるものを見つけました:Ulrich Faigle、Alan J. Hoffman、およびWalter Kern、「非負のBox-Greedyマトリックスの特性評価」、SIAM J. Disc。数学。9(1996)1-6ページ。上記で説明したアルゴリズムがすべてのに対して最適な解を与える場合、行列は「貪欲」です。貪欲アルゴリズムは追加の条件に最適解が得られる場合にマトリックス「ボックス貪欲」であるX Dすべてに対してB及び全てD 0。明らかに、ボックス貪欲は貪欲より強い条件です。bxdbd0

常に仮定する。ファイグル、ホフマン、カーンは、(任意のkに対してk × k + 1 の形式の部分行列r 1 s 1がない場合に限り、Aがボックス貪欲であることを証明します。c1cn>0Ak×(k+1)krj>0およびiの場合si>0ri(r1s1r2s2rksk)rj>0。部分行列の抽出では、行の任意の順列が許可されますが、列は許可されません。行と列の任意のサブセットが許可されます。したがって、特にk=1の場合、Aの各行の非ゼロ要素は非減少でなければなりません。i:si>0risi>1k=1A

残念ながら、私の問題では、マトリックスは貪欲ではありませんが、貪欲であると私はまだ信じています。たとえば、上記の私のでは、条件に違反しており、このマトリックスは貪欲ですが貪欲ではありません。私の知る限り、貪欲な行列を特定した結果はありません。A1


私の答えがあなたがこれを見つけるのを助けてくれて嬉しいです!
Mike Spivey、2011年

3

このような場合の最も簡単な例は、アイテムの分割が許可されている分割ナップザック問題です。この問題(およびそのlpデュアル)は、重量あたりの利益の項目をソートし、この順序で実行可能な最も長いシーケンスを選択し、最後の項目を断片化することで解決できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.