複数のナップザック問題を効果的に解決する擬似コードを探しています(最適化ステートメントはページの途中にあります)。この問題は NP Complete であると思いますので、ソリューションが最適である必要はなく、かなり効率的で簡単に実装できれば良いと思います。
問題はこれです:
- 多くの作業項目があり、それぞれが完了するまでにかかる時間が異なります (ただし固定されており、既知の時間)。
- これらの作業項目をグループに分割して、(理想的には) グループの数を最小にし、作業項目の各グループが所定の合計しきい値 (たとえば 1 時間) を超えないようにする必要があります。
私はしきい値について柔軟です。厳密に適用する必要はありませんが、近い値にする必要があります。私のアイデアは、各ビンがしきい値の 90%、80%、70% などを表すビンに作業項目を割り当てることでした。次に、90% かかるアイテムと 10% かかるアイテムを一致させることができます。
より良いアイデアはありますか?