当前位置: 首页 > 知识库问答 >
问题:

规划膳食的算法

慕阳伯
2023-03-14

我很难想出一个生成用餐计划的算法。这个问题涉及到根据营养需求(碳水化合物、脂肪、蛋白质等)提出不同数量的食物。食物项目需要从少量项目中选择(

A_g*a_pB_g*b_pC_g*c_p=PrtA_g*a_cB_g*b_cC_g*c_c=CrbA_g*a_fB_g*b_fC_g*c_f=Ft

其中A_g,B_g和C_g是每种食物的克数,A_g是每种食物的克数。。。b_c。。。c_f表示每种食物中1克蛋白质、碳水化合物和脂肪的克数。这里的问题是,在大多数情况下,不可能满足给定的需求,只需要最接近给定需求的最佳解决方案。总体目标是减少实际营养需求量与算法计算的营养需求量之间的差异。我研究过线性规划,但我所看到的大多数问题都涉及到在一组约束条件下最小化/最大化给定函数。我将非常感谢任何帮助解决这个问题。

谢谢

共有1个答案

姜振濂
2023-03-14

假设允许你有分数克的食物,你可以解析地解决这个问题,参见http://en.wikipedia.org/wiki/Linear_least_squares_(数学)细节。

你还有一个额外的隐含约束,即没有一种食物的含量是负数。因此,如果食物的数量为负值,你需要尝试不同的食物子集,以找到可能的答案,然后选择最好的一种。

如果你不能得到部分食物,那么这个问题就变得更加困难。

 类似资料:
  • 主要内容:动态规划算法的实际应用动态规划算法解决问题的过程和分治算法类似,也是先将问题拆分成多个简单的小问题,通过逐一解决这些小问题找到整个问题的答案。不同之处在于,分治算法拆分出的小问题之间是相互独立的,而动态规划算法拆分出的小问题之间相互关联,例如要想解决问题 A,必须先解决问题 B 和 C。 《贪心算法》一节中,给大家举过一个例子,假设有 1、7、10 这 3 种面值的纸币,每种纸币使用的数量不限,要求用尽可能少的纸币拼凑

  • 我目前正在学习动态编程,我无法解决这个问题。有人能给我一个算法吗?:考虑一个有向图G=(V,E),其中每个边都标有一个字母Sigma的字符,我们指定一个特殊的顶点s作为开始顶点,另一个f作为最后顶点。我们说G接受一个字符串a=a1a2。如果有一条从s到f的n条边的路径,其标号拼写为序列a。设计了一个O((V+E)n)动态规划算法来确定a是否被G接受。

  • 我正在为动态编程编写一些复习材料。我需要提出如何划分子问题,计算出基本情况,并提出递归公式。 给定 n 个正整数 a1,a2,...,an、一个数字 k 和一个目标 W,我们希望选择一个子集 T,其总和恰好是 k 个元素,其总和最接近 W。每个元素只能选择一次。定义一个具有 3 个参数的子问题(即 C[x,y,z] = ...)。 我只处理过几个动态编程示例,从未处理过定义子问题时需要3个参数的示

  • 泡好久了,发发面经攒人品,许愿一个offer 一面 1. 八股文: vector emplace_back和push_back的区别?resize和reserve的区别?迭代器失效的情形?map和unordered_map的区别?编译器如何实现this指针绑定的?设计模式有了解吗? 2. 检查代码问题:一个野指针,一个空指针调用类成员函数; 3. 手撕代码:合并区间;最小栈。 面试官一上来就说,我

  • 旅游规划 作者 陈越 单位 浙江大学 有了一张自驾旅游路线图,你会知道城市间的高速公路长度、以及该公路要收取的过路费。现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径。如果有若干条路径都是最短的,那么需要输出最便宜的一条路径。 输入格式: 输入说明:输入数据的第1行给出4个正整数N、M、S、D,其中N(2≤N≤500)是城市的个数,顺便假设城市的编号为0~(N−1);M是

  • 在制定时间表时,你必须遵守法律(硬性要求),该法律规定,作为一名员工,你每七天只能工作一定的时间。它没有说日历周的原因是在创建时间表时为雇主提供一些回旋空间(通常是提前4-16周)。一旦设置了此计划期的开始日期,在您想要进行完整的重新规划之前,该日期无法更改,但您需要通知员工。所以它可以被视为一个变量,直到你接受了时间表,然后它就变成了一个常数。当然,这是每个员工的个人情况。该开始日期将由您的第一