使用饮食问题(最大化问题)在没有食物成本的情况下进行变化

Variation without the cost of foods using the Diet Problem(Maximization Problem)

我一直在寻找一种算法,可以帮助我根据一定量的营养素制定最佳饮食。经过大量的研究和尝试,没有成功。但我发现了一些几乎可行的东西,那就是饮食问题或最大化问题,它需要每种食物的价值,因此无法达到我正在寻找的目的。我想知道是否有任何类似的算法或数学方程式可以解决我的问题。

Example of what I'm looking for:

I Have a meal that needs to be filled with 300cal, 30g of carbohydrates, 15g of protein, and 7g of fat.

I also have these 2 foods:
rice with: 125cal, 3g of protein, 30 of carbohydrates, and 0 >of fat for each 100g

chicken breast with: 160cal, 32g of protein, 0 of carbohydrates, and 2.5 of fat for each 100g

我正在寻找的是每种食物的克数,以最大限度地增加我膳食中每种常量营养素的含量!

提前致谢!

假设你吃了 r 克米饭和 c 克鸡肉。那么你的卡路里总量将为 1.25r + 1.6c,并且由于你至少需要 300 卡路里,所以你要满足不等式

1.25r + 1.6c ≥ 300

查看所有要求后,您将得到以下信息:

1.25r + 1.6c ≥ 300 (calories)

0.3r + 0c ≥ 30 (carbohydrates)

0.03r + .32c ≥ 15 (protein)

0r + 0.025c ≥ 7 (fat)

满足所有这些不等式的 r 和 c 的任意组合将为您提供所需的一切。当然,您可以通过使 c 和 r 变大(例如,吃 10 公斤米饭和 10 公斤鸡肉)来实现这一点,因此您需要一些平衡力来使 c 和 r 变小。在你的问题陈述中,你提到你想要最大化每种常量营养素的量,但是,正如我在这里指出的那样,这实际上可能不是你真正想要的。 :-)

一种方法是将你吃的所有东西的总质量减到最小——也就是说,你想要最小化 r + c。那会给你一个线性程序,你可以使用 off-the-shelf 求解器来处理:

MINIMIZE

r + c

SUBJECT TO

1.25r + 1.6c ≥ 300 (calories)

0.3r + 0c ≥ 30 (carbohydrates)

0.03r + .32c ≥ 15 (protein)

0r + 0.025c ≥ 7 (fat)

求解此线性规划的 r 和 c 的值将是 lowest-mass 吃米饭和鸡肉的方式来满足您的最低要求。

或者,您可能希望尽量减少消耗的 卡路里 总量。这可以通过求解这个线性程序来完成:

MINIMIZE

1.25r + 1.6c

SUBJECT TO

1.25r + 1.6c ≥ 300 (calories)

0.3r + 0c ≥ 30 (carbohydrates)

0.03r + .32c ≥ 15 (protein)

0r + 0.025c ≥ 7 (fat)

这个主题有很多变体。你可以考虑大米和鸡肉的价格,或者尽量减少脂肪等。但基本思想是将你可能的食物和营养需求转化为一系列不等式,然后尝试解决这些不等式的一些优化问题。

希望对您有所帮助!