数学建模社区-数学中国

标题: 消防车调度问题 :用数学建模优化生产与服务运作中的管理问题 [打印本页]

作者: 浅夏110    时间: 2020-6-17 09:20
标题: 消防车调度问题 :用数学建模优化生产与服务运作中的管理问题
问题描述: 某市消防中心同时接到了三处火警电话。根据当前的火势,三处火警地点分 别需要 2 辆、2 辆和 3 辆消防车前往灭火。三处火警地点的损失将依赖于消防车到达的及时程度:记  为第 j 辆消防车到达火警地点i的时间,则三处火警地点的损失分别为  ~; m8 l2 H3 r2 J3 v9 w- z/ [

/ H; }) n4 \. p/ @& D# C! T  ~8 J  T# p- ?  T; h! s' k6 h) K( q
   ; 。目前可供消防中心调度的消防车正好有 7辆,分别属于三个消防站(可用消防车数量分别为 3 辆、2 辆、2 辆)。消防车从三个消 防站到三个火警地点所需要的时间如表 6 所示。应如何调度消防车,才能使总损失最 小?
  `% \, X9 }  G( _
' l9 i3 F" m* U% k# i/ |( A' R* U2 Z, ]
3 v2 B  a3 h9 R$ b# N
问题二:如果三处火警地点的损失分别为 ;,调度方案是否需要改变?
' P/ _2 U0 X+ E6 B5 A( A7 P
% Y7 f# N. m  n8 t" U( Q4 v) j
, E' i: i) k* u) S! I& V. H- j, z' p% c: q* D2 n5 r3 j
(1)问题分析
  W5 R0 Z8 J6 _8 o" n$ j; F6 O; k3 z2 [( Z! X
本题考虑的是为每个火警地点分配消防车的问题,初步看来与线性规划中经典的运输问题有些类似。本题的问题可以看成是指派问题和运输问题的一种变形,我们下面首先把它变成一个运输问题建模求解。
  G! k8 [" M2 v5 U. @* f7 B! \, n9 P4 G2 i( D
(2)决策变量5 h! W8 j7 b: V9 L2 J3 Z; z) K
% a* k& @+ [, Y+ y  h% O
为了用运输问题建模求解,我们很自然地把 3 个消防站看成供应点。如果直接把 3 个火警地点看成需求点,我们却不能很方便地描述消防车到达的先后次序,因此难以确 定损失的大小。下面我们把 7 辆车的需求分别看成 7 个需求点(分别对应于到达时间 . 用   表示消防站i是否向第 j 个需求点派车(1 表示派车,0表示不派车),则共有 21 个  0−1 变量.3 |% T) k7 F$ h6 L# C3 T4 d$ {3 o! r

: z9 q8 F% z' z0 P2 Z: t(3)模型建立
5 P5 C7 k6 O/ |( q/ K7 T% T
7 w1 F% c' Y$ K9 @# Z题目中给出的损失函数都是消防车到达时间的线性函数,所以由所给数据进行简 单的计算可知,如果消防站 1 向第 6 个需求点派车(即消防站 1 向火警地点 3 派车但该 消防车是到达火警地点 3 的第二辆车),则由此引起的损失为 72 98 = × 。同理计算,可以得到损失矩阵如表 7 所示(元素分别记为 )。 8 v6 [/ C, y6 ]+ Y3 p& [: h
# h& z0 {( v4 O% k2 E2 Y

4 l+ e# W6 a  t/ w) ~  G7 n$ J- ^1 C% N; |: D- Q
1 h. O& d& m2 M: ]& O
* J8 \3 E, y% _9 m: @- X* u/ j
+ D$ ~0 y0 r% H9 C" k
于是,使总损失最小的决策目标为  a; ^! o% v- ^0 }
+ e, t" l( V' k8 P4 c: P% i" h
                     ( 1 )7 k* w4 k( q6 r& [- w; j5 E3 ?

+ [, w" T& |( a8 r  ^' A约束条件:
  c1 U) b0 ^# \3 b+ M8 C3 ~7 C3 f" ^: j
约束条件有两类,一类是消防站拥有的消防车的数量限制,另一类是 各需求点对消防车的需求量限制。 - p! p. ]8 _* @3 x6 W* }
记   ( i=1,2,3 )为第i个消防站拥有消防车的数量,则消防站拥有的消防车的数量限制可以表示为 + U) Z3 A% p$ W
                        (  2 )
% }- W! _2 z' j7 d/ z2 W) W  N6 y* _9 r
各需求点对消防车的需求量限制可以表示为 & I+ Z2 n/ I3 A9 c: j% ?: M

4 t, S0 |( F" X. p3 e8 O( O! ]  q           (  3 )% T, F7 P5 u$ C8 v
1 O6 n$ n+ X, R2 N; v
(4)模型求解 的lingo代码) H0 S' i8 b6 k4 v1 S# O+ Y1 o
4 U% Y; ^& V' T0 L4 m- I7 L
MODEL: 8 ~, [3 S& |; }+ c7 V; y
TITLE 消防车问题;
% F9 n3 s8 A" u5 q$ P* u) b; OSETS:
' h7 }% T: j! Tsupply/1..3/:b;
' J" g2 i% Z$ D! lneed/1..7/; ) P% ?5 W8 Y& [+ f
links(supply,need):c,x; 8 l( O$ }- J6 X
ENDSETS
7 j, P" R) d* [0 n. P7 N[OBJ]Min=@sum(links:c*x);
6 G6 Z7 M  c/ ^( m1 [: ?: t* C( N@FOR(supply(i):@sum(need(j):x(i,j))=b(i)); : J8 L& N9 O5 V7 l# R% S, g) e
@FOR(need(j):@sum(supply(i):x(i,j))=1); 8 \0 p2 h  H' w( m0 h% k
DATA:
+ c/ P1 z; N, s7 r5 g6 r' Ib=3,2,2; : |5 ^, ~# M/ {% j+ B- x- ~/ T
c=36,24,49,21,81,72,45   % f$ Y$ l2 Z, d' v& i; _) \
    30,20,56,24,99,88,55   
2 S& q6 L2 K! L. K. k1 i$ ?    36,24,63,27,90,80,50;
0 {4 ?& U+ C+ @5 a' YENDDATA
- N$ B& {3 u% X0 e4 M8 WEND 2 l* ]  I& P" G. c% S; ~
求得结果为,消防站 1 应向火警地点 2 派 1 辆车,向火警地点 3 派 2 辆车;消防站 2 应向火警地点 1 派 2 辆车;消防站 3 应向火警地点 2、3 各派 1 辆车。最小总损失 为 329。6 h; i' e$ q/ n* I
3 L" z- o  e' u; s, j" R" M
(5)讨论9 N& u6 B5 E! \7 |6 i! u! t, l
# B  T7 t) L0 {+ {
1)这个问题本质上仍然和经典的运输问题类似,可以把每辆车到达火场看做需求点,消防站看做供应点。在上面模型中,我们虽然假设   为 0− 1变量,但求解时是采用线性规划求解的,也就是说没有加上 为 0− 1 变量或整数变量的限制条件,但求解得到的结果中   正好是 0−1 变量。这一结果不是偶然的,而是运输问题特有的一种性质.
7 F4 t- a" S+ G1 p5 y' c8 p
7 {* h8 S  y% W: {/ J: O9 }2 )在上面模型中,没有考虑消防车到达各火警地点的先后次序约束,但得到的结果正好满足所有的先后次序约束,这一结果不是必然的,而只是巧合。如对例题后半部 分的情形,结果就不是这样了。显然,此时只需要修改损失矩阵如表 8 所示(所示(元素仍然分别记为 )4 e  R8 O5 j: T* W# I1 Q# _
* R& l7 w! ?: s' y: Y7 A

/ a5 S6 s% V; Z3 ^) T' A+ Q+ M3 a2 H( K
/ ]) ^( _8 ~9 N  \& e此时重新将式( 1 )-( 3 ) 构成的线性规划模型输入 LINGO 求解,可以得到新的最优解: 其它变量为 0(最小总损失仍为 329)
" U5 T  B# X2 H. R$ X) D! }
& p+ t- F  L- _实际上,损失矩阵中只是 1、2 列交换了位置,3、4 列交换了位置,5、7 列 交换了位置,因此不用重新求解就可以直接看出以上新的最优解。 * ]9 I2 c9 O# B% |5 ^1 K7 _/ p2 A/ @( ?
! g$ C+ n# p  C2 S8 t; s
但是,以上新的最优解却是不符合实际情况的。例如,  表明火警地点2 的第一辆消防车来自消防站 3,第二辆消防车来自消防站 1,但这是不合理的,因为 火警地点 2 与消费站 3 有 9min 的距离,大于与消防站 1 的 7min 的距离。分配给火警 地点 3 的消防车也有类似的不合理问题。为了解决这一问题,我们必须考虑消防车到达 各火警地点的先后次序约束,也就是说必须在简单的运输问题模型中增加一些新的约 束,以保证以上的不合理问题不再出现。; q! ^, ?# b5 ~8 ~# `
$ A' _; F9 n4 `7 Z! ]) V% |1 V
首先考虑火警地点 2。由于消防站 1 的消防车到达所需时间(7min)小于消防站 2 的消防车到达所需时间(8 分钟),并都小于消防站 3 的消防车到达所需时间(9 分钟), 因此火警地点 2 的第二辆消防车如果来自消防站 1,则火警地点 2 的第 1 辆消防车也一 定来自消防站 1;火警地点 2 的第 2 辆消防车如果来自消防站 2,则火警地点 2 的第 1 辆消防车一定来自消防站 1 或 2。因此,必须增加以下约束:   (  4 )9 D+ {" S% c7 s7 \8 ?9 }

- Y3 U$ S# S) O* k同理,对火警地点 1,必须增加以下约束:    (  5 )
9 ]! S9 G/ X8 n' ]) z; I" m( M1 {
对火警地点 3,必须增加以下约束:     ( 6 )$ @, a- _- z( Y/ ]# g$ C* J3 }
& U" Q+ A, G" A) Q
重新将式(1)~(6)构成的整数规划模型(   是 1 0− 变量)输入 LINGO 软件如下:
4 g+ `8 M0 n0 q$ `$ e8 D4 K0 _
' Y; T& B- h3 v! [, U  {! FMODEL:   x. n( ~* r. U/ o4 J! F
TITLE 消防车问题;
6 ]3 w% ~- z  _SETS: # f, K: O8 ~! P1 Q1 w1 g0 U5 n
supply/1..3/:b; 2 A) }; R& s* B
need/1..7/; ! W. i& F4 G. c1 l
links(supply,need):c,x;
  h* e0 t+ O7 f) Q/ J2 oENDSETS
9 j4 ?& N. K& M! G  v[OBJ]Min=@sum(links:c*x);   H* \- j% t# T: N
@FOR(supply(i):@sum(need(j):x(i,j))=b(i)); 9 R3 P0 d# a/ r4 q: X
@FOR(need(j):@sum(supply(i):x(i,j))=1);
) j6 U( c7 J* _x(1,4)<x(1,3); 3 F; r% s6 P  l+ Q, d7 n* `. _
x(2,4)<x(1,3)+x(2,3); 0 e6 [8 T5 v" H8 s) w
x(2,2)<x(2,1); . S4 F8 [: F* D, b
x(1,6)<x(1,5); " @  v( z3 }2 K7 O3 ]! {
x(1,7)<x(1,6); 8 X& m5 Y9 L% ~' I
x(3,6)<x(1,5)+x(3,5);
1 d) L& \% K# B2 f; a/ w2*x(3,7)<x(1,5)+x(1,6)+x(3,5)+x(3,6); - i: j' y3 ^# P! d( Y
@for(links:@bin(x)); 4 r8 y; o2 q7 |4 f4 `1 ?
DATA:
# M5 N+ N' v5 I8 Q  F) J3 d+ _b=3,2,2;
# `8 h/ A9 m7 p! R! _: B( V7 ?c=  24    36    21    49    45    72    81     + U! C5 @: N3 a; V2 d
    20    30    24    56    55    88    99     
2 j9 K9 A" ^5 y, \    24    36    27    63    50    80    90; 6 i8 @, Z" d1 o# F9 b, t4 \/ w
ENDDATA
4 E; C. P% N4 n% p2 K3 t0 rEND
$ }. ?0 C: S3 F! s求解可以得到: ,其它变量为 0(最小总损失仍为 335)。也就是说,消防站 1 应向火警地点 2 派 2 辆车,向火警地点 3 派 1 辆车;消防站 2 应向火警地点 1 派 2 辆车;消防站 3 应向火警地点 3 派 2 辆车。经过检 验可以发现,此时的派车方案是合理的。
7 Y! j6 y5 K) j! P9 i& V————————————————
1 {* N0 z' T4 b% J版权声明:本文为CSDN博主「wamg潇潇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。" T# o/ d8 f2 B9 w& D2 ^5 B/ t
原文链接:https://blog.csdn.net/qq_29831163/java/article/details/89388172' i" C7 p0 p% B

- I! g; }2 Q5 o) g3 w1 t: j. t4 M7 M' K3 S  W/ h, b

" s0 @$ M' G( w' x9 m




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5