📅  最后修改于: 2020-12-13 15:17:09             🧑  作者: Mango
图是一种抽象符号,用于表示对象对之间的连接。图由-
顶点-图形中的互连对象称为顶点。顶点也称为节点。
边缘-边缘是连接顶点的链接。
有两种类型的图-
有向图-在有向图中,边具有方向,即边从一个顶点到另一个顶点。
无向图-在无向图中,边没有方向。
图形着色是一种将颜色分配给图形的顶点的方法,以使两个相邻的顶点都不具有相同的颜色。一些图形着色问题是-
顶点着色-一种为图形的顶点着色的方法,以便没有两个相邻的顶点共享相同的颜色。
边缘着色-这是一种为每个边缘分配颜色的方法,以便没有两个相邻的边缘具有相同的颜色。
面着色-将颜色分配给平面图的每个面或区域,以便没有两个共享公共边界的面具有相同的颜色。
色数是为图形着色所需的最小颜色数。例如,下图的色数为3。
图形着色的概念被用于准备时间表,移动无线电频率分配,Suduku,寄存器分配以及地图着色。
将n维数组中每个处理器的初始值设置为1。
现在要将特定颜色分配给顶点,请确定该颜色是否已经分配给相邻顶点。
如果处理器在相邻顶点中检测到相同的颜色,则将其在数组中的值设置为0。
在进行n 2个比较之后,如果数组的任何元素为1,则它是有效的着色。
begin
create the processors P(i0,i1,...in-1) where 0_iv < m, 0 _ v < n
status[i0,..in-1] = 1
for j varies from 0 to n-1 do
begin
for k varies from 0 to n-1 do
begin
if aj,k=1 and ij=ikthen
status[i0,..in-1] =0
end
end
ok = ΣStatus
if ok > 0, then display valid coloring exists
else
display invalid coloring
end
其所有边的权重(或长度)之和小于图G的所有其他可能的生成树的生成树称为最小生成树或最小成本生成树。下图显示了一个加权连接图。
上图的一些可能的生成树如下所示-
在上述所有生成树中,图(d)是最小生成树。最小成本生成树的概念适用于旅行商问题,设计电子电路,设计有效的网络以及设计有效的路由算法。
为了实现最小成本生成树,使用以下两种方法-
Prim的算法是一种贪婪算法,可帮助我们找到加权无向图的最小生成树。它首先选择一个顶点,然后找到入射到该顶点上权重最低的边。
选择任意顶点,例如图G的v 1 。
选择一条边,例如说G的e 1 ,使得e 1 = v 1 v 2且v 1 ≠v 2,并且e 1在入射到图G中v 1的边中具有最小权重。
现在,在步骤2之后,选择入射在v 2上的最小加权边。
继续此操作,直到选择了n–1条边。这里n是顶点的数量。
最小生成树为-
Kruskal算法是一种贪婪算法,它可以帮助我们找到连通加权图的最小生成树,并在每个步骤中增加成本弧。它是最小生成树算法,用于找到连接森林中任意两棵树的权重最小的边缘。
选择最小重量的边缘;比方说ë1图G和e 1是不是一个循环。
选择连接到e 1的下一个最小加权边。
继续此操作,直到选择了n–1条边。这里n是顶点的数量。
上图的最小生成树为-
最短路径算法是找到从源节点到目标节点的最小开销路径的方法。在这里,我们将讨论摩尔算法,也称为广度优先搜索算法。
标记源顶点S并将其标记为i并设置i = 0 。
查找与标记为i的顶点相邻的所有未标记的顶点。如果没有顶点连接到顶点S,则顶点D未连接到S。如果存在顶点连接到S,则将其标记为i + 1 。
如果标记了D,则转到步骤4,否则转到步骤2以增加i = i + 1。
找到最短路径的长度后停止。