Python小白的数学建模课---选址问题
# D7 I7 J* z0 z# R4 u5 f选址问题是要选择设施位置使目标达到最优,是数模竞赛中的常见题型。 小白不一定要掌握所有的选址问题,但要能判断是哪一类问题,用哪个模型。 进一步学习 PuLP工具包中处理复杂问题的字典格式快捷建模方法。 0 F0 E1 O. A6 H+ m2 _
1. 选址问题 a0 i( ^; U. V" {5 Z0 p
选址问题是指在某个区域内选择设施的位置使所需的目标达到最优。选址问题也是一种互斥的计划问题。/ G+ V5 D# i( G( ]
6 y. e0 B6 Q/ O \# d例如投资场所的选址:企业要在 m 个候选位置选择若干个建厂,已知建厂费用、运输费及 n 个地区的产品需求量,应如何进行选址。2 ` y% }7 ?' D- F% X& ^ n
# B2 w4 z3 P1 C L' \( X' v选址问题是运筹学中经典的问题之一,选址问题在生产生活、物流、甚至军事中都有着非常广泛的应用,如工厂、仓库、急救中心、消防站、垃圾处理中心、物流中心、导弹仓库的选址等。更重要的,选址问题也是数模竞赛的热点问题。
9 A5 n: \; Z' v0 j& f+ P
$ p0 `! I. c8 c选址是重要的长期决策,选址的好坏直接影响到服务方式、服务质量、服务效率、服务成本等,从而影响到利润和市场竞争力,选址问题的研究有着重大的经济、社会和军事意义。$ v$ x& B& J$ [- v6 R" B4 P# @
, {8 K8 n% r; f5 `0 ~' _3 `
选址问题有四个基本要素:设施、区域、距离和优化目标。8 m5 T5 x- t2 l, f- s
1.1 设施
+ y h |: ^) H$ i, R4 a7 C选址问题加粗样式中所说的设施,在具体题目中可以是工厂、仓库、服务站等形式。
5 C7 }8 N) T" D
' w2 a; \( I$ P) r1.2 区域
7 P; o8 _( f' X. X% u3 K; y选址问题中所说的区域,在具体题目中可以是工厂、车间的内部布局,也可以是给定的某个地区、甚至空间范围。
2 u% W3 k# K* _4 U! f; E' l% {按照规划区域的特征,可以分为连续选址问题和离散选址问题。连续选址问题,设施可以布局在区域内的任意位置,就要求出最优选址的坐标;离散选址问题,只能从若干候选位置中进行选择,运筹学中的选址问题通常是这类离散选址问题。
# G/ L& u5 v$ F V& e9 }! r
0 c; r/ n. \+ l% F# o1.3 距离5 B1 m: V( J0 @! ?4 E
选址问题中所说的距离,是指设施到服务对象之间的距离,在具体题目中也可以是某个选址位置的服务时间、成本、覆盖范围。如果用图论方法求解,通常就是连接顶点的边的权值。
5 e5 x+ M# r8 X% H. {! K当问题所关注的是设施到服务对象之间的距离时,如果问题给出的不是顶点之间的距离,而是设施的位置坐标,要注意不是只有欧式距离,对于不同问题也可能是球面距离、曼哈顿距离、切比雪夫距离。
1 l, I, q* ]5 v9 o2 x7 j# M: ?/ F! c8 k8 l
1.4 优化目标' A5 c5 H% A( N& M- H; f9 Z' I' k
选址问题要求选择最好的选址位置,但选址位置只是决策变量,选择的最终目的通常是实现加权距离最短、费用最小、利润最大、时间最短,这才是优化问题的目标函数。 L2 z& s, X4 l/ V& M
按照目标函数的特点,可以分为:中位问题,要求总成本最小;中心问题,服务于每个客户的最大成本最小;反中心问题:服务于每个客户的最小成本最大。
& s1 {- K8 L8 q$ [; n+ F( Q
. ]* ~. y& {- } j' B7 X* S3 p, t2 H& U5 {6 e6 i1 Q2 ?2 f
- K0 F& w8 w, E% F2 O) C8 b0 N
2. 常见选址问题及建模6 [ D3 e' {+ R2 ]( f% ?, b) e
2.1 P-中位问题(P-median problem)+ q1 x1 D2 |9 \6 f% I; e8 E7 Z
P-中位问题,假设有 N 个候选服务站和 M 个需求点,要从 N 个候选服务站中选择 P 个,使所有需求点到最近的服务站的加权距离 dij的总和最小。需求点 i 的权值,通常是指该需求点的需求量。
% c2 n8 N" A; ]) M, v0 m y9 @$ G1 @5 `" k" Y+ ?8 W
这是一个 MinSum 问题,定义决策变量 xj为选中的服务站,yij将各需求点匹配到最近的服务站:
5 }3 m" [# j% t) I8 `x j = { 1 , 服务站 j 被 选 中 0 ,服 务 站 j 未 被 选 中
4 I0 y+ B4 X! j0 Pyij={1,需要点i由服务站j服务 0,需要点i不由服务站j服务
) a/ d% w: X# f8 @0 S! J可以建立数学模型如下:8 `8 v+ A% b, X
minDs.t.:⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧∑j∈Nwidijyij≤D,∀i∑j∈Nxj=P∑j∈Nyij=1,∀iyij−xj≤0,∀i,jxj∈{0,1},yij∈{0,1}7 a6 j4 b0 \- [8 c8 R8 l7 v; r$ Z6 B- g
2 `, _* Q9 ^ f" j1 e3 s0 V3 g5 a
8 w/ H" ^. R s, p9 G1 d- _: z; S- w! n/ Z' L" R, Y
其中:j 为服务站,i 为需求点,dij为需求点 i 到服务站 j 的距离。如果只求需求点到最近的服务站的最大距离,则wi=1;如果要求任一需求点到最近的服务站的最大运费,则wi为需求点 i 的需求量,即加权最大距离。2 J( e, _/ H0 z6 o
2 o5 T" c( n9 U( l) d6 s6 m0 ]; J. U9 d
U8 d6 n, v- B8 C2 ~: L0 N6 |9 |
2 j, x& P. T" L' h+ T" W6 _( A |