将图划分为边对的算法
Algorithm for dividing graph into edge pairs
我收到了一项任务,要找到一种算法,该算法将图 G(V,E) 划分为成对的相邻边(为图着色,以便每对相邻边具有相同的颜色)。
我试图通过绘制一些随机图表来解决这个问题,并得出了一些结论:
- 如果一个顶点连接到 2(4,6,8...) 个度数为 1 的顶点,则这些顶点构成一对边。
- 如果度数为 1 的顶点直接连接到环,则环的哪条边与单独的边成对并不重要。
但是,我无法得出任何其他结论,所以我尝试了另一种方法。我考虑过使用 DFS,找到连接点并将图划分为边数为偶数的子图,因为这些子图也应该可以按此规则划分,依此类推,直到我最终只得到 |E(G')| 的子图。 = 2.
我想到的另一件事是创建图形 G',其中 E(G) = V(G') 和 V(G) = E(G')。这样我就可以得到一个图,我可以在其中通过 DFS 或始终从叶顶点及其相邻顶点开始删除成对的顶点(以前的边)。
最后一种技术最吸引我,但它似乎是最慢的。非常感谢任何有关这些方法中哪种方法最好的反馈或提示。
编辑:换句话说,将图表想象成一个城镇的布局。顶点是十字路口,边是道路。我们想对每条道路装饰(扫描、着色)恰好一次,但是我们只能同时装饰两条相连的道路。我希望这有助于澄清。
例如,图 G 的 E={ab,bd,cd,ac,ae,be,bf,fd},可能的对组合之一是 P={{ab,bf},{ac, cd},{ae,eb},{bd,df}}.
一种方法是构造一个新图 G,其中:
- G中的一个顶点对应原图中的一条边
- G 中的一条边连接 G 中的顶点 a 和 b,其中 a 和 b 表示原始图中在原始图中的顶点相交的边
那么,如果我没理解错原题的话,G的objective就是求最大匹配,比如用Blossom algorithm.[=11就可以了=]
我收到了一项任务,要找到一种算法,该算法将图 G(V,E) 划分为成对的相邻边(为图着色,以便每对相邻边具有相同的颜色)。
我试图通过绘制一些随机图表来解决这个问题,并得出了一些结论:
- 如果一个顶点连接到 2(4,6,8...) 个度数为 1 的顶点,则这些顶点构成一对边。
- 如果度数为 1 的顶点直接连接到环,则环的哪条边与单独的边成对并不重要。
但是,我无法得出任何其他结论,所以我尝试了另一种方法。我考虑过使用 DFS,找到连接点并将图划分为边数为偶数的子图,因为这些子图也应该可以按此规则划分,依此类推,直到我最终只得到 |E(G')| 的子图。 = 2.
我想到的另一件事是创建图形 G',其中 E(G) = V(G') 和 V(G) = E(G')。这样我就可以得到一个图,我可以在其中通过 DFS 或始终从叶顶点及其相邻顶点开始删除成对的顶点(以前的边)。
最后一种技术最吸引我,但它似乎是最慢的。非常感谢任何有关这些方法中哪种方法最好的反馈或提示。
编辑:换句话说,将图表想象成一个城镇的布局。顶点是十字路口,边是道路。我们想对每条道路装饰(扫描、着色)恰好一次,但是我们只能同时装饰两条相连的道路。我希望这有助于澄清。
例如,图 G 的 E={ab,bd,cd,ac,ae,be,bf,fd},可能的对组合之一是 P={{ab,bf},{ac, cd},{ae,eb},{bd,df}}.
一种方法是构造一个新图 G,其中:
- G中的一个顶点对应原图中的一条边
- G 中的一条边连接 G 中的顶点 a 和 b,其中 a 和 b 表示原始图中在原始图中的顶点相交的边
那么,如果我没理解错原题的话,G的objective就是求最大匹配,比如用Blossom algorithm.[=11就可以了=]