gpt4 book ai didi

c# - 必须满足多个条件的组合优化

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:34:38 26 4
gpt4 key购买 nike

我们是一群学习计算机科学的一年级学生。

我们正在做一个名为“电子饮食计划”的项目(直译)

我们想用 C# 编写一个程序,每周计算一个基本满足/满足某些标准的饮食计划:

您每天的能量摄入量不应超过计算出的卡路里需求。(例如,如果我们计算一个人每天应该摄入 2000 卡路里的热量,那么饮食计划应该计划大约 2000 卡路里)

每日能量(卡路里)应按如下方式分配:

  • 脂肪 25-35%
  • 碳水化合物 50-60%
  • 蛋白质 10-20%

我们有一个“数据库”,其中包含食物及其含有多少脂肪、碳水化合物和蛋白质以及大概价格。我们有一个“数据库”,里面有食谱和 cooking 它需要多少时间。

SO:我们想制作一个程序,每周计算一个良好的饮食计划,以满足日常能量需求(以及它应该如何分配(脂肪、碳水化合物、蛋白质))。该计划还应规划一个饮食计划,该计划不很多时间而且成本不高(用户定义每周价格的上限)。

SO.. 我们需要帮助找到一种方法/算法,每天可以组合 3-6 道菜来满足这个 ^^我们一直在研究许多组合优化算法/问题,但主要是“背包问题”。

但这些算法/问题只是满足一个标准或试图找到“最便宜”的解决方案。-> 我们想要满足很多标准并想要找到最佳解决方案(不是最便宜的.. 例如脂肪必须在 25-35% 之间,而不仅仅是最低值)

我们希望你们中的一些人能帮助我们找到一个好的算法。

最佳答案

如果要寻找“最便宜”的解决方案而不是“最好”的解决方案,您只需重新定义“便宜”即可。

在优化理论中,人们通常指的是要最小化的成本函数 - 在您的情况下,“成本”可能是“与 30% 的脂肪百分比差异”,即吃 30% 的脂肪不需要任何成本,并且吃 20% 和 40% 一样多。当然,为了使该方法更加复杂,您可以称重,这样吃太多脂肪比吃太少脂肪更“昂贵”。

现在,如果您为每个标准创建成本,您还必须将它们放在一起权衡,正如 mellamokb 在评论中指出的那样;为此,只需计算加权总成本即可。您最终会得到如下内容:

cost of diet = (importance of price) * price + (importance of time) * time + (importance of fat) * (deviation from fat goal) + etc ...

如果你不想超出预算(花费的钱),你可以添加像
这样的条款超出预算? infinity : 0 使算法在预算内找到解决方案。您还可以限制重复进餐等 - 或多或少是您的想象力(和计算能力)设置了限制。

现在您有了成本函数,您可以开始研究问题的解决方案:最小化饮食成本。突然间,所有那些寻找“最便宜”解决方案的算法都变得有意义了……;)


请注意,制定此成本函数通常是困难的部分。根据您权衡成本的方式,您会找到非常不同的问题解决方案;并非所有这些都有用(事实上,其中大部分可能不会有用)。

关于c# - 必须满足多个条件的组合优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16066698/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com