我正在尝试编写一个简单的游戏模拟消费者购买产品。我正在寻找满足以下条件的算法:
产品系列,每个产品都有:
一组形式(Product,NumberToBuy)。产品满足消费者需求的数量将从值W1 ... Wn中减去,因此“完美”解决方案是W1 ... Wn的总和最小的解决方案。
该集合还必须满足以下绝对约束:
如果有多个解决方案导致W1 ... Wn处于相同的最小值,那么最好的是所有要购买的产品的价格总和最低的那个。然而,价格是满足需求的次要问题。
解决这个问题的一种蛮力方法是列举所有可以购买的产品组合,这些产品可以满足绝对限制条件,然后选择最能满足客户需求的产品,但这很快会变得太慢随着消费者可获得的产品数量的增加。
有没有人知道有效的方法?
如果有人能够想到单独的算法/方法或对上述问题的算法进行修改,我也会感兴趣,其目标不是最小化W1 ... Wn的总和,而是W1 ... Wn的平方和 - 即减少高需求值比减少低需求值更重要。