图形的并行访问边缘算法?

4
参考图: enter image description here 我正在编写一个测试所有图的边缘的程序。如果它们没有共同的节点,则该程序可以并行测试图的边缘。我的问题在于,我还必须有选择地不以最有效的方式测试边缘。
如果在上面的图中测试最有效的并行边缘,则第一次循环可以同时测试ABDECF的边缘,随后在第二次循环期间测试ADBCEF的边缘。这样第三个周期只剩下BE了。
如果我只能同时进行两个并行边缘的测试,那么我可以以多种方式访问边缘,其中一些比其他方式更有效。例如:ABCF可以首先被访问,然后是BCAD。这样仍需要一个一个地测试BEDEEF,总共需要5个周期。这比首先访问ABDE,其次是BCEF,第三次是ADBE,最后是CF的边缘,总共需要4个周期,更有效。
是否有一种算法或方法可以应用于以这种方式访问图的最有效路径?我的图大小和连接性是可变的,因此即使我想要解决和计划它们,也无法自己完成。
任何帮助或方向都将不胜感激。我已经有一段时间没有上过图论课了,所以我不记得是否存在这样的问题。我目前从理论上解决这个问题,还没有开始尝试在这个方面实现任何编程。因此,如果我的问题更好地引导到其他地方,我将非常乐意将我的问题移至相关的Stack Exchange网站。

1
看起来你想在图中实现一个匹配。然而,在进行并行“测试”阶段之前,需要先通过分析图找到此匹配(或其他边的分区)。是否可以有一个串行预处理阶段来完成这个任务? - gilleain
我正在阅读你给的链接,它似乎讨论了我所说的内容。至于你问题的第二部分,我不太确定你的意思,需要进一步澄清。 - JustinCoplin
我的意思是,无论您选择哪种方法来拆分(分区)边缘以进行并行操作,都将涉及对边缘的遍历,因此我不确定您将获得多少并行优势... - gilleain
也许我应该更详细地阐述一下程序的目标是什么。这个程序中的测试更多是一个抽象的构造,而不是一个真正的操作,真正的目标是我被告知需要多少个周期来访问每条边。这个程序是用来规划金属块测试机布局时使用的工具,真正的测试将在那里进行。我会在问题中提供更多细节更新。 - JustinCoplin
1个回答

4
这个问题涉及到边缘着色: https://zh.wikipedia.org/wiki/边缘交随 如果对图形进行边缘着色,使相邻两条边不具有相同的颜色,则可以为每种颜色执行一个周期,在并行中测试所有该颜色的边缘。
不幸的是,找到涂色最少的方案属于NP-hard问题。

谢谢,我还在阅读中,但它看起来非常接近我想要做的事情。我需要进一步研究这个。 - JustinCoplin
我试图做的事情归结为用比所需的最小数量更多的颜色给图的边着色。使它困难的是,我试图找到在给定一组颜色的情况下最有效的着色图。可惜并没有很多相关的文献。谢谢您的帮助,我现在要标记您的答案。 - JustinCoplin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接