【发布时间】:2015-10-08 07:06:16
【问题描述】:
我正在尝试从产品集合创建购物清单,其中返回的购物清单应针对成本进行优化并满足其他条件。
例如,假设我想根据产品的能量含量创建购物清单。当用户输入总和时,返回的购物清单应尽量将千卡内容最大化,同时将总和保持在用户指定的总和附近。
到目前为止,我已经创建了产品集合,所有产品都存储为对象,其中包含营养价值和价格等字段。千卡值也作为成员变量存储在每个产品的对象中。
一开始我考虑循环遍历所有的产品组合,把那些超出价格区间的,整理出来,然后返回kcal含量最高的那个。但随着可用产品数量的增加,我认为这很快就会成为一个不可行的选择。
我现在想知道有没有什么算法可以解决这个问题,如果没有,有什么方法可以轻松实现吗?
【问题讨论】:
-
这更像是一个数学问题而不是算法问题。它看起来像一个线性问题,这是一类已知很多技术的问题。在您的特定情况下,解决方案是整数向量,因此可能会有些困难,但是我失去了太多的数学技能来告诉您
-
是的,我脑海中突然出现的是丢番图方程求解,因为整数解是唯一可行的解。但除此之外,我一无所知。
标签: java optimization combinatorics