Python小白的数学建模课---选址问题8 H: h( w. L) Q e& p4 I
选址问题是要选择设施位置使目标达到最优,是数模竞赛中的常见题型。 小白不一定要掌握所有的选址问题,但要能判断是哪一类问题,用哪个模型。 进一步学习 PuLP工具包中处理复杂问题的字典格式快捷建模方法。 $ b9 q% e2 a" b) H2 Y; s
1. 选址问题
2 d- f$ U7 Q2 _9 b2 U选址问题是指在某个区域内选择设施的位置使所需的目标达到最优。选址问题也是一种互斥的计划问题。5 {5 U( _/ k" m+ h- `5 @* Q
' h2 n1 q5 D: o& r8 _例如投资场所的选址:企业要在 m 个候选位置选择若干个建厂,已知建厂费用、运输费及 n 个地区的产品需求量,应如何进行选址。
1 @/ \9 [5 G, X" e0 S- E- h% t
( K, l: Q) p8 R7 L5 W% h选址问题是运筹学中经典的问题之一,选址问题在生产生活、物流、甚至军事中都有着非常广泛的应用,如工厂、仓库、急救中心、消防站、垃圾处理中心、物流中心、导弹仓库的选址等。更重要的,选址问题也是数模竞赛的热点问题。1 D. `. j4 } |
% T3 L, |( A" H! h% _, s选址是重要的长期决策,选址的好坏直接影响到服务方式、服务质量、服务效率、服务成本等,从而影响到利润和市场竞争力,选址问题的研究有着重大的经济、社会和军事意义。
* J% v, F5 L4 v0 a; G4 y9 t- S9 y/ W1 D+ a4 l! A
选址问题有四个基本要素:设施、区域、距离和优化目标。! ? U) |/ O$ O& c; U4 K; y k
1.1 设施
0 c9 g& m4 V- ?% z1 T5 W& V6 T' G选址问题加粗样式中所说的设施,在具体题目中可以是工厂、仓库、服务站等形式。
! i- M8 ]8 \" J. O( ]) ~
5 r S6 D( V2 ?0 r1 }% M, q1.2 区域* r! s6 U l: T1 I! R8 o) q
选址问题中所说的区域,在具体题目中可以是工厂、车间的内部布局,也可以是给定的某个地区、甚至空间范围。" s" U2 m1 b. w; R0 ^- U
按照规划区域的特征,可以分为连续选址问题和离散选址问题。连续选址问题,设施可以布局在区域内的任意位置,就要求出最优选址的坐标;离散选址问题,只能从若干候选位置中进行选择,运筹学中的选址问题通常是这类离散选址问题。4 @8 J( _9 w9 M# n9 ~
T" J& E* c4 W7 A; f- ~; U1.3 距离( u u7 `& v9 @
选址问题中所说的距离,是指设施到服务对象之间的距离,在具体题目中也可以是某个选址位置的服务时间、成本、覆盖范围。如果用图论方法求解,通常就是连接顶点的边的权值。
% x) ^& @# l1 w7 g- P当问题所关注的是设施到服务对象之间的距离时,如果问题给出的不是顶点之间的距离,而是设施的位置坐标,要注意不是只有欧式距离,对于不同问题也可能是球面距离、曼哈顿距离、切比雪夫距离。1 l! T3 I2 S6 r$ R2 F3 J
) y- O: O) y0 |6 [
1.4 优化目标3 Z+ ^, {- J$ y5 n4 Y! v
选址问题要求选择最好的选址位置,但选址位置只是决策变量,选择的最终目的通常是实现加权距离最短、费用最小、利润最大、时间最短,这才是优化问题的目标函数。
; g( K/ _9 J" n) M3 \7 e按照目标函数的特点,可以分为:中位问题,要求总成本最小;中心问题,服务于每个客户的最大成本最小;反中心问题:服务于每个客户的最小成本最大。
. ~: \# S3 n/ z0 j1 s7 e
( R! H' N$ N) m, n& T; |
( A& i7 Q& G/ s7 q7 q& m4 c6 f3 T: b( B. I- b
2. 常见选址问题及建模
: A6 u5 I; x h% o2.1 P-中位问题(P-median problem)2 j3 R. I1 g, h4 l7 k0 h
P-中位问题,假设有 N 个候选服务站和 M 个需求点,要从 N 个候选服务站中选择 P 个,使所有需求点到最近的服务站的加权距离 dij的总和最小。需求点 i 的权值,通常是指该需求点的需求量。# W! D2 {6 Z& a c6 r
" _0 u: ^4 U o+ F这是一个 MinSum 问题,定义决策变量 xj为选中的服务站,yij将各需求点匹配到最近的服务站:, k: l0 B" ?0 w+ W) }: s
x j = { 1 , 服务站 j 被 选 中 0 ,服 务 站 j 未 被 选 中 ' X: ?3 p) o2 R: H
yij={1,需要点i由服务站j服务 0,需要点i不由服务站j服务& L0 D4 `/ X( s2 v* A
可以建立数学模型如下:
( A! P' I! N7 A) m5 PminDs.t.:⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧∑j∈Nwidijyij≤D,∀i∑j∈Nxj=P∑j∈Nyij=1,∀iyij−xj≤0,∀i,jxj∈{0,1},yij∈{0,1}
9 l7 h& G; F% E0 k) e; B0 B3 O9 e8 G4 a+ G8 ]3 ^ q
2 w! `$ b5 @! B U& @4 P+ X4 a; E c
其中:j 为服务站,i 为需求点,dij为需求点 i 到服务站 j 的距离。如果只求需求点到最近的服务站的最大距离,则wi=1;如果要求任一需求点到最近的服务站的最大运费,则wi为需求点 i 的需求量,即加权最大距离。; ~" p4 x; {" R/ m3 A/ Z
/ ~1 I6 U0 B& f' p8 M4 D
7 R3 B9 n/ m! A( K3 s( U
0 F& Z1 i6 \0 F# v2 H& Z6 h0 w3 M4 H
* B: F$ l$ K; P* A- \; h$ G2 J |