Python小白的数学建模课---选址问题( X8 p" n7 v' M& v% |3 {# }. }
选址问题是要选择设施位置使目标达到最优,是数模竞赛中的常见题型。 小白不一定要掌握所有的选址问题,但要能判断是哪一类问题,用哪个模型。 进一步学习 PuLP工具包中处理复杂问题的字典格式快捷建模方法。
' Q0 H# d$ a s2 Q1. 选址问题
$ S: r6 A( J$ ?& A3 W选址问题是指在某个区域内选择设施的位置使所需的目标达到最优。选址问题也是一种互斥的计划问题。
( `" h; L! I$ N
8 h" {5 J+ M* x例如投资场所的选址:企业要在 m 个候选位置选择若干个建厂,已知建厂费用、运输费及 n 个地区的产品需求量,应如何进行选址。
2 l3 o0 d- b! q: u# r2 f2 N6 }' g& s) Q
选址问题是运筹学中经典的问题之一,选址问题在生产生活、物流、甚至军事中都有着非常广泛的应用,如工厂、仓库、急救中心、消防站、垃圾处理中心、物流中心、导弹仓库的选址等。更重要的,选址问题也是数模竞赛的热点问题。
) X( U, r2 p2 b7 o' d3 j0 ~6 S, h+ `* ^7 a3 S' K1 ^+ U4 F
选址是重要的长期决策,选址的好坏直接影响到服务方式、服务质量、服务效率、服务成本等,从而影响到利润和市场竞争力,选址问题的研究有着重大的经济、社会和军事意义。) K% I' Q) r2 F c' X7 G2 r% @
9 K4 U! j( k6 |/ K$ T: g
选址问题有四个基本要素:设施、区域、距离和优化目标。. i! @$ V. s2 x( l! M+ Y& u4 j
1.1 设施
. U. G% T$ v: X- T2 Y选址问题加粗样式中所说的设施,在具体题目中可以是工厂、仓库、服务站等形式。
! p s# [# ~& v( ^" H2 a1 W3 U
6 @$ P$ L$ ^' J" m& z5 w1.2 区域. g2 M: D, }1 w( y# F
选址问题中所说的区域,在具体题目中可以是工厂、车间的内部布局,也可以是给定的某个地区、甚至空间范围。5 b$ D* ~+ y4 Z! F4 H
按照规划区域的特征,可以分为连续选址问题和离散选址问题。连续选址问题,设施可以布局在区域内的任意位置,就要求出最优选址的坐标;离散选址问题,只能从若干候选位置中进行选择,运筹学中的选址问题通常是这类离散选址问题。
( u" |+ g' y( I# T# s" G
$ n* n/ e$ @# f6 N- h4 B1.3 距离
6 d$ T @! d L+ }5 V3 k; X- @9 Y选址问题中所说的距离,是指设施到服务对象之间的距离,在具体题目中也可以是某个选址位置的服务时间、成本、覆盖范围。如果用图论方法求解,通常就是连接顶点的边的权值。
" Z4 |" @8 e" K7 u; L当问题所关注的是设施到服务对象之间的距离时,如果问题给出的不是顶点之间的距离,而是设施的位置坐标,要注意不是只有欧式距离,对于不同问题也可能是球面距离、曼哈顿距离、切比雪夫距离。
( a% u0 o* a1 b% |2 n' N
) o% B+ S& K, d2 Z/ K, f/ Q4 {1.4 优化目标
7 W' p, \+ m ~选址问题要求选择最好的选址位置,但选址位置只是决策变量,选择的最终目的通常是实现加权距离最短、费用最小、利润最大、时间最短,这才是优化问题的目标函数。
" m7 u# o1 H1 m( f" z; ]按照目标函数的特点,可以分为:中位问题,要求总成本最小;中心问题,服务于每个客户的最大成本最小;反中心问题:服务于每个客户的最小成本最大。5 t) f% B4 Z3 h, }) N& n7 u
) z/ Y5 E" H7 a# J8 M
1 s9 [: B( d: I! ]8 b- e. z. T3 Z$ m( T, K6 a
2. 常见选址问题及建模
+ w, U1 X( h [4 O+ V) e- W) ^" g2.1 P-中位问题(P-median problem)
- R: R8 U* h: K* ~$ d4 R* SP-中位问题,假设有 N 个候选服务站和 M 个需求点,要从 N 个候选服务站中选择 P 个,使所有需求点到最近的服务站的加权距离 dij的总和最小。需求点 i 的权值,通常是指该需求点的需求量。
% z# m! d# i2 Y, S) k5 t. x7 C* ?1 L
这是一个 MinSum 问题,定义决策变量 xj为选中的服务站,yij将各需求点匹配到最近的服务站:6 c, g7 I, G5 `2 h# C# y
x j = { 1 , 服务站 j 被 选 中 0 ,服 务 站 j 未 被 选 中
+ g9 G0 O5 T: R5 H0 u) Eyij={1,需要点i由服务站j服务 0,需要点i不由服务站j服务) ?; W5 S$ ]$ ?$ `6 \
可以建立数学模型如下:
9 R9 M4 A/ _# h" b; gminDs.t.:⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧∑j∈Nwidijyij≤D,∀i∑j∈Nxj=P∑j∈Nyij=1,∀iyij−xj≤0,∀i,jxj∈{0,1},yij∈{0,1}: C4 Z {1 t8 j% K: t7 {
1 e; [$ z5 Q8 L- j2 R1 f4 S0 r: g& I2 t% n* `- k
k: C* b7 E2 S0 D
其中:j 为服务站,i 为需求点,dij为需求点 i 到服务站 j 的距离。如果只求需求点到最近的服务站的最大距离,则wi=1;如果要求任一需求点到最近的服务站的最大运费,则wi为需求点 i 的需求量,即加权最大距离。
7 @. q R0 \2 n& N
5 ^ K u5 e/ ^/ |" O- j8 X! }! ^" N1 ?$ U
1 }2 N: r3 z( k0 Z1 _
" d4 x% X6 Q0 h& K0 f6 U 1 h- x7 R" l* G- f3 t+ V
|