专栏内容(赛前预售价99,比赛期间299): 2024数学建模国赛期间会发布思路、代码和优秀论文。(本专栏达不到国一的水平,适用于有一点点基础冲击省奖的同学,近两年有二十几个国二,但是达不到国一,普遍获得省奖,请勿盲目订阅)
python全套教程(一百篇博客):从新手到掌握使用python,可以对数学建模问题进行建模分析。
35套模型算法(优秀论文示例):马尔科夫模型、遗传算法、逻辑回归、逐步回归、蚁群算法、蒙特卡洛模拟、聚类模型、线性规划、粒子群算法、神经网络、相关系数、灰色预测、灰色关联分析、模糊综合评价、模拟退火、时间序列ARMA、方差分析支持向量机、插值、排队论、拟合模型、微分方程、层次分析法、小波分析、多元回归、图论floyd算法、图论Dijkstra模型、因子分析、动态规划、博弈论、决策树、典型相关分析、元胞自动机、主成分分析、TOPSIS法。
1
参赛密码
(由组委会填写)
“华为杯”第十四届中国研究生
数学建模竞赛
题 目
车载导弹波次作战部署
摘 要:
本文研究了车载导弹波次运输规划问题。在高技术作战中,需要对车载导弹运输进行
作战规划,将多枚导弹运输到指定的发射位点实施波次作战,这在双方博弈中发挥着极其
重要的作用,直接关系着作战的效果。我们结合作战区域分布特点及发射装置速度特点,
建立了
0-1
规划模型,并使用改进的
Dijkstra
算法求解最短暴露时间,进行导弹运输的组合
优化。
问题一是连续两个波次的导弹运输规划问题。其特点是:不同发射装置在不同道路上
的速度不是固定值,属于动态规划。首先,我们以时间为权值构建时间依赖网络,将求最
短距离的
Dijkstra
算法转变为求最短时间的
Dijkstra
算法,作出时间矩阵。将两个波次的运
输规划分为两个阶段的组合优化:(
1
)第一阶段为从待机区域到第一波次的发射点位;(
2
)
第二阶段为从第一波次发射位点前往转载地域装弹后再机动到第二波次的发射点位。对这
两个阶段,根据时间矩阵建立了一个
0-1
规划模型确定第二阶段的路径。然后考虑单行道
上发生超车的节点等待时间,装弹完毕后两车在单行道上出现交会的节点等待时间及在转
载地域的等待暴露时间,对
0-1
规划模型进行补充修正,采用了先到先服务(
FCFS
)等待
制的排队规则进行排队,输出值为包含有等待时间的整体暴露时间。由此我们得到两波次
的运输方案的整体暴露时间为
9849.7min
。
问题二和问题三分别是两个临时转载地域的部署和选取新增发射装置的隐蔽点位。临
时转载地域的部署可能的方案有
C
5 2
10
种,选取隐蔽点位的可能方案有
3 2
6 6
C A
50
种。
并且临时转载地域的部署和隐蔽待机点的选择均不影响第一阶段的运输规划。第二阶段采
用了第一问建立的修正
0-1
规划模型,对每种方案进行模拟,求解第二阶段暴露时间。通
过排序比较,得到临时装载地域选取在
J34
、
J25
时,实施两个波次发射任务的整体暴露时
2
间最短,为
8465.1min
。问题三中,基于问题一中第二阶段的单台
C
类发射装置的暴露时
间,筛除了
C07
,
C03,C12
发射装置。然后构建不同方案的时间矩阵,通过问题一的模型,
求出各方案的整体暴露时间,通过排序比较,得到选取
J06
,
J14
,
J15
作为隐蔽点位时,
实施两个波次发射的整体暴露时间最短,为
8902.6min
。
问题四是通过对道路节点重要性的评价,得到容易被敌方损毁的道路节点。我们采用
TOPSIS
综合评价方法建立了道路节点重要性的评价模型,重要性指数越高越容易被敌方损
毁。根据该作战区域的网络结构特点,用度指标、介数指标、紧密度指标对道路节点重要
性进行综合定量分析,最后得到容易被损毁的节点是
J09
,
J15
,
J55
。
问题五是考虑实际作战多种因素,对问题一的运输路径进行优化。除保证整体暴露时
间最短外,我们将运输任务尽量分散来提高隐蔽性和可靠性。用运输流量的信息熵来表示
隐蔽性,建立了一个随机规划模型,以信息熵为目标函数,用车辆运行时间和道路容量进
行约束,得到优化结果。
关键词
:
时间依赖;
0-1
规划;
Dijkstra
算法;排队论;
TOPSIS
;随机规划
.
3
目录
1. 问题重述
...................................................................................................................................................... 5
1.1
问题背景
........................................................................................................................................................ 5
1.2
需解决的问题
................................................................................................................................................ 6
2. 模型假设
......................................................................................................................................................... 7
3. 通用符号说明
................................................................................................................................................. 7
4. 问题一:两个波次的发射任务规划
............................................................................................................. 7
4.1
问题分析
........................................................................................................................................................ 7
4.2
数据处理
........................................................................................................................................................ 9
4.3
模型建立
........................................................................................................................................................ 9
4.3.1
时间邻接矩阵建立
..................................................................................................................................... 9
4.3.2
最短时间的
Dijkstra
算法过程
................................................................................................................ 10
4.3.3 0-1
规划模型
............................................................................................................................................ 11
4.3.4 0-1
规划修正
............................................................................................................................................ 12
4.4
模型求解
...................................................................................................................................................... 13
4.4.1
第一阶段
Dijkstra
算法求解
.................................................................................................................... 13
4.4.2 0-1
规划求解
............................................................................................................................................ 15
4.4.3
第二阶段修正
.......................................................................................................................................... 17
4.5
结果分析
...................................................................................................................................................... 17
5. 问题二:临时转载地域的部署
................................................................................................................... 19
5.1
问题分析
...................................................................................................................................................... 19
5.2
模型准备
...................................................................................................................................................... 19
5.3
模型建立及求解
.......................................................................................................................................... 19
5.3.1
某一方案的整体暴露时间
....................................................................................................................... 19
5.3.1
选取最优方案
........................................................................................................................................... 21
5.4
结果分析
...................................................................................................................................................... 21
6. 问题三:新增发射装置的隐蔽位点选取
................................................................................................... 22
6.1
问题分析
...................................................................................................................................................... 22
6.2
模型准备
...................................................................................................................................................... 23
6.3
模型建立
...................................................................................................................................................... 24
6.3.1
新增发射装置的时间矩阵
....................................................................................................................... 24
6.3.2
第二阶段
0-1
规划
................................................................................................................................... 24
6.3.3
确定最优隐蔽点位选取方案
................................................................................................................... 24
6.3
模型求解
...................................................................................................................................................... 25
6.3.1
第一波次后发射装置的筛除
................................................................................................................... 25
6.3.2
新增发射装置后的暴露时间求解
........................................................................................................... 25
6.3.4
比较法确定确定隐蔽点位选取方案
....................................................................................................... 26
6.4
结果分析
...................................................................................................................................................... 26
7. 问题四:道路节点损毁的评价体系
........................................................................................................... 27
7.1
问题分析
...................................................................................................................................................... 27
7.2
三个评价指标的定义
.................................................................................................................................. 27
7.3
模型建立
...................................................................................................................................................... 27
7.3.1
三个指标归一化处理
............................................................................................................................... 27
7.3.2 TOPSIS
综合评价法
............................................................................................................................... 28
7.4
模型求解
...................................................................................................................................................... 28
7.4
结果分析
...................................................................................................................................................... 29
8. 问题五:两个波次发射任务的优化
........................................................................................................... 30
8.1
问题分析
...................................................................................................................................................... 30
8.2
模型建立
...................................................................................................................................................... 30
9. 模型评价及优化
........................................................................................................................................... 31
更多数学建模资料请关注微店店铺“数学建模学习交流”
https://k.weidian.com/RHO6PSpA
4
9.1
模型优点及推广
.......................................................................................................................................... 31
9.2
模型缺点及改进
.......................................................................................................................................... 31
参考文献
............................................................................................................................................................. 34
附录
..................................................................................................................................................................... 34
5
1. 问题重述
1.1
问题背景
车载导弹具有射程远、威力大、精度高、打击范围宽的特点,是一种新型的、
综合性作战武器,在高技术作战中发挥着极其重要的作用。
采用车载发射装置发射导弹,发射装置平时部署在待机区域隐蔽待机,在接
受发射任务后,携带导弹沿机动道路到指定的发射点位发射,一个发射点位最多
容纳一台发射装置。在连续多波次的打击任务中,每个车载发射装置一次只能装
载一枚导弹,完成一波发射后需要回到转载地域装弹,一个转载地域最多能容纳
2
台发射装置,但不能同时装弹,完成一次装弹作业需时
10
分钟。各转载地域
弹种类型和数量满足需求。完成装弹后再沿机动道路到下一个指定的发射点位发
射,且连续两波发射中同一发射点位只能使用一次。
某部参与作战的车载发射装置可分为
A
、
B
、
C
三类,共
24
台,其中
A
、
B
、
C
三类发射装置的数量分别为
6
台、
6
台、
12
台,执行任务前平均部署在
2
个待
机地域(
D1
,
D2
),即每个待机地域
A
、
B
、
C
的数量分别是
3
台、
3
台、
6
台,
共
12
台。所属作战区域内有
6
个转载地域(
Z01~ Z06
)、
60
个发射点位(
F01~ F60
)。
相关道路情况如图
1-1
所示,相关要素坐标如附件
1
所示。由于实际的路况限制,
主干道路(图
1-1
中红线)是双车道,可以双车通行,其他支路(图
1-1
中蓝线)
是单车道,只能在各道路节点会车。
A
类发射装置在主干道和其他支路的速度分
别为
70
公里
/
小时、
40
公里
/
小时;
B
类发射装置在主干道和其他支路的速度分
别为
60
公里
/
小时、
25
公里
/
小时;
C
类发射装置在主干道和其他支路的速度分
别为
50
公里
/
小时、
30
公里
/
小时。
在接到发射任务后,需要规划一个发射任务的合理分配方案和机动方案,使
整体暴露时间最短。暴露时间是指各车载发射装置从待机地域出发时刻至第二波
次发射时刻为止的时间,其中发射装置位于转载地域内的时间不计入暴露时间内,
不考虑在发射点位必要的技术准备时间,且在发射点位发射完毕后立即机动前往
转载地域。
6
图
1-1
作战区域相关道路图
1.2
需解决的问题
(
1
)现接受到两个波次的齐射打击任务,每个波次齐射
24
枚导弹,规划出
一个发射任务的合理分配方案和机动方案,使得两个波次的整体暴露时间最短。
(
2
)除已有的
6
个转载地域(
Z01~ Z06
)外,可选择在道路节点
J25
、
J34
、
J36
、
J42
、
J49
附近临时增设
2
个临时转载地域,请对转载地域进行合理部署,
确定临时转载地域布设坐标(坐标选取相应节点的坐标)使得两个波次的齐射打
击任务的总体暴露时间最短。
(
3
)现在第二波次发射过程中增加
3
台
C
类车载发射装置,
3
台
C
类发射
装置的隐蔽待机点位可在道路节点
J04
、
J06
、
J08
、
J13
、
J14
、
J15
中选取,一个
隐蔽待机点位最多容纳
2
台车载发射装置,从待机地域到隐蔽待机点位的时间不
计入暴露时间内。在第一波次发射完毕后,新增的
3
台
C
类车载发射装置从隐
蔽待机点机动前往第二波次指定的发射点位,不参与第二波次的原
3
台
C
类发
射装置完成第一波次的发射任务后返回待机区域,其返回时间不计入暴露时间。
在转载地域为
6
个的情况下,确定新增发射装置的隐蔽待机点,使得完成两个波
次打击任务的整体暴露时间最短。
(
4
)考虑到战时双方博弈,会有道路打击损毁的情况出现,造成导弹运输
过程中延迟甚至阻碍发射装置按时到达指定发射点位。结合图
1-1
的道路网络特
点,建立合理的道路损毁评价体系,量化分析在该作战区域最可能受到敌方打击
损毁的
3
个道路节点。
(
5
)在实际作战中,提高发射装置运输隐蔽性是提高战前武器装备生存能
力的重要途径,既要考虑使从待机区域到发射点位的整体暴露时间最短,也要考
虑到运输任务尽量分散到各条线路的隐蔽性和可靠性,同时考虑使单台发射装置
的暴露时间尽量短,综合以上因素,对问题(
1
)中两个连续波次的打击任务重
新进行规划。
第
n
阶段的暴露时间
4. 问题一:两个波次的发射任务规划
4.1
问题分析
问题一是发射两个波次的车载导弹运输规划问题,可以简单的描述为:在
D1
、
D2
待机的
24
台发射装置装载导弹进行两个波次打击任务,规划每台发射装
置在每个波次对应的发射点位及机动路线方案,使得整体暴露时间最短。
首先,该问题属于图与网络问题,由于
A
、
B
、
C
三类不同发射装置在不同的
道路上速度不同,是一个动态规划问题,用传统的最短路方法无法得到最优解。
我们考虑以时间为权值构建道路的时间依赖网络
[1]
,具体思路为:根据
A
、
B
、
C
三类发射装置在道路上速度不同构建三个时间邻接矩阵,矩阵权值由对应两节点
的距离与对应发射装置速度比值给出。由于两个波次要求齐射,所以可以将求解
全局最优化简为求解两个局部最优,而两个阶段的最优值相加即为全局最优(如
图
4-1
)。将任务分为两个阶段,第一阶段为从待机区域
D1
、
D2
到第一个波次的
8
发射点位,第二阶段为第一个波次的发射点位前往装载地域(
Z01~ Z06
)装弹,
然后从装载地域前往第二个波次的发射点位。分别对两个阶段进行分析,求暴露
时间最短的最优解。
针对第一阶段,根据建立的时间邻接矩阵,拟采用改进的
Dijkstra
算法求解
三类发射装置从待机区域
D1
、
D2
到发射点位(
F01~ F60
)时间最短的路径,并
进行排序。考虑发射装置都具有在主干道上速度快,在其他道路上速度慢的特点,
所以每类发射装置从
D1
、
D2
到
60
个发射点位时间排序应大致相同,选取到达待
机区域
D1
、
D2
时间较短的前
12
个发射点位作为第一个波次的发射点位,验证分
别选取的
12
个发射点位是否存在重复,若存在重复的情况,按时间顺序往下递推
选取,直至分别选取的
12
个发射点位不存在重复为止。对于发射装置对应发射点
位的分配问题,我们以暴露时间为目标函数,用
0-1
规划进行约束,求解使暴露
时间最短的分配方案。
针对第二阶段,规划第一波次发射完毕后进行第二波发射的问题,前往第二
波发射点位之前要去转载地域装弹。该阶段属于第一波发射点位至转载地域至第
二波发射点位的优化问题,需要综合考量三类节点之间的路径
[2]
。对某一发射装
置起点位置是固定的,因为连续两波中发射点位最多使用一次,所以其终点有
36
种可能的发射点位,而对每一可能的发射点位,都有
6
个可选择的中停点(转载
地域),我们拟采用第一阶段改进的
Dijkstra
算法,固定某一发射装置的起止点,
求解经过
6
个中停点的最短时间路径,通过比较时间,选取经过中停点时间最短
的路径作为该固定起止点的路径(如图
4-2
)。从而可以得到每一发射装置到
36
种
可能得发射点位的最短路径及其中停点。然后以该阶段的暴露时间为目标函数,
采用
0-1
规划对目标函数进行约束,求解最小值。确定机动方案后,对多辆车去
往转载地域存在的等待暴露时间进行优化计算,得到第二阶段的整体经过各节点
的总时间。
暴露时间还包括单行道上发生超车的节点等待时间,装弹完毕后两车在单行
道上出现交会的节点等待时间,再转载地域的等待暴露时间。拟参考排队论的思
想,采用等待制先到先服务(
FCFS
)的排队规则
[3]
进行排队,输出等待时间。
图
4-1
两波次导弹规划运输
9
图
4-2
第二阶段分析示意图
4.2
数据处理
(
1
)道路节点标记处理
为了在
MATLAB
中标记待机区域
D1
、
D2
,转载地域(
Z01~ Z06
),发射点
位(
F01~ F60
),道路节点(
J01~J62
),我们将各节点用纯数字标记,如表
4-1
所示。
表
4-1
道路节点标记
道路节点
D1-D2
Z01-Z06
F01-F60
J01-J62
数字标记
1-2
3-8
9. 模型评价及优化
9.1
模型优点及推广
1. 通过利用改进的
Dijkstra
算法,可以简单的计算出任意两点间的时间。
2. 采用 0-1 规划模型,采用较少的约束条件,使问题更加简化。
3. 通过运用排队论的原理,可以更加全面的考虑到发射装置在转载区域以
及道路节点时的等待时间。对 0-1 规划所求得的整体暴露时间更贴近实际。
4. 利用
TOPSIS
综合评价方法,可以更加客观真实的得到各个道路节点的
综合重要性排序。
9.2
模型缺点及改进
1. 对最短时间的路径进行筛选时,只是在方案个数不多的情况下可以实现,
若对于大数据方案,则无法进行筛选。
2. 采用 0-1 规划,约束条件较少,无法求得全局最优解。
模型的优化:可以在传统筛选方法的基础上,引入一种智能算法,使之能够
应对大数据,从而进行智能筛选。
32
参考文献
[1]
李星毅
,
翟晓峰等
.
最小时间路径算法的改进及在路径优化中的应用
[J].
计算机
应用研究
,2008.6,25
(
6
)
:1646-1647
;
[2]
袁洪艳
.
基于排队论的医院全流程排队管理研究的研究
[D].
浙江大学
.2008.6
:
11-18
;
[3]
李元臣
,
刘伟群
.
基于
Dijkstra
算法的网络最短路径分析
[J].
微计算机应
用
,2004.5,25(3)
:
295-362
;
[4]
汪民乐,高晓光
.
战略导弹机动阵地部署优化设计
.
系统工程理论与实
践
,1999.10 (7): 94-98
;
[5]
司守奎
,
孙兆亮
.
数学建模算法与应用
[M].
国防工业出版社
,2015:38-40
;
[6]
詹仁超,李应岐
.
基于混合算法的导弹部队铁路机动路径选择
.
四川兵工学
报
.2012.7 (33):62-65
;
[7]
李茂林,龙建国,张德群
.
基于复杂网络理论的作战体系节点重要性分析
[J].
指
挥控制与仿真
.2010.6,32(2)
:
15-27
;
[8]
杨萍
,
刘卫东
,
李明雨
.
常规导弹波次作战中运输任务的规划
[J].
第三届不确定系
统年会论文集
.2005.8:284-289
;
[9]
刘卫东
.
基于蚁群算法和禁忌搜索的部队机动路径选择
[A].
系统工程与电子技
术
.2008.8,30(8):1506-1508.
附录
附录
1
:任意相邻两点距离的
MATLAB
程序
x=shuju;
for i=1:1:130
for j=1:1:130
a=[x(i,1) x(i,2)];
b=[x(j,1) x(j,2)];
c(i,j)=norm(a-b);
end
end
附录
2
:计算邻接矩阵的
MATLAB
程序
x=shujuS1;
lingjiejuzhen=zeros(130,130);
for i=1:1:349
m=x(i,1);
n=x(i,2);
linjiejuzhen(m,n)=c(i,3);
end
附录
3
:三种类型车时间矩阵的
MATLAB
程序
AA=linjiejuzhen./45.*60;
BB=linjiejuzhen./35.*60;
CC=linjiejuzhen./30.*60;
for i=69:1:78
33
j=i+1;
AA(j,i)=linjiejuzhen(j,i)./70.*60;
BB(j,i)=linjiejuzhen(j,i)./60.*60;
CC(j,i)=linjiejuzhen(j,i)./50.*60;
end
for i=80:1:87
j=i+1;
AA(j,i)=linjiejuzhen(j,i)./70.*60;
BB(j,i)=linjiejuzhen(j,i)./60.*60;
CC(j,i)=linjiejuzhen(j,i)./50.*60;
end
A1=AA;
A1(isinf(A1))=0;
[d1,p1,pred1]=graphshortestpath(sparse(A1),1,[9:68],'directed',false);
[d11,ind1]=sort(d1);
A2=BB;
A2(isinf(A2))=0;
[d2,p2,pred2]=graphshortestpath(sparse(A2),1,[9:68],'directed',false);
[d12,ind2]=sort(d2);
A3=CC;
A3(isinf(A3))=0;
[d3,p3,pred3]=graphshortestpath(sparse(A3),1,[9:68],'directed',false);
[d13,ind3]=sort(d3);
D(1,:)=d11;
D(2,:)=d12;
D(3,:)=d13;
paixu(1,:)=ind1;
paixu(2,:)=ind2;
paixu(3,:)=ind3;
附录
4
:从出发到第一波齐射所用最短时间的
Lingo
程序
model:
sets:
Fashe/W1..W12/;
Leixing/J1..J4/;
links(Fashe,Leixing):c,x;
endsets data:
c=
318.2257619
;
enddata
min=@sum(links:c*x);
@for(Leixing(j):@sum(Fashe(i):x(i,j))<=1);
@for(Fashe(i):@sum(Leixing(j):x(i,j))=1);
@for(links:@bin(x));
data:
@ole('D:\DATA.xlsx','ABC')=x;
enddata
end
附录
7
:
对从转载区域出发到第一波导弹齐射的最短时间进行修正的
MATLAB
程序:
clc;
39
clear;
load('SHU.mat');
load('AA.mat');
load('BB.mat');
load('CC.mat');
lj_dis = aa;
Lingjie_tA = AA;
Lingjie_tB = BB;
Lingjie_tC = CC;
[d1,p1,pred1]=graphshortestpath(sparse(Lingjie_tA),1,[9:68],'directed',false);
T(1,:) = d1; T(2,:) = d1; T(3,:) = d1;
for k =1:60
Lujing{1,k} = p1{1,k}; Lujing{2,k} = p1{1,k}; Lujing{3,k} = p1{1,k};
end
[d1,p1,pred1]=graphshortestpath(sparse(Lingjie_tA),2,[9:68],'directed',false);
T(4,:) = d1; T(5,:) = d1; T(6,:) = d1;
for k =1:60
Lujing{4,k} = p1{1,k}; Lujing{5,k} = p1{1,k}; Lujing{6,k} = p1{1,k};
end
[d1,p1,pred1]=graphshortestpath(sparse(Lingjie_tB),1,[9:68],'directed',false);
T(7,:) = d1; T(8,:) = d1; T(9,:) = d1;
for k =1:60
Lujing{7,k} = p1{1,k}; Lujing{8,k} = p1{1,k}; Lujing{9,k} = p1{1,k}; %
end
[d1,p1,pred1]=graphshortestpath(sparse(Lingjie_tB),2,[9:68],'directed',false);
T(10,:) = d1; T(11,:) = d1; T(12,:) = d1;
for k =1:60
Lujing{10,k} = p1{1,k}; Lujing{11,k} = p1{1,k}; Lujing{12,k} = p1{1,k};
end
[d1,p1,pred1]=graphshortestpath(sparse(Lingjie_tC),1,[9:68],'directed',false);
T(13,:) = d1; T(14,:) = d1; T(15,:) = d1; T(16,:) = d1; T(17,:) = d1; T(18,:) = d1;
for k =1:60
Lujing{13,k} = p1{1,k}; Lujing{14,k} = p1{1,k}; Lujing{15,k} = p1{1,k};
Lujing{16,k} = p1{1,k}; Lujing{17,k} = p1{1,k}; Lujing{18,k} = p1{1,k};
end
[d1,p1,pred1]=graphshortestpath(sparse(Lingjie_tC),2,[9:68],'directed',false);
T(19,:) = d1; T(20,:) = d1; T(21,:) = d1; T(22,:) = d1; T(23,:) = d1; T(24,:) = d1;
for k =1:60
Lujing{19,k} = p1{1,k}; Lujing{20,k} = p1{1,k}; Lujing{21,k} = p1{1,k};
Lujing{22,k} = p1{1,k}; Lujing{23,k} = p1{1,k}; Lujing{24,k} = p1{1,k};
end
Fashe1 = xlsread('Diyibo.xlsx');
Fashe1 = reshape(Fashe1,60,24);
附录
8
:对从第一波次结束到第二波次结束所用时间进行修正
clc;
clear;
load('SHU.mat');
load('AA.mat');
load('BB.mat');
40
load('CC.mat');
lj_dis = aa;
Lujing_tA = AA;
Lujing_tB = BB;
Lujing_tC = CC;
DanShuangdao = ones(130);
for t = 80:87
DanShuangdao(t,t+1) = 0;
DanShuangdao(t+1,t) = 0;
end
for t = 69:78
DanShuangdao(t,t+1) = 0;
DanShuangdao(t+1,t) = 0;
end
FS1 = [41 40 39 58 34 9 43 38 37 57 11 10 51 49 42 65 66 50 53 33 32 54 55 52];
Daixuan2 = setdiff(9:68,FS1);
for i = 1:6
for j = 1:36
mt = 1000;
for k = 3:8
[Te_d1,Te_p1,Pre1]=graphshortestpath(sparse(Lujing_tA),FS1(i),k,'directed',false);
[Te_d2,Te_p2,Pre2]=graphshortestpath(sparse(Lujing_tA),k,Daixuan2(j),'directed',fal
se);
if Te_d1 + Te_d2 < mt
mt = Te_d1 + Te_d2;
T(i,j) = mt;
Lujing2{i,j} = [Te_p1,Te_p2(2:end)];
Zhuanzai(i,j) = k;
end
end
end
end
for i = 7:12
for j = 1:36
mt = 1000;
for k = 3:8
[Te_d1,Te_p1,Pre1]=graphshortestpath(sparse(Lujing_tB),FS1(i),k,'directed',false);
[Te_d2,Te_p2,Pre2]=graphshortestpath(sparse(Lujing_tB),k,Daixuan2(j),'directed',fals
e);
if Te_d1 + Te_d2 < mt
mt = Te_d1 + Te_d2;
T(i,j) = mt;
Lujing2{i,j} = [Te_p1,Te_p2(2:end)];
Zhuanzai(i,j) = k;
end
41
end
end
end
for i = 13:24
for j = 1:36
mt = 10000;
for k = 3:8
[Te_d1,Te_p1,Pre1]=graphshortestpath(sparse(Lujing_tC),FS1(i),k,'directed',false);
[Te_d2,Te_p2,Pre2]=graphshortestpath(sparse(Lujing_tC),k,Daixuan2(j),'directed',fals
e);
if Te_d1 + Te_d2 < mt
mt = Te_d1 + Te_d2;
T(i,j) = mt;
Lujing2{i,j} = [Te_p1,Te_p2(2:end)];
Zhuanzai(i,j) = k;
end
end
end
end
%
接下来运行
lingo
程序,将求出的
0-1
矩阵保存在
data.xlsx
中
Fashe2 = xlsread('Dierbo.xlsx');
Fashe2 = reshape(Fashe2,36,24);
Fashe2 = Fashe2';
for i = 1:24
fs2(i) = find(Fashe2(i,:));
Lujing2{i,1} = Lujing2{i,fs2(i)};
end
Lujing_tA_full = Lujing_tA + Lujing_tA';
Lujing_tB_full = Lujing_tB + Lujing_tB';
Lujing_tC_full = Lujing_tC + Lujing_tC';
for i = 1:24
ll = Lujing2{i,1};
Tm2_s(i,1) = 0;
Tm2_e(i,1) = 0; 0
if (i>=1 && i<= 6)
for k = 2:length(ll)
Tm2_e(i,k) = Tm2_s(i,k-1) + Lujing_tA_full(ll(k-1),ll(k));
if ll(k)>=3 && ll(k)<=8
Tm2_s(i,k) = Tm2_e(i,k) + 10;
else
Tm2_s(i,k) = Tm2_e(i,k);
end
end
end
if (i>=7 && i <= 12)
for k = 2:length(ll)
42
Tm2_e(i,k) = Tm2_s(i,k-1) + Lujing_tB_full(ll(k-1),ll(k));
Tm2_s(i,k) = Tm2_e(i,k);
if ll(k)>=3 && ll(k)<=8
Tm2_s(i,k) = Tm2_e(i,k) + 10;
end
end
end
if (i>=13 && i<= 24)
for k = 2:length(ll)
Tm2_e(i,k) = Tm2_s(i,k-1) + Lujing_tC_full(ll(k-1),ll(k));
Tm2_s(i,k) = Tm2_e(i,k);
if ll(k)>=3 && ll(k)<=8
Tm2_s(i,k) = Tm2_e(i,k) + 10; 1
end
end
end
TM2_e{i,1} = Tm2_e(i,1:length(ll));
TM2_s{i,1} = Tm2_s(i,1:length(ll));
end
[kaoluT_chufa,kaoluT_daoda] =
correct_time(Lujing2,TM2_s,TM2_e,DanShuangdao)
附录
9
:暴露时间修正的
MATLAB
函数
function[T_jiedianchufa,T_jiediandaoda]=correct_time(Lujing,TQ_jiedianchufa,TQ_j
iediandaoda,DanShuangdao)
T_jiedianchufa = TQ_jiedianchufa;
T_jiediandaoda = TQ_jiediandaoda;
tn = 0;
while tn <10000
tn = tn+1;
m = 0;
for i = 1:24
ss = T_jiedianchufa{i,1};
ee = T_jiediandaoda{i,1};
ll = Lujing{i,1};
for k = 1:length(ss)-1
m = m + 1;
T(m,:) = [ss(k),ee(k+1),ll(k),ll(k+1),i];
end
end
[dd,in] = sort(T(:,1));
for k = 1:m-1
flag = 0;
for j = k+1:m
if T(in(j),1) < T(in(k),2) && DanShuangdao(T(in(j),3),T(in(j),4))
if T(in(j),3) == T(in(k),4) && T(in(j),4) == T(in(k),3)
ss = T_jiedianchufa{T(in(j),5),1};
ee = T_jiediandaoda{T(in(j),5),1};
ll = Lujing{T(in(j),5),1};
43
te = find(ll == T(in(j),3));
ss(te) = T(in(k),2);
ee(te+1) = ss(te) + T(in(j),2) - T(in(j),1);
te = te + 1;
while te<length(ss) && ss(te)<ee(te)
u1 = ee(te) - ss(te);
ss(te) = ee(te);
ee(te+1) = ee(te+1) + u1;
te = te + 1;
end
T_jiedianchufa{T(in(j),5),1} = ss;
T_jiediandaoda{T(in(j),5),1} = ee;
flag = 1;
Finish = 0;
break;
else if T(in(j),2) < T(in(k),2) && T(in(j),3) == T(in(k),3) &&
T(in(j),4) == T(in(k),4)
ss = T_jiedianchufa{T(in(j),5),1};
ee = T_jiediandaoda{T(in(j),5),1};
ll = Lujing{T(in(j),5),1};
te = find(ll == T(in(j),3));
ee(te+1) = T(in(k),2);
te = te + 1;
while te<length(ss) && ss(te)<ee(te)
u1 = ee(te) - ss(te);
ss(te) = ee(te);
ee(te+1) = ee(te+1) + u1;
te = te + 1;
end
T_jiedianchufa{T(in(j),5),1} = ss;
T_jiediandaoda{T(in(j),5),1} = ee;
flag = 1;
Finish = 0;
break;
end
end
end
if T(in(k),3)>=3 && T(in(k),3)<=8
if T(in(j),3) == T(in(k),3) && T(in(j),1) - T(in(k),1)<10
ss = T_jiedianchufa{T(in(j),5),1};
ee = T_jiediandaoda{T(in(j),5),1};
ll = Lujing{T(in(j),5),1};
te = find(ll == T(in(j),3));
ss(te) = T(in(k),1) + 10;
ee(te+1) = ss(te) + T(in(j),2) - T(in(j),1);;
te = te + 1;
while te<length(ss) && ss(te)<ee(te)
u1 = ee(te) - ss(te);
ss(te) = ee(te);
ee(te+1) = ee(te+1) + u1;
44
te = te + 1;
end
T_jiedianchufa{T(in(j),5),1} = ss;
T_jiediandaoda{T(in(j),5),1} = ee;
flag = 1;
Finish = 0;
break;
end
end
end
if flag
break;
end
end
end
附录
10
:道路节点重要性评价的
MATLA
程序
%%
求解各个节点的紧密度
A=linjiejuzhen;
m=[69:1:130];
for i=1:1:62
for j=1:1:130
A1(isinf(A))=0;
[d,p,pred]=graphshortestpath(sparse(A),m(i),[1:130],'Directed',false);
d=sum(d);
b(i,1)=1/d;
end
end
%%
n=63;
du=d./(n-1);%
归一化度指标
[du1,ind1]=sort(du,'descend');
jinmidu=(n-1).*jin;%
归一化紧密度指标
[jinmidu1,ind2]=sort(jin,'descend');
jieshu=jie.*20./(n-1);
jieshu=jie./(n-2);%
归一化介数指标
[jieshu1,ind3]=sort(jieshu,'descend');
%%
求介数指标
aa=aa+aa';
N=size(aa,1);
B=zeros(1,N);
[D,C,aver_D]=Distance_F(aa); %C
是
ij
间最短路径条数
for k=1:N
for i=1:N
if i~=k%
两端节点不算
for j=i+1:N %
因为是无向的,所以正向、反向只算一次,所以只算一半;
%
都算的话累加一起就是两倍了,也不影响
if j~=k %
两端节点不算
if D(i,j)==D(i,k)+D(k,j)&C(i,j)~=0 %
满足条件即证明
ij
间最短路径经过
k
节点
45
B(k)=B(k)+C(i,k)*C(k,j)/C(i,j);
end
end
end
end
end
end
function [D,C,aver_D]=Distance_F(A)
%%
求复杂网络中两节点的距离、平均最短路径长度以及节点间最短路径条数
N=size(A,2);
D=A;
C=A;
C((C==inf))=0
C((C~=0))=1;
D((D==0))=inf;
for i=1:N
D(i,i)=0;
end
for k=1:N
for i=1:N
for j=1:N
if D(i,j)>D(i,k)+D(k,j)
D(i,j)=D(i,k)+D(k,j);
C(i,j)=C(i,k)*C(k,j);
elseif D(i,j)==D(i,k)+D(k,j)
if k~=i&&k~=j
C(i,j)=C(i,j)+C(i,k)*C(k,j);
end
end
end
end
end
aver_D=sum(sum(D))/(N*(N-1));
附录
11
:
TOPISIS
评价模型的
MATLAB
程序
A=gezhibiaoS3;
W=[0.5 0.25 0.25];
%A
为决策矩阵,
W
为权值矩阵
,M
为正指标所在的列,
N
为负指标所在的列
[ma,na]=size(A); %ma
为
A
矩阵的行数,
na
为
A
矩阵的列数
for i=1:na
B(:,i)=A(:,i)*W(i); %
按列循环得到
[
加权标准化矩阵
]
end
V1=zeros(1,na); %
初始化正理想解和负理想解
V2=zeros(1,na);
BMAX=max(B); %
取加权标准化矩阵每列的最大值和最小值
BMIN=min(B); %
for i=1:na
%if i<=size(M,2) %
循环得到理想解和负理想解,注意判断,不然
46
会超个数
V1(i)=BMAX(i);
V2(i)=BMIN(i);
%end
%if i<=size(N,2)
%V1(N(i))=BMIN(N(i));
%V2(N(i))=BMAX(N(i));
%end
end
for i=1:ma %
按行循环求各方案的贴近度
C1=B(i,:)-V1;
S1(i)=norm(C1); %S1,S2
分别为离正理想点和负理想点的距离,用
二阶范数
C2=B(i,:)-V2;
S2(i)=norm(C2);
T(i)=S2(i)/(S1(i)+S2(i)); %T
为贴近度
end
output_args=T;
[output,paixu]=sort(output_args,'descend');