矩阵论报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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次换乘的路线的数量。

参考文献:

相关文档
最新文档