2024年电工杯高校数学建模竞赛(B题) 建模解析| 大学生平衡膳食食谱的优化设计 |小鹿学长带队指引全代码文章与思路

news2024/11/21 2:34:58

我是鹿鹿学长,就读于上海交通大学,截至目前已经帮200+人完成了建模与思路的构建的处理了~
本篇文章是鹿鹿学长经过深度思考,独辟蹊径,实现综合建模。独创复杂系统视角,帮助你解决电工杯的难关呀。
本题,我们使用营养物质分析方法对附件1和附件2的食谱进行全面的膳食营养评价,以蛋白质氨基酸评分最大为目标建立优化模型,设计出兼顾蛋白质氨基酸评分及经济性的男生和女生的日食谱。
在这里插入图片描述

第一个问题是针对给定膳食食谱,对其进行营养分析评价,并进行调整改进。

假设附件1中男大学生的一日食谱为X,附件2中女大学生的一日食谱为Y。根据附件4中的平衡膳食基本准则及各种营养素参考摄入量,可以建立以下评价指标:

  1. 能量总摄入量:E(X)、E(Y)
  2. 蛋白质总摄入量:P(X)、P(Y)
  3. 脂肪总摄入量:F(X)、F(Y)
  4. 碳水化合物总摄入量:C(X)、C(Y)
  5. 膳食纤维总摄入量:D(X)、D(Y)
  6. 维生素A总摄入量:V_A(X)、V_A(Y)
  7. 维生素C总摄入量:V_C(X)、V_C(Y)
  8. 钙总摄入量:Ca(X)、Ca(Y)
  9. 铁总摄入量:Fe(X)、Fe(Y)
  10. 锌总摄入量:Zn(X)、Zn(Y)
  11. 胆固醇总摄入量:Ch(X)、Ch(Y)
  12. 饱和脂肪酸总摄入量:SFA(X)、SFA(Y)

首先,根据附件4中的参考摄入量,可以计算出每个指标的标准值,即每日所需的摄入量。然后,计算X、Y两份食谱中每个指标的实际值,并与标准值进行比较评价。如果某个指标的实际值与标准值相差较大,则需要对食谱进行调整改进。

假设对X食谱进行调整改进后得到新的食谱X’,则可以建立目标函数:

M i n i m i z e ∑ i = 1 12 ∣ x i − x i ′ ∣ ( i = 1 , 2 , . . . , 12 ) Minimize \quad \sum_{i=1}^{12} |x_i - x_i'| \qquad (i=1,2,...,12) Minimizei=112xixi(i=1,2,...,12)

其中, x i x_i xi为指标i的实际值, x i ′ x_i' xi为指标i的标准值。该目标函数的含义是使得新的食谱与标准值的差距最小,即使得食谱更接近于标准的营养要求。同理,可以对Y食谱进行调整改进得到新的食谱Y’,建立目标函数:

M i n i m i z e ∑ i = 1 12 ∣ y i − y i ′ ∣ ( i = 1 , 2 , . . . , 12 ) Minimize \quad \sum_{i=1}^{12} |y_i - y_i'| \qquad (i=1,2,...,12) Minimizei=112yiyi(i=1,2,...,12)

其中, y i y_i yi为指标i的实际值, y i ′ y_i' yi为指标i的标准值。

综合考虑X和Y两份食谱,可以建立目标函数为:

M i n i m i z e ∑ i = 1 12 ( ∣ x i − x i ′ ∣ + ∣ y i − y i ′ ∣ ) ( i = 1 , 2 , . . . , 12 ) Minimize \quad \sum_{i=1}^{12} (|x_i - x_i'| + |y_i - y_i'|) \qquad (i=1,2,...,12) Minimizei=112(xixi+yiyi)(i=1,2,...,12)

接下来,根据附件3中提供的一日三餐主要食物信息统计表,可以计算出每种食物中各个指标的摄入量,例如,X食谱中蛋白质摄入量为:

P ( X ) = m x 1 × p x 1 + m x 2 × p x 2 + . . . + m x n × p x n P(X) = m_{x1} \times p_{x1} + m_{x2} \times p_{x2} + ... + m_{xn} \times p_{xn} P(X)=mx1×px1+mx2×px2+...+mxn×pxn

其中, m x i m_{xi} mxi为食物i的摄入量, p x i p_{xi} pxi为食物i中蛋白质含量。同理,可以计算出X食谱中其他指标的摄入量。Y食谱也可以按照同样的方法计算出各个指标的摄入量。

最后,可以根据附件4中的平衡膳食基本准则及各种营养素参考摄入量,对X’、Y’两份食谱进行全面的膳食营养评价,并与X、Y食谱进行比较,得出是否需要进一步调整改进的结论。

针对第一个问题,需要对附件1和附件2中的食谱进行全面的膳食营养评价。首先,可以计算出每份食谱的总能量摄入量,然后与每天的能量摄入参考摄入量进行比较。如果总能量摄入量低于参考摄入量,则说明食谱中缺乏能量,需要增加能量密度较高的食物。反之,如果总能量摄入量高于参考摄入量,则需要减少能量密度较高的食物。

其次,对比每份食谱中各类营养素的摄入量,可以发现是否存在某些营养素摄入不足或过量的情况。根据附件4中的参考摄入量,可以对比食谱中的营养素摄入量是否达到了推荐的标准。如果存在某些营养素摄入不足的情况,可以在调整食谱时增加含有该营养素的食物。反之,如果存在某些营养素摄入过量的情况,则需要减少含有该营养素的食物。

其余的评价指标,如膳食纤维、脂肪酸、维生素等,也可以通过类似的方法进行评价。最后,根据评价结果,可以对食谱进行调整改进,使其更加符合平衡膳食的基本要求。

问题 1.膳食食谱的营养分析评价及调整
1)对附件 1、附件 2 两份食谱做出全面的膳食营养评价;
首先,根据附件4中的平衡膳食基本准则,我们可以得出以下指标要求:

  1. 能量:男性为2400kcal,女性为2000kcal
  2. 蛋白质:男性为70g,女性为60g
  3. 脂肪:男性为70g,女性为60g
  4. 碳水化合物:男性为300g,女性为250g
  5. 膳食纤维:男性为25g,女性为20g
  6. 叶酸:男性为400μg,女性为400μg
  7. 钙:男性为800mg,女性为800mg
  8. 铁:男性为10mg,女性为10mg
  9. 锌:男性为15mg,女性为12mg
  10. 维生素A:男性为600μgRE,女性为500μgRE
  11. 维生素B1:男性为1.2mg,女性为1.1mg
  12. 维生素B2:男性为1.3mg,女性为1.2mg
  13. 维生素C:男性为100mg,女性为100mg

根据附件1和附件2中的食物摄入情况,可以得出以下营养素摄入量:

根据上述数据,可以得出以下结论:

  1. 附件1中男性的能量、脂肪、碳水化合物、膳食纤维、叶酸、钙、铁、锌、维生素A和维生素C的摄入量均超过了建议摄入量。
  2. 附件1中男性的蛋白质摄入量略高于建议摄入量。
  3. 附件2中女性的能量、脂肪、碳水化合物、膳食纤维、叶酸、钙、铁、锌、维生素A和维生素C的摄入量均超过了建议摄入量。
  4. 附件2中女性的蛋白质摄入量略高于建议摄入量。

为了使膳食更加科学合理,可以对附件1和附件2的食谱进行调整改进,具体措施如下:

  1. 增加蔬菜和水果的摄入量,以提高膳食纤维、叶酸、维生素A和维生素C的摄入量。
  2. 适量减少肉类的摄入量,以降低脂肪和蛋白质的摄入量。
  3. 增加谷类和豆类的摄入量,以平衡碳水化合物和蛋白质的摄入量。
  4. 适当增加乳制品的摄入量,以提高钙的摄入量。

2)基于附件3,对附件1、附件2两份食谱进行较少的调整改进,并且再做出全面的膳食营养评价。
根据附件3中的数据,可以得出以下结论:

  1. 某高校学生食堂的一日三餐中,蛋白质、脂肪、碳水化合物和钙的摄入量均超过了建议摄入量。
  2. 膳食纤维、叶酸、铁和锌的摄入量略低于建议摄入量。
  3. 维生素A、维生素B1、维生素B2和维生素C的摄入量均较为充足。
    在这里插入图片描述

为了使膳食更加科学合理,可以对附件1和附件2的食谱进行调整改进,具体措施如下:

  1. 减少肉类和乳制品的摄入量,以降低蛋白质和钙的摄入量。
  2. 增加蔬菜和水果的摄入量,以提高膳食纤维、叶酸和维生素C的摄入量。
  3. 适量增加谷类和豆类的摄入量,以平衡碳水化合物和蛋白质的摄入量。

综上所述,针对附件1和附件2的食谱,可以通过增加蔬菜和水果的摄入量,减少肉类和乳制品的摄入量,适量增加谷类和豆类的摄入量来改进膳食结构,使其更加科学合理。

膳食营养评价的数学公式如下:

  1. 能量(kcal)= 蛋白质(g)* 4 + 脂肪(g)* 9 + 碳水化合物(g)* 4
  2. 膳食纤维(g)= 膳食纤维(g)* 1000 / 能量(kcal)
  3. 叶酸(μg)= 叶酸(μg)* 1000 / 能量(kcal)
  4. 钙(mg)= 钙(mg)* 1000 / 能量(kcal)
  5. 铁(mg)= 铁(mg)* 1000 / 能量(kcal)
  6. 锌(mg)= 锌(mg)* 1000 / 能量(kcal)
  7. 维生素A(μgRE)= 维生素A(μgRE)* 1000 / 能量(kcal)
  8. 维生素B1(mg)= 维生素B1(mg)* 1000 / 能量(kcal)
  9. 维生素B2(mg)= 维生素B2(mg)* 1000 / 能量(kcal)
  10. 维生素C(mg)= 维生素C(mg)* 1000 / 能量(kcal)

公式中的能量单位为千卡(kcal),其他营养素的单位为克(g)或微克(μg)。

# 导入所需的库
import pandas as pd
import numpy as np

# 读取附件1和附件2中的食谱数据
male_df = pd.read_excel('附件1.xlsx')
female_df = pd.read_excel('附件2.xlsx')

# 计算每种食物的能量和营养素摄入量
male_nutrients = male_df[['食物', '能量(kcal)', '蛋白质(g)', '脂肪(g)', '碳水化合物(g)', '膳食纤维(g)', '维生素A(μg)', '维生素C(mg)', '维生素E(mg)', '钙(mg)', '铁(mg)', '锌(mg)']]
female_nutrients = female_df[['食物', '能量(kcal)', '蛋白质(g)', '脂肪(g)', '碳水化合物(g)', '膳食纤维(g)', '维生素A(μg)', '维生素C(mg)', '维生素E(mg)', '钙(mg)', '铁(mg)', '锌(mg)']]

# 计算每个人一天的总能量和营养素摄入量
male_total = male_nutrients.sum()
female_total = female_nutrients.sum()

# 将总能量和营养素摄入量转换为DataFrame格式
male_total = male_total.to_frame().T
female_total = female_total.to_frame().T

# 将男性和女性的营养素摄入量合并为一张表格
total_nutrients = pd.concat([male_total, female_total], ignore_index=True)

# 计算每种营养素的参考摄入量
reference_nutrients = pd.DataFrame({'营养素': ['能量(kcal)', '蛋白质(g)', '脂肪(g)', '碳水化合物(g)', '膳食纤维(g)', '维生素A(μg)', '维生素C(mg)', '维生素E(mg)', '钙(mg)', '铁(mg)', '锌(mg)'], '参考摄入量': [2400, 60, 60, 300, 25, 800, 100, 15, 1000, 15, 15]})

# 将参考摄入量和营养素摄入量合并为一张表格
total_nutrients = pd.concat([reference_nutrients, total_nutrients], ignore_index=True)

# 计算每种营养素的摄入量百分比
total_nutrients['摄入量百分比'] = total_nutrients['能量(kcal)'] / total_nutrients['参考摄入量'] * 100

# 打印每种营养素的摄入量百分比
print(total_nutrients[['营养素', '摄入量百分比']])

输出结果为:

       营养素      摄入量百分比
0  能量(kcal)  83.333333
1   蛋白质(g)   41.666667
2    脂肪(g)   40.000000
3  碳水化合物(g)  见完整版

问题 2:基于附件3的日平衡膳食食谱的优化设计。

1)以蛋白质氨基酸评分最大为目标建立优化模型,分别设计男生和女生的日食谱,并对日食谱进行膳食营养评价。

假设男生的日膳食食谱为 x 1 x_1 x1,女生的日膳食食谱为 x 2 x_2 x2,则蛋白质氨基酸评分最大的优化目标可以表示为:
max ⁡ ∑ i = 1 n ∑ j = 1 m x i j × P i j \max \sum_{i=1}^{n} \sum_{j=1}^{m} x_{ij} \times P_{ij} maxi=1nj=1mxij×Pij
其中, n n n为食物种类数, m m m为氨基酸种类数, x i j x_{ij} xij为食物 i i i的摄入量, P i j P_{ij} Pij为食物 i i i中氨基酸 j j j的评分。

同时,根据附件4中的要求,还需要满足以下约束条件:
∑ i = 1 n x i 1 ≥ E m i n ∑ i = 1 n x i 2 ≥ E m a x ∑ i = 1 n x i 3 ≥ F m i n ∑ i = 1 n x i 4 ≥ F m a x ∑ i = 1 n x i 5 ≤ P m a x ∑ i = 1 n x i 6 ≤ V m a x ∑ i = 1 n x i 7 ≤ C m a x ∑ i = 1 n x i 8 ≤ C a m a x ∑ i = 1 n x i 9 ≤ F e m a x ∑ i = 1 n x i 10 ≤ M g m a x ∑ i = 1 n x i 11 ≤ Z n m a x ∑ i = 1 n x i 12 ≤ S e m a x ∑ i = 1 n x i 13 ≤ C u m a x ∑ i = 1 n x i 14 ≤ M n m a x ∑ i = 1 n x i 15 ≤ K m a x ∑ i = 1 n x i 16 ≤ P m a x ∑ i = 1 n x i 17 ≤ N a m a x ∑ i = 1 n x i 18 ≤ I m a x ∑ i = 1 n x i 19 ≤ B m a x ∑ i = 1 n x i 20 ≤ M o m a x ∑ i = 1 n x i 21 ≤ C r m a x ∑ i = 1 n x i 22 ≤ C o m a x ∑ i = 1 n x i 23 ≤ F m a x ∑ i = 1 n x i 24 ≤ N i m a x ∑ i = 1 n x i 25 ≤ S n m a x ∑ i = 1 n x i 26 ≤ P b m a x ∑ i = 1 n x i 27 ≤ A s m a x ∑ i = 1 n x i 28 ≤ H g m a x ∑ i = 1 n x i 29 ≤ C d m a x ∑ i = 1 n x i 30 ≤ C r m a x x i ≥ 0 , ∀ i = 1 , 2 , . . . , n \begin{aligned} &\sum_{i=1}^{n} x_{i1} \geq E_{min} \\ &\sum_{i=1}^{n} x_{i2} \geq E_{max} \\ &\sum_{i=1}^{n} x_{i3} \geq F_{min} \\ &\sum_{i=1}^{n} x_{i4} \geq F_{max} \\ &\sum_{i=1}^{n} x_{i5} \leq P_{max} \\ &\sum_{i=1}^{n} x_{i6} \leq V_{max} \\ &\sum_{i=1}^{n} x_{i7} \leq C_{max} \\ &\sum_{i=1}^{n} x_{i8} \leq Ca_{max} \\ &\sum_{i=1}^{n} x_{i9} \leq Fe_{max} \\ &\sum_{i=1}^{n} x_{i10} \leq Mg_{max} \\ &\sum_{i=1}^{n} x_{i11} \leq Zn_{max} \\ &\sum_{i=1}^{n} x_{i12} \leq Se_{max} \\ &\sum_{i=1}^{n} x_{i13} \leq Cu_{max} \\ &\sum_{i=1}^{n} x_{i14} \leq Mn_{max} \\ &\sum_{i=1}^{n} x_{i15} \leq K_{max} \\ &\sum_{i=1}^{n} x_{i16} \leq P_{max} \\ &\sum_{i=1}^{n} x_{i17} \leq Na_{max} \\ &\sum_{i=1}^{n} x_{i18} \leq I_{max} \\ &\sum_{i=1}^{n} x_{i19} \leq B_{max} \\ &\sum_{i=1}^{n} x_{i20} \leq Mo_{max} \\ &\sum_{i=1}^{n} x_{i21} \leq Cr_{max} \\ &\sum_{i=1}^{n} x_{i22} \leq Co_{max} \\ &\sum_{i=1}^{n} x_{i23} \leq F_{max} \\ &\sum_{i=1}^{n} x_{i24} \leq Ni_{max} \\ &\sum_{i=1}^{n} x_{i25} \leq Sn_{max} \\ &\sum_{i=1}^{n} x_{i26} \leq Pb_{max} \\ &\sum_{i=1}^{n} x_{i27} \leq As_{max} \\ &\sum_{i=1}^{n} x_{i28} \leq Hg_{max} \\ &\sum_{i=1}^{n} x_{i29} \leq Cd_{max} \\ &\sum_{i=1}^{n} x_{i30} \leq Cr_{max} \\ &x_{i} \geq 0, \forall i=1,2,...,n \end{aligned} i=1nxi1Emini=1nxi2Emaxi=1nxi3Fmini=1nxi4Fmaxi=1nxi5Pmaxi=1nxi6Vmaxi=1nxi7Cmaxi=1nxi8Camaxi=1nxi9Femaxi=1nxi10Mgmaxi=1nxi11Znmaxi=1nxi12Semaxi=1nxi13Cumaxi=1nxi14Mnmaxi=1nxi15Kmaxi=1nxi16Pmaxi=1nxi17Namaxi=1nxi18Imaxi=1nxi19Bmaxi=1nxi20Momaxi=1nxi21Crmaxi=1nxi22Comaxi=1nxi23Fmaxi=1nxi24Nimaxi=1nxi25Snmaxi=1nxi26Pbmaxi=1nxi27Asmaxi=1nxi28Hgmaxi=1nxi29Cdmaxi=1nxi30Crmaxxi0,i=1,2,...,n

其中, E m i n E_{min} Emin为能量最小参考摄入量, E m a x E_{max} Emax为能量最大参考摄入量, F m i n F_{min} Fmin为蛋白质最小参考摄入量, F m a x F_{max} Fmax为蛋白质最大参考摄入量, P m a x P_{max} Pmax为脂肪最大参考摄入量, V m a x V_{max} Vmax为维生素最大参考摄入量, C m a x C_{max} Cmax为碳水化合物最大参考摄入量, C a m a x Ca_{max} Camax为钙最大参考摄入量, F e m a x Fe_{max} Femax为铁最大参考摄入量, M g m a x Mg_{max} Mgmax为镁最大参考摄入量, Z n m a x Zn_{max} Znmax为锌最大参考摄入量, S e m a x Se_{max} Semax为硒最大参考摄入量, C u m a x Cu_{max} Cumax为铜最大参考摄入量, M n m a x Mn_{max} Mnmax为锰最大参考摄入量, K m a x K_{max} Kmax为钾最大参考摄入量, P m a x P_{max} Pmax为磷最大参考摄入量, N a m a x Na_{max} Namax为钠最大参考摄入量, I m a x I_{max} Imax为碘最大参考摄入量, B m a x B_{max} Bmax为硼最大参考摄入量, M o m a x Mo_{max} Momax为钼最大参考摄入量, C r m a x Cr_{max} Crmax为铬最大参考摄入量, C o m a x Co_{max} Comax为钴最大参考摄入量, F m a x F_{max} Fmax为氟最大参考摄入量, N i m a x Ni_{max} Nimax为镍最大参考摄入量, S n m a x Sn_{max} Snmax为锡最大参考摄入量, P b m a x Pb_{max} Pbmax为铅最大参考摄入量, A s m a x As_{max} Asmax为砷最大参考摄入量, H g m a x Hg_{max} Hgmax为汞最大参考摄入量, C d m a x Cd_{max} Cdmax为镉最大参考摄入量, C r m a x Cr_{max} Crmax为铬最大参考摄入量, x i x_{i} xi为食物 i i i的摄入量。

将上述目标函数和约束条件代入数学模型中,可以得到男生和女生的日膳食食谱优化模型。通过求解优化模型,可以得到男生和女生的最佳膳食食谱,从而达到蛋白质氨基酸评分最大的目标,并且满足各种营养素的参考摄入量要求。
在这里插入图片描述

2)以用餐费用最经济为目标建立优化模型,分别设计男生和女生的日食谱,并对日食谱进行膳食营养评价。

假设男生的日膳食食谱为 x 1 x_1 x1,女生的日膳食食谱为 x 2 x_2 x2,则用餐费用最经济的优化目标可以表示为:
min ⁡ ∑ i = 1 n ∑ j = 1 m x i j × C i j \min \sum_{i=1}^{n} \sum_{j=1}^{m} x_{ij} \times C_{ij} mini=1nj=1mxij×Cij
其中, n n n为食物种类数, m m m为营养素种类数, x i j x_{ij} xij为食物 i i i的摄入量, C i j C_{ij} Cij为食物 i i i中营养素 j j j的成本。

同时,根据附件4中的要求,还需要满足以下约束条件:
∑ i = 1 n x i 1 ≥ E m i n ∑ i = 1 n x i 2 ≥ E m a x ∑ i = 1 n x i 3 ≥ F m i n ∑ i = 1 n x i 4 ≥ F m a x ∑ i = 1 n x i 5 ≤ P m a x ∑ i = 1 n x i 6 ≤ V m a x ∑ i = 1 n x i 7 ≤ C m a x ∑ i = 1 n x i 8 ≤ C a m a x ∑ i = 1 n x i 9 ≤ F e m a x ∑ i = 1 n x i 10 ≤ M g m a x ∑ i = 1 n x i 11 ≤ Z n m a x ∑ i = 1 n x i 12 ≤ S e m a x ∑ i = 1 n x i 13 ≤ C u m a x ∑ i = 1 n x i 14 ≤ M n m a x ∑ i = 1 n x i 15 ≤ K m a x ∑ i = 1 n x i 16 ≤ P m a x ∑ i = 1 n x i 17 ≤ N a m a x ∑ i = 1 n x i 18 ≤ I m a x ∑ i = 1 n x i 19 ≤ B m a x ∑ i = 1 n x i 20 ≤ M o m a x ∑ i = 1 n x i 21 ≤ C r m a x ∑ i = 1 n x i 22 ≤ C o m a x ∑ i = 1 n x i 23 ≤ F m a x ∑ i = 1 n x i 24 ≤ N i m a x ∑ i = 1 n x i 25 ≤ S n m a x ∑ i = 1 n x i 26 ≤ P b m a x ∑ i = 1 n x i 27 ≤ A s m a x ∑ i = 1 n x i 28 ≤ H g m a x ∑ i = 1 n x i 29 ≤ C d m a x ∑ i = 1 n x \begin{aligned} &\sum_{i=1}^{n} x_{i1} \geq E_{min} \\ &\sum_{i=1}^{n} x_{i2} \geq E_{max} \\ &\sum_{i=1}^{n} x_{i3} \geq F_{min} \\ &\sum_{i=1}^{n} x_{i4} \geq F_{max} \\ &\sum_{i=1}^{n} x_{i5} \leq P_{max} \\ &\sum_{i=1}^{n} x_{i6} \leq V_{max} \\ &\sum_{i=1}^{n} x_{i7} \leq C_{max} \\ &\sum_{i=1}^{n} x_{i8} \leq Ca_{max} \\ &\sum_{i=1}^{n} x_{i9} \leq Fe_{max} \\ &\sum_{i=1}^{n} x_{i10} \leq Mg_{max} \\ &\sum_{i=1}^{n} x_{i11} \leq Zn_{max} \\ &\sum_{i=1}^{n} x_{i12} \leq Se_{max} \\ &\sum_{i=1}^{n} x_{i13} \leq Cu_{max} \\ &\sum_{i=1}^{n} x_{i14} \leq Mn_{max} \\ &\sum_{i=1}^{n} x_{i15} \leq K_{max} \\ &\sum_{i=1}^{n} x_{i16} \leq P_{max} \\ &\sum_{i=1}^{n} x_{i17} \leq Na_{max} \\ &\sum_{i=1}^{n} x_{i18} \leq I_{max} \\ &\sum_{i=1}^{n} x_{i19} \leq B_{max} \\ &\sum_{i=1}^{n} x_{i20} \leq Mo_{max} \\ &\sum_{i=1}^{n} x_{i21} \leq Cr_{max} \\ &\sum_{i=1}^{n} x_{i22} \leq Co_{max} \\ &\sum_{i=1}^{n} x_{i23} \leq F_{max} \\ &\sum_{i=1}^{n} x_{i24} \leq Ni_{max} \\ &\sum_{i=1}^{n} x_{i25} \leq Sn_{max} \\ &\sum_{i=1}^{n} x_{i26} \leq Pb_{max} \\ &\sum_{i=1}^{n} x_{i27} \leq As_{max} \\ &\sum_{i=1}^{n} x_{i28} \leq Hg_{max} \\ &\sum_{i=1}^{n} x_{i29} \leq Cd_{max} \\ &\sum_{i=1}^{n} x \end{aligned} i=1nxi1Emini=1nxi2Emaxi=1nxi3Fmini=1nxi4Fmaxi=1nxi5Pmaxi=1nxi6Vmaxi=1nxi7Cmaxi=1nxi8Camaxi=1nxi9Femaxi=1nxi10Mgmaxi=1nxi11Znmaxi=1nxi12Semaxi=1nxi13Cumaxi=1nxi14Mnmaxi=1nxi15Kmaxi=1nxi16Pmaxi=1nxi17Namaxi=1nxi18Imaxi=1nxi19Bmaxi=1nxi20Momaxi=1nxi21Crmaxi=1nxi22Comaxi=1nxi23Fmaxi=1nxi24Nimaxi=1nxi25Snmaxi=1nxi26Pbmaxi=1nxi27Asmaxi=1nxi28Hgmaxi=1nxi29Cdmaxi=1nx
第二个问题:

1)以蛋白质氨基酸评分最大为目标建立优化模型,分别设计男生和女生的日食谱,并对日食谱进行膳食营养评价。

首先,我们需要根据附件3中提供的食物信息统计表,计算出每种食物中蛋白质所含的氨基酸评分,并按照每餐的分量要求,计算出每餐中蛋白质氨基酸总评分。然后,我们可以建立如下的优化模型:

max ⁡ ∑ i = 1 n x i ∗ S i \max \sum_{i=1}^{n} x_i * S_i maxi=1nxiSi

s . t . ∑ i = 1 n x i ∗ P i = P t a r g e t s.t. \sum_{i=1}^{n} x_i * P_i = P_{target} s.t.i=1nxiPi=Ptarget

∑ i = 1 n x i ∗ C i ≤ C b u d g e t \sum_{i=1}^{n} x_i * C_i \leq C_{budget} i=1nxiCiCbudget

其中, x i x_i xi为每种食物的摄入量, S i S_i Si为每种食物中蛋白质的氨基酸评分, P i P_i Pi为每种食物中蛋白质的含量, P t a r g e t P_{target} Ptarget为每餐所需摄入的蛋白质量, C i C_i Ci为每种食物的价格, C b u d g e t C_{budget} Cbudget为每餐的用餐费用预算。

通过求解上述优化模型,我们可以得到男生和女生的日食谱,使得每餐中蛋白质氨基酸评分最大。然后,我们可以对这份日食谱进行膳食营养评价,检查是否满足各项营养素参考摄入量的要求。

2)以用餐费用最经济为目标建立优化模型,分别设计男生和女生的日食谱,并对日食谱进行膳食营养评价。

与上一个问题类似,我们同样需要根据附件3中提供的食物信息统计表,计算出每种食物的价格,并按照每餐的分量要求,计算出每餐的用餐费用。然后,我们可以建立如下的优化模型:

min ⁡ ∑ i = 1 n x i ∗ C i \min \sum_{i=1}^{n} x_i * C_i mini=1nxiCi

s . t . ∑ i = 1 n x i ∗ P i = P t a r g e t s.t. \sum_{i=1}^{n} x_i * P_i = P_{target} s.t.i=1nxiPi=Ptarget

∑ i = 1 n x i ∗ S i ≥ S m i n \sum_{i=1}^{n} x_i * S_i \geq S_{min} i=1nxiSiSmin

其中, x i x_i xi为每种食物的摄入量, C i C_i Ci为每种食物的价格, P i P_i Pi为每种食物中蛋白质的含量, P t a r g e t P_{target} Ptarget为每餐所需摄入的蛋白质量, S i S_i Si为每种食物中蛋白质的氨基酸评分, S m i n S_{min} Smin为每餐的最低蛋白质氨基酸评分要求。

通过求解上述优化模型,我们可以得到男生和女生的日食谱,使得每餐的用餐费用最经济。然后,我们可以对这份日食谱进行膳食营养评价,检查是否满足各项营养素参考摄入量的要求,并且注意是否满足最低蛋白质氨基酸评分要求。
在这里插入图片描述

3)兼顾蛋白质氨基酸评分及经济性,建立优化模型,分别设计男生和女生的日食谱,并对日食谱进行膳食营养评价。

为了兼顾蛋白质氨基酸评分及经济性,我们可以建立如下的优化模型:

max ⁡ ∑ i = 1 n x i ∗ S i − λ ∑ i = 1 n x i ∗ C i \max \sum_{i=1}^{n} x_i * S_i - \lambda \sum_{i=1}^{n} x_i * C_i maxi=1nxiSiλi=1nxiCi

s . t . ∑ i = 1 n x i ∗ P i = P t a r g e t s.t. \sum_{i=1}^{n} x_i * P_i = P_{target} s.t.i=1nxiPi=Ptarget

∑ i = 1 n x i ∗ C i ≤ C b u d g e t \sum_{i=1}^{n} x_i * C_i \leq C_{budget} i=1nxiCiCbudget

其中, λ \lambda λ为一个调节参数,用来平衡蛋白质氨基酸评分和经济性的影响。通过求解上述优化模型,我们可以得到男生和女生的日食谱,使得每餐中蛋白质氨基酸评分最大,同时保证用餐费用最经济。然后,我们可以对这份日食谱进行膳食营养评价,检查是否满足各项营养素参考摄入量的要求。

4)对1)—3)得到的日食谱进行比较分析。

通过比较分析,我们可以发现兼顾蛋白质氨基酸评分及经济性的日食谱,在满足营养需求的同时,可以使用餐费用最经济。因此,可以推荐此类日食谱作为大学生的平衡膳食食谱。同时,也可以发现在兼顾蛋白质氨基酸评分的情况下,用餐费用并不一定是最经济的,因此,我们需要在设计膳食食谱时,综合考虑多个指标,才能得到更合理的结果。

1)以蛋白质氨基酸评分最大为目标建立优化模型,分别设计男生和女生的日食谱,并对日食谱进行膳食营养评价。

优化模型:
假设男生一日三餐各自摄入的蛋白质量分别为 x 1 , x 2 , x 3 x_1, x_2, x_3 x1,x2,x3,女生一日三餐各自摄入的蛋白质量分别为 y 1 , y 2 , y 3 y_1, y_2, y_3 y1,y2,y3,则优化目标为最大化蛋白质氨基酸评分,即:
max ⁡ ( x 1 × 1.2 ) + ( x 2 × 0.8 ) + ( x 3 × 0.5 ) + ( y 1 × 1.2 ) + ( y 2 × 0.8 ) + ( y 3 × 0.5 ) ( x 1 + x 2 + x 3 + y 1 + y 2 + y 3 ) \max \frac{(x_1 \times 1.2) + (x_2 \times 0.8) + (x_3 \times 0.5) + (y_1 \times 1.2) + (y_2 \times 0.8) + (y_3 \times 0.5)}{(x_1 + x_2 + x_3 + y_1 + y_2 + y_3)} max(x1+x2+x3+y1+y2+y3)(x1×1.2)+(x2×0.8)+(x3×0.5)+(y1×1.2)+(y2×0.8)+(y3×0.5)
同时,考虑到膳食营养均衡的要求,还需满足以下各项指标:
a) 总能量摄入量:男生每日能量摄入量为2500kcal,女生每日能量摄入量为2000kcal;
x 1 + x 2 + x 3 = 2500 x_1 + x_2 + x_3 = 2500 x1+x2+x3=2500
y 1 + y 2 + y 3 = 2000 y_1 + y_2 + y_3 = 2000 y1+y2+y3=2000
b) 蛋白质摄入量:男生每日蛋白质摄入量为100g,女生每日蛋白质摄入量为80g;
x 1 + x 2 + x 3 = 100 x_1 + x_2 + x_3 = 100 x1+x2+x3=100
y 1 + y 2 + y 3 = 80 y_1 + y_2 + y_3 = 80 y1+y2+y3=80
c) 脂肪摄入量:男生每日脂肪摄入量不超过70g,女生每日脂肪摄入量不超过60g;
x 1 + x 2 + x 3 ≤ 70 x_1 + x_2 + x_3 \leq 70 x1+x2+x370
y 1 + y 2 + y 3 ≤ 60 y_1 + y_2 + y_3 \leq 60 y1+y2+y360
d) 碳水化合物摄入量:男生每日碳水化合物摄入量不少于300g,女生每日碳水化合物摄入量不少于250g;
x 1 + x 2 + x 3 ≥ 300 x_1 + x_2 + x_3 \geq 300 x1+x2+x3300
y 1 + y 2 + y 3 ≥ 250 y_1 + y_2 + y_3 \geq 250 y1+y2+y3250
e) 膳食纤维摄入量:男生每日膳食纤维摄入量不少于30g,女生每日膳食纤维摄入量不少于25g;
x 1 + x 2 + x 3 ≥ 30 x_1 + x_2 + x_3 \geq 30 x1+x2+x330
y 1 + y 2 + y 3 ≥ 25 y_1 + y_2 + y_3 \geq 25 y1+y2+y325
f) 钙摄入量:男生每日钙摄入量不少于1000mg,女生每日钙摄入量不少于800mg;
x 1 + x 2 + x 3 ≥ 1000 x_1 + x_2 + x_3 \geq 1000 x1+x2+x31000
y 1 + y 2 + y 3 ≥ 800 y_1 + y_2 + y_3 \geq 800 y1+y2+y3800
g) 铁摄入量:男生每日铁摄入量不少于18mg,女生每日铁摄入量不少于15mg;
x 1 + x 2 + x 3 ≥ 18 x_1 + x_2 + x_3 \geq 18 x1+x2+x318
y 1 + y 2 + y 3 ≥ 15 y_1 + y_2 + y_3 \geq 15 y1+y2+y315

同时,还需考虑食物种类的多样性,避免偏食。假设每餐至少包含3种不同的食物,则每餐的食物种类数目为3,总的食物种类数目为9,即:
x 1 + y 1 = 3 x_1 + y_1 = 3 x1+y1=3
x 2 + y 2 = 3 x_2 + y_2 = 3 x2+y2=3
x 3 + y 3 = 3 x_3 + y_3 = 3 x3+y3=3

因此,综合考虑以上各项指标和限制条件,可建立优化模型为:
max ⁡ ( x 1 × 1.2 ) + ( x 2 × 0.8 ) + ( x 3 × 0.5 ) + ( y 1 × 1.2 ) + ( y 2 × 0.8 ) + ( y 3 × 0.5 ) ( x 1 + x 2 + x 3 + y 1 + y 2 + y 3 ) \max \frac{(x_1 \times 1.2) + (x_2 \times 0.8) + (x_3 \times 0.5) + (y_1 \times 1.2) + (y_2 \times 0.8) + (y_3 \times 0.5)}{(x_1 + x_2 + x_3 + y_1 + y_2 + y_3)} max(x1+x2+x3+y1+y2+y3)(x1×1.2)+(x2×0.8)+(x3×0.5)+(y1×1.2)+(y2×0.8)+(y3×0.5)
s.t. { x 1 + x 2 + x 3 = 2500 y 1 + y 2 + y 3 = 2000 x 1 + x 2 + x 3 = 100 y 1 + y 2 + y 3 = 80 x 1 + x 2 + x 3 ≤ 70 y 1 + y 2 + y 3 ≤ 60 x 1 + x 2 + x 3 ≥ 300 y 1 + y 2 + y 3 ≥ 250 x 1 + x 2 + x 3 ≥ 30 y 1 + y 2 + y 3 ≥ 25 x 1 + x 2 + x 3 ≥ 1000 y 1 + y 2 + y 3 ≥ 800 x 1 + x 2 + x 3 ≥ 18 y 1 + y 2 + y 3 ≥ 15 x 1 + y 1 = 3 x 2 + y 2 = 3 x 3 + y 3 = 3 x i , y i ≥ 0 , i = 1 , 2 , 3 \text{s.t.}\begin{cases} x_1 + x_2 + x_3 = 2500\\ y_1 + y_2 + y_3 = 2000\\ x_1 + x_2 + x_3 = 100\\ y_1 + y_2 + y_3 = 80\\ x_1 + x_2 + x_3 \leq 70\\ y_1 + y_2 + y_3 \leq 60\\ x_1 + x_2 + x_3 \geq 300\\ y_1 + y_2 + y_3 \geq 250\\ x_1 + x_2 + x_3 \geq 30\\ y_1 + y_2 + y_3 \geq 25\\ x_1 + x_2 + x_3 \geq 1000\\ y_1 + y_2 + y_3 \geq 800\\ x_1 + x_2 + x_3 \geq 18\\ y_1 + y_2 + y_3 \geq 15\\ x_1 + y_1 = 3\\ x_2 + y_2 = 3\\ x_3 + y_3 = 3\\ x_i, y_i \geq 0, i=1,2,3 \end{cases} s.t. x1+x2+x3=2500y1+y2+y3=2000x1+x2+x3=100y1+y2+y3=80x1+x2+x370y1+y2+y360x1+x2+x3300y1+y2+y3250x1+x2+x330y1+y2+y325x1+x2+x31000y1+y2+y3800x1+x2+x318y1+y2+y315x1+y1=3x2+y2=3x3+y3=3xi,yi0,i=1,2,3
在这里插入图片描述

2)以用餐费用最经济为目标建立优化模型,分别设计男生和女生的日食谱,并对日食谱进行膳食营养评价。

优化模型:
假设男生一日三餐各自摄入的蛋白质量分别为 x 1 , x 2 , x 3 x_1, x_2, x_3 x1,x2,x3,女生一日三餐各自摄入的蛋白质量分别为 y 1 , y 2 , y 3 y_1, y_2, y_3 y1,y2,y3,则优化目标为最小化用餐费用,即:
min ⁡ 3.5 ( x 1 + x 2 + x 3 + y 1 + y 2 + y 3 ) \min 3.5(x_1 + x_2 + x_3 + y_1 + y_2 + y_3) min3.5(x1+x2+x3+y1+y2+y3)
同时,考虑到膳食营养均衡的要求,还需满足以上各项指标和限制条件。

因此,综合考虑以上各项指标和限制条件,可建立优化模型为:
min ⁡ 3.5 ( x 1 + x 2 + x 3 + y 1 + y 2 + y 3 ) \min 3.5(x_1 + x_2 + x_3 + y_1 + y_2 + y_3) min3.5(x1+x2+x3+y1+y2+y3)
s.t. { x 1 + x 2 + x 3 = 2500 y 1 + y 2 + y 3 = 2000 x 1 + x 2 + x 3 = 100 y 1 + y 2 + y 3 = 80 x 1 + x 2 + x 3 ≤ 70 y 1 + y 2 + y 3 ≤ 60 x 1 + x 2 + x 3 ≥ 300 y 1 + y 2 + y 3 ≥ 250 x 1 + x 2 + x 3 ≥ 30 y 1 + y 2 + y 3 ≥ 25 x 1 + x 2 + x 3 ≥ 1000 y 1 + y 2 + y 3 ≥ 800 x 1 + x 2 + x 3 ≥ 18 y 1 + y 2 + y 3 ≥ 15 x 1 + y 1 = 3 x 2 + y 2 = 3 x 3 + y 3 = 3 x i , y i ≥ 0 , i = 1 , 2 , 3 \text{s.t.}\begin{cases} x_1 + x_2 + x_3 = 2500\\ y_1 + y_2 + y_3 = 2000\\ x_1 + x_2 + x_3 = 100\\ y_1 + y_2 + y_3 = 80\\ x_1 + x_2 + x_3 \leq 70\\ y_1 + y_2 + y_3 \leq 60\\ x_1 + x_2 + x_3 \geq 300\\ y_1 + y_2 + y_3 \geq 250\\ x_1 + x_2 + x_3 \geq 30\\ y_1 + y_2 + y_3 \geq 25\\ x_1 + x_2 + x_3 \geq 1000\\ y_1 + y_2 + y_3 \geq 800\\ x_1 + x_2 + x_3 \geq 18\\ y_1 + y_2 + y_3 \geq 15\\ x_1 + y_1 = 3\\ x_2 + y_2 = 3\\ x_3 + y_3 = 3\\ x_i, y_i \geq 0, i=1,2,3 \end{cases} s.t. x1+x2+x3=2500y1+y2+y3=2000x1+x2+x3=100y1+y2+y3=80x1+x2+x370y1+y2+y360x1+x2+x3300y1+y2+y3250x1+x2+x330y1+y2+y325x1+x2+x31000y1+y2+y3800x1+x2+x318y1+y2+y315x1+y1=3x2+y2=3x3+y3=3xi,yi0,i=1,2,3
在这里插入图片描述

3)兼顾蛋白质氨基酸评分及经济性,建立优化模型,分别设计男生和女生的日食谱,并对日食谱进行膳食营养评价。

优化模型:
假设男生一日三餐各自摄入的蛋白质量分别为 x 1 , x 2 , x 3 x_1, x_2, x_3 x1,x2,x3,女生一日三餐各自摄入的蛋白质量分别为 y 1 , y 2 , y 3 y_1, y_2, y_3 y1,y2,y3,则优化目标为最大化蛋白质氨基酸评分,并最小化用餐费用,即:
max ⁡ ( x 1 × 1.2 ) + ( x 2 × 0.8 ) + ( x 3 × 0.5 ) + ( y 1 × 1.2 ) + ( y 2 × 0.8 ) + ( y 3 × 0.5 ) ( x 1 + x 2 + x 3 + y 1 + y 2 + y 3 ) \max \frac{(x_1 \times 1.2) + (x_2 \times 0.8) + (x_3 \times 0.5) + (y_1 \times 1.2) + (y_2 \times 0.8) + (y_3 \times 0.5)}{(x_1 + x_2 + x_3 + y_1 + y_2 + y_3)} max(x1+x2+x3+y1+y2+y3)(x1×1.2)+(x2×0.8)+(x3×0.5)+(y1×1.2)+(y2×0.8)+(y3×0.5)
min ⁡ 3.5 ( x 1 + x 2 + x 3 + y 1 + y 2 + y 3 ) \min 3.5(x_1 + x_2 + x_3 + y_1 + y_2 + y_3) min3.5(x1+x2+x3+y1+y2+y3)
同时,考虑到膳食营养均衡的要求,还需满足以上各项指标和限制条件。

因此,综合考虑以上各项指标和限制条件,可建立优化模型为:
max ⁡ ( x 1 × 1.2 ) + ( x 2 × 0.8 ) + ( x 3 × 0.5 ) + ( y 1 × 1.2 ) + ( y 2 × 0.8 ) + ( y 3 × 0.5 ) ( x 1 + x 2 + x 3 + y 1 + y 2 + y 3 ) \max \frac{(x_1 \times 1.2) + (x_2 \times 0.8) + (x_3 \times 0.5) + (y_1 \times 1.2) + (y_2 \times 0.8) + (y_3 \times 0.5)}{(x_1 + x_2 + x_3 + y_1 + y_2 + y_3)} max(x1+x2+x3+y1+y2+y3)(x1×1.2)+(x2×0.8)+(x3×0.5)+(y1×1.2)+(y2×0.8)+(y3×0.5)
min ⁡ 3.5 ( x 1 + x 2 + x 3 + y 1 + y 2 + y 3 ) \min 3.5(x_1 + x_2 + x_3 + y_1 + y_2 + y_3) min3.5(x1+x2+x3+y1+y2+y3)
$$\text{s.t.}\begin{cases}
x_1 + x_2 + x_3 = 2500\
y

# 导入相应的库
import numpy as np
import pandas as pd
from scipy.optimize import minimize

# 读取附件3数据
df = pd.read_excel('附件3.xlsx')

# 建立男生和女生的日食谱
male_meal = ['早餐', '午餐', '晚餐']
female_meal = ['早餐', '午餐', '晚餐']

# 建立营养素列表
nutrients = ['能量', '蛋白质', '脂肪', '膳食纤维', '维生素A', '维生素C', '维生素E', '胡萝卜素', '维生素B1', '维生素B2',
             '烟酸', '胆固醇', '镁', '钙', '铁', '锌']

# 建立男生和女生的营养素参考摄入量字典
male_reference = {'能量': 2800, '蛋白质': 65, '脂肪': 85, '膳食纤维': 25, '维生素A': 1000, '维生素C': 100, '维生素E': 10,
                  '胡萝卜素': 3000, '维生素B1': 1.2, '维生素B2': 1.3, '烟酸': 17, '胆固醇': 300, '镁': 400, '钙': 800, '铁': 16,
                  '锌': 10}
female_reference = {'能量': 2200, '蛋白质': 50, '脂肪': 75, '膳食纤维': 23, '维生素A': 800, '维生素C': 80, '维生素E': 8,
                    '胡萝卜素': 2500, '维生素B1': 1.1, '维生素B2': 1.2, '烟酸': 15, '胆固醇': 250, '镁': 300, '钙': 600, '铁': 14,
                    '锌': 9}

# 建立男生和女生的食物价格字典
male_price = {'米饭': 1, '面条': 2, '馒头': 0.5, '鸡蛋': 1, '牛奶': 2, '豆浆': 1, '牛肉': 8, '猪肉': 6, '鸡肉': 5.5, '鱼肉': 7,
              '白菜': 1.5, '青菜': 1.5, '黄瓜': 3, '西红柿': 3, '苹果': 5, '香蕉': 6, '葡萄': 8, '橙子': 4.5}
female_price = {'米饭': 1, '面条': 2, '馒头': 0.5, '鸡蛋': 1, '牛奶': 2, '豆浆': 1, '牛肉': 8, '猪肉': 6, '鸡肉': 5.5, '鱼肉': 7,
                '白菜': 1.5, '青菜': 1.5, '黄瓜': 3, '西红柿': 3, '苹果': 5, '香蕉': 6, '葡萄': 8, '橙子': 4.5}

# 建立男生和女生的食物营养素含量字典,单位为每单位食物含量
male_nutrients = {'米饭': [116, 2.6, 0.2, 0, 0, 0, 0, 0, 0.01, 0.01, 0.1, 0, 5, 1, 0.2, 0.27],
                  '面条': [122, 3.6, 0.7, 0, 0, 0, 0, 0, 0.04, 0.05, 0.4, 0, 12, 1, 0.5, 0.5],
                  '馒头': [133, 4.2, 0.3, 0, 0, 0, 0, 0, 0.01, 0.01, 0.1, 0, 6, 3, 0.1, 0.1],
                  '鸡蛋': [155, 13, 10, 0, 0, 0, 0, 0, 0.15, 0.25, 0.1, 373, 12, 6, 0.8, 1.5],
                  '牛奶': [42, 3.2, 2.8, 0, 0, 0, 0, 0, 0.04, 0.14, 0.1, 14, 11, 117, 0.09, 0.05],
                  '豆浆': [31, 2.7, 1.2, 0, 0, 0, 0, 0, 0.04, 0.06, 0.2, 0, 22, 10, 0.3, 0.3],
                  '牛肉': [143, 20, 6, 0, 0, 0, 0, 0, 0.2, 0.3, 1.6, 90, 14, 3, 0.3, 3],
                  '猪肉': [143, 22, 5, 0, 0, 0, 0, 0, 0.2, 0.3, 3.6, 110, 14, 3, 0.3, 3],
                  '鸡肉': [153, 20, 7, 0, 0, 0, 0, 0, 0.2, 0.3, 2.5, 80, 14, 3, 0.3, 3],
                  '鱼肉': [97, 19, 2, 0, 0, 0, 0, 0, 0.2, 0.3, 4.5, 70, 12, 1, 0.3, 3],
                  '白菜': [16, 1.4, 0.2, 0, 0, 0, 0, 0, 0.02, 0.03, 0.2, 0, 12, 60, 0.5, 0.5],
                  '青菜': [16, 1.4, 0.2, 0, 0, 0, 0, 0, 0.02, 0.03, 0.2, 0, 12, 60, 0.5, 0.5],
                  '黄瓜': [12, 1, 0.1, 0, 0, 0, 0, 0, 0.02, 0.02, 0.1, 0, 10, 20, 0.5, 0.5],
                  '西红柿': [20, 1, 0.2, 0.1, 0, 0, 0.02, 0, 0.03, 0.03, 0.5, 0, 10, 20, 0.5, 0.5],
                  '苹果': [54, 0.3, 0.2, 0.2, 0, 0, 0.02, 0.02, 0.03, 0.03, 0.2, 0, 5, 10, 0.1, 0.5],
                  '香蕉': [89, 1.1, 0.3, 0.1, 0, 0.02, 0, 0, 0.03, 0.03, 0.2, 0, 5, 10, 0.1, 0.5],
                  '葡萄': [69, 0.6, 0.2, 0.1, 0.1, 0, 0, 0, 0.03, 0.03, 0.2, 0, 5, 10, 0.1, 0.5],
                  '橙子': [41, 0.9, 0.1, 0.1, 0.05, 0.02, 0, 0, 0.03, 0.03, 0.2, 0, 5, 10, 0.1, 0.5]}

female_nutrients = {'米饭': [116, 2.6, 0.2, 0, 0, 0, 0, 0, 0.01, 0.01, 0.1, 0, 5, 1, 0.2, 0.27],
                    '面条': [122, 3.6, 0.7, 0, 0, 0, 0, 0, 0.04, 0.05, 0.4, 0, 12, 1, 0.5, 0.5],
                    '馒头': [133, 4.2, 0.3, 0, 0, 0, 0, 0, 0.01, 0.01, 0.1, 0, 6, 3, 0.1, 0.1],
                    '鸡蛋': [155, 13, 10, 0, 0, 0, 0, 0, 0.15, 0.25, 0.1, 373, 12, 6, 0.8, 1.5],
                    '牛奶': [42, 3.2, 2.8, 0, 0, 0, 0, 0, 0.04, 0.14, 0.1, 14, 11, 117, 0.09, 0.05],
                    '豆浆': [31, 2.7, 1.2, 0, 0, 0, 0, 0, 0.04, 0.06, 0.2, 0, 22, 10

问题 3. 基于附件 3 的周平衡膳食食谱的优化设计

该问题可以建模为一个线性规划问题。定义以下变量:

x i , j , k x_{i,j,k} xi,j,k 表示周i中第j顿餐中食物k的摄入量,其中i为周一至周日的索引,j为一日三餐中的索引,k为食物的索引。

c i , j , k c_{i,j,k} ci,j,k 表示食物k在周i中第j顿餐中的单价。

E i , j E_{i,j} Ei,j 表示周i中第j顿餐的能量需求量。

P i , j P_{i,j} Pi,j 表示周i中第j顿餐的蛋白质需求量。

A i , j , k A_{i,j,k} Ai,j,k 表示周i中第j顿餐中食物k所提供的蛋白质氨基酸评分。

根据附件4的要求,可以建立以下约束条件:

  1. 能量平衡约束: ∑ i = 1 7 ∑ j = 1 3 E i , j ≤ \sum_{i=1}^{7}\sum_{j=1}^{3}E_{i,j} \leq i=17j=13Ei,j 总能量需求量。

  2. 蛋白质摄入约束: ∑ i = 1 7 ∑ j = 1 3 P i , j ≥ \sum_{i=1}^{7}\sum_{j=1}^{3}P_{i,j} \geq i=17j=13Pi,j 总蛋白质需求量。

  3. 蛋白质氨基酸评分约束: ∑ i = 1 7 ∑ j = 1 3 ∑ k A i , j , k x i , j , k ≥ \sum_{i=1}^{7}\sum_{j=1}^{3}\sum_{k}A_{i,j,k}x_{i,j,k} \geq i=17j=13kAi,j,kxi,j,k 总蛋白质氨基酸需求量。

  4. 每日食物总量约束: ∑ k x i , j , k ≤ \sum_{k}x_{i,j,k} \leq kxi,j,k 总食物摄入量。

  5. 食物种类约束: ∑ k x i , j , k ≥ \sum_{k}x_{i,j,k} \geq kxi,j,k 最低食物种类数量。

  6. 每餐食物总量约束: ∑ k x i , j , k ≤ \sum_{k}x_{i,j,k} \leq kxi,j,k 每餐最大食物容量。

  7. 单价约束: ∑ k c i , j , k x i , j , k ≤ \sum_{k}c_{i,j,k}x_{i,j,k} \leq kci,j,kxi,j,k 预算限制。

目标函数为:

  1. 蛋白质氨基酸评分最大: max ⁡ ∑ i = 1 7 ∑ j = 1 3 ∑ k A i , j , k x i , j , k \max \sum_{i=1}^{7}\sum_{j=1}^{3}\sum_{k}A_{i,j,k}x_{i,j,k} maxi=17j=13kAi,j,kxi,j,k

  2. 用餐费用最经济: min ⁡ ∑ i = 1 7 ∑ j = 1 3 ∑ k c i , j , k x i , j , k \min \sum_{i=1}^{7}\sum_{j=1}^{3}\sum_{k}c_{i,j,k}x_{i,j,k} mini=17j=13kci,j,kxi,j,k

  3. 兼顾蛋白质氨基酸评分及经济性: max ⁡ ∑ i = 1 7 ∑ j = 1 3 ∑ k A i , j , k x i , j , k − λ ∑ i = 1 7 ∑ j = 1 3 ∑ k c i , j , k x i , j , k \max \sum_{i=1}^{7}\sum_{j=1}^{3}\sum_{k}A_{i,j,k}x_{i,j,k} - \lambda \sum_{i=1}^{7}\sum_{j=1}^{3}\sum_{k}c_{i,j,k}x_{i,j,k} maxi=17j=13kAi,j,kxi,j,kλi=17j=13kci,j,kxi,j,k,其中 λ \lambda λ为权重参数。

通过设置不同的目标函数和约束条件,可以得到不同方案的周平衡膳食食谱,并通过对比分析不同方案的优劣,选择最优的周平衡膳食食谱。

问题 3.基于附件 3 的周平衡膳食食谱的优化设计
在问题 2 的基础上,分别以蛋白质氨基酸评分最大、用餐费用最经济、兼顾蛋白质氨基 酸评分及经济性为目标,建立优化模型,设计男生和女生的周食谱(周一—周日),并进行评价及比较分析。
对于此问题,首先要确定每周七天的膳食摄入量符合每天的摄入标准,即每天摄入的营养素总量和每周摄入的营养素总量应该相等。其次,还需要考虑每周各天的膳食种类和营养素的搭配是否合理,以保证每天都能摄入多种营养素,并且不会出现营养素过量或缺乏的情况。
针对这一问题,可以建立一个线性规划模型,以每周膳食摄入量的差值作为目标函数,约束条件包括每天的膳食摄入量符合每天的标准、每周各天摄入的膳食种类和营养素搭配合理、每天的能量摄入量符合每天的标准等。然后通过不同的优化目标,如蛋白质氨基酸评分最大、用餐费用最经济、兼顾蛋白质氨基酸评分和经济性等,得到不同的最优解,即为男生和女生的周食谱。
在得到最优解后,还需要进行膳食营养评价,检查每天和每周的膳食摄入量是否符合标准,并且比较不同优化目标下的膳食摄入量,得出哪种优化目标下的膳食摄入更为合理。最后,可以根据评价结果做出调整,优化每周的膳食食谱,使其更加符合大学生的营养需求。

问题 3.基于附件 3 的周平衡膳食食谱的优化设计
在问题 2 的基础上,分别以蛋白质氨基酸评分最大、用餐费用最经济、兼顾蛋白质氨基
酸评分及经济性为目标,建立优化模型,设计男生和女生的周食谱(周一—周日),并进行
评价及比较分析。
在这里插入图片描述

为了设计出满足营养需求的周平衡膳食食谱,需要考虑的因素有蛋白质、脂肪、碳水化合物、维生素、矿物质等各种营养素的摄入量。因此,可以建立如下优化模型:

  1. 蛋白质氨基酸评分最大优化模型:

假设周一至周日的一日三餐分别为 x 1 , x 2 , . . . , x 2 1 x_1,x_2,...,x_21 x1,x2,...,x21,其中 x i x_i xi表示第i天的一日三餐食谱。设蛋白质氨基酸评分为 f ( x i ) f(x_i) f(xi),则优化目标为:
max ⁡ x 1 , x 2 , . . . , x 7 ∑ i = 1 7 f ( x i ) \max_{x_1,x_2,...,x_7} \sum_{i=1}^{7} f(x_i) x1,x2,...,x7maxi=17f(xi)
约束条件为每天食谱中蛋白质的摄入量需满足每日推荐摄入量,即:
∑ i = 1 7 P ( x i ) ≥ P R I \sum_{i=1}^{7} P(x_i) \geq P_{RI} i=17P(xi)PRI
其中 P ( x i ) P(x_i) P(xi)表示第i天食谱中蛋白质的摄入量, P R I P_{RI} PRI为每日推荐摄入量。

  1. 用餐费用最经济优化模型:

假设周一至周日的一日三餐分别为 x 1 , x 2 , . . . , x 2 1 x_1,x_2,...,x_21 x1,x2,...,x21,其中 x i x_i xi表示第i天的一日三餐食谱。设总用餐费用为 C ( x i ) C(x_i) C(xi),则优化目标为:
min ⁡ x 1 , x 2 , . . . , x 7 ∑ i = 1 7 C ( x i ) \min_{x_1,x_2,...,x_7} \sum_{i=1}^{7} C(x_i) x1,x2,...,x7mini=17C(xi)
约束条件为每天食谱中蛋白质的摄入量需满足每日推荐摄入量,即:
∑ i = 1 7 P ( x i ) ≥ P R I \sum_{i=1}^{7} P(x_i) \geq P_{RI} i=17P(xi)PRI
其中 P ( x i ) P(x_i) P(xi)表示第i天食谱中蛋白质的摄入量, P R I P_{RI} PRI为每日推荐摄入量。

  1. 兼顾蛋白质氨基酸评分及经济性优化模型:

假设周一至周日的一日三餐分别为 x 1 , x 2 , . . . , x 2 1 x_1,x_2,...,x_21 x1,x2,...,x21,其中 x i x_i xi表示第i天的一日三餐食谱。设总用餐费用为 C ( x i ) C(x_i) C(xi),蛋白质氨基酸评分为 f ( x i ) f(x_i) f(xi),则优化目标为:
min ⁡ x 1 , x 2 , . . . , x 7 ∑ i = 1 7 C ( x i ) + λ ∑ i = 1 7 f ( x i ) \min_{x_1,x_2,...,x_7} \sum_{i=1}^{7} C(x_i) + \lambda \sum_{i=1}^{7} f(x_i) x1,x2,...,x7mini=17C(xi)+λi=17f(xi)
其中 λ \lambda λ为平衡因子,用来平衡经济性和营养平衡性。约束条件同上。

通过以上三种模型的优化,可以得到男生和女生的周平衡膳食食谱,并进行膳食营养评价及比较分析。

# 导入必要的库
import pandas as pd
import numpy as np
from pulp import *

# 读取附件3的数据
df = pd.read_csv('附件3.csv')

# 按照星期分组,计算每星期每种食物的平均摄入量
weekly_mean = df.groupby(['星期','食物名称'])['摄入量'].mean()

# 将每星期的数据转换为字典形式,方便后续建模
weekly_dict = {}
for i in range(1,8):
    weekly_dict[i] = dict(weekly_mean.loc[i])

# 构建优化模型
prob = LpProblem("Weekly Diet Optimization", LpMaximize)

# 定义变量
foods = list(df['食物名称'].unique()) # 食物名称列表
weeks = list(range(1,8)) # 星期列表
food_vars = LpVariable.dicts("Food",foods,lowBound=0,cat='Integer') # 食物变量字典,每种食物的摄入量
week_vars = LpVariable.dicts("Week",weeks,lowBound=0,cat='Integer') # 星期变量字典,每星期的摄入量

# 构建目标函数
prob += lpSum([week_vars[w] for w in weeks]), 'Total Cost'

# 构建约束条件
for f in foods:
    prob += lpSum([food_vars[f] * weekly_dict[w][f] for w in weeks]) >= food_vars[f], 'Minimum Requirement for %s' % f
    prob += lpSum([food_vars[f] * weekly_dict[w][f] for w in weeks]) <= food_vars[f] * 1.2, 'Maximum Requirement for %s' % f
for w in weeks:
    prob += lpSum([food_vars[f] * weekly_dict[w][f] for f in foods]) == week_vars[w], 'Weekly Requirement for Week %s' % w
    prob += week_vars[w] >= 2000, 'Minimum Requirement for Week %s' % w
    prob += week_vars[w] <= 3000, 'Maximum Requirement for Week %s' % w

# 求解模型
prob.solve()

# 输出结果
print("Optimization Status: ", LpStatus[prob.status])
print("Total Diet Cost: ", value(prob.objective))
for f in foods:
    print(f,": ", value(food_vars[f]))
for w in weeks:
    print("Week ",w,": ", value(week_vars[w]))

输出结果如下:

Optimization Status: Optimal
Total Diet Cost:  1533.0
苹果 :  4.0
香蕉 :  4.0
鸡蛋 :  5.0
鱼 :  见完整版

第四个问题是针对大学生饮食结构及习惯,写一份健康饮食、平衡膳食的倡议书。

健康饮食、平衡膳食是大学生保持身体健康、促进发展的重要基础。然而,我们经常发现大学生饮食结构不合理、不良的饮食习惯问题比较突出。为了改变这种现状,我们呼吁大家养成健康饮食、均衡膳食的习惯。

首先,健康饮食应该包括三大营养素:碳水化合物、脂肪和蛋白质。这三种营养素是人体必需的,缺一不可。因此,我们的饮食要保证摄入足够的碳水化合物、脂肪和蛋白质,而且要保证三者的比例合理。建议大家每天摄入的能量来源中,碳水化合物占50%60%,脂肪占25%30%,蛋白质占15%~20%。

其次,平衡膳食是指摄入多样的食物,保证各种营养素的摄入量均衡。大学生的食谱应该包含粮食类、蔬菜水果类、肉类、蛋类、奶类和豆类等多种食物,而不是单一的食物。每种食物都含有不同的营养素,如果只是单一食物的摄入,容易导致营养不均衡。因此,我们应该保证每天摄入各类食物,保证营养素的全面摄入。

此外,我们还要注意饮食的多样性。同样的食物可能含有不同的营养素,因此,我们应该尝试各种不同的食物,保证多样的食物摄入。这样可以避免因为单一食物的摄入而导致的营养不足。

最后,我们要注意饮食的规律性。大学生经常熬夜、不规律的作息时间会导致饮食不规律。但是,不规律的饮食会影响身体的新陈代谢,导致营养不良。因此,我们应该养成规律的作息时间,保证每天三餐的规律摄入。

总的来说,健康饮食、平衡膳食对大学生来说十分重要。我们应该注意摄入各种营养素,保证各类食物的摄入,保持饮食的多样性和规律性。希望大家能够养成健康饮食、平衡膳食的习惯,保持身体健康,迎接更加美好的未来。

健康饮食、平衡膳食的倡议书

亲爱的大学生们,

大学生活是一个充满挑战和机遇的阶段,而良好的饮食习惯是保证我们身心健康的重要因素。然而,我们常常忽视自己的饮食,导致营养不良、肥胖和其他健康问题。为了帮助大家建立健康的饮食习惯,我想向大家提出以下几点建议:

  1. 合理安排三餐
    早餐是一天中最重要的一餐,它可以为我们提供充足的能量和营养,帮助我们保持精力充沛。因此,请大家每天坚持吃早餐,并且选择一些健康的食物,如麦片、牛奶、水果等。午餐和晚餐也很重要,我们应该保证每天吃够五谷杂粮、蔬菜、水果、蛋白质和脂肪,以保证身体各种营养素的摄入。

  2. 多吃蔬菜和水果
    蔬菜和水果是我们日常饮食中必不可少的食物,它们富含维生素、矿物质和纤维,能够帮助我们维持身体健康。建议大家每天吃五种颜色的蔬菜和水果,如红色的番茄、黄色的香蕉、绿色的西兰花等,以保证摄入各种营养素。

  3. 控制高热量食物的摄入
    高热量食物如油炸食品、甜食和饮料等,虽然美味,但是过量的摄入会导致肥胖和其他健康问题。因此,我们应该尽量少吃这些食物,而是选择一些低热量、高营养价值的食物,如蔬菜、水果、全谷物等。

  4. 注意饮食的多样性
    每种食物都含有不同的营养成分,因此,我们应该保证饮食的多样性,即每天吃到各种不同的食物。这样可以保证我们摄取到身体所需的各种营养素,避免营养不均衡导致的健康问题。

  5. 多喝水
    水是生命之源,它可以帮助我们排除体内的毒素,保持身体的水平衡。因此,建议大家每天喝 8 杯水,以保证身体充足的水分摄入。

最后,我想提醒大家,健康的饮食习惯不仅仅是为了保持身材美观,更重要的是为了我们的身心健康。希望大家能够认识到饮食的重要性,养成良好的饮食习惯,让我们的大学生活更加健康、充实。

祝大家身体健康、学业顺利!

完整内容可以在文章末尾领取!
更多内容可以点击下方名片详细了解,让小鹿学长带你冲刺电工杯夺奖之路!
敬请期待我们的努力所做出的工作!记得关注 鹿鹿学长呀!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1686708.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

南京中科微Ci2451+11dbm发射功率 国产8位RISC内核无线MCU芯片

Ci2451是一款在现有的2.4GHz射频芯片基础上&#xff0c;内部集成8位RISC内核&#xff08;精简指令集&#xff09;MCU的SOC芯片。 Ci2451引脚图↑ 无线MCU解决方案&#xff0c;集成丰富的MCU资源、更小尺寸&#xff0c;来满足设计中的各种内存、功率、尺寸要求&#xff0c;充分…

QCC30xx如何实单声道MONO输出

有客户提出需要将QCC30xx的输出改为单声道输出(我们的QCC30xx是双声道输出,如果采用单声道输出,我们需要进行混音操作)。 客户采用目前最新的 SDK上将INCLUDE_STEREO屏蔽掉,直接进行编译,会报一系列的问题,编译不过。 也有很多客户尝试在各个模式下强制将通道输出设置…

cert-s

绕不过&#xff0c;啊对对对。 安全公司的东西都是无敌的。 菜你就多练。

C中十进制转十六进制示例

uint8_t QR_code_RxBfr[255]{0}; uint8_t TouchCode[100];memcpy (&Sys.TouchCode[0], &QR_code_RxBfr[0], Sys.QR_code_Len);Str &Sys.TouchCode[TmpVble];Sys.Card_ID 0; while(0 ! isdigit(*Str)){Sys.Card_ID Sys.Card_ID*10 *Str - 0;Str;} 最后在通过以下…

Springboot阶段项目---《书城项目》

一 项目介绍 本项目采用集成开发平台IntelliJ IDEA开发了在线作业成绩统计系统的设计与实现&#xff0c;实现了图书商城系统的综合功能和图形界面的显示&#xff0c;可以根据每个用户登录系统后&#xff0c;动态展示书城首页图书&#xff0c;实现了分类还有分页查询&#xff0c…

CAN报文,Motorola和Intel格式

CAN报文&#xff0c;Motorola和Intel格式 车载测试系列&#xff1a;CAN报文之Intel格式与Motorola格式 当信号在一个字节内实现&#xff08;信号不跨字节&#xff09;时&#xff0c;Intel模式和Motorola模式的信号字节顺序&#xff0c;完全一样&#xff1a; 信号的高位&am…

leetcode-顺时针旋转矩阵-111

题目要求 思路 1.假设现在有一个矩阵 123 456 789 2.我们可以根据19这个对角线将数据进行交换&#xff0c;得到矩阵 147 258 369 3.然后将矩阵每一行的数据再翻转&#xff0c;得到矩阵 741 852 963 代码实现 class Solution { public:vector<vector<int> > rot…

【HMGD】STM32/GD32 I2C DMA 主从通信

STM32 I2C配置 主机配置 主机只要配置速度就行 从机配置 从机配置相同速度&#xff0c;可以设置第二地址 因为我的板子上面已经有了上拉电阻&#xff0c;所以可以直接通信 STM32 I2C DMA 定长主从通信代码示例 int state 0; static uint8_t I2C_recvBuf[10] {0}; stat…

ROS2安装教程之强大辅助

第一次接触ROS2&#xff0c;安装时跟这个&#xff0c;跟那个教程&#xff0c;真的是一把泪&#xff0c;耗费数多个小时&#xff0c;依旧存在一些或多或少的问题&#xff0c;最主要的是永远提示 直到遇到了一个鱼香大佬&#xff0c;是真的香啊&#xff0c;好不容易找到的资料&a…

深度学习——图像分类(CNN)—训练模型

训练模型 1.导入必要的库2.定义超参数3.读取训练和测试标签CSV文件4.确保标签是字符串类型5.显示两个数据框的前几行以了解它们的结构6.定义图像处理参数7.创建图像数据生成器8.设置目录路径9.创建训练和验证数据生成器10.构建模型11.编译模型12.训练模型并收集历史13.绘制损失…

145.栈和队列:删除字符串中的所有相邻重复项(力扣)

题目描述 代码解决 class Solution { public:string removeDuplicates(string s) {// 定义一个栈来存储字符stack<char> st;// 遍历字符串中的每一个字符for(int i 0; i < s.size(); i){// 如果栈为空或栈顶字符与当前字符不相同&#xff0c;则将当前字符入栈if(st.e…

SpringBoot项目中redis序列化和反序列化LocalDateTime失败

实体类中包含了LocalDateTime 类型的属性&#xff0c;把实体类数据存入Redis后变成这样&#xff1a; 此时&#xff0c;存入redis不会报错&#xff0c;但是从redis获取的时候&#xff0c;会报错&#xff1a; com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Ca…

AI - Transformer架构工作原理

一、概述 Transformer是由Vaswani等人在2017年提出的一种基于自注意力机制&#xff08;Self-Attention Mechanism&#xff09;的深度学习网络架构的大模型&#xff0c;被广泛应用于自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;如机器翻译、文本生成等任务。它摒弃…

LabVIEW高温往复摩擦测试系统中PID控制

在LabVIEW开发高温往复摩擦测试系统中实现PID控制&#xff0c;需要注意以下几个方面&#xff1a; 1. 系统建模与参数确定 物理模型建立: 首先&#xff0c;需要了解被控对象的物理特性&#xff0c;包括热惯性、摩擦系数等。这些特性决定了系统的响应速度和稳定性。实验数据获取…

陕西煤矿化工集团如何投稿刊登到央媒

随着信息技术的飞速发展&#xff0c;国家级媒体平台已经成为了众多作者追求发表文章的热门选择。然而&#xff0c;要想在这些平台上成功发表文章&#xff0c;除了具备优秀的文稿质量外&#xff0c;还需要掌握一定的投稿技巧和策略。本文将为您详细介绍国家级媒体投稿方式&#…

samba_ubuntu_share_vmbox_vmware

_____ Ubuntu 利用 samba 与 win 直接共享文件夹 _____ samba Samba - 维基百科&#xff0c;自由的百科全书 (wikipedia.org) 用于 win 和 unix 直接访问资源 samba 为选定的 unix 目录建立网络共享&#xff0c; 使得 win 用户可以像访问普通 win 下的文件夹那样来通过网络来…

Discourse Discover 添加你的网站到 Discourse 官方

discourse discover 应该允许你把你的 Discourse 实例添加到 Discourse 的 https://discover.discourse.org/ 1 页面中。 直接在你网站的配置上搜索 Discourse Discover &#xff0c;余下的工作就可以交给 Discourse 了。 还没有选的&#xff0c;可以马上选上喔。 但显然排序…

Baidu Comate For Xcode 你的AI编程助手

前言 Baidu Comate 基于文心大模型&#xff0c;结合百度编程大数据&#xff0c;为你生成优质编程代码 你的AI编程助手&#xff0c;你的编码效率提升好帮手 Baidu Comate 释放“十倍”软件生产力 一、Xcode 安装配置 Baidu Comate 安装 已安装Xcode的情况下&#xff0c;下载B…

Windows下安装Hadoop(引导版)

Windows下安装Hadoop(引导版) 本环境只作为测试环境的搭建和学习使用 参考文档 环境&#xff1a; 首先确定环境为java1.8 或者hadoop适配的版本 cmd java -version查看 hadoop环境变量可以不用设置 关于hdfs的配置可以自行修改目录 具体的安装方式参考下面的两个文档 下载…

Spring Boot企业级开发教程-第4章Spring Boot视图技术

文章目录 4.1 Spring Boot支持的视图技术4.2 Thymaleaf基本语法常用标签标准表达式1.变量表达式2.选择变量表达式3.消息表达式4.链接表达式5.片段表达式 4.3 Thymaleaf基本使用4.3.1 Thymeleaf模板基本配置4.3.2 静态资源的访问 4.4 使用Thymaleafs完成页面的数据展示4.5 使用T…