当前位置: 首页 > 知识库问答 >
问题:

图的边对分割算法

贺福
2023-03-14

我接到一个任务,要找到一种算法,将图G(V,E)分成几对相邻边(给图上色,这样每对相邻边都有相同的颜色)。

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

  1. 如果顶点连接到2(4,6,8…)阶数为1的顶点构成一对边
  2. 如果阶数为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}}。

共有1个答案

卓学智
2023-03-14

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

  1. G中的顶点对应于原始图中的边

然后,如果我正确理解了原始问题,G的目标是找到最大匹配,这可以通过Blossom算法来实现。

 类似资料:
  • 我使用精明的边缘检测器来检测输入图像的边缘。 在每个输入图像中,可以有两个对象(主对象和其中的另一个对象),如示例图像所示。因此,在这种情况下,我应该检测两条边 我根据输入图像自动确定上下阈值(使用中值和西格玛)。大多数情况下,canny工作正常,但有时当图像对比度不太好时,边缘检测失败,如以下示例所示(注意:-外边缘始终正确检测,内边缘出现问题) Canny检测到外部边界的边缘,但内部对象的边缘

  • 我需要在MATLAB中实现一个基于连通分量算法原理的图像分割函数,但需要做一些修改。这是为了非常简单的2D图像,有一个背景颜色和一些不同颜色的对象。 其思想是,将图像作为一个矩阵,我提供了一个选择背景颜色的工具(它将对每个图像变化)。然后,当图像的背景颜色的值被选中时,我要对图像中的所有对象进行分割,结果应该是一个带标签的矩阵,图像大小相同,背景为0,每个对象有不同的数字。 这是我的意思的一个生动

  • 目标 在本章中, 我们将学习使用分水岭算法实现基于标记的图像分割 我们将看到:cv.watershed() 理论 任何灰度图像都可以看作是一个地形表面,其中高强度表示山峰,低强度表示山谷。你开始用不同颜色的水(标签)填充每个孤立的山谷(局部最小值)。随着水位的上升,根据附近的山峰(坡度),来自不同山谷的水明显会开始合并,颜色也不同。为了避免这种情况,你要在水融合的地方建造屏障。你继续填满水,建造障

  • 目标 在这一章当中, 我们将学习使用基于标记的分水岭算法来进行图像分割 我们将看到:cv2.watershed() 理论基础 任何灰度图像可以被看作是一个地形表面,其中高强度表示峰和山,而低强度表示山谷。你开始用不同颜色的水(标签)填充每个孤立的山谷(局部最小值)。随着水位上升,根据附近的山峰(梯度),来自不同山谷的水,明显不同的颜色将开始合并。为了避免这种情况,你在水合并的地方建立障碍。你继续填

  •   分割窗口将窗口分成几个部分,每个部分通常代表一个视图(但也可以是具有子窗口标识的CWnd对象),又称窗格。如图8-8所示。如果想在一个窗口里面观察文档的不同部分,或者是在一个窗口里用不同类型的视图(比如用图表和表格)观察同一个文档,那么采用分割窗口是非常方便的。许多优秀的软件都采用了分割窗口技术,因此我们有必要掌握分割窗口的用法。 图8-8 分割窗口 分割窗口分为两类:动态分割窗口和静态分割窗

  • 我得到了一个图像,也得到了图像中区域的边界。例如,我有一个逻辑类型的掩码,边界的值为1,而对于其他像素,该值为0。我想对边界分割的区域进行标注,而我不确定如何基于连续边界对区域进行分割和标注。 边界看起来是这样的: 有了上面的图表,将会识别出四个区域。