任意方向多重图的最大欧拉子图
Posted
技术标签:
【中文标题】任意方向多重图的最大欧拉子图【英文标题】:Maximum euler subgraph of arbitrary oriented multigraph 【发布时间】:2013-10-10 08:30:50 【问题描述】:为了更准确地表述问题,让我将其重新表述为“城市”游戏。扮演两名球员。玩家 1 说出某个城市名称,例如 Moscow
。玩家 2 现在必须说出某个城市名称,从之前称为城市的最后一个字母开始。这封信是W
,所以第二个玩家说类似Washington
。玩家 1 接下来呼叫某个城市,以 N
开头为 Norilsk
,玩家 2 现在必须说出某个城市名称,以 K
开头,依此类推。一、谁不能说城市名就输了。
现在假设我们有字母 a..z
作为图顶点和(比如 10000 个)城市名称列表作为边。每条边都连接两个顶点(如moscow
连接m
和w
)并且朝向m -> w
。
所以我们现在有了面向多图。
任务是从给定的列表中找到可能的最长城市序列。每个城市只能按顺序出现一次。所以任务非常接近欧拉路径,但是在给定的图中可能有很多欧拉子图。
我的问题是如何在合理的时间内找到最大路径?
我知道,maximum euler subgraph 问题是 NP 难题。但是在我的问题中,图是非常紧密连接的,并且它具有少量且固定数量的顶点(就像上面描述的“城市”游戏中一样)。是否可以使用它来构建一些好的启发式方法?
我还在***上找到了一些word sequences问题,但没有合理的答案,因为很明显,单词图中的汉密尔顿子图比字母图中的欧拉子图更难找到,如果单词是边,所有这些问题是关于哈密顿,而不是欧拉子图。
将欣赏任何有用的链接、想法、算法描述和任何编程语言或伪代码的方法。
恭喜康斯坦丁
【问题讨论】:
【参考方案1】:我认为您会找到更多资源,将其表示为有向图中的最长路径问题。该问题的最长路径公式似乎比欧拉公式更受关注。另请注意,最长路径与哈密顿路径不同,因为前者不需要跨越图。
将每个城市视为一个顶点,并在表示可行序列的顶点对之间放置一条弧。
值得一提的是,最长路径很难近似,在非常简单的图中它仍然是 NP-complete:http://en.wikipedia.org/wiki/Longest_path_problem
这里是一些相关论文的链接:
http://link.springer.com/article/10.1007/BF02579454
http://lup.lub.lu.se/luur/download?func=downloadFile&recordOId=957757&fileOId=9\ 65291
【讨论】:
这种方法有问题。如果顶点是城市名称,则 N 约为 10000,O(2^N) 非常大。硬近似意味着根本不可能有接近的解决方案。另一方面,如果顶点是字母,则 N 约为 26,O(2^N) 似乎要好得多。 对于欧拉公式,我敢打赌,复杂性随着 E 的增加而增加,我们有 O(E)=O(2^N)。但是,我不能肯定地说。以上是关于任意方向多重图的最大欧拉子图的主要内容,如果未能解决你的问题,请参考以下文章
POJ1637-Sightseeing tour/HDU-3472-HS BDC-最大流Dinic+判断混合图的欧拉图
poj1637 Sightseeing tour[最大流+欧拉回路]