矩阵论报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
研究生“矩阵论”课程课外作业
姓名:学号:
学院:专业:
类别:上课时间:
成绩:
邻接矩阵在解决航班问题中的应用
摘要:邻接矩阵能够简便和直观地表示不同城市之间的航班路线信息,有效地解决了两个城市之间相邻航班的路线数量问题。
关键词:邻接矩阵;有向图;航班路线;宽度优先搜索
1 引言
最优化的概念反映了人类实践活动中十分普遍的现象,即要在其他各方面的前提下,争取获得在可能范围内的最佳效果。因此,最优化问题已成为控制理论和现代数学的一个重要研究课题。而航班问题则是最优化问题在实际中的一个具体研究对象,包括最少换乘、最短路径、最少时间等问题。
在实际中,两个城市之间的航班信息可以用一个有向图表示出来。邻接矩阵可以简单、直观地将有向图表示成一个数学模型,便于人们研究。
2 邻接矩阵
邻接矩阵是一个表示顶点之间相邻关系的二维数组。它和一个存放顶点的一维数组组合在一起又可以构成一个逻辑结构。
设G(V,E)是一个有向图,图G 的顶点为V(G)={n v v v ,,21, }。称矩阵A(a ij )n n ⨯是图G(V,E)
的邻接矩阵,其中⎩⎨⎧∉∈=)(,0)(,1G E v v G E v v a j
i j i ij 。
有向图的邻接矩阵由元素0和1组成,当顶点i v 到顶点j v 有向连接时,1=ij a 。邻接矩阵对角线上的元素都为0。
3 邻接矩阵在航班问题中的应用
3.1 问题描述
一家航空公司经营A 、B 、C 、D 和H 五个城市的航线业务,其中H 为中心城市。各个城市间的路线见图1。
图 1
假设你想从A 城市飞往B 城市,因此要完成这次路线,至少需要两个相连的航班,即A →H 和H →B 。如果没有中转站的话,就不得不要至少三个相连的航班。那么问题如下:(1)从A 到B ,有多少条路线刚好是三个相连的航班;(2)从A 到B ,有多少条路线要求不多于四个
相连的航班。
3.2 模型的建立与宽度优先搜索
先考虑描述航班信息的数学模型。存放顶点的一维数组V={A,B,C,D,H},建立邻接矩阵
⎥⎥⎥
⎥⎥⎥⎦
⎤
⎢⎢⎢⎢⎢⎢⎣⎡=011111001011000
1000110100A
宽度优先搜索是状态空间的最基本的搜索策略。如图2,由A 生成状态C 和H ,然后扩展状态C ,生成状态H 和D ,接着扩展状态H ,生成状态A 、B 、C 、D ,这样就得到了第二层状态。如此一层一层的扩展下去,直到搜索到目的状态。
图 2
由此可知,邻接矩阵的平方就相当于做一次宽度优先搜索,得到第二层状态。如果再将得到的表示第二层状态的矩阵与邻接矩阵相乘,相当于又做了一次宽度优先搜索得到第三层状态。对于航班问题来说,每搜索一次就是一次换乘即增加一个相连的航班,得到的状态矩阵n n ij n a A ⨯)(中的元ij a 表示从i 城到j 城有ij a 条n 个相连的航班。
综上,可求出
⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=411111*********
1121112111
2
A ,⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢
⎢⎢⎢⎣⎡=455555232
25222
3532225223
23
A ,⎥⎥⎥⎥⎥⎥⎦
⎤⎢⎢⎢
⎢⎢⎢⎣⎡=209
99
99877
79787
797
7879777
84
A 所以,从A 到
B ,有1条路线刚好是两个相连的航班,有3条路线刚好是三个相连的航班,有7条路线刚好是四个相连的航班。需要注意的是,四个相连的航班包括从A 到B 又从B 到B 的情况,从1)(222
=a A 可以看出,从B 到B 有1条路线是两个相连的航班,而从A 到B 也有1条路线是两个相连的航班,正好可以组成四个相连的航班,所以四个相连的航班中有条路线是B H B H →→→→A ,应该减去。又因为A 到B 和B 到B
都不能直达,
所以不包含其它的组合情况。
于是可以得到:从A到B,有3条路线刚好是三个相连的航班,有1+3+7-1=10条路线是不多于四个相连的航班。
4 双向搜索验证
双向搜索是正向搜索和逆向搜索的结合,即从开始状态出发作正向搜索,同时又从目的状态出发作逆向搜索,直到两条路径在中间的某处汇合为止,搜索结果如图3。
图 3
先运用正向搜索,得到第二层状态,而后面由于状态过多,所以运用逆向搜索,产生B 的子目的为D和H。在第一层状态中,得到了目的状态B,就不用再向下搜索了。
根据图3,可以看出A到B的三个相连的航班路线有3条,分别是:
D
→、B
→
H
A→
A→
→
→
C
C
H
A→
B
D
→、B
→
不多于四个相连的航班路线有10条,分别是:
→、B
D
→
A→
→
C
→、
A→
H
B
A→
H
D
H
→、B
C
→
→、B
A→
H
→、B
→
A
→
A→
→、
→
→
A→
H
B
A→
H
D
C
→
C
→
H
→、B
D
→、B
H
→
D
→
→、
A→
→
→
A→
H
D
H
H
H
B
A→
C
C
→、B
→
→
5 结论
邻接矩阵可以直观、简便地表示航班信息问题。邻接矩阵的N次方相当于做了N次宽度优先搜索,所得的状态矩阵中的元表示从一个顶点到另一个顶点N个相连路线的数量,即需要N-1次换乘的路线的数量。
参考文献: