繁体   English   中英

在有向图中有效查找2个节点之间的所有路径-RGL Gem

[英]Efficiently Finding all paths between 2 nodes in a directed graph - RGL Gem

我正在努力寻找一种有效的算法,该算法将为我提供有向图中2个节点之间的所有可能路径。

我发现RGL gem ,到目前为止,计算速度最快。 我可以使用gem中的Dijkstras Shortest Path Algorithm找到最短路径。

我用谷歌搜索,尽管有许多解决方案(红宝石/非红宝石),要么无法转换代码,要么代码花了很多时间来计算(效率低下)。

我主要是在这里,如果有人可以建议使用/调整RGL gem本身(如果可能)的各种算法或其他一些有效方法来查找所有路径。

有向图的输入可以是数组的数组。

[[1,2], [2,3], ..]

PS:只是为了避免负面投票/评论,不幸的是,我几天前就丢弃了它,并且没有将其保存在任何地方以备记录或在此处复制,因此我没有低效的代码片段来显示。

主要问题是两个节点之间的路径数与总节点数成指数增长。 因此,在较大的图上,找到两个节点之间所有路径的任何算法都将非常慢。

例:

例如,想象一个由nxn个节点组成的网格,每个节点都连接到它们的4个邻居。 现在,您要查找从左下节点到右上节点的所有路径。 即使只允许向右移动(r)并向上移动(u),您生成的路径也可以由长度为2n且具有(r)和(u)数目相等的任何字符串来描述。 这将为您提供“ 2n选择n”个可能的路径(忽略其他移动和循环)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM