Python小白的数学建模课---选址问题
' s8 V- |- h8 n$ v选址问题是要选择设施位置使目标达到最优,是数模竞赛中的常见题型。 小白不一定要掌握所有的选址问题,但要能判断是哪一类问题,用哪个模型。 进一步学习 PuLP工具包中处理复杂问题的字典格式快捷建模方法。 6 H4 r/ a; i4 l% t9 V9 m# t" u
1. 选址问题
9 U" _8 U& C. g6 m/ ]选址问题是指在某个区域内选择设施的位置使所需的目标达到最优。选址问题也是一种互斥的计划问题。& D6 l) \, L5 |; H
8 w1 B0 [* v/ f! j$ ?/ J; @例如投资场所的选址:企业要在 m 个候选位置选择若干个建厂,已知建厂费用、运输费及 n 个地区的产品需求量,应如何进行选址。6 _/ Z! `: V1 G1 d' d
! ^* J2 P7 F5 Y8 R; q6 _
选址问题是运筹学中经典的问题之一,选址问题在生产生活、物流、甚至军事中都有着非常广泛的应用,如工厂、仓库、急救中心、消防站、垃圾处理中心、物流中心、导弹仓库的选址等。更重要的,选址问题也是数模竞赛的热点问题。
d& i" ?- f8 |0 o, s; G/ M, h+ \3 f7 W# z
选址是重要的长期决策,选址的好坏直接影响到服务方式、服务质量、服务效率、服务成本等,从而影响到利润和市场竞争力,选址问题的研究有着重大的经济、社会和军事意义。9 E; q! V; l/ I `
2 B! u/ z; l( f# l' M选址问题有四个基本要素:设施、区域、距离和优化目标。
' |& [4 l8 X6 {/ ^5 l4 y1 M1.1 设施
% I$ |# b5 l" P+ ^2 y选址问题加粗样式中所说的设施,在具体题目中可以是工厂、仓库、服务站等形式。
: t3 @+ S; T3 ?* `4 D. \0 }' o/ E- c, b. E/ ]& C" |: \& a
1.2 区域/ m7 T- E/ K; D4 W
选址问题中所说的区域,在具体题目中可以是工厂、车间的内部布局,也可以是给定的某个地区、甚至空间范围。
; T+ L \5 ^% z/ `6 O8 G按照规划区域的特征,可以分为连续选址问题和离散选址问题。连续选址问题,设施可以布局在区域内的任意位置,就要求出最优选址的坐标;离散选址问题,只能从若干候选位置中进行选择,运筹学中的选址问题通常是这类离散选址问题。
+ z- |! l9 m& C1 ^9 E1 ^& M: D; k6 T/ n, m# ?. b
1.3 距离
8 P5 {/ V; b# P5 @ {, v0 x选址问题中所说的距离,是指设施到服务对象之间的距离,在具体题目中也可以是某个选址位置的服务时间、成本、覆盖范围。如果用图论方法求解,通常就是连接顶点的边的权值。
; m+ `) j1 i+ m& U) s$ c5 V当问题所关注的是设施到服务对象之间的距离时,如果问题给出的不是顶点之间的距离,而是设施的位置坐标,要注意不是只有欧式距离,对于不同问题也可能是球面距离、曼哈顿距离、切比雪夫距离。
0 w, o) o+ N/ V- Q7 W" T8 l3 G7 x0 d. w7 k3 s, h" }
1.4 优化目标' ^& \' X/ t' r S9 M* j
选址问题要求选择最好的选址位置,但选址位置只是决策变量,选择的最终目的通常是实现加权距离最短、费用最小、利润最大、时间最短,这才是优化问题的目标函数。) v2 h: G& p) x8 r; x, r9 X
按照目标函数的特点,可以分为:中位问题,要求总成本最小;中心问题,服务于每个客户的最大成本最小;反中心问题:服务于每个客户的最小成本最大。
/ I# p$ s: v/ o
t: i' o# l0 r) O1 R4 F7 m+ ~9 | n* r% n% w S3 m
m& z3 U. m4 c# k" Q
2. 常见选址问题及建模
0 X9 R8 w. {0 }: [3 K2.1 P-中位问题(P-median problem)+ x9 H7 r4 B3 t, d
P-中位问题,假设有 N 个候选服务站和 M 个需求点,要从 N 个候选服务站中选择 P 个,使所有需求点到最近的服务站的加权距离 dij的总和最小。需求点 i 的权值,通常是指该需求点的需求量。
) U' ]% _7 b; x& I! y p: E% D; X1 e) D, `9 ^+ q; K4 ]0 m
这是一个 MinSum 问题,定义决策变量 xj为选中的服务站,yij将各需求点匹配到最近的服务站:
/ q: d N8 Y/ E# {' X- `x j = { 1 , 服务站 j 被 选 中 0 ,服 务 站 j 未 被 选 中
. P1 M) u0 G7 M7 e, ^! a5 } e F. lyij={1,需要点i由服务站j服务 0,需要点i不由服务站j服务
. o. |! R9 O* S, `; s1 y: y# k可以建立数学模型如下:
6 Z& F+ p' \2 ]; @6 \& @1 AminDs.t.:⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧∑j∈Nwidijyij≤D,∀i∑j∈Nxj=P∑j∈Nyij=1,∀iyij−xj≤0,∀i,jxj∈{0,1},yij∈{0,1}* w! R! C& ]( r/ J( v Z
r* Y% m. L- r
' r7 n* B7 I O0 \! K) s9 K W% K+ g
# c7 s; g1 ~4 M其中:j 为服务站,i 为需求点,dij为需求点 i 到服务站 j 的距离。如果只求需求点到最近的服务站的最大距离,则wi=1;如果要求任一需求点到最近的服务站的最大运费,则wi为需求点 i 的需求量,即加权最大距离。
& y9 ]! e- M, \ C \) s& t3 V) t$ u6 d8 |- d0 F: f
. N2 l' p0 b" r3 E8 a w3 V& r4 l! P; U
: |5 x& k! A& r! x b6 f9 _ J
) x6 R7 j* a; b: _6 V
|