1 图的基本概念
- 格式:ppt
- 大小:651.00 KB
- 文档页数:54
图论(1)--图的基本概念有向图和⽆向图的建⽴以及赋权图引⼊Q:什么是图论?A:图论是数学的⼀个分⽀。
它以图为研究对象。
图论中的图是由若⼲给定的点及连接两点的线所构成的图形,这种图形通常⽤来描述某些事物之间的某种特定关系,⽤点代表事物,⽤连接两点的线表⽰相应两个事物间具有这种关系。
现在我们来探讨⽆向图和有向图的概念以及如何去建⽴最基本的图的模型什么是图对于初⼊图论的⼈来说,复杂的定义可能会直接劝退他们,现在我来举⼀个⾮常简单的例⼦。
这就是最常见的图,由于它没有指向,即没有明确的⽅向,它被称为⽆向图。
图是由顶点和边组成的,你应该很容易就知道那些元素是顶点,那些是边。
下⾯的具有⽅向的便是有向图:若有的边有向,有的边⽆向,则称为混合图。
接下来我们将引⼊更多的概念:若两个顶点有边相连,则称两个顶点相相邻,两个点称为起点/终点或端点如1指向2,则这两个顶点相邻,这两个顶点被称为断点,⽽1被称为起点,2被称为终点。
仅含⼀个顶点的边称为⾃环在⽆向图中,包含顶点v的边的个数,称为顶点的度。
在有向图中,以v为起点的边的个数,称为点的出度,以v为终点的边的个数,称为顶点的⼊度。
⽆向图的建⽴建⽴简单⽆向图,我们使⽤Matlab,版本为R2017a。
% 函数graph(s,t):可在 s 和 t 中的对应节点之间创建边,并⽣成⼀个图% s 和 t 都必须具有相同的元素数;这些节点必须都是从1开始的正整数,或都是字符串元胞数组。
s1 = [1,2,3,4]; %s为顶点,必须保证连续且从1开始的正整数t1 = [2,3,1,1]; %边 s与t之间是⼀⼀对应的G1 = graph(s1, t1);plot(G1) %画出效果图效果图:带汉字的⽆向图:% 注意字符串元胞数组是⽤⼤括号包起来的哦s2 = {'学校','电影院','⽹吧','酒店'};t2 = {'电影院','酒店','酒店','KTV'};G2 = graph(s2, t2);plot(G2, 'linewidth', 2) % 设置线的宽度% 下⾯的命令是在画图后不显⽰坐标set( gca, 'XTick', [], 'YTick', [] );效果图:有向图的建⽴:% ⽆权图 digraph(s,t)s = [1,2,3,4,1];t = [2,3,1,1,4];G = digraph(s, t);plot(G)set( gca, 'XTick', [], 'YTick', [] );注意边的顺序和⽅向,依次为1指向2,2指向3,3指向1,4指向1和1指向4效果图:赋权图的建⽴:赋权图,每条边都有⼀个⾮负实数对应的图。
计算机中图的名词解释在计算机领域中,图(Graph)是一种常见的数据结构,用于描述对象之间的关系和相互作用。
图的概念最早由数学家欧拉提出,并且在计算机科学中得到广泛运用。
本文将从图的基本概念和操作开始,逐步介绍计算机中图的相关术语和应用。
1. 图的基本概念图由节点(Node)和边(Edge)组成。
节点表示对象或实体,边表示节点之间的连接关系。
图可以分为有向图(Directed Graph)和无向图(Undirected Graph)。
在有向图中,边具有方向性,表示从一个节点流向另一个节点;而在无向图中,边没有方向性,表示两个节点之间的相互关系。
2. 图的存储方式为了在计算机中表示和处理图,常见的存储方式有邻接矩阵(Adjacency Matrix)和邻接表(Adjacency List)。
邻接矩阵是一个二维数组,其中行和列表示节点,矩阵的值表示节点之间是否有边相连。
邻接表则使用链表的形式来表示节点之间的连接关系,每个节点对应一个链表,链表中存储了与该节点相连的其他节点。
3. 图的遍历图的遍历是指沿着图中的路径,依次访问所有节点的过程。
常见的图遍历算法有深度优先搜索(Depth-First Search)和广度优先搜索(Breadth-First Search)。
深度优先搜索先选择一个起始节点,沿着路径一直深入直到无法继续,然后回溯到其他未访问的节点,继续深入;而广度优先搜索则是从起始节点开始,并逐层扩展,逐层访问。
4. 最短路径算法最短路径算法用于计算两个节点之间的最短路径,即路径上边的权值之和最小。
其中,最常用的最短路径算法是狄克斯特拉算法(Dijkstra Algorithm)。
该算法通过逐步更新节点到其他节点的距离,找到起始节点到目标节点的最短路径。
5. 拓扑排序拓扑排序(Topological Sorting)是一种对有向无环图进行排序的算法。
在有向图中,如果节点 A 的边指向节点 B,那么 B 必须在 A 之后才能出现在排序结果中。