Python小白的数学建模课---选址问题5 \6 j0 m$ k% T- U8 @- L! t
选址问题是要选择设施位置使目标达到最优,是数模竞赛中的常见题型。 小白不一定要掌握所有的选址问题,但要能判断是哪一类问题,用哪个模型。 进一步学习 PuLP工具包中处理复杂问题的字典格式快捷建模方法。 # S; t) d- v. K7 S2 v# B8 ^2 T
1. 选址问题; v+ O/ j3 b# ~% h$ p
选址问题是指在某个区域内选择设施的位置使所需的目标达到最优。选址问题也是一种互斥的计划问题。
1 o9 @" R0 U- U: _
6 ]& B& _1 P' S) I( C例如投资场所的选址:企业要在 m 个候选位置选择若干个建厂,已知建厂费用、运输费及 n 个地区的产品需求量,应如何进行选址。& f4 S) p: {/ F, ^: T6 ^" r- b
; S+ Y1 m0 F. F+ `4 I选址问题是运筹学中经典的问题之一,选址问题在生产生活、物流、甚至军事中都有着非常广泛的应用,如工厂、仓库、急救中心、消防站、垃圾处理中心、物流中心、导弹仓库的选址等。更重要的,选址问题也是数模竞赛的热点问题。
' K, m4 `6 H# l6 R
# J6 k$ d. Z M! N选址是重要的长期决策,选址的好坏直接影响到服务方式、服务质量、服务效率、服务成本等,从而影响到利润和市场竞争力,选址问题的研究有着重大的经济、社会和军事意义。6 X; [6 |2 [$ x1 S
! O+ [/ d g; P+ e$ T7 F) A
选址问题有四个基本要素:设施、区域、距离和优化目标。) q3 L; G7 Z, ]- E4 o) W9 Y- q0 N
1.1 设施" k( N/ T- d# I( K9 ]: p3 S
选址问题加粗样式中所说的设施,在具体题目中可以是工厂、仓库、服务站等形式。
' M5 w5 F! m3 f! b* F4 X- o) x/ J8 P9 p9 j
1.2 区域. H4 |: E6 B& i9 ^) W
选址问题中所说的区域,在具体题目中可以是工厂、车间的内部布局,也可以是给定的某个地区、甚至空间范围。
7 U2 m Z( H e; V1 Y& ^按照规划区域的特征,可以分为连续选址问题和离散选址问题。连续选址问题,设施可以布局在区域内的任意位置,就要求出最优选址的坐标;离散选址问题,只能从若干候选位置中进行选择,运筹学中的选址问题通常是这类离散选址问题。
5 O' p' G% ?6 D. O' f0 ]) A4 F
5 u: b0 e) m8 e1 j5 s- G2 p1.3 距离
( C8 y5 {9 X# j6 N( G0 o& J选址问题中所说的距离,是指设施到服务对象之间的距离,在具体题目中也可以是某个选址位置的服务时间、成本、覆盖范围。如果用图论方法求解,通常就是连接顶点的边的权值。$ a8 ^0 i9 \' w* _
当问题所关注的是设施到服务对象之间的距离时,如果问题给出的不是顶点之间的距离,而是设施的位置坐标,要注意不是只有欧式距离,对于不同问题也可能是球面距离、曼哈顿距离、切比雪夫距离。% M2 V! k& Q0 G3 t; _$ a9 g% E
" p6 ]4 C& `( e
1.4 优化目标. J0 j- r! X& V) T1 c+ d
选址问题要求选择最好的选址位置,但选址位置只是决策变量,选择的最终目的通常是实现加权距离最短、费用最小、利润最大、时间最短,这才是优化问题的目标函数。
1 y5 a# Z M: B& ^) \: v按照目标函数的特点,可以分为:中位问题,要求总成本最小;中心问题,服务于每个客户的最大成本最小;反中心问题:服务于每个客户的最小成本最大。
, k/ P& @6 F' z
. R: m8 I- F% a! a5 F
# a' H1 ?- G8 D' n( r7 f% j4 a: u2 [
2. 常见选址问题及建模
' a' l8 J! A3 F2 C4 r& W/ }2.1 P-中位问题(P-median problem)
9 O3 k* d0 p' ?' a! B$ IP-中位问题,假设有 N 个候选服务站和 M 个需求点,要从 N 个候选服务站中选择 P 个,使所有需求点到最近的服务站的加权距离 dij的总和最小。需求点 i 的权值,通常是指该需求点的需求量。1 e, ^7 _" o- w/ ?7 r" ]. S
; _; w ~! j, l3 U& e, E这是一个 MinSum 问题,定义决策变量 xj为选中的服务站,yij将各需求点匹配到最近的服务站:$ a. t& Z% _; D
x j = { 1 , 服务站 j 被 选 中 0 ,服 务 站 j 未 被 选 中
, e+ ?8 e( D! a/ b, cyij={1,需要点i由服务站j服务 0,需要点i不由服务站j服务
" g M f. V F. w可以建立数学模型如下:% @8 N. g8 U7 V. p+ J) T
minDs.t.:⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧∑j∈Nwidijyij≤D,∀i∑j∈Nxj=P∑j∈Nyij=1,∀iyij−xj≤0,∀i,jxj∈{0,1},yij∈{0,1}4 Q: i r) S |/ K. t! Q
8 |! E( |7 I) l3 W4 f5 F: k* Z1 ?# u# J X% F
H+ r+ g; f/ J, F/ M其中:j 为服务站,i 为需求点,dij为需求点 i 到服务站 j 的距离。如果只求需求点到最近的服务站的最大距离,则wi=1;如果要求任一需求点到最近的服务站的最大运费,则wi为需求点 i 的需求量,即加权最大距离。- ]7 r- N N) y5 a1 ~: c2 J
1 _$ [2 H: c# }2 ?0 V
7 a. S% x$ l4 ~& i, S+ ]4 ]
; P! ] g9 @4 l% v9 p- y& v( s
/ ?7 y& t3 h. s; W0 [ l : r) z- r6 I: A* R6 x
|