标签: java algorithm graph matching graph-algorithm
给定一个有向图,我可以用什么算法找到其边缘的随机子集,以便每个节点只有一个传入和一个传出边?
例如,这可能是我给出的图表:
这将是一个有效的输出图:
这是有效的,因为:
如果没有可能的解决方案应该被检测到。
是否有一种有效的算法来解决这个问题?
谢谢!
答案 0 :(得分:5)
这是节点周期覆盖问题。它可以解决为Maximum matchings in bipartite graphs。
简而言之:
答案 1 :(得分:0)
您正在尝试将图表分解为一组周期。
This link指向Tarjan的算法,用于在图表中查找周期。
之后,您将需要一些搜索策略(根据您的约束,某些周期选择可能无法找到解决方案)。