您的点赞收藏是我继续更新的最大动力!
一定要点击如下的卡片链接,那是您获取资料的入口!
【全网最全】2024电工杯数学建模B题53页成品论文+完整matlab、py代码+19建模过程代码+数据等(后续会更新)「首先来看看目前已有的资料,还会不断更新哦~一次购买,后续不会再被收费哦,保证是全网最全资源,随着后续内容更新,价格会上涨,越早购买,价格越低,让大家再也不需要到处买断片资料啦~💰💸👋」👋👋👋👋重磅更新53页成品论文+完整matlab代码+完整python代码+数据https://mbd.pub/o/bread/mbd-ZpaVlpZr点击链接加入群聊【2024电工杯】:http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=fGMhdAaC8CUOWb42HcgpKBM85uzpeTzq&authKey=S5LQ2l0IZULzErnjIKBU2oeRR1eOGG2YVfxLcVewERIagi88MthsoqUsH0lT2eDn&noverify=0&group_code=965309125http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=fGMhdAaC8CUOWb42HcgpKBM85uzpeTzq&authKey=S5LQ2l0IZULzErnjIKBU2oeRR1eOGG2YVfxLcVewERIagi88MthsoqUsH0lT2eDn&noverify=0&group_code=965309125
第一个问题是针对给定膳食食谱,对其进行营养分析评价,并进行调整改进。
假设附件1中男大学生的一日食谱为X,附件2中女大学生的一日食谱为Y。根据附件4中的平衡膳食基本准则及各种营养素参考摄入量,可以建立以下评价指标:
- 能量总摄入量:E(X)、E(Y)
- 蛋白质总摄入量:P(X)、P(Y)
- 脂肪总摄入量:F(X)、F(Y)
- 碳水化合物总摄入量:C(X)、C(Y)
- 膳食纤维总摄入量:D(X)、D(Y)
- 维生素A总摄入量:V_A(X)、V_A(Y)
- 维生素C总摄入量:V_C(X)、V_C(Y)
- 钙总摄入量:Ca(X)、Ca(Y)
- 铁总摄入量:Fe(X)、Fe(Y)
- 锌总摄入量:Zn(X)、Zn(Y)
- 胆固醇总摄入量:Ch(X)、Ch(Y)
- 饱和脂肪酸总摄入量:SFA(X)、SFA(Y)
首先,根据附件4中的参考摄入量,可以计算出每个指标的标准值,即每日所需的摄入量。然后,计算X、Y两份食谱中每个指标的实际值,并与标准值进行比较评价。如果某个指标的实际值与标准值相差较大,则需要对食谱进行调整改进。
假设对X食谱进行调整改进后得到新的食谱X',则可以建立目标函数:
Minimize∑i=112|xi−xi′|(i=1,2,...,12) Minimize \quad \sum_{i=1}^{12} |x_i - x_i'| \qquad (i=1,2,...,12)
其中,xix_i为指标i的实际值,xi′x_i'为指标i的标准值。该目标函数的含义是使得新的食谱与标准值的差距最小,即使得食谱更接近于标准的营养要求。同理,可以对Y食谱进行调整改进得到新的食谱Y',建立目标函数:
Minimize∑i=112|yi−yi′|(i=1,2,...,12) Minimize \quad \sum_{i=1}^{12} |y_i - y_i'| \qquad (i=1,2,...,12)
其中,yiy_i为指标i的实际值,yi′y_i'为指标i的标准值。
综合考虑X和Y两份食谱,可以建立目标函数为:
Minimize∑i=112(|xi−xi′|+|yi−yi′|)(i=1,2,...,12) Minimize \quad \sum_{i=1}^{12} (|x_i - x_i'| + |y_i - y_i'|) \qquad (i=1,2,...,12)
接下来,根据附件3中提供的一日三餐主要食物信息统计表,可以计算出每种食物中各个指标的摄入量,例如,X食谱中蛋白质摄入量为:
P(X)=mx1×px1+mx2×px2+...+mxn×pxn P(X) = m_{x1} \times p_{x1} + m_{x2} \times p_{x2} + ... + m_{xn} \times p_{xn}
其中,mxim_{xi}为食物i的摄入量,pxip_{xi}为食物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)以蛋白质氨基酸评分最大为目标建立优化模型,分别设计男生和女生的日食谱,并对日食谱进行膳食营养评价。
假设男生的日膳食食谱为x1x_1,女生的日膳食食谱为x2x_2,则蛋白质氨基酸评分最大的优化目标可以表示为: max∑i=1n∑j=1mxij×Pij\max \sum_{i=1}^{n} \sum_{j=1}^{m} x_{ij} \times P_{ij} 其中,nn为食物种类数,mm为氨基酸种类数,xijx_{ij}为食物ii的摄入量,PijP_{ij}为食物ii中氨基酸jj的评分。
同时,根据附件4中的要求,还需要满足以下约束条件: ∑i=1nxi1≥Emin∑i=1nxi2≥Emax∑i=1nxi3≥Fmin∑i=1nxi4≥Fmax∑i=1nxi5≤Pmax∑i=1nxi6≤Vmax∑i=1nxi7≤Cmax∑i=1nxi8≤Camax∑i=1nxi9≤Femax∑i=1nxi10≤Mgmax∑i=1nxi11≤Znmax∑i=1nxi12≤Semax∑i=1nxi13≤Cumax∑i=1nxi14≤Mnmax∑i=1nxi15≤Kmax∑i=1nxi16≤Pmax∑i=1nxi17≤Namax∑i=1nxi18≤Imax∑i=1nxi19≤Bmax∑i=1nxi20≤Momax∑i=1nxi21≤Crmax∑i=1nxi22≤Comax∑i=1nxi23≤Fmax∑i=1nxi24≤Nimax∑i=1nxi25≤Snmax∑i=1nxi26≤Pbmax∑i=1nxi27≤Asmax∑i=1nxi28≤Hgmax∑i=1nxi29≤Cdmax∑i=1nxi30≤Crmaxxi≥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}
其中,EminE_{min}为能量最小参考摄入量,EmaxE_{max}为能量最大参考摄入量,FminF_{min}为蛋白质最小参考摄入量,FmaxF_{max}为蛋白质最大参考摄入量,PmaxP_{max}为脂肪最大参考摄入量,VmaxV_{max}为维生素最大参考摄入量,CmaxC_{max}为碳水化合物最大参考摄入量,CamaxCa_{max}为钙最大参考摄入量,FemaxFe_{max}为铁最大参考摄入量,MgmaxMg_{max}为镁最大参考摄入量,ZnmaxZn_{max}为锌最大参考摄入量,SemaxSe_{max}为硒最大参考摄入量,CumaxCu_{max}为铜最大参考摄入量,MnmaxMn_{max}为锰最大参考摄入量,KmaxK_{max}为钾最大参考摄入量,PmaxP_{max}为磷最大参考摄入量,NamaxNa_{max}为钠最大参考摄入量,ImaxI_{max}为碘最大参考摄入量,BmaxB_{max}为硼最大参考摄入量,MomaxMo_{max}为钼最大参考摄入量,CrmaxCr_{max}为铬最大参考摄入量,ComaxCo_{max}为钴最大参考摄入量,FmaxF_{max}为氟最大参考摄入量,NimaxNi_{max}为镍最大参考摄入量,SnmaxSn_{max}为锡最大参考摄入量,PbmaxPb_{max}为铅最大参考摄入量,AsmaxAs_{max}为砷最大参考摄入量,HgmaxHg_{max}为汞最大参考摄入量,CdmaxCd_{max}为镉最大参考摄入量,CrmaxCr_{max}为铬最大参考摄入量,xix_{i}为食物ii的摄入量。
将上述目标函数和约束条件代入数学模型中,可以得到男生和女生的日膳食食谱优化模型。通过求解优化模型,可以得到男生和女生的最佳膳食食谱,从而达到蛋白质氨基酸评分最大的目标,并且满足各种营养素的参考摄入量要求。
2)以用餐费用最经济为目标建立优化模型,分别设计男生和女生的日食谱,并对日食谱进行膳食营养评价。
假设男生的日膳食食谱为x1x_1,女生的日膳食食谱为x2x_2,则用餐费用最经济的优化目标可以表示为: min∑i=1n∑j=1mxij×Cij\min \sum_{i=1}^{n} \sum_{j=1}^{m} x_{ij} \times C_{ij} 其中,nn为食物种类数,mm为营养素种类数,xijx_{ij}为食物ii的摄入量,CijC_{ij}为食物ii中营养素jj的成本。
同时,根据附件4中的要求,还需要满足以下约束条件: ∑i=1nxi1≥Emin∑i=1nxi2≥Emax∑i=1nxi3≥Fmin∑i=1nxi4≥Fmax∑i=1nxi5≤Pmax∑i=1nxi6≤Vmax∑i=1nxi7≤Cmax∑i=1nxi8≤Camax∑i=1nxi9≤Femax∑i=1nxi10≤Mgmax∑i=1nxi11≤Znmax∑i=1nxi12≤Semax∑i=1nxi13≤Cumax∑i=1nxi14≤Mnmax∑i=1nxi15≤Kmax∑i=1nxi16≤Pmax∑i=1nxi17≤Namax∑i=1nxi18≤Imax∑i=1nxi19≤Bmax∑i=1nxi20≤Momax∑i=1nxi21≤Crmax∑i=1nxi22≤Comax∑i=1nxi23≤Fmax∑i=1nxi24≤Nimax∑i=1nxi25≤Snmax∑i=1nxi26≤Pbmax∑i=1nxi27≤Asmax∑i=1nxi28≤Hgmax∑i=1nxi29≤Cdmax∑i=1nx\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}
第二个问题:
1)以蛋白质氨基酸评分最大为目标建立优化模型,分别设计男生和女生的日食谱,并对日食谱进行膳食营养评价。
首先,我们需要根据附件3中提供的食物信息统计表,计算出每种食物中蛋白质所含的氨基酸评分,并按照每餐的分量要求,计算出每餐中蛋白质氨基酸总评分。然后,我们可以建立如下的优化模型:
max∑i=1nxi∗Si\max \sum_{i=1}^{n} x_i * S_i
s.t.∑i=1nxi∗Pi=Ptargets.t. \sum_{i=1}^{n} x_i * P_i = P_{target}
∑i=1nxi∗Ci≤Cbudget\sum_{i=1}^{n} x_i * C_i \leq C_{budget}
其中,xix_i为每种食物的摄入量,SiS_i为每种食物中蛋白质的氨基酸评分,PiP_i为每种食物中蛋白质的含量,PtargetP_{target}为每餐所需摄入的蛋白质量,CiC_i为每种食物的价格,CbudgetC_{budget}为每餐的用餐费用预算。
通过求解上述优化模型,我们可以得到男生和女生的日食谱,使得每餐中蛋白质氨基酸评分最大。然后,我们可以对这份日食谱进行膳食营养评价,检查是否满足各项营养素参考摄入量的要求。
2)以用餐费用最经济为目标建立优化模型,分别设计男生和女生的日食谱,并对日食谱进行膳食营养评价。
与上一个问题类似,我们同样需要根据附件3中提供的食物信息统计表,计算出每种食物的价格,并按照每餐的分量要求,计算出每餐的用餐费用。然后,我们可以建立如下的优化模型:
min∑i=1nxi∗Ci\min \sum_{i=1}^{n} x_i * C_i
s.t.∑i=1nxi∗Pi=Ptargets.t. \sum_{i=1}^{n} x_i * P_i = P_{target}
∑i=1nxi∗Si≥Smin\sum_{i=1}^{n} x_i * S_i \geq S_{min}
其中,xix_i为每种食物的摄入量,CiC_i为每种食物的价格,PiP_i为每种食物中蛋白质的含量,PtargetP_{target}为每餐所需摄入的蛋白质量,SiS_i为每种食物中蛋白质的氨基酸评分,SminS_{min}为每餐的最低蛋白质氨基酸评分要求。
通过求解上述优化模型,我们可以得到男生和女生的日食谱,使得每餐的用餐费用最经济。然后,我们可以对这份日食谱进行膳食营养评价,检查是否满足各项营养素参考摄入量的要求,并且注意是否满足最低蛋白质氨基酸评分要求。
3)兼顾蛋白质氨基酸评分及经济性,建立优化模型,分别设计男生和女生的日食谱,并对日食谱进行膳食营养评价。
为了兼顾蛋白质氨基酸评分及经济性,我们可以建立如下的优化模型:
max∑i=1nxi∗Si−λ∑i=1nxi∗Ci\max \sum_{i=1}^{n} x_i * S_i - \lambda \sum_{i=1}^{n} x_i * C_i
s.t.∑i=1nxi∗Pi=Ptargets.t. \sum_{i=1}^{n} x_i * P_i = P_{target}
∑i=1nxi∗Ci≤Cbudget\sum_{i=1}^{n} x_i * C_i \leq C_{budget}
其中,λ\lambda为一个调节参数,用来平衡蛋白质氨基酸评分和经济性的影响。通过求解上述优化模型,我们可以得到男生和女生的日食谱,使得每餐中蛋白质氨基酸评分最大,同时保证用餐费用最经济。然后,我们可以对这份日食谱进行膳食营养评价,检查是否满足各项营养素参考摄入量的要求。
4)对1)—3)得到的日食谱进行比较分析。
通过比较分析,我们可以发现兼顾蛋白质氨基酸评分及经济性的日食谱,在满足营养需求的同时,可以使用餐费用最经济。因此,可以推荐此类日食谱作为大学生的平衡膳食食谱。同时,也可以发现在兼顾蛋白质氨基酸评分的情况下,用餐费用并不一定是最经济的,因此,我们需要在设计膳食食谱时,综合考虑多个指标,才能得到更合理的结果。
1)以蛋白质氨基酸评分最大为目标建立优化模型,分别设计男生和女生的日食谱,并对日食谱进行膳食营养评价。
优化模型: 假设男生一日三餐各自摄入的蛋白质量分别为x1,x2,x3x_1, x_2, x_3,女生一日三餐各自摄入的蛋白质量分别为y1,y2,y3y_1, y_2, y_3,则优化目标为最大化蛋白质氨基酸评分,即: max(x1×1.2)+(x2×0.8)+(x3×0.5)+(y1×1.2)+(y2×0.8)+(y3×0.5)(x1+x2+x3+y1+y2+y3)\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)} 同时,考虑到膳食营养均衡的要求,还需满足以下各项指标: a) 总能量摄入量:男生每日能量摄入量为2500kcal,女生每日能量摄入量为2000kcal; x1+x2+x3=2500x_1 + x_2 + x_3 = 2500 y1+y2+y3=2000y_1 + y_2 + y_3 = 2000 b) 蛋白质摄入量:男生每日蛋白质摄入量为100g,女生每日蛋白质摄入量为80g; x1+x2+x3=100x_1 + x_2 + x_3 = 100 y1+y2+y3=80y_1 + y_2 + y_3 = 80 c) 脂肪摄入量:男生每日脂肪摄入量不超过70g,女生每日脂肪摄入量不超过60g; x1+x2+x3≤70x_1 + x_2 + x_3 \leq 70 y1+y2+y3≤60y_1 + y_2 + y_3 \leq 60 d) 碳水化合物摄入量:男生每日碳水化合物摄入量不少于300g,女生每日碳水化合物摄入量不少于250g; x1+x2+x3≥300x_1 + x_2 + x_3 \geq 300 y1+y2+y3≥250y_1 + y_2 + y_3 \geq 250 e) 膳食纤维摄入量:男生每日膳食纤维摄入量不少于30g,女生每日膳食纤维摄入量不少于25g; x1+x2+x3≥30x_1 + x_2 + x_3 \geq 30 y1+y2+y3≥25y_1 + y_2 + y_3 \geq 25 f) 钙摄入量:男生每日钙摄入量不少于1000mg,女生每日钙摄入量不少于800mg; x1+x2+x3≥1000x_1 + x_2 + x_3 \geq 1000 y1+y2+y3≥800y_1 + y_2 + y_3 \geq 800 g) 铁摄入量:男生每日铁摄入量不少于18mg,女生每日铁摄入量不少于15mg; x1+x2+x3≥18x_1 + x_2 + x_3 \geq 18 y1+y2+y3≥15y_1 + y_2 + y_3 \geq 15
同时,还需考虑食物种类的多样性,避免偏食。假设每餐至少包含3种不同的食物,则每餐的食物种类数目为3,总的食物种类数目为9,即: x1+y1=3x_1 + y_1 = 3 x2+y2=3x_2 + y_2 = 3 x3+y3=3x_3 + y_3 = 3
因此,综合考虑以上各项指标和限制条件,可建立优化模型为: max(x1×1.2)+(x2×0.8)+(x3×0.5)+(y1×1.2)+(y2×0.8)+(y3×0.5)(x1+x2+x3+y1+y2+y3)\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)} s.t.{x1+x2+x3=2500y1+y2+y3=2000x1+x2+x3=100y1+y2+y3=80x1+x2+x3≤70y1+y2+y3≤60x1+x2+x3≥300y1+y2+y3≥250x1+x2+x3≥30y1+y2+y3≥25x1+x2+x3≥1000y1+y2+y3≥800x1+x2+x3≥18y1+y2+y3≥15x1+y1=3x2+y2=3x3+y3=3xi,yi≥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}
2)以用餐费用最经济为目标建立优化模型,分别设计男生和女生的日食谱,并对日食谱进行膳食营养评价。
优化模型: 假设男生一日三餐各自摄入的蛋白质量分别为x1,x2,x3x_1, x_2, x_3,女生一日三餐各自摄入的蛋白质量分别为y1,y2,y3y_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) 同时,考虑到膳食营养均衡的要求,还需满足以上各项指标和限制条件。
因此,综合考虑以上各项指标和限制条件,可建立优化模型为: min3.5(x1+x2+x3+y1+y2+y3)\min 3.5(x_1 + x_2 + x_3 + y_1 + y_2 + y_3) s.t.{x1+x2+x3=2500y1+y2+y3=2000x1+x2+x3=100y1+y2+y3=80x1+x2+x3≤70y1+y2+y3≤60x1+x2+x3≥300y1+y2+y3≥250x1+x2+x3≥30y1+y2+y3≥25x1+x2+x3≥1000y1+y2+y3≥800x1+x2+x3≥18y1+y2+y3≥15x1+y1=3x2+y2=3x3+y3=3xi,yi≥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}
3)兼顾蛋白质氨基酸评分及经济性,建立优化模型,分别设计男生和女生的日食谱,并对日食谱进行膳食营养评价。
优化模型: 假设男生一日三餐各自摄入的蛋白质量分别为x1,x2,x3x_1, x_2, x_3,女生一日三餐各自摄入的蛋白质量分别为y1,y2,y3y_1, y_2, y_3,则优化目标为最大化蛋白质氨基酸评分,并最小化用餐费用,即: max(x1×1.2)+(x2×0.8)+(x3×0.5)+(y1×1.2)+(y2×0.8)+(y3×0.5)(x1+x2+x3+y1+y2+y3)\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)} min3.5(x1+x2+x3+y1+y2+y3)\min 3.5(x_1 + x_2 + x_3 + y_1 + y_2 + y_3) 同时,考虑到膳食营养均衡的要求,还需满足以上各项指标和限制条件。
因此,综合考虑以上各项指标和限制条件,可建立优化模型为: max(x1×1.2)+(x2×0.8)+(x3×0.5)+(y1×1.2)+(y2×0.8)+(y3×0.5)(x1+x2+x3+y1+y2+y3)\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)} min3.5(x1+x2+x3+y1+y2+y3)\min 3.5(x_1 + x_2 + x_3 + y_1 + y_2 + y_3) $$\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 的周平衡膳食食谱的优化设计
该问题可以建模为一个线性规划问题。定义以下变量:
xi,j,kx_{i,j,k} 表示周i中第j顿餐中食物k的摄入量,其中i为周一至周日的索引,j为一日三餐中的索引,k为食物的索引。
ci,j,kc_{i,j,k} 表示食物k在周i中第j顿餐中的单价。
Ei,jE_{i,j} 表示周i中第j顿餐的能量需求量。
Pi,jP_{i,j} 表示周i中第j顿餐的蛋白质需求量。
Ai,j,kA_{i,j,k} 表示周i中第j顿餐中食物k所提供的蛋白质氨基酸评分。
根据附件4的要求,可以建立以下约束条件:
- 能量平衡约束:∑i=17∑j=13Ei,j≤\sum_{i=1}^{7}\sum_{j=1}^{3}E_{i,j} \leq 总能量需求量。
- 蛋白质摄入约束:∑i=17∑j=13Pi,j≥\sum_{i=1}^{7}\sum_{j=1}^{3}P_{i,j} \geq 总蛋白质需求量。
- 蛋白质氨基酸评分约束:∑i=17∑j=13∑kAi,j,kxi,j,k≥\sum_{i=1}^{7}\sum_{j=1}^{3}\sum_{k}A_{i,j,k}x_{i,j,k} \geq 总蛋白质氨基酸需求量。
- 每日食物总量约束:∑kxi,j,k≤\sum_{k}x_{i,j,k} \leq 总食物摄入量。
- 食物种类约束:∑kxi,j,k≥\sum_{k}x_{i,j,k} \geq 最低食物种类数量。
- 每餐食物总量约束:∑kxi,j,k≤\sum_{k}x_{i,j,k} \leq 每餐最大食物容量。
- 单价约束:∑kci,j,kxi,j,k≤\sum_{k}c_{i,j,k}x_{i,j,k} \leq 预算限制。
目标函数为:
- 蛋白质氨基酸评分最大:max∑i=17∑j=13∑kAi,j,kxi,j,k\max \sum_{i=1}^{7}\sum_{j=1}^{3}\sum_{k}A_{i,j,k}x_{i,j,k}
- 用餐费用最经济:min∑i=17∑j=13∑kci,j,kxi,j,k\min \sum_{i=1}^{7}\sum_{j=1}^{3}\sum_{k}c_{i,j,k}x_{i,j,k}
- 兼顾蛋白质氨基酸评分及经济性:max∑i=17∑j=13∑kAi,j,kxi,j,k−λ∑i=17∑j=13∑kci,j,kxi,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},其中λ\lambda为权重参数。
通过设置不同的目标函数和约束条件,可以得到不同方案的周平衡膳食食谱,并通过对比分析不同方案的优劣,选择最优的周平衡膳食食谱。
问题 3.基于附件 3 的周平衡膳食食谱的优化设计 在问题 2 的基础上,分别以蛋白质氨基酸评分最大、用餐费用最经济、兼顾蛋白质氨基 酸评分及经济性为目标,建立优化模型,设计男生和女生的周食谱(周一—周日),并进行评价及比较分析。 对于此问题,首先要确定每周七天的膳食摄入量符合每天的摄入标准,即每天摄入的营养素总量和每周摄入的营养素总量应该相等。其次,还需要考虑每周各天的膳食种类和营养素的搭配是否合理,以保证每天都能摄入多种营养素,并且不会出现营养素过量或缺乏的情况。 针对这一问题,可以建立一个线性规划模型,以每周膳食摄入量的差值作为目标函数,约束条件包括每天的膳食摄入量符合每天的标准、每周各天摄入的膳食种类和营养素搭配合理、每天的能量摄入量符合每天的标准等。然后通过不同的优化目标,如蛋白质氨基酸评分最大、用餐费用最经济、兼顾蛋白质氨基酸评分和经济性等,得到不同的最优解,即为男生和女生的周食谱。 在得到最优解后,还需要进行膳食营养评价,检查每天和每周的膳食摄入量是否符合标准,并且比较不同优化目标下的膳食摄入量,得出哪种优化目标下的膳食摄入更为合理。最后,可以根据评价结果做出调整,优化每周的膳食食谱,使其更加符合大学生的营养需求。
问题 3.基于附件 3 的周平衡膳食食谱的优化设计 在问题 2 的基础上,分别以蛋白质氨基酸评分最大、用餐费用最经济、兼顾蛋白质氨基 酸评分及经济性为目标,建立优化模型,设计男生和女生的周食谱(周一—周日),并进行 评价及比较分析。
为了设计出满足营养需求的周平衡膳食食谱,需要考虑的因素有蛋白质、脂肪、碳水化合物、维生素、矿物质等各种营养素的摄入量。因此,可以建立如下优化模型:
- 蛋白质氨基酸评分最大优化模型:
假设周一至周日的一日三餐分别为x1,x2,...,x21x_1,x_2,...,x_21,其中xix_i表示第i天的一日三餐食谱。设蛋白质氨基酸评分为f(xi)f(x_i),则优化目标为: maxx1,x2,...,x7∑i=17f(xi) \max_{x_1,x_2,...,x_7} \sum_{i=1}^{7} f(x_i) 约束条件为每天食谱中蛋白质的摄入量需满足每日推荐摄入量,即: ∑i=17P(xi)≥PRI \sum_{i=1}^{7} P(x_i) \geq P_{RI} 其中P(xi)P(x_i)表示第i天食谱中蛋白质的摄入量,PRIP_{RI}为每日推荐摄入量。
- 用餐费用最经济优化模型:
假设周一至周日的一日三餐分别为x1,x2,...,x21x_1,x_2,...,x_21,其中xix_i表示第i天的一日三餐食谱。设总用餐费用为C(xi)C(x_i),则优化目标为: minx1,x2,...,x7∑i=17C(xi) \min_{x_1,x_2,...,x_7} \sum_{i=1}^{7} C(x_i) 约束条件为每天食谱中蛋白质的摄入量需满足每日推荐摄入量,即: ∑i=17P(xi)≥PRI \sum_{i=1}^{7} P(x_i) \geq P_{RI} 其中P(xi)P(x_i)表示第i天食谱中蛋白质的摄入量,PRIP_{RI}为每日推荐摄入量。
- 兼顾蛋白质氨基酸评分及经济性优化模型:
假设周一至周日的一日三餐分别为x1,x2,...,x21x_1,x_2,...,x_21,其中xix_i表示第i天的一日三餐食谱。设总用餐费用为C(xi)C(x_i),蛋白质氨基酸评分为f(xi)f(x_i),则优化目标为: minx1,x2,...,x7∑i=17C(xi)+λ∑i=17f(xi) \min_{x_1,x_2,...,x_7} \sum_{i=1}^{7} C(x_i) + \lambda \sum_{i=1}^{7} f(x_i) 其中λ\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%。
其次,平衡膳食是指摄入多样的食物,保证各种营养素的摄入量均衡。大学生的食谱应该包含粮食类、蔬菜水果类、肉类、蛋类、奶类和豆类等多种食物,而不是单一的食物。每种食物都含有不同的营养素,如果只是单一食物的摄入,容易导致营养不均衡。因此,我们应该保证每天摄入各类食物,保证营养素的全面摄入。
此外,我们还要注意饮食的多样性。同样的食物可能含有不同的营养素,因此,我们应该尝试各种不同的食物,保证多样的食物摄入。这样可以避免因为单一食物的摄入而导致的营养不足。
最后,我们要注意饮食的规律性。大学生经常熬夜、不规律的作息时间会导致饮食不规律。但是,不规律的饮食会影响身体的新陈代谢,导致营养不良。因此,我们应该养成规律的作息时间,保证每天三餐的规律摄入。
总的来说,健康饮食、平衡膳食对大学生来说十分重要。我们应该注意摄入各种营养素,保证各类食物的摄入,保持饮食的多样性和规律性。希望大家能够养成健康饮食、平衡膳食的习惯,保持身体健康,迎接更加美好的未来。
健康饮食、平衡膳食的倡议书
亲爱的大学生们,
大学生活是一个充满挑战和机遇的阶段,而良好的饮食习惯是保证我们身心健康的重要因素。然而,我们常常忽视自己的饮食,导致营养不良、肥胖和其他健康问题。为了帮助大家建立健康的饮食习惯,我想向大家提出以下几点建议:
- 合理安排三餐 早餐是一天中最重要的一餐,它可以为我们提供充足的能量和营养,帮助我们保持精力充沛。因此,请大家每天坚持吃早餐,并且选择一些健康的食物,如麦片、牛奶、水果等。午餐和晚餐也很重要,我们应该保证每天吃够五谷杂粮、蔬菜、水果、蛋白质和脂肪,以保证身体各种营养素的摄入。
- 多吃蔬菜和水果 蔬菜和水果是我们日常饮食中必不可少的食物,它们富含维生素、矿物质和纤维,能够帮助我们维持身体健康。建议大家每天吃五种颜色的蔬菜和水果,如红色的番茄、黄色的香蕉、绿色的西兰花等,以保证摄入各种营养素。
- 控制高热量食物的摄入 高热量食物如油炸食品、甜食和饮料等,虽然美味,但是过量的摄入会导致肥胖和其他健康问题。因此,我们应该尽量少吃这些食物,而是选择一些低热量、高营养价值的食物,如蔬菜、水果、全谷物等。
- 注意饮食的多样性 每种食物都含有不同的营养成分,因此,我们应该保证饮食的多样性,即每天吃到各种不同的食物。这样可以保证我们摄取到身体所需的各种营养素,避免营养不均衡导致的健康问题。
- 多喝水 水是生命之源,它可以帮助我们排除体内的毒素,保持身体的水平衡。因此,建议大家每天喝 8 杯水,以保证身体充足的水分摄入。
最后,我想提醒大家,健康的饮食习惯不仅仅是为了保持身材美观,更重要的是为了我们的身心健康。希望大家能够认识到饮食的重要性,养成良好的饮食习惯,让我们的大学生活更加健康、充实。
祝大家身体健康、学业顺利!