这可能是一个没有最优解的问题。假设我有一个有向图,不知道它是否有任何环路(检测环路将是这个问题的一个方面)。给定一组顶点(可能有数百万个顶点),我需要计算给定图中所有唯一对之间的所有不同路径(具有不重复顶点的路径)的数量。如何解决这种情况?
让我们看看一种暴力的方法来解决这个问题:
- 计算出图中所有可能的配对。 - 对于图中的每一对,使用DFS获取源到目标的所有路径。 - 假设这些配对在哈希表中表示,将路径计数作为该配对的值。 - 重复处理其余的配对。
人们能指出这种方法可能会出现什么问题吗?让我们从这个角度思考问题,找到地球上所有城市之间所有不同路径的计算难题,并且如果有人尝试解决这个问题,应该从哪里开始?
编辑:其中一些算法产生O(n!)阶乘时间的结果。对于资源有限的单台机器来说,这是一项令人望而却步的计算。有人知道用MapReduce技术将图遍历问题分解成更小的块吗?
让我们看看一种暴力的方法来解决这个问题:
- 计算出图中所有可能的配对。 - 对于图中的每一对,使用DFS获取源到目标的所有路径。 - 假设这些配对在哈希表中表示,将路径计数作为该配对的值。 - 重复处理其余的配对。
人们能指出这种方法可能会出现什么问题吗?让我们从这个角度思考问题,找到地球上所有城市之间所有不同路径的计算难题,并且如果有人尝试解决这个问题,应该从哪里开始?
编辑:其中一些算法产生O(n!)阶乘时间的结果。对于资源有限的单台机器来说,这是一项令人望而却步的计算。有人知道用MapReduce技术将图遍历问题分解成更小的块吗?