用"E"条边计算所有可能连通的平面图

Calculate all possible connected planar graphs with "E" edge

我正在开发一个 c++ 程序,它计算并绘制所有可能的具有给定 E 数边的连接平面图。像这样:

我的第一个想法是通过执行 递归 找到 (n-1) 的答案后,通过添加一条边来找到 N 条边的所有可能解决方案。

如图所示,问题n=4的解法基本上是n=3解法的改进版,多了一条边​​

但感觉这不是一个非常有效的解决方案。我在特定算法中找不到这个问题。

有没有其他方法可以找到并绘制所有可能的 E 边连通平面图?

is there any other way of finding and drawing all possible connected planar graphs with E edge?

从完整图 K(E+1) 开始 - 这将有 (E+1) 个顶点和 E(E+1)/2 个边。枚举边 1 .. E(E+1)/2.

  • 对于集合 <1 .. E(E+1)/2>E 个值的每个排列
    • 保留 E 条边并删除其余的
    • 删除所有未连接的顶点
    • 如果图是连通的、平面的并且与之前的图不同构,则
      • 这是一个新的唯一图,有 E 条边。

您可以通过考虑完整图的对称性并消除具有旋转 and/or 反射对称与先前排列组合的排列来执行重要的优化。