2017-02-14 20 views
1

Iv'eはプロジェクトで作業していましたが、次のようなシナリオが発生しました: M> Nの2つのボックスを選択する必要があります。 :アルゴリズム2つの制限付きナップザック

  • 我々は同じボックスのIDを選択することはできません同じボックスの色
  • を選択することはできません

ボックスがトップ

上の最大の重みでソートしています0

enter image description here

最高の重み付けRed1から始まるNaiveアルゴリズムで(Red1、Blue2)を選択しました。同じID 1を持っているためBlue1を追加できませんでした.Red Box 10のウェイトで11の総重量で終わりましたが、Blue1を選択した場合、18.9で終わる可能性があります& Red2 Nは2より大きい可能性があります。

NP困難な問題ですか? 優れた実行時間効率を備えたソリューション

+0

異なる色の数または異なるIDの数には限界がありますか? – Codor

+0

2 bounds/constraintsの結果は、異なる色と可能な最高の合計の異なるIDを持つ必要があります – ohadsas

答えて

0

私たちは、だから、M、N、色とidのためどのように大きな制約に依存して複雑O(M choose N)

で複雑O(2^color * 2^id * M * N)やバックトラック+剪定とDPソリューションを使用することができます。

+0

NとMのサイズに応じて分割すると考えました Nはほとんど9-10であり、Mは変更されていますが、 10〜350 – ohadsas

+0

、N <= 10、M <= 350の場合、バックトラッキング+効率的なプルーニングが問題を解決できます。 – algojava