将图划分为边对的算法

时间:2018-04-02 13:49:32

标签: algorithm graph-theory

我接到了一项任务,即找到一种算法,将图G(V,E)划分为相邻边对(将图形着色,使每对相邻边具有相同的颜色)。

我试图通过绘制一些随机图来解决这个问题并得出一些结论:

  1. 如果一个顶点连接到1度的2(4,6,8 ...)个顶点,它们会产生一对边。
  2. 如果1度的顶点直接连接到一个循环,那么循环的哪个边缘与单个边缘配对并不重要。
  3. 但是,我无法得出任何其他结论,所以我尝试了不同的方法。我想过使用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}}

1 个答案:

答案 0 :(得分:2)

一种方法是构建一个新的图G,其中:

  1. G中的顶点对应于原始图中的边
  2. G中的边连接G中的顶点a和b,其中a和b表示原始图中与原始图中的顶点相交的边
  3. 然后,如果我已正确理解原始问题,G的目标是找到最大匹配,例如,可以使用Blossom algorithm来完成匹配。