大型DAG上的拓扑排序示例

时间:2011-08-31 17:18:04

标签: database dataset bioinformatics directed-acyclic-graphs topological-sort

我正在寻找在大图尺寸上执行拓扑排序的真实世界应用。

我想象你可以找到这样的实例的一些领域是生物信息学,依赖性解析,数据库,硬件设计,数据仓库......但我希望你们中的一些人可能遇到或听说过任何特定的算法/项目/应用程序/需要topsort的数据集。

即使数据/项目可能无法公开访问任何提示(以及对潜在图表大小的数量级的估计)可能会有所帮助。

4 个答案:

答案 0 :(得分:10)

以下是我到目前为止看到的拓扑排序的一些例子:

  • 在分布式系统中调度任务图时,通常是这样 需要在拓扑上对任务进行排序,然后将它们分配给 资源。我知道包含超过100,000的任务图 要按拓扑顺序排序的任务。在此上下文中请参阅this

  • 曾几何时我正在研究文件管理系统。每 该系统上的文件对a有某种优先约束 一组其他文件,例如其内容类型或字段引用。 然后,系统应该能够生成文档的顺序 保留的拓扑顺序。我记得,有 两年前提供的5,000,000份文件!!!

  • 在社交网络领域,有着名的查询知道 网络中最大的友谊距离。这个问题需要 通过BFS方法遍历图表,等于a的成本 拓扑排序。考虑一下Facebook的成员并找到你的 答案。

如果您需要更多真实的例子,请不要犹豫,问我。我曾参与过大型项目的大量项目。

P.S。对于大型DAG数据集,您可以查看Stanford Large Network Dataset CollectionGraphics@ Illinois页面。

答案 1 :(得分:3)

我不确定这是否符合您的要求,但您知道Bio4j项目吗?

并非所有存储在基于图形的数据库中的内容都足以进行拓扑排序(在图的重要部分中存在有向循环),但是存在像Gene Ontology和Taxonomy这样的子图,其中这种排序可能有意义

答案 2 :(得分:1)

TopoR是一种商用拓扑PCB路由器,首先将PCB作为拓扑问题进行路由,然后将拓扑转换为物理空间。它们支持多达32个电气层,因此它应该具有数千个连接(例如10 ^ 4)。

我怀疑集成电路可能使用类似的方法。

答案 3 :(得分:1)

company where I work管理软件漏洞和补丁的(专有)数据库。修补程序通常由软件供应商(如Microsoft,Adobe等)定期发布,“新的和改进的”修补程序“取代”较旧的修补程序,因为如果您将较新的修补程序应用于主机,则旧的不再需要补丁。

这产生了一个DAG,其中每个软件补丁都是一个节点,其弧线指向每个“取代”补丁的节点。图表中目前有近10K节点,每周都会添加新的补丁。

拓扑排序在此上下文中非常有用,可以验证图形中是否包含循环 - 如果它们确实出现,则表示添加新数据库记录时出现错误,或者由于数据复制之间存在损坏而导致损坏数据库实例。