Graph theory:
In mathematics, graph theory is the study of graphs, which are mathematical structures used to model pairwise relations between objects. A graph in this context is made up of vertices (also called nodes or points) which are connected by edges (also called links or lines). A distinction is made between undirected graphs(无向图), where edges link two vertices symmetrically, and directed graphs(有向图), where edges link two vertices asymmetrically.
上面是节选自Wikipedia的关于图论的定义,对图的定义的十分清晰。图论作为数学的一个分支已经发展了数百年的历史了,前人们发现了很多图的需要重要且实用的性质,发明了许多重要的算法,时至今日,仍然有许多困难的问题的研究十分活跃。我们会先从图,论基础开始慢慢的深入图论,讨论图论的一些性质,讨论和图论的一些关联的实际问题,并试图用算法解决。为了展示图论应用的广泛领域,我们在踏入这片富饶之地之前先看看几个和图相关的几个实例。
地图。对于想要陆行的人可能想知道城市A到城市B的哪条路径的距离最短?对于经历过交通堵塞的人们可能想知道从城市B哪条路线的用时最短?解决这些问题,就需要处理节点(十字路口)之间多条连接(公路)的信息。
计算机网络。计算机网络是由能够发送、转发、接收的站点互相连接组成的。我们感兴趣的是这种互联结构的性质,因为我们希望网络中的线路和交换设备能够高效地处理网络流量。
社交网络。使用社交网络时,你和你的好友、家人建立起明确的关系。在社交网络中,节点是每一个个体,而连接则是把各个个体连接起来。分析这些社交网络的性质是图论算法的一个重要应用领域(据说十年前对图论有研究的程序员在Facebook十分吃香 ^_^)。
图论中包含四种重要的图模型:无向图(简单连接)、有向图(连接带有方向性)、加权图(连接带有价值)和加权有向图(连接既有方向又有价值)。我们将从无向图开始进入图论的学习,并在无向图中介绍图中的血多重要概念和定义。这些定义对于我们理解图的性质和运用图进行工程问题求解是十分有帮助的。
-
无向图
定义:图是由一组顶点和一组能够把顶点连接起来的边组成。我们做一个约定,使用1到V表示顶点1到顶点V,这样的约定便于我们使用数组索引图中的顶点,从而能够编写出高效访问节点信息的代码。在绘制图时,通常用圆圈表示顶点,用连接两个顶点的线段表示边,这样就能直观的看出图的结构来,但图的定义和图的描绘是无关的。
关于图的定义会有两种特殊情况。①自环边:及一条连接一个顶点及其自身的一条边。②平行边:连接同一对顶点的两条边称之为平行边。数学家们通常把拥有平行边的图称之为多重图,把不拥有平行边的图称之为简单图。下图是一个包含自环边和平行边的图。