Python小白的数学建模课---选址问题
- G/ y, G8 M' Q6 y: {* z5 f选址问题是要选择设施位置使目标达到最优,是数模竞赛中的常见题型。 小白不一定要掌握所有的选址问题,但要能判断是哪一类问题,用哪个模型。 进一步学习 PuLP工具包中处理复杂问题的字典格式快捷建模方法。
: f( `5 b7 ~% J3 O5 L: Y+ \" `" N1. 选址问题
7 i+ u" q5 ^, [( y: K选址问题是指在某个区域内选择设施的位置使所需的目标达到最优。选址问题也是一种互斥的计划问题。( h$ L7 U- R+ x' J$ m
. D- V2 n/ M% i! s0 R例如投资场所的选址:企业要在 m 个候选位置选择若干个建厂,已知建厂费用、运输费及 n 个地区的产品需求量,应如何进行选址。
! f1 G' ?, {, a7 L
: K0 o9 L/ { v+ U5 X8 y选址问题是运筹学中经典的问题之一,选址问题在生产生活、物流、甚至军事中都有着非常广泛的应用,如工厂、仓库、急救中心、消防站、垃圾处理中心、物流中心、导弹仓库的选址等。更重要的,选址问题也是数模竞赛的热点问题。
: e4 {. }, H9 w9 I" w( M/ N
8 X" |8 U+ i9 R3 T& ]2 d选址是重要的长期决策,选址的好坏直接影响到服务方式、服务质量、服务效率、服务成本等,从而影响到利润和市场竞争力,选址问题的研究有着重大的经济、社会和军事意义。# L& j$ I9 n; V7 h
( E' w. l+ ~/ }0 d8 Y3 N* I, h选址问题有四个基本要素:设施、区域、距离和优化目标。- K( z+ w8 D' a; r: D
1.1 设施
; F# L1 o/ j* T' o选址问题加粗样式中所说的设施,在具体题目中可以是工厂、仓库、服务站等形式。
, P7 k, j$ _( v' M; @3 n- F( q
( j! P) D: n2 L% R/ S1.2 区域. N* t8 _( F8 ` o
选址问题中所说的区域,在具体题目中可以是工厂、车间的内部布局,也可以是给定的某个地区、甚至空间范围。' y/ w& z& D0 A+ F
按照规划区域的特征,可以分为连续选址问题和离散选址问题。连续选址问题,设施可以布局在区域内的任意位置,就要求出最优选址的坐标;离散选址问题,只能从若干候选位置中进行选择,运筹学中的选址问题通常是这类离散选址问题。
$ L$ ~" ]/ B, h
. p! Z9 w6 N- x5 N- Z, V; Y( J7 g7 `1.3 距离
0 H s6 O: v, t0 p1 }选址问题中所说的距离,是指设施到服务对象之间的距离,在具体题目中也可以是某个选址位置的服务时间、成本、覆盖范围。如果用图论方法求解,通常就是连接顶点的边的权值。, t2 T; A+ \1 F9 \" E$ `
当问题所关注的是设施到服务对象之间的距离时,如果问题给出的不是顶点之间的距离,而是设施的位置坐标,要注意不是只有欧式距离,对于不同问题也可能是球面距离、曼哈顿距离、切比雪夫距离。' U( Y( m. Y9 D: E7 f" Q C7 [
; B. w) v% S8 P, t5 x1.4 优化目标9 `# o- O( v5 T" [
选址问题要求选择最好的选址位置,但选址位置只是决策变量,选择的最终目的通常是实现加权距离最短、费用最小、利润最大、时间最短,这才是优化问题的目标函数。
* a% O6 o1 A' ~按照目标函数的特点,可以分为:中位问题,要求总成本最小;中心问题,服务于每个客户的最大成本最小;反中心问题:服务于每个客户的最小成本最大。 M! q7 f- Y2 U3 r3 ?% L2 F; c
1 I2 S7 [2 m: D0 V2 @0 Q' ^) @0 o/ W2 |
5 _7 n/ u, D9 i" Y- w. h2. 常见选址问题及建模+ K8 m0 s& A% n( X' f
2.1 P-中位问题(P-median problem)
% I/ \) M- v$ [- oP-中位问题,假设有 N 个候选服务站和 M 个需求点,要从 N 个候选服务站中选择 P 个,使所有需求点到最近的服务站的加权距离 dij的总和最小。需求点 i 的权值,通常是指该需求点的需求量。
/ G# I; C2 T+ D1 x V2 P( j& x( u* {$ N. q
这是一个 MinSum 问题,定义决策变量 xj为选中的服务站,yij将各需求点匹配到最近的服务站:
( |" u& A+ C s8 j' G) O7 Vx j = { 1 , 服务站 j 被 选 中 0 ,服 务 站 j 未 被 选 中
2 {8 Y, f- F5 [& W' ^, [yij={1,需要点i由服务站j服务 0,需要点i不由服务站j服务" N; S8 e) }; `4 m" X- x6 o( `& j
可以建立数学模型如下:' \6 y( w/ D s' _
minDs.t.:⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧∑j∈Nwidijyij≤D,∀i∑j∈Nxj=P∑j∈Nyij=1,∀iyij−xj≤0,∀i,jxj∈{0,1},yij∈{0,1}4 ~0 l, M% h$ x+ J
# I4 C0 ~0 n4 ]2 X7 J' O p
, ~( X4 m# m: J% }1 `. ]* k1 n# q) ^. Z
其中:j 为服务站,i 为需求点,dij为需求点 i 到服务站 j 的距离。如果只求需求点到最近的服务站的最大距离,则wi=1;如果要求任一需求点到最近的服务站的最大运费,则wi为需求点 i 的需求量,即加权最大距离。3 _) u9 M: _/ W/ Z Y) _1 ?
. P5 I) b* T( _% w
/ q G' ]3 ?" ?1 k+ R! N' n3 a
2 D, u, c& Y) f( t+ y" l
' N5 P0 d( b2 H+ [4 N& ~5 R ( C& T' P% n3 Q; R9 V; e
|