新时代多目标优化【数学建模】领域的极致探索——数学规划模型

目录

例1

1.问题重述

2.基本模型

变量定义:

目标函数:

约束条件:

3.模型分析与假设

4.模型求解

5.LINGO代码实现

6.结果解释

[​编辑 7.敏感性分析](#编辑 7.敏感性分析)

8.结果解释

[例2 奶制品的销售计划](#例2 奶制品的销售计划)

1.问题重述

[​编辑 2.基本模型](#编辑 2.基本模型)

3.模型求解

4.结果解释

3.整数规划的实用模型

1.题目

2.分析

3.模型建立

​编辑4.模型求解

4.运输问题

例1.

1.题目

2.分析

3.模型建立

[​编辑 4.模型求解_Lingo](#编辑 4.模型求解_Lingo)

5.结果分析

最优目标值

变量值

约束条件

[冗余成本(Reduced Cost)](#冗余成本(Reduced Cost))

[对偶价格(Dual Price)](#对偶价格(Dual Price))

[例2 自来水的输送问题](#例2 自来水的输送问题)

1.题目

2.分析

[​编辑3. 模型建立](#编辑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.求解

总结

数学规划模型是数学建模中用于描述和解决优化问题的一类模型。它通过构建目标函数和约束条件,将实际问题转化为数学形式,旨在寻找满足约束条件的最优解。数学规划模型广泛应用于各个领域,包括资源分配、生产计划、物流管理和金融投资等,通过线性规划、非线性规划、整数规划等方法,帮助决策者在复杂环境中做出最优选择。

相关推荐
工业甲酰苯胺3 小时前
Redis性能优化的18招
数据库·redis·性能优化
Guofu_Liao4 小时前
大语言模型---LoRA简介;LoRA的优势;LoRA训练步骤;总结
人工智能·语言模型·自然语言处理·矩阵·llama
朝九晚五ฺ6 小时前
【Linux探索学习】第十四弹——进程优先级:深入理解操作系统中的进程优先级
linux·运维·学习
2401_882727576 小时前
BY组态-低代码web可视化组件
前端·后端·物联网·低代码·数学建模·前端框架
猫爪笔记7 小时前
前端:HTML (学习笔记)【1】
前端·笔记·学习·html
pq113_68 小时前
ftdi_sio应用学习笔记 3 - GPIO
笔记·学习·ftdi_sio
澄澈i8 小时前
设计模式学习[8]---原型模式
学习·设计模式·原型模式
爱米的前端小笔记8 小时前
前端八股自学笔记分享—页面布局(二)
前端·笔记·学习·面试·求职招聘
无尽的大道9 小时前
深入理解 Java 阻塞队列:使用场景、原理与性能优化
java·开发语言·性能优化
loey_ln9 小时前
webpack配置和打包性能优化
前端·webpack·性能优化