Python小白的数学建模课---选址问题) P* m* {, I' u
选址问题是要选择设施位置使目标达到最优,是数模竞赛中的常见题型。 小白不一定要掌握所有的选址问题,但要能判断是哪一类问题,用哪个模型。 进一步学习 PuLP工具包中处理复杂问题的字典格式快捷建模方法。 ' Y7 W! \) k/ c$ I
1. 选址问题
/ P7 d; P# n0 R; c- s) L选址问题是指在某个区域内选择设施的位置使所需的目标达到最优。选址问题也是一种互斥的计划问题。
) V/ X& C3 l: W; o7 y
0 Z% A, }# ^) x& w y2 u5 @, f例如投资场所的选址:企业要在 m 个候选位置选择若干个建厂,已知建厂费用、运输费及 n 个地区的产品需求量,应如何进行选址。
; q. G; @2 C f( a+ I# E9 C4 V4 l% N, p( [3 h. M! z
选址问题是运筹学中经典的问题之一,选址问题在生产生活、物流、甚至军事中都有着非常广泛的应用,如工厂、仓库、急救中心、消防站、垃圾处理中心、物流中心、导弹仓库的选址等。更重要的,选址问题也是数模竞赛的热点问题。
9 u) t4 v7 Z, E: ^7 v2 r. P4 Y& t/ f0 y0 G
选址是重要的长期决策,选址的好坏直接影响到服务方式、服务质量、服务效率、服务成本等,从而影响到利润和市场竞争力,选址问题的研究有着重大的经济、社会和军事意义。
/ x, ]5 }1 R8 |+ ]& f* L7 \! m3 D* }
* i6 q: f# t8 Y; P3 x- ^7 `选址问题有四个基本要素:设施、区域、距离和优化目标。
6 n% d0 w0 c- T7 z1.1 设施
4 P% J' l! h) D+ m! _5 T选址问题加粗样式中所说的设施,在具体题目中可以是工厂、仓库、服务站等形式。
" H4 Z6 x# m: G, S/ ]6 `. m2 H0 z' G. ^* @, t
1.2 区域" S4 L8 ?( ^: ^8 U
选址问题中所说的区域,在具体题目中可以是工厂、车间的内部布局,也可以是给定的某个地区、甚至空间范围。: F. o4 Y5 z+ F) w/ y! j7 O
按照规划区域的特征,可以分为连续选址问题和离散选址问题。连续选址问题,设施可以布局在区域内的任意位置,就要求出最优选址的坐标;离散选址问题,只能从若干候选位置中进行选择,运筹学中的选址问题通常是这类离散选址问题。. d+ U; }- `3 E( r
* |: o e% h3 L6 b) q8 V1.3 距离
. t: G5 t: G( @. W V% p9 \9 \; z选址问题中所说的距离,是指设施到服务对象之间的距离,在具体题目中也可以是某个选址位置的服务时间、成本、覆盖范围。如果用图论方法求解,通常就是连接顶点的边的权值。, V( L% O3 e) i1 z/ ^3 U
当问题所关注的是设施到服务对象之间的距离时,如果问题给出的不是顶点之间的距离,而是设施的位置坐标,要注意不是只有欧式距离,对于不同问题也可能是球面距离、曼哈顿距离、切比雪夫距离。- k2 v& B; `6 [ u! Z4 Q
# X* v% \3 u1 D0 j- O
1.4 优化目标
3 x3 x. E9 Q, W: O9 d4 Q4 i选址问题要求选择最好的选址位置,但选址位置只是决策变量,选择的最终目的通常是实现加权距离最短、费用最小、利润最大、时间最短,这才是优化问题的目标函数。 O7 L) d; a1 C) F, G
按照目标函数的特点,可以分为:中位问题,要求总成本最小;中心问题,服务于每个客户的最大成本最小;反中心问题:服务于每个客户的最小成本最大。
- J) U7 P+ @. l9 C0 i) c& O; _
& E0 M; n4 d* |" t3 w1 h- Z; U# z, @- L% S6 ?; Z9 ^
" D7 n% z8 T' H( `# Y; n; S
2. 常见选址问题及建模0 h4 L. b* P w
2.1 P-中位问题(P-median problem)/ g6 y! _0 _# Q" w8 H. M5 z
P-中位问题,假设有 N 个候选服务站和 M 个需求点,要从 N 个候选服务站中选择 P 个,使所有需求点到最近的服务站的加权距离 dij的总和最小。需求点 i 的权值,通常是指该需求点的需求量。+ H- H- X% U+ N8 l1 |' {5 e
& y# |+ Y" `6 J5 D1 h# V. l
这是一个 MinSum 问题,定义决策变量 xj为选中的服务站,yij将各需求点匹配到最近的服务站:
, x) p; A) p: ]% U- T3 Hx j = { 1 , 服务站 j 被 选 中 0 ,服 务 站 j 未 被 选 中
) z% k( C: S& _1 W+ K* Hyij={1,需要点i由服务站j服务 0,需要点i不由服务站j服务7 u; F: D8 }! r6 N: H
可以建立数学模型如下:6 w1 Q @7 h- D" v
minDs.t.:⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧∑j∈Nwidijyij≤D,∀i∑j∈Nxj=P∑j∈Nyij=1,∀iyij−xj≤0,∀i,jxj∈{0,1},yij∈{0,1}# G! I/ y* A% s6 \" l7 Y, l
. q v! a3 R: h: g5 X$ `/ N, M
$ f# o; z+ {6 e& U' Y! t3 v5 r
7 Q2 T- f+ f9 H9 ^* r: b
其中:j 为服务站,i 为需求点,dij为需求点 i 到服务站 j 的距离。如果只求需求点到最近的服务站的最大距离,则wi=1;如果要求任一需求点到最近的服务站的最大运费,则wi为需求点 i 的需求量,即加权最大距离。
' p) d3 C1 y, q' l1 c4 v/ n' y: Z" H7 U3 H5 l
0 ?9 h+ M: n. G6 b. a
9 U4 \2 m' E1 r5 m( i& Z& o
- h+ o( q: m" p' U: C& s
$ V7 A5 `% _$ o4 W0 Y6 B |