3

次の値を持つ配列が1つあるとします。

array(20,40,30,15,60,50,10)

今私が欲しいのは、100個または100個近くの束を作成し、100個(または100個近く)のセットごとに個別のラウンドを作成する必要があることです。

言う

Case 1:
Round 1: array(60,30,10) // 100 or near to 100
Round 2: array(40,50)    // 100 or near to 100
Round 3: array(15,20)    // 100 or near to 100 or remaining

Case 2:
Round 1: array(60,40)    // 100 or near to 100
Round 2: array(50,20,30) // 100 or near to 100
Round 3: array(15,10)    // 100 or near to 100 or remaining

では、どうすればこれを達成できますか?

これに関して私が研究できるア​​ルゴリズムはありますか?

4

1 に答える 1

0

NP-Completeであるビンパッキング問題について説明しているため、それを解決するための既知の多項式解はありません。

正確が必要な場合は、指数アプローチを試すことができます(すべての可能性を確認してください)。「十分に近い」場合は、文献で近似アルゴリズムを検索するか、遺伝的アルゴリズムヒルクライミングなどの AI 分野のヒューリスティック検索ソリューションを使用できます。

于 2012-10-11T08:37:44.823 に答える