我是鹿鹿学长,就读于上海交通大学,截至目前已经帮200+人完成了建模与思路的构建的处理了~
本篇文章是鹿鹿学长经过深度思考,独辟蹊径,实现综合建模。独创复杂系统视角,帮助你解决电工杯的难关呀。
本题,我们使用营养物质分析方法对附件1和附件2的食谱进行全面的膳食营养评价,以蛋白质氨基酸评分最大为目标建立优化模型,设计出兼顾蛋白质氨基酸评分及经济性的男生和女生的日食谱。
第一个问题是针对给定膳食食谱,对其进行营养分析评价,并进行调整改进。
假设附件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’,则可以建立目标函数:
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=1∑12∣xi−xi′∣(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=1∑12∣yi−yi′∣(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=1∑12(∣xi−xi′∣+∣yi−yi′∣)(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中的平衡膳食基本准则,我们可以得出以下指标要求:
- 能量:男性为2400kcal,女性为2000kcal
- 蛋白质:男性为70g,女性为60g
- 脂肪:男性为70g,女性为60g
- 碳水化合物:男性为300g,女性为250g
- 膳食纤维:男性为25g,女性为20g
- 叶酸:男性为400μg,女性为400μg
- 钙:男性为800mg,女性为800mg
- 铁:男性为10mg,女性为10mg
- 锌:男性为15mg,女性为12mg
- 维生素A:男性为600μgRE,女性为500μgRE
- 维生素B1:男性为1.2mg,女性为1.1mg
- 维生素B2:男性为1.3mg,女性为1.2mg
- 维生素C:男性为100mg,女性为100mg
根据附件1和附件2中的食物摄入情况,可以得出以下营养素摄入量:
根据上述数据,可以得出以下结论:
- 附件1中男性的能量、脂肪、碳水化合物、膳食纤维、叶酸、钙、铁、锌、维生素A和维生素C的摄入量均超过了建议摄入量。
- 附件1中男性的蛋白质摄入量略高于建议摄入量。
- 附件2中女性的能量、脂肪、碳水化合物、膳食纤维、叶酸、钙、铁、锌、维生素A和维生素C的摄入量均超过了建议摄入量。
- 附件2中女性的蛋白质摄入量略高于建议摄入量。
为了使膳食更加科学合理,可以对附件1和附件2的食谱进行调整改进,具体措施如下:
- 增加蔬菜和水果的摄入量,以提高膳食纤维、叶酸、维生素A和维生素C的摄入量。
- 适量减少肉类的摄入量,以降低脂肪和蛋白质的摄入量。
- 增加谷类和豆类的摄入量,以平衡碳水化合物和蛋白质的摄入量。
- 适当增加乳制品的摄入量,以提高钙的摄入量。
2)基于附件3,对附件1、附件2两份食谱进行较少的调整改进,并且再做出全面的膳食营养评价。
根据附件3中的数据,可以得出以下结论:
- 某高校学生食堂的一日三餐中,蛋白质、脂肪、碳水化合物和钙的摄入量均超过了建议摄入量。
- 膳食纤维、叶酸、铁和锌的摄入量略低于建议摄入量。
- 维生素A、维生素B1、维生素B2和维生素C的摄入量均较为充足。
为了使膳食更加科学合理,可以对附件1和附件2的食谱进行调整改进,具体措施如下:
- 减少肉类和乳制品的摄入量,以降低蛋白质和钙的摄入量。
- 增加蔬菜和水果的摄入量,以提高膳食纤维、叶酸和维生素C的摄入量。
- 适量增加谷类和豆类的摄入量,以平衡碳水化合物和蛋白质的摄入量。
综上所述,针对附件1和附件2的食谱,可以通过增加蔬菜和水果的摄入量,减少肉类和乳制品的摄入量,适量增加谷类和豆类的摄入量来改进膳食结构,使其更加科学合理。
膳食营养评价的数学公式如下:
- 能量(kcal)= 蛋白质(g)* 4 + 脂肪(g)* 9 + 碳水化合物(g)* 4
- 膳食纤维(g)= 膳食纤维(g)* 1000 / 能量(kcal)
- 叶酸(μg)= 叶酸(μg)* 1000 / 能量(kcal)
- 钙(mg)= 钙(mg)* 1000 / 能量(kcal)
- 铁(mg)= 铁(mg)* 1000 / 能量(kcal)
- 锌(mg)= 锌(mg)* 1000 / 能量(kcal)
- 维生素A(μgRE)= 维生素A(μgRE)* 1000 / 能量(kcal)
- 维生素B1(mg)= 维生素B1(mg)* 1000 / 能量(kcal)
- 维生素B2(mg)= 维生素B2(mg)* 1000 / 能量(kcal)
- 维生素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=1∑nj=1∑mxij×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=1∑nxi1≥Emini=1∑nxi2≥Emaxi=1∑nxi3≥Fmini=1∑nxi4≥Fmaxi=1∑nxi5≤Pmaxi=1∑nxi6≤Vmaxi=1∑nxi7≤Cmaxi=1∑nxi8≤Camaxi=1∑nxi9≤Femaxi=1∑nxi10≤Mgmaxi=1∑nxi11≤Znmaxi=1∑nxi12≤Semaxi=1∑nxi13≤Cumaxi=1∑nxi14≤Mnmaxi=1∑nxi15≤Kmaxi=1∑nxi16≤Pmaxi=1∑nxi17≤Namaxi=1∑nxi18≤Imaxi=1∑nxi19≤Bmaxi=1∑nxi20≤Momaxi=1∑nxi21≤Crmaxi=1∑nxi22≤Comaxi=1∑nxi23≤Fmaxi=1∑nxi24≤Nimaxi=1∑nxi25≤Snmaxi=1∑nxi26≤Pbmaxi=1∑nxi27≤Asmaxi=1∑nxi28≤Hgmaxi=1∑nxi29≤Cdmaxi=1∑nxi30≤Crmaxxi≥0,∀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=1∑nj=1∑mxij×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=1∑nxi1≥Emini=1∑nxi2≥Emaxi=1∑nxi3≥Fmini=1∑nxi4≥Fmaxi=1∑nxi5≤Pmaxi=1∑nxi6≤Vmaxi=1∑nxi7≤Cmaxi=1∑nxi8≤Camaxi=1∑nxi9≤Femaxi=1∑nxi10≤Mgmaxi=1∑nxi11≤Znmaxi=1∑nxi12≤Semaxi=1∑nxi13≤Cumaxi=1∑nxi14≤Mnmaxi=1∑nxi15≤Kmaxi=1∑nxi16≤Pmaxi=1∑nxi17≤Namaxi=1∑nxi18≤Imaxi=1∑nxi19≤Bmaxi=1∑nxi20≤Momaxi=1∑nxi21≤Crmaxi=1∑nxi22≤Comaxi=1∑nxi23≤Fmaxi=1∑nxi24≤Nimaxi=1∑nxi25≤Snmaxi=1∑nxi26≤Pbmaxi=1∑nxi27≤Asmaxi=1∑nxi28≤Hgmaxi=1∑nxi29≤Cdmaxi=1∑nx
第二个问题:
1)以蛋白质氨基酸评分最大为目标建立优化模型,分别设计男生和女生的日食谱,并对日食谱进行膳食营养评价。
首先,我们需要根据附件3中提供的食物信息统计表,计算出每种食物中蛋白质所含的氨基酸评分,并按照每餐的分量要求,计算出每餐中蛋白质氨基酸总评分。然后,我们可以建立如下的优化模型:
max ∑ i = 1 n x i ∗ S i \max \sum_{i=1}^{n} x_i * S_i maxi=1∑nxi∗Si
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=1∑nxi∗Pi=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=1∑nxi∗Ci≤Cbudget
其中, 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=1∑nxi∗Ci
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=1∑nxi∗Pi=Ptarget
∑ i = 1 n x i ∗ S i ≥ S m i n \sum_{i=1}^{n} x_i * S_i \geq S_{min} i=1∑nxi∗Si≥Smin
其中, 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=1∑nxi∗Si−λi=1∑nxi∗Ci
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=1∑nxi∗Pi=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=1∑nxi∗Ci≤Cbudget
其中, λ \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+x3≤70
y
1
+
y
2
+
y
3
≤
60
y_1 + y_2 + y_3 \leq 60
y1+y2+y3≤60
d) 碳水化合物摄入量:男生每日碳水化合物摄入量不少于300g,女生每日碳水化合物摄入量不少于250g;
x
1
+
x
2
+
x
3
≥
300
x_1 + x_2 + x_3 \geq 300
x1+x2+x3≥300
y
1
+
y
2
+
y
3
≥
250
y_1 + y_2 + y_3 \geq 250
y1+y2+y3≥250
e) 膳食纤维摄入量:男生每日膳食纤维摄入量不少于30g,女生每日膳食纤维摄入量不少于25g;
x
1
+
x
2
+
x
3
≥
30
x_1 + x_2 + x_3 \geq 30
x1+x2+x3≥30
y
1
+
y
2
+
y
3
≥
25
y_1 + y_2 + y_3 \geq 25
y1+y2+y3≥25
f) 钙摄入量:男生每日钙摄入量不少于1000mg,女生每日钙摄入量不少于800mg;
x
1
+
x
2
+
x
3
≥
1000
x_1 + x_2 + x_3 \geq 1000
x1+x2+x3≥1000
y
1
+
y
2
+
y
3
≥
800
y_1 + y_2 + y_3 \geq 800
y1+y2+y3≥800
g) 铁摄入量:男生每日铁摄入量不少于18mg,女生每日铁摄入量不少于15mg;
x
1
+
x
2
+
x
3
≥
18
x_1 + x_2 + x_3 \geq 18
x1+x2+x3≥18
y
1
+
y
2
+
y
3
≥
15
y_1 + y_2 + y_3 \geq 15
y1+y2+y3≥15
同时,还需考虑食物种类的多样性,避免偏食。假设每餐至少包含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+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
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+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
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的要求,可以建立以下约束条件:
-
能量平衡约束: ∑ i = 1 7 ∑ j = 1 3 E i , j ≤ \sum_{i=1}^{7}\sum_{j=1}^{3}E_{i,j} \leq ∑i=17∑j=13Ei,j≤ 总能量需求量。
-
蛋白质摄入约束: ∑ i = 1 7 ∑ j = 1 3 P i , j ≥ \sum_{i=1}^{7}\sum_{j=1}^{3}P_{i,j} \geq ∑i=17∑j=13Pi,j≥ 总蛋白质需求量。
-
蛋白质氨基酸评分约束: ∑ 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=17∑j=13∑kAi,j,kxi,j,k≥ 总蛋白质氨基酸需求量。
-
每日食物总量约束: ∑ k x i , j , k ≤ \sum_{k}x_{i,j,k} \leq ∑kxi,j,k≤ 总食物摄入量。
-
食物种类约束: ∑ k x i , j , k ≥ \sum_{k}x_{i,j,k} \geq ∑kxi,j,k≥ 最低食物种类数量。
-
每餐食物总量约束: ∑ k x i , j , k ≤ \sum_{k}x_{i,j,k} \leq ∑kxi,j,k≤ 每餐最大食物容量。
-
单价约束: ∑ 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≤ 预算限制。
目标函数为:
-
蛋白质氨基酸评分最大: 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} max∑i=17∑j=13∑kAi,j,kxi,j,k
-
用餐费用最经济: 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} min∑i=17∑j=13∑kci,j,kxi,j,k
-
兼顾蛋白质氨基酸评分及经济性: 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} max∑i=17∑j=13∑kAi,j,kxi,j,k−λ∑i=17∑j=13∑kci,j,kxi,j,k,其中 λ \lambda λ为权重参数。
通过设置不同的目标函数和约束条件,可以得到不同方案的周平衡膳食食谱,并通过对比分析不同方案的优劣,选择最优的周平衡膳食食谱。
问题 3.基于附件 3 的周平衡膳食食谱的优化设计
在问题 2 的基础上,分别以蛋白质氨基酸评分最大、用餐费用最经济、兼顾蛋白质氨基 酸评分及经济性为目标,建立优化模型,设计男生和女生的周食谱(周一—周日),并进行评价及比较分析。
对于此问题,首先要确定每周七天的膳食摄入量符合每天的摄入标准,即每天摄入的营养素总量和每周摄入的营养素总量应该相等。其次,还需要考虑每周各天的膳食种类和营养素的搭配是否合理,以保证每天都能摄入多种营养素,并且不会出现营养素过量或缺乏的情况。
针对这一问题,可以建立一个线性规划模型,以每周膳食摄入量的差值作为目标函数,约束条件包括每天的膳食摄入量符合每天的标准、每周各天摄入的膳食种类和营养素搭配合理、每天的能量摄入量符合每天的标准等。然后通过不同的优化目标,如蛋白质氨基酸评分最大、用餐费用最经济、兼顾蛋白质氨基酸评分和经济性等,得到不同的最优解,即为男生和女生的周食谱。
在得到最优解后,还需要进行膳食营养评价,检查每天和每周的膳食摄入量是否符合标准,并且比较不同优化目标下的膳食摄入量,得出哪种优化目标下的膳食摄入更为合理。最后,可以根据评价结果做出调整,优化每周的膳食食谱,使其更加符合大学生的营养需求。
问题 3.基于附件 3 的周平衡膳食食谱的优化设计
在问题 2 的基础上,分别以蛋白质氨基酸评分最大、用餐费用最经济、兼顾蛋白质氨基
酸评分及经济性为目标,建立优化模型,设计男生和女生的周食谱(周一—周日),并进行
评价及比较分析。
为了设计出满足营养需求的周平衡膳食食谱,需要考虑的因素有蛋白质、脂肪、碳水化合物、维生素、矿物质等各种营养素的摄入量。因此,可以建立如下优化模型:
- 蛋白质氨基酸评分最大优化模型:
假设周一至周日的一日三餐分别为
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=1∑7f(xi)
约束条件为每天食谱中蛋白质的摄入量需满足每日推荐摄入量,即:
∑
i
=
1
7
P
(
x
i
)
≥
P
R
I
\sum_{i=1}^{7} P(x_i) \geq P_{RI}
i=1∑7P(xi)≥PRI
其中
P
(
x
i
)
P(x_i)
P(xi)表示第i天食谱中蛋白质的摄入量,
P
R
I
P_{RI}
PRI为每日推荐摄入量。
- 用餐费用最经济优化模型:
假设周一至周日的一日三餐分别为
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=1∑7C(xi)
约束条件为每天食谱中蛋白质的摄入量需满足每日推荐摄入量,即:
∑
i
=
1
7
P
(
x
i
)
≥
P
R
I
\sum_{i=1}^{7} P(x_i) \geq P_{RI}
i=1∑7P(xi)≥PRI
其中
P
(
x
i
)
P(x_i)
P(xi)表示第i天食谱中蛋白质的摄入量,
P
R
I
P_{RI}
PRI为每日推荐摄入量。
- 兼顾蛋白质氨基酸评分及经济性优化模型:
假设周一至周日的一日三餐分别为
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=1∑7C(xi)+λi=1∑7f(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%。
其次,平衡膳食是指摄入多样的食物,保证各种营养素的摄入量均衡。大学生的食谱应该包含粮食类、蔬菜水果类、肉类、蛋类、奶类和豆类等多种食物,而不是单一的食物。每种食物都含有不同的营养素,如果只是单一食物的摄入,容易导致营养不均衡。因此,我们应该保证每天摄入各类食物,保证营养素的全面摄入。
此外,我们还要注意饮食的多样性。同样的食物可能含有不同的营养素,因此,我们应该尝试各种不同的食物,保证多样的食物摄入。这样可以避免因为单一食物的摄入而导致的营养不足。
最后,我们要注意饮食的规律性。大学生经常熬夜、不规律的作息时间会导致饮食不规律。但是,不规律的饮食会影响身体的新陈代谢,导致营养不良。因此,我们应该养成规律的作息时间,保证每天三餐的规律摄入。
总的来说,健康饮食、平衡膳食对大学生来说十分重要。我们应该注意摄入各种营养素,保证各类食物的摄入,保持饮食的多样性和规律性。希望大家能够养成健康饮食、平衡膳食的习惯,保持身体健康,迎接更加美好的未来。
健康饮食、平衡膳食的倡议书
亲爱的大学生们,
大学生活是一个充满挑战和机遇的阶段,而良好的饮食习惯是保证我们身心健康的重要因素。然而,我们常常忽视自己的饮食,导致营养不良、肥胖和其他健康问题。为了帮助大家建立健康的饮食习惯,我想向大家提出以下几点建议:
-
合理安排三餐
早餐是一天中最重要的一餐,它可以为我们提供充足的能量和营养,帮助我们保持精力充沛。因此,请大家每天坚持吃早餐,并且选择一些健康的食物,如麦片、牛奶、水果等。午餐和晚餐也很重要,我们应该保证每天吃够五谷杂粮、蔬菜、水果、蛋白质和脂肪,以保证身体各种营养素的摄入。 -
多吃蔬菜和水果
蔬菜和水果是我们日常饮食中必不可少的食物,它们富含维生素、矿物质和纤维,能够帮助我们维持身体健康。建议大家每天吃五种颜色的蔬菜和水果,如红色的番茄、黄色的香蕉、绿色的西兰花等,以保证摄入各种营养素。 -
控制高热量食物的摄入
高热量食物如油炸食品、甜食和饮料等,虽然美味,但是过量的摄入会导致肥胖和其他健康问题。因此,我们应该尽量少吃这些食物,而是选择一些低热量、高营养价值的食物,如蔬菜、水果、全谷物等。 -
注意饮食的多样性
每种食物都含有不同的营养成分,因此,我们应该保证饮食的多样性,即每天吃到各种不同的食物。这样可以保证我们摄取到身体所需的各种营养素,避免营养不均衡导致的健康问题。 -
多喝水
水是生命之源,它可以帮助我们排除体内的毒素,保持身体的水平衡。因此,建议大家每天喝 8 杯水,以保证身体充足的水分摄入。
最后,我想提醒大家,健康的饮食习惯不仅仅是为了保持身材美观,更重要的是为了我们的身心健康。希望大家能够认识到饮食的重要性,养成良好的饮食习惯,让我们的大学生活更加健康、充实。
祝大家身体健康、学业顺利!
完整内容可以在文章末尾领取!
更多内容可以点击下方名片详细了解,让小鹿学长带你冲刺电工杯夺奖之路!
敬请期待我们的努力所做出的工作!记得关注 鹿鹿学长呀!