计划膳食的算法

Algorithm for planning a meal

我无法想出生成膳食计划的算法。问题涉及根据营养需求(碳水化合物、脂肪、蛋白质等)提出 不同数量的食物 。食品项目需要从少量项目(<7)中选择。例如,假设您有食品 A、B、C。食品 A 中 1 克 A 含有 a_p 克蛋白质,食品 B 中 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 克每种食物中蛋白质、碳水化合物和脂肪的克数。这里的问题是,大多数时候不可能满足给定的要求,只需要最接近给定要求的最佳解决方案。总体目标是减少实际营养需求与算法计算的需求之间的差异。我研究了线性规划,但我看到的大多数问题都涉及 minimizing/maximizing 具有一组约束的给定函数。我将不胜感激解决此问题的任何帮助。

谢谢

假设你允许有分数克的食品,你可以解析地解决这个问题,详情见http://en.wikipedia.org/wiki/Linear_least_squares_%28mathematics%29

您有额外的隐式约束,即 none 的食物可以以负数存在。因此,如果食物出现负数,您将需要尝试食物的不同子集以找到可能的答案,然后选择最好的。

如果你不能拥有少量的食物,那么这个问题就会变得更加困难。