从图到算法【图论】

简介: 柯尼斯堡七桥问题是图论中的著名问题。

柯尼斯堡七桥问题


柯尼斯堡七桥问题是图论中的著名问题。这个问题是基于一个现实生活中的事例:当时东普鲁士柯尼斯堡(今日俄罗斯加里宁格勒)市区跨普列戈利亚河两岸,河中心有两个小岛。小岛与河的两岸有七条桥连接。在所有桥都只能走一遍的前提下,如何才能把这个地方所有的桥都走遍?

5c2fbedf7f22e17b98af8ab0db7b793.png

解决方式


莱昂哈德·欧拉在1735年提出,并没有方法能圆满解决这个问题,他在第二年发表在论文《柯尼斯堡的七桥》中,证明符合条件的走法并不存在,也顺带提出和解决了一笔画问题。这篇论文在圣彼得堡科学院发表,成为图论史上第一篇重要文献。欧拉把实际的抽象问题简化为平面上的点与线组合,每一座桥视为一条线,桥所连接的地区视为点。这样若从某点出发后最后再回到这点,则这一点的线数必须是偶数,这样的点称为偶顶点。相对的,连有奇数条线的点称为奇顶点。欧拉论述了,由于柯尼斯堡七桥问题中存在4个奇顶点,它无法实现符合题意的遍历。d3707fa15a4b49ddc627ebc02949974.png

欧拉把问题的实质归于一笔画问题,即判断一个图是否能够遍历完所有的边而没有重复,而柯尼斯堡七桥问题则是一笔画问题的一个具体情境。欧拉最后给出任意一种河──桥图能否全部走一次的判定法则,从而解决了“一笔画问题”。对于一个给定的连通图,如果存在超过两个的奇顶点,那么满足要求的路线便不存在了,且有n个奇顶点的图至少需要   笔画出。如果只有两个奇顶点,则可从其中任何一地出发完成一笔画。若所有点均为偶顶点,则从任何一点出发,所求的路线都能实现,他还说明了怎样快速找到所要求的路线。 不少数学家都尝试去解析这类事例。而这些解析,最后发展成为了数学中的图论。

图论


图论(英语:Graph theory),是组合数学分支,和其他数学分支如群论、矩阵论、拓扑学有着密切关系。 图是图论的主要研究对象。图是由若干给定的顶点及连接两顶点的边所构成的图形,这种图形通常用来描述某些事物之间的某种特定关系。顶点用于代表事物,连接两顶点的边则用于表示两个事物间具有这种关系。 图论起源于著名的柯尼斯堡七桥问题。该问题于1736年被欧拉解决,因此普遍认为欧拉是图论的创始人。

图论定义


图G=(V,E)是一个二元组(V,E)使得E⊆[V]的平方,所以E的元素是V的2-元子集。为了避免符号上的混淆,我们总是默认V∩B=Ø。集合V中的元素称为图G的定点(或节点、点),而集合E的元素称为边(或线)。通常,描绘一个图的方法是把定点画成一个小圆圈,如果相应的顶点之间有一条边,就用一条线连接这两个小圆圈,如何绘制这些小圆圈和连线时无关紧要的,重要的是要正确体现哪些顶点对之间有边,哪些顶点对之间没有边。

与图论有关的重要算法


• 戴克斯特拉算法(D.A) • 克鲁斯卡尔算法(K.A) • 普里姆算法(P.A) • 拓扑排序算法(TSA) • 关键路径算法(CPA) • 广度优先搜索算法(BFS) • 深度优先搜索算法(DFS)

目录
相关文章
|
6月前
|
存储 算法 索引
数据结构与算法之图论及其相关算法
图的基本介绍 线性表局限于一个直接前驱和一个直接后继的关系,树也只能有一个直接前驱也就是父节点,当我们需要表示多对多的关系时, 这里我们就用到了图。 图是一种数据结构,其中结点可以具有零个或多个相邻元素。两个结点之间的连接称为边。 结点也可以称为顶点。如图: 简单来说,图就是由顶点的有穷非空集合和顶点之间的边组成的集合。通常表示为:G(V,E),其中,G 表示一个图,V 表示顶点的集合,E 表示边的集合。 然后我们说说图中的一些常见概念: 节点(Vertex):图中的基本元素,用于表示某个实体。 边(Edge):连接两个节点的线段,用于表示节点之间的关系。 度(Degree):
32 0
|
24天前
|
存储 机器学习/深度学习 算法
图论基础:从数学原理到C/C++实现
图论基础:从数学原理到C/C++实现
70 0
|
1月前
|
人工智能 算法 Java
【算法设计与分析】— —单源最短路径的贪心算法
【算法设计与分析】— —单源最短路径的贪心算法
32 0
|
3月前
|
存储 算法 搜索推荐
算法06-搜索算法-广度优先搜索
算法06-搜索算法-广度优先搜索
|
4月前
|
算法
拓扑排序【学习算法】
拓扑排序【学习算法】
32 0
|
6月前
|
算法 测试技术 C#
C++算法:存在负权边的单源最短路径的原理和实现
C++算法:存在负权边的单源最短路径的原理和实现
|
8月前
|
算法 Java
单源最短路径【学习算法】
单源最短路径【学习算法】
48 0
|
10月前
|
算法
图论
图论
52 0
|
12月前
|
存储 算法 C++
秒懂算法 | 图论
图论是一个“巨大”的专题,有大量的知识点,有众多广为人知的问题,有复杂的应用场景。 图论算法常常建立在复杂的数据结构之上。本文讲解了基础的图论考点,帮助大家了解图论专题
169 0
|
12月前
|
算法
最短路径之基于贪心算法的迪杰斯特拉dijkstra算法(有图解,含码源)
最短路径之基于贪心算法的迪杰斯特拉dijkstra算法(有图解,含码源)
216 0