第五章 图论 图论是一门古老的学科,有200多年的历史 Euler是图论之父,他用图论的方法解决了哥尼斯褒七桥问题 哥尼斯褒七桥问题 普鲁士的哥尼斯堡镇(现名加里宁格勒,属于俄罗斯共和国)被普雷格尔河支流分成4 部分:河两岸、河中心岛、两条支流之间的部分。在18 世纪有7 座桥连接这4部分。 镇上的人们在周日里穿过镇子进行长距离的散步。他们想弄明白是否可能从镇里某个位置出发不重复地经过所有桥并且返回出发点。
瑞士数学家列昂哈德·欧拉解决了这个问题。他的解答在1736年发表,欧拉利用多重图来研究这个问题,用顶点表示4个部分,用边表示桥。 图论所研究的图是抽象的图,它是事物及其相互之间的联系的图形表示,不是日常的地理位置,本质上就是集合及其上的关系的图形表示。(见第3章) 所以,表示图的图形可以任意变形,只要不改变点之间的连接关系即可。
5.1图的定义 定义1 简单图(简单无向图) G=(V,E),V是顶点集,E是边集。 V中的元素称为顶点,E中的元素称为边。 不同的顶点组成的无序偶称为边 例 计算机网络拓扑图,用图为计算机网络建模
定义2 多重图 G=(V,E,f),V是顶点集,E是边集。 f:E→{{u, v} u,v∈V,u≠v} (多)重边、平行边:f值相同的边 例 计算机网络拓扑图,用图为计算机网络建模
定义3 伪图 G=(V,E,f),V是顶点集,E是边集。 f:E→{{u, v} u,v∈V } 环:f(e)=1 例 计算机网络拓扑图,用图为计算机网络建模
伪图→多重图→简单图 定义4 有向图(简单有向图) G=(V,E),V是顶点集,E是边集。 V中的元素称为顶点,E中的元素称为边。 不同的顶点组成的有序偶称为边 例 用图为电话网络建模
定义5 有向多重图 G=(V,E,f),V是顶点集,E是边集。 f:E→{(u, v) u,v∈V } 例 计算机网络拓扑图,用图为计算机网络建模
解:通过并发地执行某些语句,计算机程序可以执行得更快。重要的是避免执行需要尚未执行语句结果的语句。 图总结 “图”:总称 例1. 用图来为并发程序建模 解:通过并发地执行某些语句,计算机程序可以执行得更快。重要的是避免执行需要尚未执行语句结果的语句。 (接下页)
语句与前面语句的相关性可以表示成有向图。用顶点表示每个语句,若在执行完第一个顶点所表示的语句之前不能执行第二个顶点所表示的语句,则从第一个顶点到第二个顶点有一条边。这样的图称为优先图。图7-9显示计算机程序和优先图。例如,该图说明在执行语句s1、s2和s3之前不能执行语句s5。 习题 判断以下所示的图是否简单图、多重图(非简单图)、伪图(非多重图)、有向图或有向多重图(非有向图)。
2.用下图里的栖息地重叠图来确定与鹰竞争的物种。