- 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表示必须由开设的工厂进行配送。