一連の個別の選択肢の全体的な変動を最小限に抑える


8

私のセットアップは次のようなものです:一連の整数のセットがあります Ci(1≤i≤n)、 |Ci| 比較的小さい-すべてのアイテムで約4または5アイテム i。シーケンスを選びたいxi(1≤i≤n) それぞれと xi∈Ci 合計のバリエーション( ℓ1 または ℓ2、すなわち ∑i=1n−1|xi−xi+1| または ∑i=1n−1(xi−xi+1)2)が最小化されます。それぞれの選択のようですがxi が「ローカル」である場合、問題は選択が伝播して非ローカルな影響を与える可能性があるため、問題は本質的にグローバルなものであるように見えます。

私の主な関心事は、問題の実用的なアルゴリズムです。現在、短いサブシーケンスの変異に基づいたアニーリングメソッドを使用しています。これらは大丈夫なはずですが、もっとうまくできるはずです。しかし、私は抽象的な複雑さにも興味があります—私の直感は、標準のクエリバージョン( '全体的なバリエーションのソリューションがあるか)≤k? ')は、3-SATのようないくつかの制約問題からの削減を介してNP完全ですが、削減がよくわかりません。以前の研究へのポインタがあれば歓迎します。これまで見られたことがないとは思えないほど自然な問題のようですが、これまでのところ、私の検索ではまったく同じような結果は得られていません。


いい質問だ!ただ明確にする質問:の長さxi です n、しかしあなたはそれぞれからいくつかの要素を選ぶ必要があります Ci?それとも、あなたがまったく選択しないいくつかのセットがあっても大丈夫ですか?
— Juho

@mrmそれぞれの要素が必要です Ci - xsは、 1…n ちょうどのように Cです。
— Steven Stadnicki

回答:


4

これが動的プログラムです。と仮定するCi={Ci1,…,Cim} すべてのために i∈[n]間違いがないように; 以下は、Ciカーディナリティが異なります。しましょうCost⁡(i,j) 最初のシーケンスの最小コストになる i セット、で終わる Cij。次の再帰は、Cost:

Cost⁡(1,j)=0,1≤j≤mCost⁡(i,j)=mink=1m(Cost⁡(i−1,k)+|C(i−1)k−Cij|) ,2≤i≤n,1≤j≤m.

全体の最小コストはです。実際の選択の順序は、途中でアーグミンを調べることによって決定できます。ランタイムはです。minj=1mCost(n,j)O(nm)


フォーマットとプレゼンテーションの両方であなたの答えの明確さを改善しようとしました。私が台無しにしていないことを確認してください。あなたが提案するものが正しい理由を議論に含めるといいでしょう。
— ラファエル

ニコラスの答えを考えると、これは当面の問題に合わせて調整されたベルマンフォードアルゴリズムに似ています。
— ラファエル

どちらの回答も非常に優れています(そしてRaphaelが指摘しているように、非常によく似ています)が、私は他の回答の幅広い適用性を気に入っていますが、私の特定の質問に直接適用するためにこれを実際に好みます。ありがとうございました!
— Steven Stadnicki

4

これは、有向非循環グラフで最短経路を計算するだけで解決できるようです。推論は、目的関数が、セット内の選択された「近傍」間の合計距離を最小化することですC={C1,…,Cn}。

を構築する n-段階グラフ G=(⋃i=1nVi,E) どこ v∈Vi ユニークな要素に対応 x∈Ci。それぞれについてu∈Vi,v∈Vi+1、有向エッジを追加 (u,v) コストは ℓ1 または ℓ2 距離。

次に、ソース頂点を追加します s 0コストのエッジで V1 そしてシンク頂点 t からの0コストエッジ Vn。とすればG はDAGであり、両方の距離関数がエッジコストを負でない値に強制します。最短経路を計算できます O(V+E)トポロジカルソートと動的プログラミング(ここでの説明と同様)。

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