目录
例1
1.问题重述?
2.基本模型?
?变量定义:
目标函数:
约束条件:?
3.模型分析与假设?
4.模型求解?
5.LINGO代码实现?
6.结果解释?
?编辑?7.敏感性分析
?8.结果解释
例2 奶制品的销售计划
1.问题重述?
?编辑?2.基本模型
3.模型求解?
4.结果解释?
3.整数规划的实用模型?
1.题目
?2.分析
3.模型建立?
?编辑4.模型求解?
4.运输问题?
例1.
1.题目
2.分析?
3.模型建立?
?编辑?4.模型求解_Lingo
5.结果分析?
最优目标值
变量值
约束条件
冗余成本(Reduced Cost)
对偶价格(Dual Price)
例2 自来水的输送问题?
1.题目
2.分析
?编辑3. 模型建立
4.模型求解?
5.问题讨论?
6.求解
?编辑?总结
专栏:数学建模学习笔记
生产与销售问题
? ? ? ? ?企业生产计划? ? ? ? ? ? ? ? ? ? ? ?空间层次?
工厂级:根据外部需求和内部设备、人力、原料等条件,以最大利润为目标制订产品生产计划;
车间级:根据生产计划、工艺流程、资源约束及费用参数等,以最小成本为目标制订生产批量划.
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 时间层次
若短时间内外部需求和内部资源等不随时间变化,可制订 单阶段生产计划。
例1
一奶制品加工厂用牛奶生产A1,A2 两种奶制品,1桶牛奶可以在设备甲上用12小时加工生产3公斤A1 或在设备乙上用8小时加工成4公斤A2 根据市场需要,生产的A1,A2 全部能售出, 且每公斤A1 获利24元, 每公斤A2 可获利16元. 现在加工厂每天能得到50桶牛奶的供应, 每天工人总的劳动时间为480小时, 并且设备甲每天至多能加工100公斤 A1设备乙的加工能力没有限制. 试为该厂制定一个生产计划, 使每天获利最大, 并进一步讨论以下3个附加问题:
⑴若用35元可以买到1桶牛奶, 应否作这项投资? 若投资, 每天最多购买多少桶牛奶?
⑵若可以聘用临时工人以增加劳动时间, 付给临时工人的工资最多是每小时几元?
⑶由于市场需求变化, 每公斤A1 的利润增加到30元,应否改变生产计划??
1.问题重述?
例1 加工奶制品的生产计划?
每天:50 桶牛奶 时间480 小时 至多加工100 公斤A 1
制订生产计划,使每天获利最大
? 35 元可买到1 桶牛奶,买吗?若买,每天最多买多少?
? 可聘用临时工人,付出的工资最多是每小时几元?
? A 1 的获利增加到 30 元/ 公斤,应否改变生产计划??
2.基本模型?
每天? ? 50 桶牛奶? ? 时间48小时? ?至多加工100 公斤A 1?
?变量定义:
目标函数:
约束条件:?
3.模型分析与假设?
4.模型求解?
5.LINGO代码实现?
model: max = 72*x1+64*x2; [milk] x1 + x2<50; [time] 12*x1+8*x2<480; [cpct] 3*x1<100; end ?20 桶牛奶生产A 1 , 30 桶生产A 2 , 利润3360 元。
6.结果解释?
?7.敏感性分析
?8.结果解释
?
?
?
?
?
例2 奶制品的销售计划
例1给出的 A1,A2两种奶制品的生产条件, 利润及工厂的资源限制不变, 为增加工厂的获利, 开发了奶制品的深加工技术: 用2小时和3元加工费, 可将1公斤 A1加工成0.8高级奶制品B1 也可将一公斤 A2加工成0.75公斤高级奶制品B2, 每公斤B1 能获利44元, 每公斤B2 能获利32元,试为该厂制定一个生产销售计划, 使获得的利润最大,并讨论以下问题:?
⑴若投资32元可以增加供应一桶牛奶, 投资3元可以增加一小时劳动时间, 应否作这样的投资, 若每天投资150元, 可赚回多少?
⑵每公斤高级奶制品B1,B2 的获利经常有10%的波动,对制定计划有无影响, 若每公斤B1 的获利下降10%, 计划应该改变吗??
1.问题重述?
?例2 奶制品的生产销售计划? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?在例1基础上深加工
?2.基本模型
3.模型求解?
4.结果解释?
?
?奶制品的生产与销售
?由于产品利润、加工时间等均为常数,可建立 线性规划 模型.
? 线性规划模型的三要素: 决策变量、目标函数、约束条件.? 建模时尽可能利用原始的数据信息,把尽量多的计算留给计算机去做(分析例2)?
? 用LINGO 求解,输出丰富,利用 影子价格和 灵敏性分析 可对结果做进一步研究.
3.整数规划的实用模型?
1.题目
例.银行人员安排某储蓄所每天的营业时间为上午9点到下午5点. 根据经验, 每天不同时间所需要的服务员数量为:
| 时间段 | 9—10 | 10—11 | 11—12? | 12—1 |
| 数量 | 4 | 3 | 4 | 6 |
| 时间段 | 1—2? | 2—3 | 3—4 | 4—5? |
| 数量? | 5 | 6 | 8 | 8 |
储蓄所可以雇佣全时和半时两类服务员. 全时服务员每天报酬100元, 从上午9点到下午5点工作, 但中午12点到下午2点之间必须安排1小时的午餐时间.储蓄所每天可以不超过3名的半时服务员, 每个半时服务员必须连续工作4小时, 报酬40元, 问该储蓄所该如何雇佣全时和半时服务员?
如果不能雇佣半时服务员, 每天至少增加多少费用,如果雇佣半时服务员的数量没有限制, 每天可以减少多少费用?
?2.分析
解决此问题的关键是确定聘用全时服务员及半时服务员的人数, 但还要考虑全时服务员有吃午餐的时间, 故把全时服务员分为两类: 午餐时间为12时至下午1时的及下午1时至下午2时的; 而半时服务员按上班时间进行划分.
3.模型建立?
?
4.模型求解?
4.运输问题?
生产、生活物资从若干供应点运送到一些需求点,怎样安排输送方案使运费最小,或利润最大?
各种类型的货物装箱,由于受体积、重量等限制,如何搭配装载,使获利最高,或装箱数量最少?
例1.
1.题目
要从甲地调出物质2000吨, 从乙地调出物质1100吨, 分别供给A 地1700吨, B地1100吨, C地200吨和D地100吨, 已知每吨运费如表所示, 试建立一个使运费达到最小的调拨计划.?
?单位路程运费表
2.分析?
3.模型建立?
?4.模型求解_Lingo
MODEL: SETS: ORIG /1..2/: SUPPLY; DEST /1..4/: DEMAND; LINK(ORIG, DEST): COST, FLOW; ENDSETS DATA: SUPPLY = 2000 1100; DEMAND = 1700 1100 200 100; COST = 21 25 7 15 51 51 37 15; ENDDATA ! 目标函数:最小化总运输费用; MIN = @SUM(LINK(I,J): COST(I,J) * FLOW(I,J)); ! 供应约束:每个生产地的调运量不能超过其供应量; @FOR(ORIG(I): @SUM(DEST(J): FLOW(I, J)) <= SUPPLY(I) ); ! 需求约束:每个销售地的需求量必须得到满足; @FOR(DEST(J): @SUM(ORIG(I): FLOW(I, J)) = DEMAND(J) ); END 运行结果
Global optimal solution found.
? Objective value: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?92100.00
? Infeasibilities: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?0.000000
? Total solver iterations: ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1
? Elapsed runtime seconds: ? ? ? ? ? ? ? ? ? ? ? ? ?0.06? Model Class: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?LP
? Total variables: ? ? ? ? ? ? ? ? ? ? ?8
? Nonlinear variables: ? ? ? ? ? ? ? ? ?0
? Integer variables: ? ? ? ? ? ? ? ? ? ?0? Total constraints: ? ? ? ? ? ? ? ? ? ?7
? Nonlinear constraints: ? ? ? ? ? ? ? ?0? Total nonzeros: ? ? ? ? ? ? ? ? ? ? ?24
? Nonlinear nonzeros: ? ? ? ? ? ? ? ? ? 0? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Variable ? ? ? ? ? Value ? ? ? ?Reduced Cost
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? SUPPLY( 1) ? ? ? ?2000.000 ? ? ? ? ? ?0.000000
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? SUPPLY( 2) ? ? ? ?1100.000 ? ? ? ? ? ?0.000000
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? DEMAND( 1) ? ? ? ?1700.000 ? ? ? ? ? ?0.000000
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? DEMAND( 2) ? ? ? ?1100.000 ? ? ? ? ? ?0.000000
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? DEMAND( 3) ? ? ? ?200.0000 ? ? ? ? ? ?0.000000
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? DEMAND( 4) ? ? ? ?100.0000 ? ? ? ? ? ?0.000000
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?COST( 1, 1) ? ? ? ?21.00000 ? ? ? ? ? ?0.000000
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?COST( 1, 2) ? ? ? ?25.00000 ? ? ? ? ? ?0.000000
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?COST( 1, 3) ? ? ? ?7.000000 ? ? ? ? ? ?0.000000
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?COST( 1, 4) ? ? ? ?15.00000 ? ? ? ? ? ?0.000000
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?COST( 2, 1) ? ? ? ?51.00000 ? ? ? ? ? ?0.000000
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?COST( 2, 2) ? ? ? ?51.00000 ? ? ? ? ? ?0.000000
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?COST( 2, 3) ? ? ? ?37.00000 ? ? ? ? ? ?0.000000
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?COST( 2, 4) ? ? ? ?15.00000 ? ? ? ? ? ?0.000000
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?FLOW( 1, 1) ? ? ? ?1700.000 ? ? ? ? ? ?0.000000
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?FLOW( 1, 2) ? ? ? ?100.0000 ? ? ? ? ? ?0.000000
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?FLOW( 1, 3) ? ? ? ?200.0000 ? ? ? ? ? ?0.000000
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?FLOW( 1, 4) ? ? ? ?0.000000 ? ? ? ? ? ?26.00000
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?FLOW( 2, 1) ? ? ? ?0.000000 ? ? ? ? ? ?4.000000
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?FLOW( 2, 2) ? ? ? ?1000.000 ? ? ? ? ? ?0.000000
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?FLOW( 2, 3) ? ? ? ?0.000000 ? ? ? ? ? ?4.000000
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?FLOW( 2, 4) ? ? ? ?100.0000 ? ? ? ? ? ?0.000000? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Row ? ?Slack or Surplus ? ? ?Dual Price
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?1 ? ? ? ?92100.00 ? ? ? ? ? -1.000000
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2 ? ? ? ?0.000000 ? ? ? ? ? ?26.00000
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?3 ? ? ? ?0.000000 ? ? ? ? ? ?0.000000
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?4 ? ? ? ?0.000000 ? ? ? ? ? -47.00000
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?5 ? ? ? ?0.000000 ? ? ? ? ? -51.00000
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?6 ? ? ? ?0.000000 ? ? ? ? ? -33.00000
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?7 ? ? ? ?0.000000 ? ? ? ? ? -15.00000
5.结果分析?
最优目标值
- 目标值(Objective value):92100.00 这表示总运输费用最小化后的总费用为92100元。
变量值
FLOW(1, 1):1700.000 表示从甲地到A地调运1700吨。FLOW(1, 2):100.0000 表示从甲地到B地调运100吨。FLOW(1, 3):200.0000 表示从甲地到C地调运200吨。FLOW(1, 4):0.000000 表示从甲地到D地没有调运。FLOW(2, 1):0.000000 表示从乙地到A地没有调运。FLOW(2, 2):1000.000 表示从乙地到B地调运1000吨。FLOW(2, 3):0.000000 表示从乙地到C地没有调运。FLOW(2, 4):100.0000 表示从乙地到D地调运100吨。
约束条件
所有约束条件都得到了满足(Slack or Surplus为0),没有违反任何约束:
- 每个生产地的供应量约束得到了满足。
- 每个销售地的需求量约束得到了满足。
冗余成本(Reduced Cost)
- Reduced Cost 为0表示这些流量变量都在最优解中被有效利用,没有改进的空间。
对偶价格(Dual Price)
对偶价格反映了每增加一个单位的约束右端常数对目标函数的影响:
- 第二行:26.00000 表示增加一个单位的供应量对总费用有正向影响。
- 第三行:0.000000 表示增加一个单位的需求量对总费用没有影响。
例2 自来水的输送问题?
1.题目
某市有甲、乙、丙、丁四个居民区, 自来水由A,B,C三个水库供应, 四个区每天必须得到保证的基本用水量分别为30,70,10,10?千吨, 但由于水源紧张, 三个水库每天最多只能分别供应 50,60,50千吨自来水, 由于地区位置的差别, 自来水公司从各水库向各区送水所需付出的引水管理费不同(见表), 其它管理费用都是450/千吨, 根据公司规定, 各区用户按统一标准 900/千吨收费, 此外, 四个区都向公司申请了额外用水量, 分?分别为每天50,70,20,40 千吨,
(1)该公司应如何分配供水量, 才能获利最多?
?(2)为了增加供水量, 自来水公司正在考虑进行水库改造,随三个水库的供水量都提高一倍, 问此时供水方案应如何改变?公司利润可增加多少?
?从水库向各区送水的净利润
(1)也可以基于利润表建立max模型.?
2.分析
问题的关键是如何安排从各个水库向四个居民区供水,使得引水管理费用达到最小, 注意到其它费用与供水安排无关.
3. 模型建立
4.模型求解?
5.问题讨论?
6.求解
?
?总结
数学规划模型是数学建模中用于描述和解决优化问题的一类模型。它通过构建目标函数和约束条件,将实际问题转化为数学形式,旨在寻找满足约束条件的最优解。数学规划模型广泛应用于各个领域,包括资源分配、生产计划、物流管理和金融投资等,通过线性规划、非线性规划、整数规划等方法,帮助决策者在复杂环境中做出最优选择。

QQ客服