Python小白的数学建模课---选址问题
% j+ O8 P! L/ y, f6 ^ c选址问题是要选择设施位置使目标达到最优,是数模竞赛中的常见题型。 小白不一定要掌握所有的选址问题,但要能判断是哪一类问题,用哪个模型。 进一步学习 PuLP工具包中处理复杂问题的字典格式快捷建模方法。 9 v# g( S' z5 d, l) j' |4 E( ]
1. 选址问题
/ Q. P m6 m: u# r选址问题是指在某个区域内选择设施的位置使所需的目标达到最优。选址问题也是一种互斥的计划问题。
( \9 L" ~8 U2 }% c
" ]0 M: h; z# v& M$ ?, t7 v3 g例如投资场所的选址:企业要在 m 个候选位置选择若干个建厂,已知建厂费用、运输费及 n 个地区的产品需求量,应如何进行选址。
( h. N* b H6 ]/ V
% y" e1 D8 E3 c7 R" f: a! l/ m选址问题是运筹学中经典的问题之一,选址问题在生产生活、物流、甚至军事中都有着非常广泛的应用,如工厂、仓库、急救中心、消防站、垃圾处理中心、物流中心、导弹仓库的选址等。更重要的,选址问题也是数模竞赛的热点问题。/ J. Y" T$ A6 h3 H$ E! [
, g* r- E/ _% }' J$ Z p1 B选址是重要的长期决策,选址的好坏直接影响到服务方式、服务质量、服务效率、服务成本等,从而影响到利润和市场竞争力,选址问题的研究有着重大的经济、社会和军事意义。
, ?& F, W& a% L- U' q/ h1 |$ _3 W' a4 Z/ C
选址问题有四个基本要素:设施、区域、距离和优化目标。2 V$ z# h) P' q
1.1 设施6 A1 w$ [, C9 |
选址问题加粗样式中所说的设施,在具体题目中可以是工厂、仓库、服务站等形式。. W! D1 G0 x" X/ J) f M/ X n& \. `
: ~3 B' A6 z% l7 b$ T2 s1.2 区域& ^- \: e- O& Q+ O) e4 a- s
选址问题中所说的区域,在具体题目中可以是工厂、车间的内部布局,也可以是给定的某个地区、甚至空间范围。
3 u0 O1 ^4 @0 y6 g4 F按照规划区域的特征,可以分为连续选址问题和离散选址问题。连续选址问题,设施可以布局在区域内的任意位置,就要求出最优选址的坐标;离散选址问题,只能从若干候选位置中进行选择,运筹学中的选址问题通常是这类离散选址问题。
( \6 e& z! b s6 p
% h: ^- @/ ?4 f4 c2 c+ l( O: X1.3 距离
' o d- U6 l: n% y1 [9 _- u% \" R选址问题中所说的距离,是指设施到服务对象之间的距离,在具体题目中也可以是某个选址位置的服务时间、成本、覆盖范围。如果用图论方法求解,通常就是连接顶点的边的权值。
4 F) |& E9 L" U- n& h当问题所关注的是设施到服务对象之间的距离时,如果问题给出的不是顶点之间的距离,而是设施的位置坐标,要注意不是只有欧式距离,对于不同问题也可能是球面距离、曼哈顿距离、切比雪夫距离。
" z4 i' h$ g; ~/ k1 Z( y/ L+ r6 @. r2 d& }7 v
1.4 优化目标+ l) X; C1 u; s+ i. p
选址问题要求选择最好的选址位置,但选址位置只是决策变量,选择的最终目的通常是实现加权距离最短、费用最小、利润最大、时间最短,这才是优化问题的目标函数。
8 h# O; n- v9 [: {4 V& F/ p( q2 T按照目标函数的特点,可以分为:中位问题,要求总成本最小;中心问题,服务于每个客户的最大成本最小;反中心问题:服务于每个客户的最小成本最大。/ O+ o( h( ]* y2 ~; i1 \5 G
% p9 d: Q1 y& \- N$ |: c6 ]6 y
" G9 \% B6 K0 |/ y
1 ^/ T- y6 \+ _1 q$ _& ^8 l2. 常见选址问题及建模! }* `- K; P" [# n
2.1 P-中位问题(P-median problem)! a" U3 P- L6 c2 s4 c/ Q/ e \7 T
P-中位问题,假设有 N 个候选服务站和 M 个需求点,要从 N 个候选服务站中选择 P 个,使所有需求点到最近的服务站的加权距离 dij的总和最小。需求点 i 的权值,通常是指该需求点的需求量。' P0 h" x l. B! B
9 s8 f6 I. S0 w: @2 s7 Y9 S4 [$ L2 Z这是一个 MinSum 问题,定义决策变量 xj为选中的服务站,yij将各需求点匹配到最近的服务站:
7 R, s: z* K& D0 W* ex j = { 1 , 服务站 j 被 选 中 0 ,服 务 站 j 未 被 选 中 3 V# Z, M; B6 R+ p
yij={1,需要点i由服务站j服务 0,需要点i不由服务站j服务4 B4 U$ U& U1 K* r- ^
可以建立数学模型如下:
9 i' j, x4 r7 \8 ?) {minDs.t.:⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧∑j∈Nwidijyij≤D,∀i∑j∈Nxj=P∑j∈Nyij=1,∀iyij−xj≤0,∀i,jxj∈{0,1},yij∈{0,1}
7 o: O3 E5 m% Q
. K6 X% p( `5 Z; L( c, A, q Z' H
2 i( Y' e3 J, F! y) v' i- h7 O3 {9 |3 r4 M0 O
其中:j 为服务站,i 为需求点,dij为需求点 i 到服务站 j 的距离。如果只求需求点到最近的服务站的最大距离,则wi=1;如果要求任一需求点到最近的服务站的最大运费,则wi为需求点 i 的需求量,即加权最大距离。9 `2 f% Q2 g( s, |- E: k# i* p, T6 e i
0 t* D* S: T$ ~* L3 Z7 h* c: Y
( @% K$ ?5 G! @1 a3 M$ T1 o) F, }* R+ H4 y; F1 }, H. p" s
) J9 S, O$ ^" C N. t3 w
. Z6 J0 h9 v2 @* a V
|