|
泄洪设施修建计划
摘 要
位于我国南方的某个偏远贫困乡,地处山区,一旦遇到暴雨,经常发生洪涝灾害。以往下雨时,完全是依靠天然河流进行泄洪。2010年入夏以来,由于史无前例的连日大雨侵袭,加上这些天然河流泄洪不畅,造成大面积水灾,不仅夏粮颗粒无收,而且严重危害到当地群众的生命财产安全。本文利用数学建模知识并结合生活实际设计一系列最优的方案。
对于问题一,首先根据原天然河流近几年排洪能力的数据,利用灰度预测的MATLAB程序求出未来五年的排洪能力。将排洪沟的决策变量假设成0-1变量,建立0-1规划模型。根据投入费用及排洪量的约束条件,建立线性规划模型。利用MATLAB求出从2010年起,第一年开挖2、3、4、5四条排洪沟,其费用为22万元,修建泄洪河道的费用为38万元,第二年开挖第6条排洪沟,其费用为5万元,修建泄洪河道的费用为55万元,第三年开挖第1条排洪沟,其费用为5万元,修建泄洪河道的费用为46万元。在整个修建计划中所花费的金额为171万元。
对于问题二,首先根据地势的高低自西向东排列村庄,利用Dijkstra算法求出最小路径,将泄洪河道的决策变量假设成0-1变量,根据排洪能力以及费用最小的约束条件,
列出目标函数,并对最短路径进行人工干预求出的路径为⑥-⑤,②-①-③-④-⑤-⑧,⑨-⑦-⑧,⑩-⑧。计算所得的最少费用为576.99万元。
对于问题三,利用问题二中建立的泄洪河道网络考虑维修工路线进而考虑留在各村的概率,建立卡尔科夫链模型。利用LINGO求解出留在各村的概率,再利用MATLAB求出转移概率矩阵的特征值和特征向量。利用MATLAB分析稳定性。验证结果说明在各村留宿概率为上述LINGO求解结果。判定留宿结果稳定,当进行足够多次维修后在各村留宿概率稳定。
对于问题四,因为影响泄洪设施的因素有多种,因此找出影响泄洪设施的主要因素就行,主要因素有1.天然河道的曲折;2.天然河道需要定期进行清淤;3.建立一个主泄洪干道。这些因素都会影响修建泄洪河道的成本,对这些影响因素建立约束函数,找出约束函数,求出相应因素所需的最小费用
、
、
,然后相加即为最少费用。
关键词: 0-1规划 线性规划 最小生成树 马尔科夫链模型
一、 问题背景和重述
1.1问题的背景
位于我国南方的某个偏远贫困乡,地处山区,一旦遇到暴雨,经常发生洪涝灾害。以往下雨时,完全是依靠天然河流进行泄洪。2010年入夏以来,由于史无前例的连日大雨侵袭,加上这些天然河流泄洪不畅,造成大面积水灾,不仅夏粮颗粒无收,而且严重危害到当地群众的生命财产安全。
1.2问题的重述
为此,乡政府打算立即着手解决防汛水利设施建设问题。从两方面考虑,一是在各村开挖一些排洪沟,以满足近两三年的短期防汛需要;二是从长远考虑,可以通过修建新泄洪河道的办法把洪水引出到主干河流。经测算,修建新泄洪河道的费用为
(万元),其中
表示泄洪河道的可泄洪量(万立方米/小时),
表示泄洪河道的长度(公里)。
请你们通过数学建模方法,解决以下问题:
问题1:该乡的某个村区域内原有四条天然河流,由于泥沙沉积,其泄洪能力逐年减弱。在表1中给出它们在近年来的可泄洪量(万立方米/小时)粗略统计数字。水利专家经过勘察,在该村区域内规划了8条可供开挖排洪沟的路线。由于它们的地质构造、长度不同,因而开挖的费用和预计的可泄洪量也不同,详见表2,而且预计每条排洪沟的可泄洪量还会以平均每年10%左右的速率减少。同时开始修建一段20公里长的新泄洪河道。修建工程从开工到完成需要三年时间,且每年投资修建的费用为万元的整数倍。要求完成之后,通过新泄洪河道能够达到可泄洪量100万立方米/小时的泄洪能力。
乡政府从2010年开始,连续三年,每年最多可提供60万元用于该村开挖排洪沟和修建新泄洪河道,为了保证该村从2010至2014年这五年间每年分别能至少达到可泄洪量150、160、170、180、190万立方米/小时的泄洪能力,请作出一个从2010年起三年的开挖排洪沟和修建新泄洪河道计划,以使整个方案的总开支尽量节省(不考虑利息的因素在内)。
表1 现有四条天然河道在近几年的可泄洪量(万立方米/小时)
|
年份 编号 |
2001 |
2002 |
2003 |
2004 |
2005 |
2006 |
2007 |
2008 |
2009 |
|
1号 |
31.3 |
29.7 |
28.6 |
27.5 |
26.1 |
25.3 |
23.7 |
22.7 |
|
|
2号 |
21.5 |
15.9 |
11.8 |
8.7 |
6.5 |
4.8 |
3.5 |
2.6 |
2.0 |
|
3号 |
27.9 |
25.8 |
23.8 |
21.6 |
19.5 |
17.4 |
15.5 |
13.3 |
11.2 |
|
4号 |
|
46.2 |
32.6 |
26.7 |
23.0 |
20.0 |
18.9 |
17.5 |
16.3 |
表2 开挖各条排洪沟费用(万元)和预计当年可泄洪量(万立方米/小时)
|
编号 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
|
开挖费用 |
5 |
7 |
5 |
4 |
6 |
5 |
5 |
3 |
|
当年泄洪量 |
25 |
36 |
32 |
15 |
31 |
28 |
22 |
12 |
问题2:该乡共有10个村,分别标记为①—⑩,下图给出了它们大致的相对地理位置,海拔高度总体上呈自西向东逐渐降低的态势。
①
② ③ ④
⑤
⑥ ⑦ ⑧
⑨
⑩
其中村⑧距离主干河流最近,且海拔高度最低。乡政府打算拟定一个修建在各村之间互通的新泄洪河道网络计划,将洪水先通过新泄洪河道引入村⑧后,再经村⑧引出到主干河流。要求完成之后,每个村通过新泄洪河道能够达到可泄洪量100万立方米/小时的泄洪能力。
表3 各村之间修建新泄洪河道的距离(单位:公里)
|
|
2 3 4 5 6 7 8 9 10 |
|
1 2 3 4 5 6 7 8 9 |
8 5 9 12 14 12 16 17 22 9 15 17 8 11 18 14 22 7 9 11 7 12 12 17 3 17 10 7 15 18 8 10 6 15 15 9 14 8 16 8 6 11 11 11 10 |
请你们根据表3中的数据,为该乡提供一个各村之间修建新泄洪河道网络的合理方案,使得总费用尽量节省。(说明:从村A→村B的新泄洪河道,一般要求能够承载村A及上游新泄洪河道的泄洪量。)
问题3:新泄洪河道网络铺设完成后,打算安排一位维护人员,每天可以从一个村到与之直接有新泄洪河道连接的相邻村进行设施维护工作,并在到达的村留宿,次日再随机地选择一个与该村直接有新泄洪河道连接的相邻村进行维护工作。试分析长此以往,他在各村留宿的概率分布是否稳定?
问题4:你们是否能够为该乡提出一个更加合理的解决泄洪的办法?
说明:1、以上问题必须建立一般的数学模型,不能仅按照题目中提供的数据计算一个结果。
2、建模过程中,可自行提出合理的模型假设。
二、问题分析
针对问题一:该村区域内原有四条天然河流,但是由于泥沙沉积,其泄洪能力逐年减弱。根据表1中四条天然河流近几年来的可泄洪量并利用灰度预测算法求出未来5年中每条河道的可泄洪量。假设修建的新泄洪河道在修建完成之前不能投入使用,在此期间修建
条排洪沟道,每条排洪沟道只能开挖一次。用MALTAB软件及0-1模型求出每年需要开挖的排洪沟道,按照每年的排洪量以及费用的约束条件,列出总费用与修建项目的目标函数,求解总费用最少的优化问题。
针对问题二:该村地势自西向东,泄洪河道只能自西向东的修建,建立0-1模型,利用Dijkstra算法的MALTAB程序计算最小生成树,再根据排洪能力和排洪量的约束条件进行人工干预,求解出泄洪河道的修建结果,已知河道的修建网络图,计算出各村排洪量的能力以及对应的距离,在根据
求解各村间修建泄洪河道的费用,最后将各村的费用相加即为最终结果。
针对问题三:假设维护人员从某村出发,随机选择一个与该村直接有新泄洪河道连接的相邻进行维修工作。根据问题二中的泄洪干道分布图可以的得到村落之间的邻接矩阵,村落之间的邻接矩阵就是维修工留宿可转移矩阵。根据矩阵建立马尔科夫链模型,求出转接概率矩阵,进而求出在各村留宿概率。在检验概率稳定性。
针对问题四:1.考虑到天然河道有些地段可能过于曲折,2.由于泥沙的逐年沉积,天然河道还要定期进行清淤,以维持其泄洪量,3.建立一个主泄洪道来缓解其泄洪压力,三种主要因素的费用只要都达到最小即可。
三、模型假设
1. 新建泄洪河道在竣工前不投入使用,并且不停止投入工期费用。
2.不受人力、物力等因素的影响,修建计划按时完成。
3. 修完的排洪道排洪能力不随着年份衰减,即第4、5年排洪量为100万立方米/小时。
4. 修建的泄洪河道水流流向自西向东。
5.各村之间只能修建一条泄洪河道。
四、符号说明
|
符号 |
符号说明 |
|
|
第
|
|
|
第
|
|
|
第
|
|
|
第
|
|
|
第
|
|
|
第
|
|
|
开挖排洪沟和修建新泄洪道的总费用 |
|
|
第
|
|
|
第
|
|
|
第
|
|
|
修建泄洪河道的总费用 |
|
|
维修人员转移状态概率矩阵 |
|
|
维修人员可转移矩阵 |
|
|
第
|
|
|
第
|
五、模型建立与求解
5.1 问题一的模型与求解
整个排洪沟的开挖和新泄洪河道的修建计划可分为以下步骤:1.预测原四条天然河流在未来5年的排洪能力;2.求解排洪沟的开挖费用、修建新泄洪河道费用;3.预计开挖排洪沟及新泄洪河道的排洪能力;4.根据每年提供的费用及每年排洪能力的要求进行约束;5.建立线性规划模型求解目标函数;6.检验第4、5年的排洪能力是否达到要求。以上分析步骤可用流程图表示:
![]() |
|
开始 |
|
预测原四条天然河流在未来5年的排洪能力 |
|
求解排洪沟的开挖费用、修建新泄洪河道费用 |
|
预计开挖排洪沟及新泄洪河道的排洪能力 |
|
根据每年提供的费用及每年排洪能力的要求进行约束 |
|
建立线性规划模型求解目标函数 |
|
检验第4、5年的排洪能力是否达到要求 |
![]() |
|
结束 |
图5.1 求解问题一步骤的程序框图
5.1.1原天然河流泄洪能力的预测
该乡的某个村区域内原有四条天然河流,由于泥沙沉积,其泄洪能力逐年减弱。根据表1中每个天然河流前9年的排洪能力数据,写出灰度预测算法的程序(附录1)并利用MALTAB软件求解。求解的结果如下:
表5.1.1 天然河流泄洪未来5年间泄洪能力的预测结果
|
年份 编号 |
2010 |
2011 |
2012 |
2013 |
2014 |
|
1号 |
21.5 |
20.9 |
19.9 |
19.1 |
18.2 |
|
2号 |
1.5 |
1.1 |
0.8 |
0.6 |
0.4 |
|
3号 |
10.9 |
9.7 |
8.7 |
7.8 |
7.0 |
|
4号 |
13.2 |
11.7 |
10.3 |
9.2 |
8.1 |
|
总量 |
47.0 |
43.4 |
39.8 |
36.6 |
33.8 |
利用MALTAB软件求解四条天然河流排洪能力变化的图形如下:

图5.1.2 四条天然河流排洪能力
5.1.2 排洪沟的开挖费用、修建新泄洪河道费用
乡政府从2010年开始,连续三年,每年最多可提供60万元用于该村开挖排洪沟和修建新泄洪河道。根据这一条件可列公式:
该乡从长远考虑,通过修建新泄洪河道的办法把洪水引出到主干河流。经测算,修建新泄洪河道的费用为
(万元),其中
表示泄洪河道的可泄洪量(万立方米/小时),
表示泄洪河道的长度(公里)。修建一段20公里长的新泄洪河道。修建工程从开工到完成需要三年时间,且每年投资修建的费用为万元的整数倍。根据该条件可列公式:
5.1.3 预计开挖排洪沟及新泄洪河道的排洪能力
水利专家经过勘察,在该村区域内规划了8条可供开挖排洪沟的路线。由于它们的地质构造、长度不同,因而开挖的费用和预计的可泄洪量也不同,而且预计每条排洪沟的可泄洪量还会以平均每年10%左右的速率减少。同时开始修建一段20公里长的新泄洪河道。新泄洪河道能够达到可泄洪量100万立方米/小时的泄洪能力。根据该条件可列公式:
5.1.4建立线性规划模型求解目标函数
乡政府从2010年开始,连续三年,每年最多可提供60万元用于该村开挖排洪沟和修建新泄洪河道,为了保证该村从2010至2014年这五年间每年分别能至少达到可泄洪量150、160、170、180、190万立方米/小时的泄洪能力。新建泄洪河道完工后,通过新泄洪河道能够达到可泄洪量100万立方米/小时的泄洪能力。根据该条件可列公式:
约束条件
表示每条排洪沟只能开挖一次;
表示三年刚好修建20公里的泄洪河道。
利用MATLAB软件(附录2)可以求出三年间需要开挖的排洪沟,其结果如下:
表5.1.3 三年间需要开挖的排洪沟
|
年份 编号 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
|
2010 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
|
2011 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
|
2012 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
(注):0表示不需要开挖的排洪沟,1表示需要开挖的排洪沟。
由表格的数据可知:第一年需要开挖第2、3、4、5四条排洪沟,其费用为22万元;第二年需要开挖第6条排洪沟,其费用为5万元;第三年需要开挖第1条排洪沟,其费用为5万元。
已知排洪沟的开挖时间和数目可以求出每一年中的排洪量,其结果如下:
表5.1.4 每年的总排洪量
|
年份 |
2010 |
2011 |
2012 |
2013 |
2014 |
|
旧河道总排洪量 |
47.0 |
43.6 |
39.8 |
36.6 |
33.8 |
|
2、3、4、5号排洪量 |
114 |
102.6 |
92.34 |
83.106 |
74.8 |
|
6号排洪量 |
0 |
28 |
25.2 |
22.68 |
20.4 |
|
1号排洪量 |
0 |
0 |
25 |
22.5 |
20.25 |
|
总排洪量 |
161.0 |
174.0 |
182.3 |
265.0 |
249.3 |
三年间开挖的排洪沟所用的总费用为32万元,
等于100,
等于20,由
可求出
等于138.221万元。修建泄洪河道花费为万元整数倍,
等于139万元。因此修建泄洪河道及开挖排洪沟所需的总费用为171万元。新建的泄洪河道在未竣工之前不停工期,所以每年用于修建新泄洪河道的费用如表所示:
表5.1.5 两种排洪方案各自所需费用
|
年份 |
2010 |
2011 |
2012 |
|
排洪沟费用 |
22 |
5 |
5 |
|
泄洪河道费用 |
38 |
55 |
46 |
5.2问题二的模型与求解
对于问题二的求解可分为以下步骤:1.按自西向东的顺序排列各村间的距离;2.建立0-1模型并利用Dijkstra算法求出各村间是否修建泄洪河道;3.根据第二步的结果求解各村的排洪量;4.根据
求解各村间修建费用,其结果相加得到最终费用。
5.2.1自西向东排列各村间距离
由图可知,⑥的地势最高,⑧的地势最低,各个村之间地势顺序为:⑥>②>①=⑨>③>⑦>④=⑩>⑤>⑧,各村间的距离如下表:
表5.2.1 自西向东各村间的距离
|
|
6 2 9 1 3 7 10 4 5 8 |
|
6 2 9 1 3 7 10 4 5 8 |
0 8 14 15 11 9 17 16 8 14 0 8 14 9 11 15 22 17 18 0 17 5 12 9 22 12 16 0 12 6 15 10 15 11 0 7 7 17 9 12 0 10 11 10 8 0 18 3 7 0 15 11 0 6 0 |
5.2.2 各个村庄是否修建泄洪河道的求解
根据第一步的距离数据可以利用Dijkstra算法(附录3)的MALTAB软件求出最短路径,其结果如下图所示:

图5.2.2 最小生成树
该村⑧距离主干河流最近,且海拔高度最低。乡政府打算拟定一个修建在各村之间互通的新泄洪河道网络计划,将洪水先通过新泄洪河道引入村⑧后,再经村⑧引出到主干河流。根据该条件并建立0-1模型可得以下的数学模型。
目标函数:
约束条件
表示6号村庄排洪能力为100万立方米/小时。
要求完成之后,每个村通过新泄洪河道能够达到可泄洪量100万立方米/小时的泄洪能力(说明:从村A→村B的新泄洪河道,一般要求能够承载村A及上游新泄洪河道的泄洪量。)根据该条件可列公式:
假设各个村庄间只能修建一条泄洪河道,对于图5.2.2的结果,根据约束条件进行人工干预,得到最终的结果如下图:
①
②
③ ④
⑤
⑥ ⑦
⑧
⑨
⑩
图5.2.3 修建泄洪河道网络图
由图可知其结果为:⑥-⑤,②-①-③-④-⑤-⑧,⑨-⑦-⑧,⑩-⑧。又可以表示出相连村庄间的距离。
表5.2.4 相连村庄间的距离
|
村庄 |
距离 |
村庄 |
距离 |
|
(⑥-⑤) |
8 |
(⑤-⑧) |
6 |
|
(②-①) |
8 |
(⑨-⑦) |
6 |
|
(道4 angANG①-③) |
5 |
(⑦-⑧) |
8 |
|
(③-④) |
7 |
(⑩-⑧) |
11 |
|
(④-⑤) |
3 |
|
|
5.2.3 各个村庄排洪量的求解
泄洪河道完成之后,每个村通过新泄洪河道能够达到可泄洪量100万立方米/小时的泄洪能力(说明:从村A→村B的新泄洪河道,一般要求能够承载村A及上游新泄洪河道的泄洪量。)再结合步骤1和步骤2可以得到各村的排洪能力如下表:
表5.2.5 各村排洪能力
|
村庄 |
排洪能力 |
村庄 |
排洪能力 |
|
(⑥-⑤) |
100 |
(⑤-⑧) |
500 |
|
(②-①) |
100 |
(⑨-⑦) |
100 |
|
(①-③) |
200 |
(⑦-⑧) |
200 |
|
(③-④) |
300 |
(⑩-⑧) |
100 |
|
(④-⑤) |
400 |
|
|
5.2.4 各村修建泄洪河道的费用及总费用
根据以上步骤先进行各村费用的求解,最后各村间费用的和即为最少的费用,其结果如下:
表5.2.6 修建泄洪河道各村的费用及总的费用
|
村庄 |
费用 |
村庄 |
费用 |
|
(⑥-⑤) |
55.29 |
(⑤-⑧) |
94.23 |
|
(②-①) |
55.29 |
(⑨-⑦) |
41.47 |
|
(道4 angANG①-③) |
49.21 |
(⑦-⑧) |
78.73 |
|
(②-④) |
84.72 |
(⑩-⑧) |
76.02 |
|
(④-⑤) |
42.05 |
总费用 |
576.99 |
5.3模型建立求解
针对问题三,可分为三步,1.分析状态量变化过程建立马尔科夫链。2.LINGO求解维修人员留宿各村概率。3.分析LINGO求得的解的稳定性。
5.3.1 建立建立马尔科夫链模型
在题中维修工是一天为单位进行维修和留宿。可以将时间以天为单位离散化
\* MERGEFORMAT
单位是天,对
\* MERGEFORMAT
系统即维护人员第
\* MERGEFORMAT
天所在村庄,用随机变量
\* MERGEFORMAT
表示
\* MERGEFORMAT
表示第
\* MERGEFORMAT
天维护人员赶到一村,
\* MERGEFORMAT
表示维修人员赶到二号村,于是
\* MERGEFORMAT
可取离散值为
\* MERGEFORMAT
。用
\* MERGEFORMAT
表示第
\* MERGEFORMAT
个村庄留宿的概率。记为
\* MERGEFORMAT
,表示第
\* MERGEFORMAT
天在第
\* MERGEFORMAT
个村庄留宿的概率。用
\* MERGEFORMAT
表示已知今天在第
\* MERGEFORMAT
个村庄留宿明天到第
\* MERGEFORMAT
个村庄留宿的概率。且
\* MERGEFORMAT
,记
\* MERGEFORMAT
。有题意可知,第
\* MERGEFORMAT
天的留宿位置,即状态量
\* MERGEFORMAT
仅仅取决于第
\* MERGEFORMAT
天的状态量
\* MERGEFORMAT
和状态转移矩阵。即维修工留宿转移概率矩阵。而与以前的状态量
\* MERGEFORMAT
无关,即状态转移具有无后效性。这种离散状态按照离散时间的随机转移过程满足马尔科夫链条件,有状态转移无后效性和全概率性。
马尔科夫链模型:
\* MERGEFORMAT
\* MERGEFORMAT
并且
\* MERGEFORMAT
和
\* MERGEFORMAT
满足:
\* MERGEFORMAT
\* MERGEFORMAT
\* MERGEFORMAT
\* MERGEFORMAT
\* MERGEFORMAT
\* MERGEFORMAT
5.3.2求解维修人员留宿各村概率
引入状态概率向量和转移概率矩阵:
\* MERGEFORMAT
\* MERGEFORMAT
则基本方程表示为
\* MERGEFORMAT
有此可以得到
\* MERGEFORMAT
。
显然第
\* MERGEFORMAT
状态量
\* MERGEFORMAT
取决于
\* MERGEFORMAT
和
\* MERGEFORMAT
而且与前状态量无关具有无后效性,用
\* MERGEFORMAT
表示第
\* MERGEFORMAT
天维护人员留宿状态概率矩阵,即
\* MERGEFORMAT
,用
\* MERGEFORMAT
表示矩阵
\* MERGEFORMAT
表示转移概率矩阵。根据泄洪道网络分布图用
\* MERGEFORMAT
表示表示村落之间是否修建泄洪道,可以得到留宿人员转移矩阵
\* MERGEFORMAT
。其中:
\* MERGEFORMAT
根据马尔科夫链模型存在状态概率
\* MERGEFORMAT
当
\* MERGEFORMAT
时状态量
\* MERGEFORMAT
,
\* MERGEFORMAT
与初始状态无关。满足:
\* MERGEFORMAT
\* MERGEFORMAT
计算出
\* MERGEFORMAT
再对转移概率矩阵进行稳定性分析。
模型求解:
由问题二得到的可转移矩阵:
表5.3.1 可转移矩阵
|
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
|
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
|
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
|
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
|
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
|
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
维修工转移概率矩阵:
表5.3.2 维修工转移概率矩阵
|
0 |
0.5 |
0.5 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
0.5 |
0 |
0 |
0.5 |
0 |
0 |
0 |
0 |
0 |
0 |
|
0 |
0 |
0.5 |
0 |
0.5 |
0 |
0 |
0 |
0 |
0 |
|
0 |
0 |
0 |
0.33333 |
0 |
0.33333 |
0 |
0.33334 |
0 |
0 |
|
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0.5 |
0.5 |
0 |
|
0 |
0 |
0 |
0 |
0.33333 |
0 |
0.33333 |
0 |
0 |
0.33334 |
|
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
用LINGO计算的各村留宿概率
\* MERGEFORMAT
的结果为:
5.3.3 留宿各村概率
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
|
0.1052 |
0.0526 |
0.1052 |
0.1052 |
0.1578 |
0.0526 |
0.1052 |
0.1578 |
0.0526 |
0.1052 |
(源代码见附录4)
5.3.3稳定性分析
转移矩阵为
\* MERGEFORMAT
,且
\* MERGEFORMAT
。利用MATLAB求出特征值
\* MERGEFORMAT
特征向量
\* MERGEFORMAT
。如果特征向量可逆,则可以求出
\* MERGEFORMAT
的无穷次幂。求得
\* MERGEFORMAT
可逆,有
\* MERGEFORMAT
可以看出
\* MERGEFORMAT
的无穷次幂存在。从而得到的
\* MERGEFORMAT
稳定存在(程序源代码和
\* MERGEFORMAT
值矩阵见附录5)。
5.4问题四的模型与求解
5.4.1模型影响因素
根据问题分析可知,影响天然河道的最优泄模型的主要因素为:
1. 天然河道的曲折;
2. 天然河道需定期清淤;
3. 修建主泄洪干道;
5.4.2天然河道最优泄洪模型及求解
综合以上主要影响因素,建立天然河道最优泄洪模型,
表示拓宽天然河道费用;
表示天然河道清淤的费用;
表示修建主干泄洪河道的费用。建立修建泄洪河道网络的资金花费的目标函数,即:
对于因素1,当天然河道过于曲折时,会造成拓深拓宽天然河道的成本增加,若在此段距离修建新的河道费用小于拓深拓宽天然河道的花费,则可以修建新的河道绕过这段天然河道,此时的费用
最小。
对于因素2,由于泥沙的沉积,天然河道还要定期进行清淤,以维持其泄洪量。则可以根据河流的泥沙年沉积速率和泄洪量的要求,通过计算找出最优的泥沙清理时间间隔,这样能很好的减少平均的年清淤花费,此时的费用
最小。
对于因素3,考虑到该乡处在山区,且村落分步基本成南北两向分散状,可以在中间人口分布密度较少的地带修建一条主泄洪干道,各村分别修建泄洪河道将引入主泄洪干道,主泄洪道自西向东汇入村落排洪量逐渐增大,求其最少的费用
。
六、模型的评价和推广
6.1 模型的优点
建立的0-1规划一般模型大大减低了建模的难度,简化了计算编程过程,并使论文叙述更加清晰易懂。
马氏链模型很接近于实际情况,模型与实际情况误差很小。而且建立的模型简单易行,不仅可以解决十个村庄的随机留宿的概率分布问题,也可以解决更多的村庄留宿概率分布问题,体现了此模型具有通用性。
问题4的模型的建立使泄洪方案更具可行性,设计更具可行性。
6.2 模型的缺点
问题一:模型是在假设洪水来之前当年的排洪沟的开挖工程已经结束,但是在现实中并不排除洪水来之前,排洪沟还没有开挖或尚未完成的情况。
问题二:村庄之间并不是一定能在直线上对新泄洪河道进行修建,可能会有一些无法解决的问题使新泄洪河道沿曲线修建。
6.3模型的推广
1.可以推广到n个自高到低的村庄或山坡等。
2.此模型也能应用于救灾紧急物资购置,如灾区暂住房与长期住房建设, 救灾应急线路修建等。
3.此模型还能应用于考虑到线路承载能力的网状 流运输模型,如互联网流量,物流运输等。
4.问题三为马氏链模型,具有无后效性,能广泛的应用于经济、社会、生态、 遗传等众多领域。
5.此类模型能应用于大范围的水利工程修 建,从整体上起到调控作用。还能应用于长期投资与短期投资。
七、参考文献
[1].姜启源.数学模型[M].北京,高等教育出版社,2003。
[2].胡量剑,丁晓东,孙晓君.数学实验,上海科学技术出版社,2003。
[3].杨超,运筹学,北京:科学出版社,2004。
[4]. 谢金星、薛毅,优化建模与LINDO软件,北京:清华大学出版社。
[5]. 刘克,《实用马尔科夫接侧过程》,清华大学出版社,2004。
[6]. 韩中庚.数学建模方法及其应用, 高等教育出版社 2008。
附 录
附录1
syms a b;
c=[a b]';
A=[‘输入数据’];
B=cumsum(A);
n=length(A);
for i=1:n-1;
C(i)=(B(i)+B(i+1))/2;
end
D=A;D(1)=[];
D=D';
E=[-C;ones(1,n-1)];
c=inv(E*E')*E*D;
c=c';
a=c(1);b=c(2);
F=[];F(1)=A(1);
for i=2:(n+5)
F(i)=(A(1)-b/a)/exp(a*(i-1))+b/a;
end
G=[];G(1)=A(1);
for i=2:(n+5)
G(i)=F(i)-F(i-1);
end
t1=2001:2009;
t2=2010:2014;
G
plot(t1,A,'o');
xlabel('年份'),ylabel('排洪能力');
title('第4条天然河流');
hold on
plot(t2,G);
表1现有四条天然河道在近几年的可泄洪量(万立方米/小时)
|
1号 |
32.2 |
31.3 |
29.7 |
28.6 |
27.5 |
26.1 |
25.3 |
23.7 |
22.7 |
|
2号 |
21.5 |
15.9 |
11.8 |
8.7 |
6.5 |
4.8 |
3.5 |
2.6 |
2.0 |
|
3号 |
27.9 |
25.8 |
23.8 |
21.6 |
19.5 |
17.4 |
15.5 |
13.3 |
11.2 |
|
4号 |
|
46.2 |
32.6 |
26.7 |
23.0 |
20.0 |
18.9 |
17.5 |
16.3 |
附录2
n=10;
w=inf*ones(10);
w(6,[1,2,3,4,5,7,8,9,10])=[14,8,11,17,8,9,14,8,16];
w(2,[1,3,4,5,7,8,9,10])=[8,9,15,17,11,18,14,22];
w(1,[3,4,5,7,8,10])=[5 9 12 12 16 22];
w(9,[3 4 5 7 8 10])=[12 15 15 6 11 10];
w(3,[4 5 7 8 10])=[7 9 7 12 17];
w(7,[4 5 8 10])=[10 10 8 11];
w(4,[5 8])=[3 7];
w(10,[5 8])=[15 11];
w(5,8)=[6];
[a,b]=mintreek(n,w)
p=@(q,l) 0.66*q^0.51*l;
price=[5 7 5 4 6 5 5 3];
A=[price zeros(1,16);zeros(1,8) price zeros(1,8);zeros(1,16) price];
b=[60 60 60];
A=[A;price price price];
b=[b';180-p(100,20)];
LL=[25 36 32 15 31 28 22 12];
A1=-[LL zeros(1,16);LL*.9 LL zeros(1,8);LL*.81 LL*.9 LL];
b1=-[160 170 180]'+[46.8 42.6 38.8]';
A=[A;A1];
b=[b;b1];
temp=eye(8);
temp=[temp temp temp];
A=[A;temp];
b=[b;ones(8,1)];
[x,fval,exitflag,output]=bintprog([price,price,price],A,b);
answer=reshape(x,8,3)';
Optimization terminated.
附录3
function[Wt,Pp]=mintreek(n,W)
tmpa=find(W~=inf);
[tmpb,tmpc]=find(W~=inf);
w=W(tmpa);
e=[tmpb,tmpc];
[wa,wb]=sort(w);
E=[e(wb,:),wa,wb];
[nE,mE]=size(E);
temp=find(E(:,1)-E(:,2));
E=E(temp,:);
P=E(1,:);
k=length(E(:,1));
while(rank(E)>0)
temp1=max(E(1,2),E(1,1));
temp2=min(E(1,2),E(1,1));
for i=1:k;
if(E(i,1)==temp1),E(i,1)=temp2;end;
if(E(i,2)==temp1),E(i,2)=temp2;end
end;
a=find(E(:,1)-E(:,2));
E=E(a,:);
if(rank(E)>0),P=[P;E(1,:)];k=length(E(:,1));end;
end;
Wt=sum(P(:,3));
Pp=[e(P(:,4),:),P(:,3:4)];
for i=1:length(P(:,3));
disp(['','e',num2str(P(i,4)),'','(v',num2str(P(i,1)),'','v',num2str(P(i,2)),')']);
end;
%画图程序
axis equal;hold on
[x,y]=cylinder(1,n);xm=min(x(1,:));ym=min(y(1,:));
xx=max(x(1,:));yy=max(y(1,:));
axis([xm-abs(xm)*0.15,xx+abs(xx)*0.15,ym-abs(ym)*0.15,...
yy+abs(yy)*0.15]);plot(x(1,:),y(1,:),'ko')
for i=1:n;temp=[' v',int2str(i)];
text(x(1,i),y(1,i),temp);end;
for i=1:length(P(:,4)),
plot(x(1,Pp(i,1:2)),y(1,Pp(i,1:2)),'k');end;
text(-0.35,-1.2,['最小生成树的权为',' ',num2str(Wt)]);
title('最终的Steiner树');axis('off');hold off
附录4
model:
sets:
cun/A..J/:p; !用大写字母表示村庄,定义名称为拼音村“cun”,用p表示留宿在各村的概率;
link(cun,cun):t; !用t表示转移的概率;
endsets
data:
t=0 0.5 0.5 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0
0.5 0 0 0.5 0 0 0 0 0 0
0 0 0.5 0 0.5 0 0 0 0 0
0 0 0 0.333333 0 0.333333 0 0.333334 0 0
0 0 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0.5 0.5
0 0 0 0 0.333333 0 0.333333 0 0 0.333334
0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 1 0 0;
enddata
@for(cun(i):p(i)=@sum(link(j,i):p(j)*t(j,i)));
@sum(cun:p)=1;
@for(cun(i):@warn('矩阵每行之和是1',@abs(1-@sum(link(i,j):t(i,j)))#GT#0.0000001));
End
附录5
D=
|
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
0 |
0.911 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
0 |
0 |
0.707 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
0 |
0 |
0 |
0.442 |
0 |
0 |
0 |
0 |
0 |
0 |
|
0 |
0 |
0 |
0 |
0.292 |
0 |
0 |
0 |
0 |
0 |
|
0 |
0 |
0 |
0 |
0 |
-1 |
0 |
0 |
0 |
0 |
|
0 |
0 |
0 |
0 |
0 |
0 |
-0.91 |
0 |
0 |
0 |
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
-0.71 |
0 |
0 |
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
-0.29 |
0 |
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
-0.44 |
V=
|
-0.32 |
-0.46 |
-0.25 |
0.11 |
0.14 |
-0.32 |
-0.46 |
0.25 |
-0.14 |
-0.11 |
|
-0.32 |
-0.50 |
-0.35 |
0.24 |
0.47 |
0.32 |
0.50 |
-0.35 |
0.47 |
0.24 |
|
-0.32 |
-0.33 |
0.00 |
-0.15 |
-0.39 |
0.32 |
0.33 |
0.00 |
-0.39 |
-0.15 |
|
-0.32 |
-0.15 |
0.25 |
-0.24 |
-0.36 |
-0.32 |
-0.15 |
-0.25 |
0.36 |
0.24 |
|
-0.32 |
0.06 |
0.35 |
-0.06 |
0.17 |
0.32 |
-0.06 |
0.35 |
0.17 |
-0.06 |
|
-0.32 |
0.07 |
0.50 |
-0.14 |
0.60 |
-0.32 |
0.07 |
-0.50 |
-0.60 |
0.14 |
|
-0.32 |
0.35 |
-0.35 |
-0.22 |
0.03 |
0.32 |
-0.35 |
-0.35 |
0.03 |
-0.22 |
|
-0.32 |
0.25 |
0.00 |
0.30 |
-0.08 |
-0.32 |
0.25 |
0.00 |
0.08 |
-0.30 |
|
-0.32 |
0.38 |
-0.50 |
-0.49 |
0.10 |
-0.32 |
0.38 |
0.50 |
-0.10 |
0.49 |
|
-0.32 |
0.28 |
0.00 |
0.67 |
-0.27 |
0.32 |
-0.28 |
0.00 |
-0.27 |
0.67 |
det(v)=-0.165
clear
[v,d]=eig(A)
det(v)

Powered by Discuz! X2.5 © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 ) 论坛法律顾问:王兆丰
GMT+8, 2026-4-9 19:10 , Processed in 0.315006 second(s), 28 queries .