タイトルでごめんなさい。率直に言って、私の質問がナップサック問題に関連しているかどうかさえわかりません。遺伝的アルゴリズムについていくつか読んでいて、この「ナップサック問題」を見つけました。
私は正しい方向に私を蹴る誰かが必要です:
工場向けのPythonWebアプリケーションを開発しています。したがって、工場では、注文と呼ばれるものがあります。注文には1つまたは複数の製品が含まれています。不一致の概念があります。これは、実際には、特定の製品が注文に表示される量がどれだけ少ないかを示すために使用される負の数です。
列が製品で行が注文であるマトリックスを考えてみてください。すべての注文(行)にすべての製品(列)が含まれていると仮定します。ここでも、注文1から注文8および5の製品、製品1から製品5の8つの注文があります。
仮に、製品1の不一致が6であると仮定します。ランダムに、8つの注文すべてに6を均等に分割する必要があります。したがって、明らかに2つの注文には不一致の数量はありません。次に、製品2の不一致が9になります。不一致の数量を8つの注文に可能な限り均等に、ランダムに分割します。これは各製品に当てはまります。ここでキッカーが登場します。すべての注文で不一致をランダムに分割している間、注文ごとの不一致の合計(その行を意味する)を最小限に抑える必要があります。これは、注文全体の不一致の合計を可能な限り最小にする必要があることを意味します。
|-----|-----|-----|-----|-----|
| P1 | P2 | P3 | P4 | P5 |
-------------------------------
O1 | 2 | 1 | 1 | 0 | 2 | 6
-------------------------------
O2 | 1 | 2 | 1 | 1 | 1 | 6
-------------------------------
O3 | 2 | 2 | 1 | 0 | 1 | 6
-------------------------------
O4 | 1 | 2 | 0 | 1 | 1 | 5
-------------------------------
6 7 3 2 5
わかりますか?これをPythonでコーディングする必要がありますが、どこから始めればよいのかわかりません。