0

我正在尝试找出具有四个约束的背包的逻辑。我想制作一个程序,您可以在其中输入您想在一顿饭中消耗的卡路里、脂肪、碳水化合物和蛋白质,然后它会在可能的食物列表中查找符合输入标准的最接近的食物组合。

例子

我有这些物品

  • 4盎司牛肉(231卡路里,15克脂肪,0克碳水化合物,22克蛋白质)
  • 1/2 杯燕麦片(260 卡路里,2g 脂肪,58g 碳水化合物,10g 蛋白质)
  • 1/2 杯黑豆(120 卡路里,0.5 克脂肪,23 克碳水化合物,7 克蛋白质)
  • 1根香蕉(105卡路里,0克脂肪,27克碳水化合物,1克蛋白质)
  • 1/2 杯干酪(110 卡路里,5g 脂肪,6g 碳水化合物,11g 蛋白质)
  • 1/2 杯全麦面食(200 卡路里,1g 脂肪,40g 碳水化合物,8g 蛋白质)

我的目标是消耗 745 卡路里,<= 20g 脂肪,<=80g 碳水化合物,>= 40g 蛋白质

我见过很多背包问题的实现,但我从未见过它有 4 个约束。我的问题是它是否可行。你能引导我找到适合我的程序的算法吗?谢谢你。

4

1 回答 1

1

这是基本的线性规划。您应该查看这些类型问题的求解器。在微软的世界里——Solver Foundation 将解决这个问题。您还可以使用 Excel 求解器来查看它以交互方式完成。

也有很多开源解决方案。如果您更喜欢自己编写代码 - 并且需要一个通用解决方案,请使用数组数学 - 您将解决一个不等式方程组。这样您就可以处理 N 个约束和 Y 个变量。

于 2013-09-15T01:56:36.713 回答