图论

来源:互联网 发布:淘宝网衬衫连衣裙女 编辑:程序博客网 时间:2024/05/19 17:27

--------------------siwuxie095

  

  

  

  

  

  

  

  

图论

  

  

这里介绍图论(Graph Theory),图论是计算机科学中非常重要

的一部分内容,甚至可以单独划分成为一个领域

  

  

  

很多人第一次接触到图论这个词,就觉得图论是研究和图画相关的

内容

  

  

  

  

  

  

不过当大家真的去学习图论时,可能大多数人都会失望一下子,因为

图论实际上研究的是由顶点和边组成的一种数学模型,这种数学模型

非常抽象,并且看起来也很枯燥

  

  

  

  

  

  

虽然图论看起来很枯燥,但是如果大家真正的深入研究下去,就会

发现图论是一个非常酷的学科

  

世界中很多的信息之间的联系,都可以使用图这种抽象的数学方式

来进行表示,如下就是表示互联网之间关系的连接图

  

  

  

通过建造这样的模型,可以得出很多非常有意思的结论,进而实现

更大的目标,创造出更酷的产品

  

当然,要将一个图的模型,表示成如上图所示,其实很大程度上是

数据可视化带来的收益

  

从算法的角度来研究图,还是相对比较枯燥的

  

  

  

  

  

如下,就是一张图:

  

  

  

对于图这种数学模型来说,有两个非常重要的组成部分:

1顶点(Vertex)

2(Edge)

  

其中,顶点和顶点之间就是靠边连接起来的,顶点和边

一起构成了一张图

  

  

  

  

  

以图作为模型,来表示真实世界之间的关系,那么可以

表示什么样的关系呢?

  

从表面上看,这种形式好像很简单,也很枯燥,但是它

的内涵却很丰富,如下:

  

1)交通运输

  

最典型的莫过于交通运输,它可以使用图来表达,如:每个顶点

可以是一个城市,每条边可以是城市之间的道路

  

再扩展一下,每个顶点可以是一个航站楼,每条边可以是相应的

航线,每个顶点可以是港口,每条边可以是相应的海运线

  

甚至更宏观的,每个顶点可以是一个星球,每条边可以是星球之

间宇宙飞船飞行的航线,亦或更微观的,每个顶点可以是城市中

的一座楼,每条边可以是楼和楼之间的街道

  

  

如上,都是可以的,这是对于图来说,最直观的一种表示方式,

但是,其实很多更抽象的数据关系,也可以用图来表示

  

  

  

2)社交网络

  

对于社交网络来说,每个顶点可以表示一个人,每条边可以表示

人与人之间的关系。这种关系可以是像FaceBook 这种好友的关

系,也可以是像 Twitter 这种关注的关系

  

  

  

3)相似关系

  

每个顶点可以表示一部电影,每条边可以表示两部电影之间的相

似程度

  

  

  

4)互联网

  

互联网,也可以用图来表示,每个顶点可以表示一个域名,每条

边可以表示域名之间的跳转

  

每个顶点可以表示一个页面,每条边可以表示页面之间的连接

  

  

  

5)工作安排

  

在工作中的工作安排,也可以用图来表示,每个顶点可以是一个

工作内容,每条边可以是两个工作内容之间的相关程度,或先后

执行的优先级顺序

  

  

  

6)脑区活动

  

像脑区活动的研究这样更复杂、更专业的领域,也经常用到图,

每个顶点可以是一个脑区,每条边可以是脑区之间信息的传递

  

  

  

7)程序状态执行

  

在计算机程序中,程序状态的执行,也可以用图来表示,每个顶

点可以表示一个程序状态,每条边可以表示从一种状态执行到另

外一种状态

  

对于这种情况,最典型的一个应用就是自动机,包括制作专业的

编译器,甚至是做一个游戏,都可能要设计一个自动机。在这种

情况下,或多或少都会使用图论建模的方法

  

  

  

  

  

  

  

图的分类

  

  

使用图可以表示这么多真实世界中不同事物之间的关系,那么在

表示的过程中,图也会有一些区别,如下:

  

1无向图(Undirected Graph)和有向图(Directed Graph)

  

所谓无向图,即边是没有方向的,如:在社交网络中,每个顶点

表示一个人,人与人之间认识,就连接上一条边,而这个边是没有

方向的

  

  

  

  

所谓有向图,即 边是有方向的,如:在自动机中,每个顶点表示一个

事件,每条边表示从一个事件转移到另一个事件,并且这个转移是具

有方向性的

  

  

  

显然,有向图由于其不对称性,所以在很多时候,有向图会涉及到一些

相对比较难的算法

  

  

  

其实,无向图可以看做是一种特殊的有向图,如下:

  

两个顶点之间用一条没有方向的边连接在了一起

  

  

  

换个角度,可以将一条没有方向的边,换成是两条有方向的边

  

  

  

所以说:无向图是一种特殊的有向图

  

  

  

  

  

2无权图(Unweighted Graph)和有权图(Weighted Graph)

  

所谓,可以理解成就是一个数值,而无权和有权,即连接顶点和

顶点之间的边,有没有一个数值和它对应

  

对于无权图来说,如:在社交网络中,每个顶点表示一个人,每条边

表示两个人之间是否认识,即这条边只表示认识或不认识的状态存在

与否,而不需要有一个值和它联系

  

  

  

  

而对于有权图来说,如:在交通运输中,每个顶点表示一个地点,

每条边表示地点之间的道路。在这种情况下,每条边可能有一个值

来表示两个地点之间的距离,或运输费用

  

  

  

  

  

  

  

  

图的连通性

  

  

在之前举的例子里,图中的顶点和边全部都连接在了一起,但事实上,

作为一个图来说,不一定图中的每一个顶点都要被边连接起来,这就

涉及到了图的连通性

  

如下:

  

  

  

如上所示,它可以是三个图,即有三个部分,但也可以是一个模型

中的一个图,只不过它不是完全连通的,其中有三个连通分量

  

  

  

  

  

  

  

简单图

  

  

简单图(Simple Graph),即 不含自环边和平行边的图

  

  

  

  

  

在图论中,存在两种相对比较特殊的边:

  

1自环边(self-loop):一个顶点到这个顶点自身的边

2平行边(parallel-edges):两个顶点之间存在多条边相连接

  

  

  

无论是自环边还是平行边,在很多时候也是有意义的

  

最典型的,如:对于交通运输来说,从A 城市到 B 城市可能有不止

一条路,可能有三条路,在这种情况下,平行边就非常有意义

  

  

  

但与此同时,自环边和平行边,会加大算法设计的难度,而且在很多

情况下,我们真正关心的问题,其实是和自环边平行边是无关的

  

最典型的,如:要考察一张图的连通性,那么自环边和平行边都不会

改变这张图的连通性

  

  

  

所以,大多数情况下,讨论的都是简单图

  

  

  

  

  

  

  

  

  

【made by siwuxie095】

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 脚面被压了肿起来了怎么办 每天加班很累反而失眠严重怎么办 减肥药吃了口臭嘴巴苦怎么办 上火引起的牙疼怎么办吃什么药 舌苔厚口气重怎么办应该吃什么药 宝宝老是额头热四肢不热怎么办 考老师考砸了心理崩溃了怎么办 苹果手机一会白屏一会黑屏怎么办 360云盘的东西删不了怎么办 手机邮箱打开的文件疑似病毒怎么办 电脑qq发送的文件失效了怎么办 小米4c温控文件打开是乱码怎么办 超星尔雅用学号登录密码忘了怎么办 全脸做激光去黄褐斑后脸发红怎么办 上传到微云中的视频下载不了怎么办 微云保存的小电影下载不了怎么办 苹果手机下载有云朵下载不了怎么办 手机下载登录忘了密码了怎么办 软软件被手机加密忘了密码怎么办 苹果手机想下载东西忘了密码怎么办 已经不念书几年了突然想上学怎么办 江湖风云录把王老爷子杀了怎么办 练扫踢胫骨旁边的肌肉受伤了怎么办 四个月宝宝没抱住摔了头部怎么办 老公老是跟年轻的小姑娘聊天怎么办 老婆出轨老公想离婚又舍不得怎么办 孕妇打完无痛分娩针就想睡觉怎么办 熟食店开空调菜品吹的很干怎么办 不锈钢锅在液化气烧了发黄怎么办 在小镇门面卤菜店不好卖怎么办? 被辣椒辣到嘴唇了该怎么办 沁园净水机不制水指示灯不亮怎么办 太辣了辣得胃疼怎么办 出现连接问题或mmi码无效怎么办 存折丢了怎么办卡号也不记得了 车内皮子被烂苹果腐蚀有印怎么办 锅被腐蚀后变黑色应该怎么办 后厨炉灶里的炉芯进水了怎么办 小儿九个月老是流黄鼻子该怎么办 肉炖的老了不烂怎么办 吃了凉东西现在一直打嗝应该怎么办