首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >必须满足若干准则的组合优化

必须满足若干准则的组合优化
EN

Stack Overflow用户
提问于 2013-04-17 17:46:12
回答 1查看 548关注 0票数 1

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

我们正在进行一个名为“电子饮食计划”的项目(直接翻译)。

我们想在C#中制定一个计划,在每周的基础上,计算一个饮食计划,以满足一些标准:

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

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

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

我们有一个“数据库”,里面有食物和它含有多少脂肪、碳水化合物和蛋白质+大概的价格。我们有一个包含食谱和烹饪时间的“数据库”。

因此:我们想制定一个计划,每周基本计算一个好的饮食计划,以满足日常能源需求(以及它应该如何分配(脂肪,碳水化合物,蛋白质))。该程序还应该规划一个饮食计划,不需要花费很多时间,也不需要花费太多(用户定义价格的上限)。一周)。

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

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

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

EN

回答 1

Stack Overflow用户

发布于 2013-04-17 19:46:03

当说到找到“最便宜”的解决方案而不是“最好的”时,你只需要重新定义“便宜”。

在最优化理论中,人们经常提到成本函数,这是要最小化的--在你的例子中,“成本”可以是“30%与30%之间的脂肪百分比差”,也就是说,吃30%的脂肪不需要花费任何费用,吃20%和40%的成本也是一样的。当然,为了使这个方法更复杂,你可以称它的重量,这样吃太多的脂肪比吃太少的脂肪更“昂贵”。

现在,如果您为每个标准创建成本,您还必须对它们进行权衡,就像mellamokb在一条评论中指出的那样;要做到这一点,只需计算加权的总成本。最后,您将得到如下内容:

饮食成本=(价格的重要性)*价格+(时间的重要性)*时间+(脂肪的重要性)*(偏离脂肪目标)+等等。

如果你想使预算不可能超出预算(用钱),你可以加上如下的条件

使over budget ? infinity : 0算法在预算内找到解决方案。你也可以限制重复吃饭等--或多或少是你的想象力(和计算能力)决定了这个限度。

既然你有了成本函数,你就可以开始着手解决这个问题:将饮食成本降到最低。突然间,所有那些寻找“最便宜”解决方案的算法都有了意义.;)

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16066698

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档