我正在考虑使用Prim的算法来优化输水管道问题。当找到有相邻顶点的边时,我非常困惑如何初始化邻接矩阵。我想在边缘存在时加重。然而,w(Vi,Vj)本身看起来是一个权重矩阵。那么,为什么我首先需要A {Vi,Vj}。
我所要做的就是编写一种算法方法,然后继续编写程序。请告知以下是否可以?
设置邻接矩阵A {Vi,Vj}。这里Vi包含所有访问过的节点,Vj包含所访问的Vi的所有相邻节点。矩阵下方将存储与其相邻房屋相隔一定距离的所有房屋。我很困惑
for 每个Vi:= 1到n do // Vith是存储一对房子的第i个顶点 for 每个Vj:= 1到n do // Vjth是相邻的一对房子有一些重量 如果(Vi和Vj之间存在边缘)则 设置 A {Vi,Vj}与w(Vi,Vj) 其他如果(Vi和Vj之间不存在边缘)则 设置 A [Vi,Vj]:= 0
计算最小生成树。
答案 0 :(得分:0)
在您的问题中的图算法中,如果给出权重,除了权重之外,通常不会明确地编码邻接。相反,图形被认为是一个完整的图形(即evey顶点与任何其他顶点相邻),但对于初始图形中的非相邻顶点u
,v
,权重被编码为'无穷大,编码为所用数据类型的最大值,在计算等中识别的一些负值。使用这种方法,不可行的边缘将永远不会被考虑,因为它们比最初问题的任何可行解决方案都更昂贵。
答案 1 :(得分:0)