Python小白的数学建模课---选址问题3 s( U5 F+ P0 @3 d7 c5 ?
选址问题是要选择设施位置使目标达到最优,是数模竞赛中的常见题型。 小白不一定要掌握所有的选址问题,但要能判断是哪一类问题,用哪个模型。 进一步学习 PuLP工具包中处理复杂问题的字典格式快捷建模方法。
/ r# D8 n% |8 g3 }1. 选址问题
3 s# J8 ~+ h: `. s/ S4 p# S选址问题是指在某个区域内选择设施的位置使所需的目标达到最优。选址问题也是一种互斥的计划问题。
3 [( V# }& h: l# N& B7 Q
h2 N% o2 K" Q% x* g3 L! G6 L5 l9 ^例如投资场所的选址:企业要在 m 个候选位置选择若干个建厂,已知建厂费用、运输费及 n 个地区的产品需求量,应如何进行选址。; o' X5 U' u5 F. S4 H3 Y
" U. p6 `8 `, d; m1 [选址问题是运筹学中经典的问题之一,选址问题在生产生活、物流、甚至军事中都有着非常广泛的应用,如工厂、仓库、急救中心、消防站、垃圾处理中心、物流中心、导弹仓库的选址等。更重要的,选址问题也是数模竞赛的热点问题。9 d8 z E9 a) Q# X+ s
0 [& j- O2 f \1 h" S
选址是重要的长期决策,选址的好坏直接影响到服务方式、服务质量、服务效率、服务成本等,从而影响到利润和市场竞争力,选址问题的研究有着重大的经济、社会和军事意义。
6 L, k( s' @, O8 @: p* ] r9 b- `: p% K: u0 B9 E; T% C
选址问题有四个基本要素:设施、区域、距离和优化目标。
+ e( a! l- f0 C9 S% H1.1 设施8 i& O* n: _9 @, g) B# m3 [! ?
选址问题加粗样式中所说的设施,在具体题目中可以是工厂、仓库、服务站等形式。0 A; S* S* O" |9 e2 O8 m: K
1 i2 `3 g, r* t6 q2 K
1.2 区域 @# r7 b f% M7 k0 Z# s2 c1 m( B
选址问题中所说的区域,在具体题目中可以是工厂、车间的内部布局,也可以是给定的某个地区、甚至空间范围。0 l$ l% A" |* z. C3 K2 n+ y
按照规划区域的特征,可以分为连续选址问题和离散选址问题。连续选址问题,设施可以布局在区域内的任意位置,就要求出最优选址的坐标;离散选址问题,只能从若干候选位置中进行选择,运筹学中的选址问题通常是这类离散选址问题。
! w& \- W& K/ V5 }
' F: P' V% P! i. g, ~" x1.3 距离
/ Q% { @% v5 L, g$ C选址问题中所说的距离,是指设施到服务对象之间的距离,在具体题目中也可以是某个选址位置的服务时间、成本、覆盖范围。如果用图论方法求解,通常就是连接顶点的边的权值。4 `) W* s2 A' Z4 {8 a5 A1 ^
当问题所关注的是设施到服务对象之间的距离时,如果问题给出的不是顶点之间的距离,而是设施的位置坐标,要注意不是只有欧式距离,对于不同问题也可能是球面距离、曼哈顿距离、切比雪夫距离。
' ~9 r- c3 z" O# d; B+ m. j& O
1.4 优化目标
0 S2 t. C) G) J( B, L4 h选址问题要求选择最好的选址位置,但选址位置只是决策变量,选择的最终目的通常是实现加权距离最短、费用最小、利润最大、时间最短,这才是优化问题的目标函数。
+ G6 l' X6 [; ~7 `: e) K! T按照目标函数的特点,可以分为:中位问题,要求总成本最小;中心问题,服务于每个客户的最大成本最小;反中心问题:服务于每个客户的最小成本最大。: F; i# Z1 Z/ _$ G8 ^) ~
3 N- ?# Q" f. p0 k+ b: s
6 w+ w4 G! _9 g- q: v& v" I; Y8 c
2. 常见选址问题及建模
8 a7 z& x: G# Q5 \4 q( H' C% b. I2.1 P-中位问题(P-median problem)$ b/ G; t( d6 D* ^3 R+ H
P-中位问题,假设有 N 个候选服务站和 M 个需求点,要从 N 个候选服务站中选择 P 个,使所有需求点到最近的服务站的加权距离 dij的总和最小。需求点 i 的权值,通常是指该需求点的需求量。+ v) k2 k' X1 a
: P! E& r- N a# D5 p; o
这是一个 MinSum 问题,定义决策变量 xj为选中的服务站,yij将各需求点匹配到最近的服务站:9 J/ ~& |8 @* K* M+ z9 j& @2 w; J
x j = { 1 , 服务站 j 被 选 中 0 ,服 务 站 j 未 被 选 中 & z6 W* p* R8 A& d g
yij={1,需要点i由服务站j服务 0,需要点i不由服务站j服务! Z: `4 I/ z& L/ y
可以建立数学模型如下:1 G( T: \7 A, Z1 S' Q% t4 \
minDs.t.:⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧∑j∈Nwidijyij≤D,∀i∑j∈Nxj=P∑j∈Nyij=1,∀iyij−xj≤0,∀i,jxj∈{0,1},yij∈{0,1}# J* x, A, k) n2 ?5 h) i
8 q0 |" U% {) a* S
& A1 M: O9 ~8 S6 J
2 N8 A9 ]8 [) z其中:j 为服务站,i 为需求点,dij为需求点 i 到服务站 j 的距离。如果只求需求点到最近的服务站的最大距离,则wi=1;如果要求任一需求点到最近的服务站的最大运费,则wi为需求点 i 的需求量,即加权最大距离。
0 Z$ s8 n- |6 Y O: @6 s8 K' ~7 [8 V9 ]# p5 S8 g$ A
2 l9 a; R1 d8 E9 S% t8 z- D
. D2 C k8 k& w4 r# ^5 n, [/ ?1 ` _9 N! |
2 o$ W) P7 @8 D7 E
|