Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Graph 有向图中的最短路径——在每一层选择最强连通节点_Graph_Path - Fatal编程技术网

Graph 有向图中的最短路径——在每一层选择最强连通节点

Graph 有向图中的最短路径——在每一层选择最强连通节点,graph,path,Graph,Path,我正在寻找一种算法,在有向图中找到点a和点B之间的路径。约束条件是,必须始终首先尝试成本最高的边。 它与查找最短或最长路径不同,因为必须在每个级别检查此约束。 我将举一个例子:第一列是起点,第二列是终点: A C 8 A D 5 A E 2 B A 1 D A 5 D B 1 D E 3 E B 2 从A到B的正确路径为: A--5-->D--1-->B A到C是第一次尝试,但由于C未连接到任何其他节点,因此继续使用第二个选项:A到D 由于A是当前路径(AD)的一部分,D到A被丢弃 选择D到

我正在寻找一种算法,在有向图中找到点a和点B之间的路径。约束条件是,必须始终首先尝试成本最高的边。 它与查找最短或最长路径不同,因为必须在每个级别检查此约束。 我将举一个例子:第一列是起点,第二列是终点:

  • A C 8
  • A D 5
  • A E 2
  • B A 1
  • D A 5
  • D B 1
  • D E 3
  • E B 2
从A到B的正确路径为: A--5-->D--1-->B A到C是第一次尝试,但由于C未连接到任何其他节点,因此继续使用第二个选项:A到D 由于A是当前路径(AD)的一部分,D到A被丢弃 选择D到B以最小化路径,尽管D和E之间存在另一个更强的连接

因此,按重要性顺序排列的禁忌是: -最短路径 -每个级别的最强连接

谢谢,
Cristi

这是一种改进的Dijkstra算法,每一步都优先选择重边。

谢谢,我自己已经弄明白了。但是,我尝试编写此代码,但失败了。现在我正在寻找一些已经编写好的代码,然后发布你已经尝试过的!实际上有成千上万的Dijkstra实现。我不敢相信你不能根据自己的需要修改一个;如果您的编程技能不能胜任该任务,恐怕示例代码对您帮助不大:(