我正在研究我的学士论文我必须编写本文的代码,该代码使用修改后的Dijkstra算法来处理2个节点之间的多个顶点不相交路径。我研究了Dijkstra和修改过的Dijkstra,并且遇到了Bhandari算法的顶点不相交对。我不知道如何从顶点分裂开始(如果我正在使用矩阵和向量,而不是树。)我还需要在Matlab上进行模拟。我从头开始遇到困难,因为到目前为止我只参加了2门C编程课程。 有没有我可以开始的代码?我发布了Bhandari的顶点分裂算法。
- 对于所考虑的给定顶点对,使用the找到最短路径 修改了Dijkstra或BFS算法。
- 用指向目的地的弧线替换最短路径上的每条边 顶点
- 将最短路径上的每个顶点拆分为两个由弧连接的并置子顶点 长度为零。将此弧指向目标顶点。更换每个外部 边缘通过其两个分量弧(长度)连接到最短路径上的顶点 等于边长);让一个弧终止于一个子顶点,另一个弧终止 从其他子顶点发出,使得与零长度弧一起形成一个循环 结果
- 在最短路径上反转弧的方向。也做出自己的长度 负
- 将修改后的Dijkstra或BFS算法从源顶点运行到
中修改后的图形中的目标顶点- 移除零长度弧;将子顶点合并到其父顶点中。 用最初的边缘(正面)替换最短路径的单个弧 长度)。删除上面找到的两条路径的交错边缘以获得最短的路径 一对路径。**
醇>