Python小白的数学建模课---选址问题
D% c, w" {; G选址问题是要选择设施位置使目标达到最优,是数模竞赛中的常见题型。 小白不一定要掌握所有的选址问题,但要能判断是哪一类问题,用哪个模型。 进一步学习 PuLP工具包中处理复杂问题的字典格式快捷建模方法。
' ]/ I7 r% b6 a% T! ?( w1. 选址问题
7 ^% R6 D% K0 _1 ]8 x选址问题是指在某个区域内选择设施的位置使所需的目标达到最优。选址问题也是一种互斥的计划问题。$ h+ e" d/ x. u: n
- O b9 F: n0 J3 h4 L例如投资场所的选址:企业要在 m 个候选位置选择若干个建厂,已知建厂费用、运输费及 n 个地区的产品需求量,应如何进行选址。7 F% K$ z: V" B+ S7 i% h; D
$ A+ D" h$ P( Q7 U
选址问题是运筹学中经典的问题之一,选址问题在生产生活、物流、甚至军事中都有着非常广泛的应用,如工厂、仓库、急救中心、消防站、垃圾处理中心、物流中心、导弹仓库的选址等。更重要的,选址问题也是数模竞赛的热点问题。( y- ]: Q+ V! v1 l$ p; b+ \1 _
% ^( d8 p% n( G- p2 R% a4 ~
选址是重要的长期决策,选址的好坏直接影响到服务方式、服务质量、服务效率、服务成本等,从而影响到利润和市场竞争力,选址问题的研究有着重大的经济、社会和军事意义。
$ N! k" L% r& a8 @, V, A2 R) }& H# v1 K% l% y5 s. A) N
选址问题有四个基本要素:设施、区域、距离和优化目标。3 [7 e/ n6 Y; J' H. F7 k% Z/ \
1.1 设施9 J. O7 X$ ]7 K+ X/ Y
选址问题加粗样式中所说的设施,在具体题目中可以是工厂、仓库、服务站等形式。
2 e0 Z! i: }# z' I- b6 M; q+ L3 Z
1.2 区域
: }$ G' w1 K: D1 O! d7 s% h: g选址问题中所说的区域,在具体题目中可以是工厂、车间的内部布局,也可以是给定的某个地区、甚至空间范围。1 w+ n! i+ F' r! Q( i0 M' P% h+ O: U
按照规划区域的特征,可以分为连续选址问题和离散选址问题。连续选址问题,设施可以布局在区域内的任意位置,就要求出最优选址的坐标;离散选址问题,只能从若干候选位置中进行选择,运筹学中的选址问题通常是这类离散选址问题。3 \. l r p6 w: R4 U! T4 n! M5 R
3 B, S( A( B1 L$ B' v
1.3 距离
, n( e" r! u+ `! i2 @( D选址问题中所说的距离,是指设施到服务对象之间的距离,在具体题目中也可以是某个选址位置的服务时间、成本、覆盖范围。如果用图论方法求解,通常就是连接顶点的边的权值。
4 H- m( c* \4 S. ?当问题所关注的是设施到服务对象之间的距离时,如果问题给出的不是顶点之间的距离,而是设施的位置坐标,要注意不是只有欧式距离,对于不同问题也可能是球面距离、曼哈顿距离、切比雪夫距离。8 {# }1 W- j* _$ u' y2 [, ?, c
% t* B0 N9 H) E, z R% ^, o$ d
1.4 优化目标
1 _* V2 q0 x# Z选址问题要求选择最好的选址位置,但选址位置只是决策变量,选择的最终目的通常是实现加权距离最短、费用最小、利润最大、时间最短,这才是优化问题的目标函数。 P3 D5 O" j+ ?- {2 E
按照目标函数的特点,可以分为:中位问题,要求总成本最小;中心问题,服务于每个客户的最大成本最小;反中心问题:服务于每个客户的最小成本最大。
( Z8 I: b' e$ V8 D1 l1 \6 o* _: m, h( `1 x0 D$ q6 `
% \) E- d/ l; ]
8 }; N" J0 ~7 s) D) s) E' w- Y2. 常见选址问题及建模% F' F3 V6 |' m% d$ h2 G# j/ u( Y
2.1 P-中位问题(P-median problem). [3 s5 Y+ a9 P6 R2 w- j
P-中位问题,假设有 N 个候选服务站和 M 个需求点,要从 N 个候选服务站中选择 P 个,使所有需求点到最近的服务站的加权距离 dij的总和最小。需求点 i 的权值,通常是指该需求点的需求量。8 k' ~) H; j/ e+ |) f+ V7 a: D
' L. w7 a1 T: [( ~# x6 y( d
这是一个 MinSum 问题,定义决策变量 xj为选中的服务站,yij将各需求点匹配到最近的服务站:4 s5 F, I+ s6 h
x j = { 1 , 服务站 j 被 选 中 0 ,服 务 站 j 未 被 选 中 ) J" N- h$ Q1 J% q3 F
yij={1,需要点i由服务站j服务 0,需要点i不由服务站j服务
" Y# e$ U$ D4 B7 t, [可以建立数学模型如下:
7 }7 M2 \; \1 `+ v! z) S0 NminDs.t.:⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧∑j∈Nwidijyij≤D,∀i∑j∈Nxj=P∑j∈Nyij=1,∀iyij−xj≤0,∀i,jxj∈{0,1},yij∈{0,1}( f( W1 }0 s+ s' x3 [& r
. a$ N2 r, d$ |4 p4 h" Q4 m P' R4 A) q3 x5 a! C7 A
3 P- v. X3 g# l! u
其中:j 为服务站,i 为需求点,dij为需求点 i 到服务站 j 的距离。如果只求需求点到最近的服务站的最大距离,则wi=1;如果要求任一需求点到最近的服务站的最大运费,则wi为需求点 i 的需求量,即加权最大距离。' V+ {; T* a' V6 N+ C$ r
( n; |5 N D& C3 d0 }/ J. O
0 m: e: o; v7 d
5 h/ u* C Y7 O7 n: Q i1 ?+ m
* f& i8 U" l8 |( D
2 `) T1 |% T4 X0 m( R& g( y |