表示节点也是权重的图形



考虑一个图,它在每个节点上而不是在两个节点之间都有权重。因此,前往节点的成本将是该节点的权重。

1-我们如何表示此图?

2-这种类型的图形是否有最小跨越路径算法(或者我们可以修改现有算法)?

例如,考虑一个矩阵。当从一个数字移动到另一个数字时,什么路径会产生最小金额?(请记住,图形必须是定向的)

  1. 如果不想调整现有算法并使用面向边缘的方法,则可以将节点权重转换为边缘权重。对于节点 v 的每个传入边,可以将 v 的权重保存到边上。这就是表示。

  2. 好吧,使用1的方法。 现在,使用MST等众所周知的算法很容易做到这一点。

您还可以根据需要表示图形,并将权重保持在节点上。该算法根本没有使用Weight w = edge.weight();它会使用Weight w = edge.target().weight()简单完成。无需进行大的调整。

如果必须使用邻接矩阵,则需要第二个具有节点权重的数组,并且在邻接矩阵中只有 0 - 表示无边或 1 - 表示边。

希望有帮助

最新更新