Python小白的数学建模课---选址问题
& u+ ?* b. u8 I! E6 |0 d5 W选址问题是要选择设施位置使目标达到最优,是数模竞赛中的常见题型。 小白不一定要掌握所有的选址问题,但要能判断是哪一类问题,用哪个模型。 进一步学习 PuLP工具包中处理复杂问题的字典格式快捷建模方法。
! D9 F* i" X& e: J S6 ^! t, q1. 选址问题
# \, h. o7 V: C$ t选址问题是指在某个区域内选择设施的位置使所需的目标达到最优。选址问题也是一种互斥的计划问题。
/ G5 B" E, S! \8 ^# h6 r; f" l2 H ?5 |" x2 ]3 w
例如投资场所的选址:企业要在 m 个候选位置选择若干个建厂,已知建厂费用、运输费及 n 个地区的产品需求量,应如何进行选址。
% s, C Q# X2 z: s" Y) G8 ~: g& k* m( q) ~
选址问题是运筹学中经典的问题之一,选址问题在生产生活、物流、甚至军事中都有着非常广泛的应用,如工厂、仓库、急救中心、消防站、垃圾处理中心、物流中心、导弹仓库的选址等。更重要的,选址问题也是数模竞赛的热点问题。8 i4 I3 [5 s0 s9 p
$ J) R3 k$ O) j+ M选址是重要的长期决策,选址的好坏直接影响到服务方式、服务质量、服务效率、服务成本等,从而影响到利润和市场竞争力,选址问题的研究有着重大的经济、社会和军事意义。
+ H( V4 s$ W/ K0 a7 c/ {& G, I0 A1 e. B5 a+ ?2 F4 l) Y; D. X: X
选址问题有四个基本要素:设施、区域、距离和优化目标。
3 e% U, W$ j' m7 q1.1 设施* M: P. u) S; L4 v+ h4 M
选址问题加粗样式中所说的设施,在具体题目中可以是工厂、仓库、服务站等形式。
! y. G+ Y y; c2 V+ W/ L4 p9 c F2 u* z9 v. H3 h2 O7 ^
1.2 区域# B9 O# h7 Z: n" M
选址问题中所说的区域,在具体题目中可以是工厂、车间的内部布局,也可以是给定的某个地区、甚至空间范围。
# ]8 l# l; E% `3 g2 k/ _! I( A按照规划区域的特征,可以分为连续选址问题和离散选址问题。连续选址问题,设施可以布局在区域内的任意位置,就要求出最优选址的坐标;离散选址问题,只能从若干候选位置中进行选择,运筹学中的选址问题通常是这类离散选址问题。
2 |% U) C Y5 D; h* L4 n; D2 t6 T
5 g* b1 b. N$ x3 N1.3 距离* J$ d4 Z' U! z* _' W6 W! ^' T7 m3 w
选址问题中所说的距离,是指设施到服务对象之间的距离,在具体题目中也可以是某个选址位置的服务时间、成本、覆盖范围。如果用图论方法求解,通常就是连接顶点的边的权值。3 f: }. t( q, m0 K% \3 Y j; K
当问题所关注的是设施到服务对象之间的距离时,如果问题给出的不是顶点之间的距离,而是设施的位置坐标,要注意不是只有欧式距离,对于不同问题也可能是球面距离、曼哈顿距离、切比雪夫距离。
- @; E/ [3 ~% j; \3 |5 C; J( I Y& o: \7 V9 M
1.4 优化目标/ A i' j' [: C
选址问题要求选择最好的选址位置,但选址位置只是决策变量,选择的最终目的通常是实现加权距离最短、费用最小、利润最大、时间最短,这才是优化问题的目标函数。 X$ ?1 ~1 o/ w y1 @
按照目标函数的特点,可以分为:中位问题,要求总成本最小;中心问题,服务于每个客户的最大成本最小;反中心问题:服务于每个客户的最小成本最大。
3 A& h4 Q ?9 C* I: \
6 P; m% t6 z% |6 B6 o5 D1 |- N, |$ ]/ j/ q* i
; ^# G; e4 ]- N, y8 R$ i9 I
2. 常见选址问题及建模
* p. H4 _* w/ P" f' l; j9 A) @2.1 P-中位问题(P-median problem)
& }! }0 D/ m: R: B/ SP-中位问题,假设有 N 个候选服务站和 M 个需求点,要从 N 个候选服务站中选择 P 个,使所有需求点到最近的服务站的加权距离 dij的总和最小。需求点 i 的权值,通常是指该需求点的需求量。; f0 |5 k; b. `; [- C
$ {, t" q. v/ }7 C2 L' y这是一个 MinSum 问题,定义决策变量 xj为选中的服务站,yij将各需求点匹配到最近的服务站:7 |* }3 V1 K$ |3 Q3 O0 f0 M7 c" t
x j = { 1 , 服务站 j 被 选 中 0 ,服 务 站 j 未 被 选 中
5 p r$ o) J1 ?& M1 |# Ryij={1,需要点i由服务站j服务 0,需要点i不由服务站j服务
! _4 q; L. h) ? x可以建立数学模型如下:
& k4 e$ C# ^$ j) X' ]minDs.t.:⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧∑j∈Nwidijyij≤D,∀i∑j∈Nxj=P∑j∈Nyij=1,∀iyij−xj≤0,∀i,jxj∈{0,1},yij∈{0,1}6 n% l# I' _, Z0 Y% u' T
, ~" u% T9 \ R! T8 z
1 C W0 a8 }% m0 o. q0 z& g2 [8 }, a9 o1 D
其中:j 为服务站,i 为需求点,dij为需求点 i 到服务站 j 的距离。如果只求需求点到最近的服务站的最大距离,则wi=1;如果要求任一需求点到最近的服务站的最大运费,则wi为需求点 i 的需求量,即加权最大距离。% E; [$ h- X5 G3 m
3 U; X* w; I. R4 r+ @' X. w+ Z; e# e* N) O) T& l# q& y
$ u0 m2 Z7 K/ N
& F' e/ q+ \ k* o3 {6 I- y8 z5 x
1 d5 \: u0 r: D4 ~ |