数理最适化笔记2

  • 2.1容量制约的设置配置问题

设施配置问题其实就是在一个空间内选择最合适点的问题。容量制约的设置配置问题是很多实际问题的基础模型。举个例子,比如上篇提到的工厂配送问题,5个顾客,3个仓库运输,设施的候补地点和年间产生的租房费用,仓库容量,顾客的配送费用,如表1所示。那么我们应该如何选择配送路径呢,年费的总花费怎么样最小。

|---------|----|-----|-----|-----|-----|--------|------|
| 顾客i | 1 | 2 | 3 | 4 | 5 | | |
| 年间需要量di | 80 | 270 | 250 | 160 | 180 | | |
| 设施j | 运输费用cij ||||| 开设费用fj | 容量Mj |
| 1 | 4 | 5 | 6 | 8 | 10 | 1000 | 500 |
| 2 | 6 | 4 | 3 | 5 | 8 | 1000 | 500 |
| 3 | 9 | 7 | 4 | 3 | 4 | 1000 | 500 |

有了上面的调查,我们可以开始进行模型建立。

顾客数量n,设施数量m,顾客i=1,2,。。。,n。设施j=1,2,。。。,m用编号表示。顾客的集合I={1,2,...,n},设施的集合J={1,2,...,m}。顾客i的需求量为di,顾客i和设施j之间,每1单位配送费用为cij,设施j的租房费用为fj,容量为Mj。

连续变数xij和0-1变量yj

xij = 顾客i的需求由设施j满足的量

yj = 1 设施j开设,0以外

目的函数 minimize Zj属于J fjyj + Zi属于I Zj属于J cijxij

s.t. Zj属于J xij = di Ai属于I

Zi属于I xij <= Mjyj Aj 属于J

xij<=diyj Ai属于I;J属于J

xij >=0 Ai属于I;j属于J

yj属于0,1 Aj属于J

目的函数表示 设施的开设费用和运送费用的和 最小化。制约1表示每个顾客的需要必须被满足,制约2表示设施的容量制约。制约3表示不从开设的设施出来是不能进行配送的,这个叫做强弱定式化。

为了解决上面模型,我们接下来进行编程。(1)输入参数和数据。(2)制作返回函数。(3)定义制约公式。(4)设置目的函数。

  • 2.2强定式化和弱定式化

Zi属于I xij <= Mjyj Aj 属于J

有制约条件1和制约条件2已经足够了,但是为什么要加3呢? 因为如果Mj非常大,会发生解不出来的问题,所以加了第3个制约条件。所以意思是3比2强,还有比3更强的。

Zj属于J xij <=(Zi属于I di)yj

它就比3还要强,因为范围更加窄。

  • k-median问题

也是设施配置问题,属于一个变种,求顾客到最近设施的(合计)总最小距离,来选择设施。

顾客i到设施j的距离为cij,可以定义以下变数

xij = 1 顾客i的需求被j满足时, 0是以外

yj = 1 设施j开设时 , 0是以外

顾客数量为n,顾客的集合为I,设施的配置点为J,通常的K问题,设施的候补地点在顾客上面假设,I = J = {1,2,...,n}.

整理成数学公式为

目的函数 minimize Zi属于I Zj属于J cij xij

s.t. Zj属于J xij = 1 Ai属于I

Zj属于J yj = k

xij <=yj Ai属于I;j属于J

xij属于0,1 Ai属于I;j属于J

yj属于0,1 Aj属于J

制约条件1表示顾客被分配给某一个设施,制约2表示限制规定开设的设施数量为K个。制约3表示顾客只能从被开设的设施接受服务,这个公式由nm公式构成。m可以转换为以下公式。

Zi属于I xij <=nyi Aj属于J

  • k-center问题

求顾客到设施点的最小距离。

顾客i到设施j到距离定义为cij,定义以下变数

xij = 1,0 顾客i的需求由设施j满足,以外

yj = 1,0 设施j开设 ,以外

另外z为最远距离的设施配送移动距离最小化。然后进行数学模型定义

目的函数 minimize z

s.t. Zj属于j xij = 1 ,Ai属于I

Zj属于J yj = k

xij<=yj Ai属于I;j属于J

Zj属于J cijxij <= z Ai属于I

xij 属于0,1 Ai属于I;j属于J

yj属于0,1 Aj属于J

目的函数表示最远设施配送顾客的最小移动距离,叫做最大值的最小化。制约条件1表示顾客由设施中的某一个进行配送,制约2表示开设的设施有K个。制约3表示必须由开设的工厂进行配送。

相关推荐
一轮弯弯的明月9 小时前
贝尔数求集合划分方案总数
java·笔记·蓝桥杯·学习心得
航Hang*10 小时前
第3章:Linux系统安全管理——第2节:部署代理服务
linux·运维·服务器·开发语言·笔记·系统安全
zjnlswd10 小时前
tkinter学习案例--笔记代码
笔记·学习
独小乐10 小时前
009.中断实践之实现按键测试|千篇笔记实现嵌入式全栈/裸机篇
linux·c语言·驱动开发·笔记·嵌入式硬件·arm
无聊大侠hello world10 小时前
Yu-AI-Agent 项目(AI 恋爱大师智能体) · 学习笔记
人工智能·笔记·学习
CheerWWW11 小时前
C++学习笔记——箭头运算符、std::vector的使用、静态链接、动态链接
c++·笔记·学习
ZhiqianXia11 小时前
Pytorch 学习笔记(17):decompositions.py —— 算子分解的百科全书
pytorch·笔记·学习
xian_wwq11 小时前
【学习笔记】大模型如何理解图片
笔记·学习
talen_hx29611 小时前
《零基础入门Spark》学习笔记 Day 13
笔记·学习·spark
Flittly11 小时前
【SpringAIAlibaba新手村系列】(15)MCP Client 调用本地服务
java·笔记·spring·ai·springboot