ベクトルの合計の最大成分を最小化


11

この最適化問題について何か学びたい:負でない整数ai,j,kについて、式を最小化する関数見つけるf

maxkiai,f(i),k

別の定式化を使用した例では、より明確になる場合があります。次のような一連のベクトルのセットが与えられます。

{
    {(3, 0, 0, 0, 0), (1, 0, 2, 0, 0)},
    {(0, 1, 0, 0, 0), (0, 0, 0, 1, 0)},
    {(0, 0, 0, 2, 0), (0, 1, 0, 1, 0)}
}

各セットから1つのベクトルを選択して、それらの合計の最大成分が最小になるようにします。たとえば、

(1, 0, 2, 0, 0) + (0, 1, 0, 0, 0) + (0, 1, 0, 1, 0) = (1, 1, 2, 1, 0)

最大成分は2で、ここでは明らかに最適です。

これがよく知られている問題であり、どのような問題固有の近似解法が利用できるか知りたいです。プログラミングは高速かつ簡単でなければなりません(ILPソルバーなどはありません)。これは実際の問題の近似にすぎないため、正確な解決策は必要ありません。


興味のある問題のインスタンスに関する詳細を追加する必要があったことがわかります。

  • i{0,1,,63}、つまり、常に64行あります(上記の例のように記述した場合)。
  • j{0,1}、つまり、行ごとに2つのベクトルしかない。
  • k{0,1,,N1}ここで、(ベクトルの長さ)は10から1000の間です。N

さらに、各行で、すべてのベクトルの要素の合計は同じです。つまり、

i,j,j:kai,j,k=kai,j,k

そして、和ベクトルの要素の和は、その長さよりも短い、すなわち、

kiai,f(i),k<N

4
3パーティションの問題問題に還元することは難しくありません。これは、数値が単項で与えられていても問題はNP完全であることを意味し、これは近似アルゴリズムの一般的なアプローチの1つを除外します。
伊藤剛

訂正に感謝し、洞察力の@伊藤剛に感謝します。私がそれを正しく理解している場合、1行あたり2つのベクトルへの制限(私が述べたことを忘れた)は削減を無効にし、問題をはるかに容易にする可能性があります。
maaartinus

そうです、私が考えていた3パーティションの問題からの削減は、行ごとに2つのベクトルしかない場合は機能しません。
伊藤剛

では、比較する組み合わせはありますか?ji
Jason Kleban

@ uosɐſ:正確には、可能な組み合わせがあり、はの可能性の数、 はの可能性の数です。JI=264J=2jI=64i
maaartinus

回答:


7

3SATから2ベクトルバージョンへの削減:数式が与えられたら、インデックス変数、、およびインデックス句を指定します。ましょう時間変数の数である正表示(IF)または負(IF)節で。OPTが未満の場合、式が満たされます(全単射は明白です)。ij{0,1}kai,j,kij=0j=1k3

この問題への攻撃方法:大規模な近隣検索。任意のソリューションから始めます。ランダムに行を選択します。ブルートフォースを使用して、がそれらの行でのみ変更できる最適なソリューションを見つけます。問題のサイズが行であれば、中程度の場合でも非常に有効です。繰り返す。rfk64


1
これは美しい縮小です。なぜ賛成票がないのかわかりません。とにかく、これが私の+1です。
伊藤剛

1
削減についてもう少し詳しく説明する必要があると思います。特に、よく見えますが、多分あまりによく見えます。これは、全単射が少し見にくくなるためです。f
ラファエル

7

問題のサイズが定数に固定されている場合、問題の複雑さについては説明できません。これは、問題のサイズが無限大になる傾向があるため、複雑性理論(の大部分)が問題の複雑さの漸近的な振る舞いを扱うためです。ここでは、行数とベクトルの次元の両方を変数と見なします。

その場合、入力の数値が単項で与えられていても、問題はNP完全です。あなたは近似について尋ねているので、これはあなたの質問に対する答えではありませんが、それは何かです。

問題を厳密に定義します。

NのベクトルのペアIB I ∈ℕのMI ∈{1、...、N })、及びK ∈ℕ、すべての単項です。質問:私たちが選ぶことができるいずれかのIまたはB Iごとに、私はので、これらの合計というn個のベクトルが最大であり、Kの各座標?

以下は、3パーティションと呼ばれる既知のNP完全問題です。

3パーティション
インスタンスB ∈ℕ、および3つのk個の整数C 1、...、C 3 Kとの間のB / 4、B / 2、排他的、Σは、そのようなiが 1 = 3 、Kを cのiは = KBのデータを全て単項で、。
質問:CANマルチセット{ C 1、...、C 3 kが }に分割されるk個のマルチセットS 1、...、SのKそれぞれの和ように、S jが同じですB

3パーティション問題のインスタンス(B ; c 1、…、c 3 k)を指定して、上記の問題のインスタンスを次のように作成します。各i = 1、…、3 kおよびj = 1、…、kについて、4つのk次元ベクトルのペアを作成し、c iS jに属しているかどうかの選択を表します。

  • 選択「を表すベクトルC ISのjが」(ある唯一の非ゼロエントリ有するK -1)、C Ijの座標番目。
  • 選択「を表すベクトルC ISのjが」もある唯一の非ゼロエントリ有するB(AT K + I座標番目の)。

3パーティションの問題のインスタンス(B ; c 1、…、c 3 k)は、構築された3 k 2のそれぞれからベクトルを選択する方法がある場合にのみ解決策があることを確認するのは難しくありませんこれらのベクトルの合計のすべての座標が最大で(k −1)Bになるようにペアを設定します。(実際、これが発生すると、合計のすべての座標は(k −1)Bに等しくなります。)これは、3パーティションの問題から上記の問題への削減です。

これまでのところ、質問の最後に述べた2つの追加の制約を無視しましたが、この削減を少し変更するだけで、どちらも簡単に適用できます。各ベクトルの要素の合計が等しいという条件は、0または1のみを含むダミー座標を追加することによって強制できます。この合計が次元より小さいという条件は、0のみを含むダミー座標を追加することによって強制できます。


いい答え、ただいくつかの注記:1 .ここでは理論的な複雑さは気にしません。2.行数は固定されており、を変化させれば十分なので、そのままにすることができます。そうは言っても、どうもありがとう。N
maaartinus
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.