【问题标题】:Map with polyhedral graphs as keys以多面体图为键的映射
【发布时间】:2012-11-11 19:20:04
【问题描述】:

我想要一个数据结构,其中键是多面体(无向 3 连通平面图;在我的情况下,它们可能主要是

我进行了一些研究和思考,但没有提出解决方案。似乎解决方案很可能是其中之一

  • 使用图形本身查找数据的自定义数据结构

  • 二叉搜索树(或其他类似的树),需要明确定义的排序。 (我怀疑是否存在这样的排序)

  • 一个哈希表,需要一个好的哈希。我不能立即想出比“顶点数”或类似的更好的方法。

我怎样才能获得有效的查找?

【问题讨论】:

  • 你能提供更多关于你有什么样的图表的细节吗?双向?尺寸?

标签: data-structures graph dictionary map graph-theory


【解决方案1】:

每个多面体图都是平面的。平面图的同构问题是多项式时间。它没有一般图同构问题的未知但被认为很大的复杂性。虽然效率很高,但这些算法并不简单,并且依赖于一些相当深入的数学来进行分析。

原始论文(据我所知)是 Hopcroft 1971 年的论文An N log N Algorithm for Isomorphism of Planar Triple Connected Graphs,可从斯坦福大学以scanned copy 获得。在这个问题上有相当多的工作。最近的一篇论文是Algorithm and Experiments in Testing Planar Graphs for Isomorphism,它引用了许多现有算法以及它们之间的运行时间比较。本文提出了一种算法,它为每个图分配一个唯一的代码,顺便说一下,它还生成了一个定义良好的排序。他们在那篇论文中关于小图的最佳结果是 Practical Graph Isomorphism 中 Brendan McKay 的算法。

【讨论】:

  • 感谢您的回复!乍一看,听起来 Kikluk 等人的 JGAA 论文正是我所需要的。我会更仔细地研究它。
【解决方案2】:

由于图同构不是那么容易检查的,我建议尽量减少同构检查的次数。您的哈希表似乎是一个好的开始。你需要一把好钥匙来最大化分辨率

假设你使用数组[V,out_1,in_1,out_2,in_2,...] 具有V=nr 个顶点,out_i=ith 最高出度,in_1=indegree 具有最高出度的节点(首先按出度排序,然后按入度排序)。这会比你的 nr 顶点更有效(但你可能已经想到了类似的东西)。

以上是一个相当粗略的示例,您实际上可以使用任何(组合)graph invariant 作为您的表的键。根据您拥有的图的数量及其相似性,您应该选择具有最大差异/分辨率能力的图(如果您的所有图都具有相同数量的顶点,则使用 nr 个顶点是无用的)。

使用不变量,您可以构造一棵树,也可以使用它们来创建您需要的排序。可以使用上面的数组示例,因为它定义了一个完整的顺序,但您可以再次使用任何不变量

【讨论】:

  • 感谢您的关注和回复!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-14
相关资源
最近更新 更多