我发现一些算法,解释如何寻找强连通分量有向图,但没有解释为什么你会想这样做。 什么是强连接组件的应用程序?
Answer 1:
你应该检查出添拉夫加登的算法导论上Coursera课程。 对于每一个算法,他越过,他解释说,它的一些应用。 非常有用,让人看到学习算法的价值!
使用我记得他说强连通分量的是,人们可以用它来寻找谁是在一个巨大的数据集的更密切相关的人群。 Facebook认为,他们是如何建议的人,可能是你的朋友?
这也可以用来看到人口的块。 说,“哇,这个庞大的组件都有倒着走路的爱好,喜欢吃发霉的比萨!”,它可以显示相关性。 对于发霉的比萨饼广告商将利用这些数据来瞄准谁喜欢倒着走路的人。 谁知道!
Answer 2:
一个例子是在模型检验 :
寻找强连通分量是明确的做模型检验的形式验证 。
在模型检验-我们有一个状态机,它代表了我们的软件/硬件的型号,我们试图证明时间逻辑上1分的公式。
举个例子:式EG(p)
是指:有在图中的路径,其中,对于每个状态-逻辑公式p
产量true
。
的用于证明如果EG(p)为在图上真正算法 (模型)是寻找最大强连通分量(SCC),然后检查路径导致它在图中 。
需要注意的是模型检查在工业上广泛应用 - 特别是对于证明硬件组件的正确性。
(1)时序逻辑的计算机科学的重要性是伟大的,它的发明者阿米尔·伯努利收到了图灵奖吧!
Answer 3:
另一种应用可以在车辆路由应用被发现。 的道路网络可以被建模为一个有向图,其中顶点为交点,和弧被引导的道路段或单个车道。 如果图不是强连接,则车辆可以得到被困在图中的某一部分(即他们可以进来,但出不去)。
在很多这些车辆路由应用的,要生成一个特定的区域(例如一个城市内的路由问题)的路线。 生成路线之前,你必须提取街道数据,例如来自谷歌地图,这里的地图,或开街地图。 这些地图不只是涉及您感兴趣的区域,但它们覆盖了整个世界。 因此你最终通过计算所有交点谁的地理坐标感兴趣的区域内铺设的导出子取感兴趣的区域的快照,例如。 产生的子不一定强连接(例如,你可以有进入和离开该区域的道路,但没有连接到任何其他道路的区域内)。 一会又通过预处理枚举所有强连接组件,并且扔掉所有,但最大的组成部分的子图。