有多种算法可在多项式时间内决定是否可以在平面上绘制图形,甚至有许多算法具有线性运行时间。但是,我找不到一种非常简单的算法,可以在课堂上轻松,快速地进行解释,并且无法证明PLANARITY在P中。您知道吗?
如有必要,可以使用Kuratowski定理或Fary定理,但不能使用任何深层次的定理,例如图次要定理。还要注意,我不在乎运行时间,我只想要一些多项式。
以下是到目前为止的3种最佳算法,它们显示了简单/无需深入理论所需的权衡。
算法1:通过使用该算法,我们可以检查图在多项式时间内是否包含或作为次要,我们使用了深层理论,得到了一个非常简单的算法。(请注意,正如Saeed所指出的那样,该理论已经使用了图嵌入,所以这并不是真正的算法方法,只是简单地告诉已经知道/接受图次要定理的学生。)
算法2 [基于某人的答案]:显而易见,它足以处理3个连通图。对于这些,找到一张脸,然后应用Tutte的弹簧定理。
算法3 [Juho建议]:Demoucron,Malgrange和Pertuiset(DMP)算法。画一个循环,剩余图的组件称为片段,我们以适当的方式嵌入它们(同时创建新片段)。这种方法不使用其他定理。