标签: c++ boost graph graph-theory
我正在尝试解决一个我确定以前已经解决的问题,我只是不知道图论中的解决方案是什么。
我有一个图G(V,E),它包含一个具有in-degree 0的顶点集START,以及另一个具有out-degree 0的顶点集END。 如何在V中找到最小的顶点B集,但不能在START或END中找到导致顶点START和END完全断开的顶点B.
请注意,这是一个DAG,所以我不相信Tarjan的Articulation算法适用。
答案 0 :(得分:0)
我敢于提出一种基于广度优先搜索的方法,
如果我们假设存在从1到N的节点级别,为了从端节点断开所有起始节点,应该删除这N个级别中的至少一个, 因此我们只需找出节点数最少的级别。
例如,在下图中,级别1和级别N各有六个节点(我们可能需要考虑一些边界条件,例如,如果起始节点直接连接到端节点等情况):