我有两个加权DAG(有向无环图),需要将它们合并为一个,以便获得一个拓扑排序(在某些情况下可能会超过两个)。问题在于,这些图各自都是无环的,但一起可能形成循环。此外,这些图很大(100k+节点,500k+边)。
有没有聪明的方法来合并这些图?同样好的方案是编写一种算法以“同时”遍历所有图。
编辑: 通过“合并”,我意味着将两个图的所有边和顶点组合在一起(当然要保留权重),如果它们不会创建循环。如果边已经存在,则要使用更大的权重。 这个想法是从两个无环图开始应该比之后简单地“修复”结果更有优势(这将意味着找到NP难的反馈弧集,因此我想避免那个)。 感谢您的建议。
编辑: 通过“合并”,我意味着将两个图的所有边和顶点组合在一起(当然要保留权重),如果它们不会创建循环。如果边已经存在,则要使用更大的权重。 这个想法是从两个无环图开始应该比之后简单地“修复”结果更有优势(这将意味着找到NP难的反馈弧集,因此我想避免那个)。 感谢您的建议。