计划用餐的算法

时间:2015-01-12 23:01:18

标签: algorithm search optimization dynamic-programming linear-programming

我无法想出一个生成膳食计划的算法。考虑到营养需求(碳水化合物,脂肪,蛋白质等),这个问题涉及提供不同数量的食物。需要从少量物品中选择食品(< 7)。例如,假设您有食品A,​​B,C。食品A对于1克A具有a_p克蛋白质,对于1克B具有b_p克蛋白质,等等。可以说,所需的碳水化合物总数是Crb,所需的蛋白质总量是Prt,所需的脂肪是Ft。对于这个问题,方程看起来像

A_g*a_p + B_g*b_p + C_g*c_p = Prt A_g*a_c + B_g*b_c + C_g*c_c = Crb A_g*a_f + B_g*b_f + C_g*c_f = Ft

其中A_g,B_g和C_g是每种食物的克数,a_p ... b_c ... c_f表示1克各食物中的蛋白质,碳水化合物和脂肪的克数。这里的问题是,大多数时候不可能满足给定的要求,只需要最接近给定要求的最佳解决方案。总体目标是减少实际营养需求与算法计算的营养需求之间的差异。我已经研究过线性编程,但是我所看到的大部分问题都涉及使用一组约束来最小化/最大化给定函数。我将非常感谢解决这个问题的任何帮助。

谢谢

1 个答案:

答案 0 :(得分:3)

假设您可以获得小数克食品,您可以通过分析方式解决此问题,详情请参阅http://en.wikipedia.org/wiki/Linear_least_squares_%28mathematics%29

您还有一个额外的隐含约束,即任何食物都不能以负数存在。因此,如果食物呈现负数,您将需要尝试不同的食物子集以找到可能的答案,然后选择最佳答案。

如果你不能分数量的某些食品,那么这个问题就变得更加困难了。