我很抱歉标题;坦率地说,我什至不知道我的问题是否与背包问题有关。正在阅读一些有关遗传算法的东西,并发现了这个“背包问题”。
我需要有人把我踢向正确的方向:
我正在为工厂开发一个 python web 应用程序。所以在工厂里,他们有一种叫做订单的东西。一个订单包含一个或多个产品。有一个不匹配的概念,它实际上是一个负数,用于表示特定产品在订单中出现的数量(数量方面)要少多少。
想象一个矩阵,其中列是产品,行是订单。假设所有订单(行)包含所有产品(列)。同样,有 8 个订单订单 1 到订单 8 和 5 个产品,产品 1 到产品 5。
假设,现在我的产品 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 编写代码,但我不知道从哪里开始。