Python小白的数学建模课---选址问题9 O! a* a8 u$ M5 d1 s
选址问题是要选择设施位置使目标达到最优,是数模竞赛中的常见题型。 小白不一定要掌握所有的选址问题,但要能判断是哪一类问题,用哪个模型。 进一步学习 PuLP工具包中处理复杂问题的字典格式快捷建模方法。
2 t( ]" k, z9 |4 q" w4 V1 \! \1. 选址问题
0 c, z1 o8 t% _( W4 e' [$ \( ~9 S, C选址问题是指在某个区域内选择设施的位置使所需的目标达到最优。选址问题也是一种互斥的计划问题。$ ~; m4 c- e9 m, V
( Z1 L, K% E8 x; ?
例如投资场所的选址:企业要在 m 个候选位置选择若干个建厂,已知建厂费用、运输费及 n 个地区的产品需求量,应如何进行选址。
) E% B! P) s8 f9 Z# {; Y" E8 Q6 |; d' g& D
选址问题是运筹学中经典的问题之一,选址问题在生产生活、物流、甚至军事中都有着非常广泛的应用,如工厂、仓库、急救中心、消防站、垃圾处理中心、物流中心、导弹仓库的选址等。更重要的,选址问题也是数模竞赛的热点问题。6 t) \" T0 @& @5 h
, x2 w( J/ E! `2 t3 M) H/ z选址是重要的长期决策,选址的好坏直接影响到服务方式、服务质量、服务效率、服务成本等,从而影响到利润和市场竞争力,选址问题的研究有着重大的经济、社会和军事意义。. Y8 t- |& {( _* r
! d0 H! Q* h. ~5 R+ z- x- _; O选址问题有四个基本要素:设施、区域、距离和优化目标。$ k3 t1 y7 h. q! q* n1 j* J* u
1.1 设施! j! q0 P: U5 M6 m/ u: z( ]5 k8 w
选址问题加粗样式中所说的设施,在具体题目中可以是工厂、仓库、服务站等形式。 B) @6 s1 V9 z! n. n
% d) ~8 m4 K5 e4 Z; H4 ?
1.2 区域
3 S" {. y3 ~4 X1 r8 s6 @! m选址问题中所说的区域,在具体题目中可以是工厂、车间的内部布局,也可以是给定的某个地区、甚至空间范围。- R l+ k" p' q; N
按照规划区域的特征,可以分为连续选址问题和离散选址问题。连续选址问题,设施可以布局在区域内的任意位置,就要求出最优选址的坐标;离散选址问题,只能从若干候选位置中进行选择,运筹学中的选址问题通常是这类离散选址问题。6 v; c2 ?" M( `2 e
9 Q1 |% ?# @; o2 L; \
1.3 距离
2 T1 \* F s& N% W选址问题中所说的距离,是指设施到服务对象之间的距离,在具体题目中也可以是某个选址位置的服务时间、成本、覆盖范围。如果用图论方法求解,通常就是连接顶点的边的权值。! p) k! P( m, @: m* \
当问题所关注的是设施到服务对象之间的距离时,如果问题给出的不是顶点之间的距离,而是设施的位置坐标,要注意不是只有欧式距离,对于不同问题也可能是球面距离、曼哈顿距离、切比雪夫距离。2 Y. e. b/ d; J' I4 r
/ K( R8 O) D9 c$ p
1.4 优化目标
: \) Z \3 Z" X选址问题要求选择最好的选址位置,但选址位置只是决策变量,选择的最终目的通常是实现加权距离最短、费用最小、利润最大、时间最短,这才是优化问题的目标函数。* l9 X1 S* N% X' Z
按照目标函数的特点,可以分为:中位问题,要求总成本最小;中心问题,服务于每个客户的最大成本最小;反中心问题:服务于每个客户的最小成本最大。( N7 I5 G2 [5 Y' _0 G% Y
7 `: X* @& u- _) A0 s! H0 D
% x0 S3 Q/ _2 Q1 M0 p
. O, r% |2 ~; b! D9 y
2. 常见选址问题及建模
, P8 }" @+ e5 k3 ?2.1 P-中位问题(P-median problem)/ n. N' {; f8 @- p9 g
P-中位问题,假设有 N 个候选服务站和 M 个需求点,要从 N 个候选服务站中选择 P 个,使所有需求点到最近的服务站的加权距离 dij的总和最小。需求点 i 的权值,通常是指该需求点的需求量。
& `' W" O$ F0 w4 r5 d9 Y/ h8 H. I1 z X# \% u: Y; m; x
这是一个 MinSum 问题,定义决策变量 xj为选中的服务站,yij将各需求点匹配到最近的服务站:& r/ N& a% k/ a) ^ ^
x j = { 1 , 服务站 j 被 选 中 0 ,服 务 站 j 未 被 选 中 3 M1 b) @/ d# P
yij={1,需要点i由服务站j服务 0,需要点i不由服务站j服务, S) M/ \3 v- H! |9 s$ _0 i5 i
可以建立数学模型如下:. H' i; i* q( ~9 f
minDs.t.:⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧∑j∈Nwidijyij≤D,∀i∑j∈Nxj=P∑j∈Nyij=1,∀iyij−xj≤0,∀i,jxj∈{0,1},yij∈{0,1}) O$ ^! L, R4 W! F) F% x
$ F& z' Z% Y' i6 ]. q: v3 L6 M9 Y3 b; K7 k
3 C/ N) V9 q4 H其中:j 为服务站,i 为需求点,dij为需求点 i 到服务站 j 的距离。如果只求需求点到最近的服务站的最大距离,则wi=1;如果要求任一需求点到最近的服务站的最大运费,则wi为需求点 i 的需求量,即加权最大距离。* L0 ?% G4 B! a" Y# {
4 ]4 R R) z3 r; `% j A
4 v3 k! ]7 h& h* V4 S
0 n9 I/ X* _* M' t2 ^
. k. \& h+ M7 a6 ]3 F4 B0 v! n- G
8 a5 Q- G4 d7 `! _8 \' f |