この最適化問題の効率的なアルゴリズム?動的プログラミング?


9

私が達成しようとしていることを表す図を作成しました。

図

フルサイズの画像

入力シーケンスでは、ノードは可能な限り互いに接近しています。しかし、私は白いノードをそれぞれの黒いノードにできるだけ近づけたいと思っています。ノード間のエッジを長くすると、このエラーを最小限に抑えることができます。短縮することはできません。したがって、1 -> 2たとえば4以上にすることができます。

可能な解決策を含めました。長くなったエッジにはラベルが付いています。エッジを長くすると、すべてのノードが右に移動することに注意してください。

この軸は連続ですが、それが役立つ場合、私はおそらくそれを離散化することができます。

私は動的プログラミングのアプローチがうまくいくと考えていますが、よくわかりません-私はDPがあまり得意ではありませんでした。

これを解決できる最速の実行アルゴリズムは何ですか?これは、よく知られている問題として分類/再構成できますか?


これをDPで解決するには、ソリューションの構造/サブ構造について考え、ボトムアップで解決します。これにより、実行時間が直線的になります。線形方程式のシステムとしても一般に解決可能だと思いますが、解決/最適化の方がランタイムが良くない場合があります。
Jason

1
plzは画像のテキストに書かれた主要な詳細を入れません。また、実際に問題を(数学的に)正式に説明していませんが、これは戦いの半分です。何の「平均二乗誤差を最小にする」ただし、「施設の場所の問題」の1dバージョンのようです
vzn '18

回答:


5

これは、@SébastienLoiselの回答の単なる拡張です。

最小化に注意 バツy2 従う xixi1ci 最小化と同等です (xi(yici))2 従う xixi1。しましょうa=yc、これは正確に等張回帰です問題です。存在しますO 時間アルゴリズム。


1
優秀-私は等張回帰(隣接する違反者のプールアルゴリズム)を実装しました。これは完全に機能し、私のメモした検索アルゴリズムよりもはるかに高速です。ありがとう!
FogleBird 2015

4

軸を離散化すると、動的プログラミングを使用できます。ボールごとb そして実現可能な場所 (妥当な範囲内)、最初の二乗平均誤差を計算します bボール。これは通常、ボールに関する同じ種類の情報のみを実行できますb1


私が書いたコードを見て、DPのアプローチがパフォーマンスごとにどのように異なるかを教えてください。
FogleBird 2015

あなたのアプローチがあなたのために働くなら、素晴らしい。その複雑さを推定できますか?私の提案の複雑さを推定できますか?これは、私のアプローチをプログラムする価値があるかどうかを判断するのに役立ちます。価値があると判断した場合は、2つのアプローチを経験的に比較できます。どのアプローチがより効果的かは、入力のサイズと性質にも依存します。実際の入力でアプローチをテストするようにしてください。
Yuval Filmus

2

これは二次計画です。の合計を最小化しようとしていますバツy2 従う バツバツ1c


これは、「これは、よく知られている問題として分類/再構成できますか?」という回答になります。しかし、より詳細な情報を与えるとよいでしょう。
デビッド・リチャービー2015
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.