Python小白的数学建模课---选址问题
1 Z& B. j3 ^3 Y! y: l选址问题是要选择设施位置使目标达到最优,是数模竞赛中的常见题型。 小白不一定要掌握所有的选址问题,但要能判断是哪一类问题,用哪个模型。 进一步学习 PuLP工具包中处理复杂问题的字典格式快捷建模方法。 , F/ _% E- e+ ~: R [* b9 ?8 \
1. 选址问题: S4 w0 I; \; O9 F
选址问题是指在某个区域内选择设施的位置使所需的目标达到最优。选址问题也是一种互斥的计划问题。
6 P; U' p- f0 p8 m B1 i* C
. d! i* g0 P5 ]0 X7 N/ L例如投资场所的选址:企业要在 m 个候选位置选择若干个建厂,已知建厂费用、运输费及 n 个地区的产品需求量,应如何进行选址。+ ^1 q2 `: d5 d4 G
7 n, g5 H1 i$ y, \8 T/ o
选址问题是运筹学中经典的问题之一,选址问题在生产生活、物流、甚至军事中都有着非常广泛的应用,如工厂、仓库、急救中心、消防站、垃圾处理中心、物流中心、导弹仓库的选址等。更重要的,选址问题也是数模竞赛的热点问题。
7 N3 K, O x# F5 S
. E- @( E8 u* U$ R2 c选址是重要的长期决策,选址的好坏直接影响到服务方式、服务质量、服务效率、服务成本等,从而影响到利润和市场竞争力,选址问题的研究有着重大的经济、社会和军事意义。
. O: v6 f, b( m+ D
' P- o6 K6 H, f' k. d5 v选址问题有四个基本要素:设施、区域、距离和优化目标。! U" n+ m- _. T( E1 y; o
1.1 设施
" j2 Y% D) S' _选址问题加粗样式中所说的设施,在具体题目中可以是工厂、仓库、服务站等形式。
5 `7 e# G" \& j7 v: G5 F
6 Y/ |( ^' ]! N! N5 L2 W1.2 区域: m# r' U8 D: J/ P3 R
选址问题中所说的区域,在具体题目中可以是工厂、车间的内部布局,也可以是给定的某个地区、甚至空间范围。, {) A' T& H0 `; D
按照规划区域的特征,可以分为连续选址问题和离散选址问题。连续选址问题,设施可以布局在区域内的任意位置,就要求出最优选址的坐标;离散选址问题,只能从若干候选位置中进行选择,运筹学中的选址问题通常是这类离散选址问题。) v, I+ t. y5 @
8 V7 k: S- R8 W
1.3 距离5 M: I; ?; V( V/ J
选址问题中所说的距离,是指设施到服务对象之间的距离,在具体题目中也可以是某个选址位置的服务时间、成本、覆盖范围。如果用图论方法求解,通常就是连接顶点的边的权值。8 e I2 E* H. F8 _6 P+ M
当问题所关注的是设施到服务对象之间的距离时,如果问题给出的不是顶点之间的距离,而是设施的位置坐标,要注意不是只有欧式距离,对于不同问题也可能是球面距离、曼哈顿距离、切比雪夫距离。
( M, @+ @, m/ N, y
& }' e6 M0 u ?6 S6 B' Y1.4 优化目标
" {+ z) Q. X0 l& h3 {& n' H+ Y: W4 m选址问题要求选择最好的选址位置,但选址位置只是决策变量,选择的最终目的通常是实现加权距离最短、费用最小、利润最大、时间最短,这才是优化问题的目标函数。- R4 y1 f9 @( z$ ^& o# I8 ?) @* i: P
按照目标函数的特点,可以分为:中位问题,要求总成本最小;中心问题,服务于每个客户的最大成本最小;反中心问题:服务于每个客户的最小成本最大。
9 K. E- ]6 v7 ~/ @. l9 @/ \+ K% b0 t/ z
8 N" h& Z, D9 g& a
" u+ h. W% \( w( m5 ~2. 常见选址问题及建模2 v7 E9 [+ D. L& r6 Y9 o& H* S
2.1 P-中位问题(P-median problem)% e/ M5 }3 D+ H4 h
P-中位问题,假设有 N 个候选服务站和 M 个需求点,要从 N 个候选服务站中选择 P 个,使所有需求点到最近的服务站的加权距离 dij的总和最小。需求点 i 的权值,通常是指该需求点的需求量。' M- l+ T: r1 E$ {" S+ w
0 g7 j, d0 \* M7 h3 I% o1 p& K这是一个 MinSum 问题,定义决策变量 xj为选中的服务站,yij将各需求点匹配到最近的服务站:) j3 |3 V' ?6 F. y+ \% c1 q C
x j = { 1 , 服务站 j 被 选 中 0 ,服 务 站 j 未 被 选 中 ( Q2 a2 F( F$ F
yij={1,需要点i由服务站j服务 0,需要点i不由服务站j服务
% g& h# g/ z" `" N2 Y3 w- j; A可以建立数学模型如下:
) u( p) A, z/ T) J$ kminDs.t.:⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧∑j∈Nwidijyij≤D,∀i∑j∈Nxj=P∑j∈Nyij=1,∀iyij−xj≤0,∀i,jxj∈{0,1},yij∈{0,1}
2 P# P) |* B) @ ]7 R1 x, V
/ N. k% y H# V0 _* q
2 F) \3 k0 q- g; ?' v& h
4 h0 j& i6 }' b( k \; D其中:j 为服务站,i 为需求点,dij为需求点 i 到服务站 j 的距离。如果只求需求点到最近的服务站的最大距离,则wi=1;如果要求任一需求点到最近的服务站的最大运费,则wi为需求点 i 的需求量,即加权最大距离。
& a6 o* g* |' t2 C
1 m3 L' g$ q, L B4 D; [% @% G' j0 h9 a
0 P8 D0 ?; q% @
; H, _# \& M0 e! p , F( a4 D- u0 j1 N& }6 z
|