数学建模社区-数学中国

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

作者: 浅夏110    时间: 2020-6-17 09:20
标题: 消防车调度问题 :用数学建模优化生产与服务运作中的管理问题
问题描述: 某市消防中心同时接到了三处火警电话。根据当前的火势,三处火警地点分 别需要 2 辆、2 辆和 3 辆消防车前往灭火。三处火警地点的损失将依赖于消防车到达的及时程度:记  为第 j 辆消防车到达火警地点i的时间,则三处火警地点的损失分别为/ F: s/ q. T+ c9 l5 V8 e  k
/ z  {' P$ {6 w8 v- A) L! |
7 p" G" U1 k7 p+ [0 s7 ?
   ; 。目前可供消防中心调度的消防车正好有 7辆,分别属于三个消防站(可用消防车数量分别为 3 辆、2 辆、2 辆)。消防车从三个消 防站到三个火警地点所需要的时间如表 6 所示。应如何调度消防车,才能使总损失最 小? 4 T# W3 @3 F& Q$ n
) t% y" d9 Z" U4 j

% m" j7 S" z" {2 M2 |. T/ b% D
0 D% m) h) \$ N) l3 B' t问题二:如果三处火警地点的损失分别为 ;,调度方案是否需要改变?% u& Q- ]- @- M# x: `

1 M  v- m0 d  y. ~1 }" v  a7 A/ {' T' Y! P4 b) ?' V
5 \/ E+ u- _' t) _. ~- Q
(1)问题分析
1 W% q0 X2 r' n0 M. ^& m8 b# H7 i% L! e
本题考虑的是为每个火警地点分配消防车的问题,初步看来与线性规划中经典的运输问题有些类似。本题的问题可以看成是指派问题和运输问题的一种变形,我们下面首先把它变成一个运输问题建模求解。
- h# F. w5 o+ R, @) T/ ?) K
6 z1 |4 x" S5 U9 H/ p(2)决策变量
& c* [1 c) v) F! v/ z( h
0 P5 k, G0 g' j为了用运输问题建模求解,我们很自然地把 3 个消防站看成供应点。如果直接把 3 个火警地点看成需求点,我们却不能很方便地描述消防车到达的先后次序,因此难以确 定损失的大小。下面我们把 7 辆车的需求分别看成 7 个需求点(分别对应于到达时间 . 用   表示消防站i是否向第 j 个需求点派车(1 表示派车,0表示不派车),则共有 21 个  0−1 变量.' K  T' V$ b- H
3 a9 S7 b# r) \4 I
(3)模型建立
+ e# M1 P* {& D2 g' `( ]
0 M3 [! Y6 o1 Q* W+ o0 I2 p题目中给出的损失函数都是消防车到达时间的线性函数,所以由所给数据进行简 单的计算可知,如果消防站 1 向第 6 个需求点派车(即消防站 1 向火警地点 3 派车但该 消防车是到达火警地点 3 的第二辆车),则由此引起的损失为 72 98 = × 。同理计算,可以得到损失矩阵如表 7 所示(元素分别记为 )。
* s. w( q: Q# _0 s+ }+ \) b' c! B2 |# d7 A

- d' f* A, ]" y7 k- {$ x' t2 g2 a4 v6 p
9 B6 e! H2 {4 H  {5 w( K0 n# n

/ p' e1 {* N# x4 W% t
# v) d. ^1 N. T% Z( u) @于是,使总损失最小的决策目标为
/ x0 W6 Q: V5 W% E9 l1 O/ m  W: d# g* L$ X
                     ( 1 )
# U! G& d9 v1 [9 ?; y, i
+ `: K7 J* h3 v( D3 |: \约束条件:
" W: d8 F+ N9 F1 x3 m5 r
- h' b$ a# F6 W" |. u/ q约束条件有两类,一类是消防站拥有的消防车的数量限制,另一类是 各需求点对消防车的需求量限制。 / T2 C, o$ ^( E) B
记   ( i=1,2,3 )为第i个消防站拥有消防车的数量,则消防站拥有的消防车的数量限制可以表示为
/ h; F4 E4 J  t! c9 X                        (  2 )
; J3 N1 M, |. U6 Z' Z- I6 j& O3 `7 v, a
各需求点对消防车的需求量限制可以表示为 ; [7 n) t0 H: y3 i- ]0 q7 o
/ T, @; n. \* I
           (  3 )+ X) f7 z4 |* @6 L" Z

; J* d& y- f: M4 Q) m6 u) M9 C(4)模型求解 的lingo代码/ P3 Z7 _  p- p( p
0 ~9 R  Z5 x- K. ]2 [3 L9 S
MODEL:
, v# Z2 A5 x( K. {3 f' cTITLE 消防车问题;
' x0 C  B1 {* X! H$ nSETS: ( `; ^4 _# `9 m9 L; d8 ^
supply/1..3/:b; ; f- n' R7 ^5 }* I- b* D( r. N
need/1..7/; 2 i; b7 g. H$ h
links(supply,need):c,x;
5 `) Z% C% U& [" o5 Y4 KENDSETS
7 c  o: l2 b( E[OBJ]Min=@sum(links:c*x); % ~3 u) |4 r6 |% _
@FOR(supply(i):@sum(need(j):x(i,j))=b(i)); + c% e% t+ Z) ?' o
@FOR(need(j):@sum(supply(i):x(i,j))=1); - b# A0 R0 F7 ^7 d- J0 W* c- Z. c2 t
DATA:
5 ?$ B; u% c; mb=3,2,2; ; @* C* w0 n! M6 R5 Q7 o0 C
c=36,24,49,21,81,72,45   - V) @3 t: T% x' k7 o# ]8 Y
    30,20,56,24,99,88,55   5 m3 d+ C5 x$ G1 [2 \0 I$ F; C
    36,24,63,27,90,80,50;
3 y9 E0 E: K& s. c  vENDDATA ; p' X6 O, ~6 C. C+ I: A
END ) T! y& X+ @3 Z7 j5 R- Q0 g
求得结果为,消防站 1 应向火警地点 2 派 1 辆车,向火警地点 3 派 2 辆车;消防站 2 应向火警地点 1 派 2 辆车;消防站 3 应向火警地点 2、3 各派 1 辆车。最小总损失 为 329。" Z, i! d( H3 a: y" j

2 H# f. K( j& H# V, ^, O! M7 M(5)讨论
3 m4 D) g; Y0 }, s" V$ ?8 d$ X- i" a
1)这个问题本质上仍然和经典的运输问题类似,可以把每辆车到达火场看做需求点,消防站看做供应点。在上面模型中,我们虽然假设   为 0− 1变量,但求解时是采用线性规划求解的,也就是说没有加上 为 0− 1 变量或整数变量的限制条件,但求解得到的结果中   正好是 0−1 变量。这一结果不是偶然的,而是运输问题特有的一种性质.
* J0 s" h$ z2 l. l; C1 c3 |; e1 a% t. O
2 )在上面模型中,没有考虑消防车到达各火警地点的先后次序约束,但得到的结果正好满足所有的先后次序约束,这一结果不是必然的,而只是巧合。如对例题后半部 分的情形,结果就不是这样了。显然,此时只需要修改损失矩阵如表 8 所示(所示(元素仍然分别记为 )
/ k/ ]  p; m+ X) \1 C$ ~, U+ z. x0 e
; m9 D! g; |2 E% I

+ z7 T6 d& n8 P' D9 k4 l此时重新将式( 1 )-( 3 ) 构成的线性规划模型输入 LINGO 求解,可以得到新的最优解: 其它变量为 0(最小总损失仍为 329)
& t: l0 {- Z! o
/ \9 ]8 C7 D0 K  W. g实际上,损失矩阵中只是 1、2 列交换了位置,3、4 列交换了位置,5、7 列 交换了位置,因此不用重新求解就可以直接看出以上新的最优解。 . x# m* q! k/ W2 p
  E' K  F0 y8 b8 m, V! c
但是,以上新的最优解却是不符合实际情况的。例如,  表明火警地点2 的第一辆消防车来自消防站 3,第二辆消防车来自消防站 1,但这是不合理的,因为 火警地点 2 与消费站 3 有 9min 的距离,大于与消防站 1 的 7min 的距离。分配给火警 地点 3 的消防车也有类似的不合理问题。为了解决这一问题,我们必须考虑消防车到达 各火警地点的先后次序约束,也就是说必须在简单的运输问题模型中增加一些新的约 束,以保证以上的不合理问题不再出现。5 _9 V$ d- H# M

0 u3 ~9 j# q6 b" D首先考虑火警地点 2。由于消防站 1 的消防车到达所需时间(7min)小于消防站 2 的消防车到达所需时间(8 分钟),并都小于消防站 3 的消防车到达所需时间(9 分钟), 因此火警地点 2 的第二辆消防车如果来自消防站 1,则火警地点 2 的第 1 辆消防车也一 定来自消防站 1;火警地点 2 的第 2 辆消防车如果来自消防站 2,则火警地点 2 的第 1 辆消防车一定来自消防站 1 或 2。因此,必须增加以下约束:   (  4 )
7 }4 r7 @: e! L! [+ [$ {: S6 u+ u$ }# ~8 C3 Q
同理,对火警地点 1,必须增加以下约束:    (  5 )
: w; @: |, S( V" [' h$ O3 b1 ~  H, `# x+ ^; G) ~
对火警地点 3,必须增加以下约束:     ( 6 )% [/ e/ \8 C0 k! S
- {3 @. N3 {3 ]
重新将式(1)~(6)构成的整数规划模型(   是 1 0− 变量)输入 LINGO 软件如下:, a$ {2 c- ^- D. p0 X

* z" X$ ^+ P5 ~' _3 mMODEL: 7 J! @* O! b* a
TITLE 消防车问题;
7 V) Y( C8 h5 _5 _SETS:
" b4 G2 E4 U9 M9 m& dsupply/1..3/:b;
5 \6 W7 p( K( [* H' D2 r9 Ineed/1..7/; 3 b( d% f$ w2 V9 p2 J
links(supply,need):c,x;
6 ~. p8 m1 y: d- Z2 uENDSETS
: ?5 V  m) t2 S+ }$ p4 u: B) X[OBJ]Min=@sum(links:c*x); ! ?6 G" k/ n; @0 c6 o( P3 F7 p
@FOR(supply(i):@sum(need(j):x(i,j))=b(i));
0 m' \$ ?& h8 N. R) o& i@FOR(need(j):@sum(supply(i):x(i,j))=1);
1 p+ ]4 ?8 Y8 Ex(1,4)<x(1,3); # l$ H7 ?6 b$ ?/ P$ \" v, `
x(2,4)<x(1,3)+x(2,3); . u4 ^' q/ y6 F" ]( J
x(2,2)<x(2,1);
6 S! M9 ?3 d9 Z0 Ax(1,6)<x(1,5);
7 _2 ?1 P% N9 y) l) K& Ux(1,7)<x(1,6);   n$ d4 w; T. ?, n& N
x(3,6)<x(1,5)+x(3,5);
: F  M5 Y& B$ O& z& X5 Q2*x(3,7)<x(1,5)+x(1,6)+x(3,5)+x(3,6); / ~# G) ~1 B  H
@for(links:@bin(x)); * j3 U3 Q! ~( u  |
DATA:
0 e0 I' z$ y3 m1 I0 N4 B4 ^b=3,2,2; ( \4 o; l# R9 s: S
c=  24    36    21    49    45    72    81     ! `- @$ \* s0 ]: c- {% r
    20    30    24    56    55    88    99     
; ^5 M0 N( K3 r8 G& k) Z    24    36    27    63    50    80    90;
/ f3 S" a3 a$ s5 DENDDATA
9 t9 G- t) r3 s, k; K' W, mEND 4 J# ^! B  E6 u$ ?/ b! Q
求解可以得到: ,其它变量为 0(最小总损失仍为 335)。也就是说,消防站 1 应向火警地点 2 派 2 辆车,向火警地点 3 派 1 辆车;消防站 2 应向火警地点 1 派 2 辆车;消防站 3 应向火警地点 3 派 2 辆车。经过检 验可以发现,此时的派车方案是合理的。 / @6 y# D7 F( v+ D/ G! g1 l9 r
————————————————
: m5 N1 m  Y3 W3 A6 i版权声明:本文为CSDN博主「wamg潇潇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
0 w( I# S4 }  {& X- y1 ]原文链接:https://blog.csdn.net/qq_29831163/java/article/details/893881727 f: E" n# M6 x# a4 p# D0 j
) y. B, V% p4 {% S$ b

4 l4 s. L2 Y3 {6 C! |: a9 y' C3 L( l' a9 u





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