【问题标题】:Examples for Topological Sorting on Large DAGs大型 DAG 上的拓扑排序示例
【发布时间】:2011-11-07 19:38:48
【问题描述】:

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

我认为您可以找到此类实例的一些领域是生物信息学、依赖关系解析、数据库、硬件设计、数据仓库......但我希望你们中的一些人可能已经遇到或听说过任何特定的算法/项目/应用程序/需要 topsort 的数据集。

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

【问题讨论】:

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


    【解决方案1】:

    以下是迄今为止我看到的一些拓扑排序示例:

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

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

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

    如果您需要更多真实示例,请随时问我。我曾在许多处理大型图表的项目中工作过。

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 你能提供这些子图的数量级吗?
      • 我认为 Gene Ontology 的大小约为 30.000 - 40.000 个节点,而 NCBI tanonomy 大约有 425.000 个节点。无论如何,这两个不会是唯一合适的子图,如果您对此事感兴趣,我可以为您提供更广泛的此类子图列表。
      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

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

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

        在这种情况下,拓扑排序可用于验证图形是否不包含循环 - 如果确实出现循环,则表示添加新数据库记录时出错,或者由于数据复制之间的拙劣数据复制而导致损坏数据库实例。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-07-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多