平面度测试算法实现
Planarity testing algorithm implementation
我想编写一个算法,将图形作为输入,returns 如果它是平面的则为真,否则为假。我四处搜索,发现了大量算法,但实现起来并不容易理解。
是否有类似 Boyer-Myrvold 的实现或 C++ 中可用的任何其他实现或 Java 可以满足我的要求?
Boyer-Myrvold 的 Boost 中的 implementation 非常容易理解并且评论非常好。
https://www.boost.org/doc/libs/1_67_0/boost/graph/planar_detail/boyer_myrvold_impl.hpp
不过,如果不先阅读 original paper,我不会尝试阅读代码。
Planarity Testing的Path Addition方法在this thesis中有详细的描述(包括数学理论和算法实现)
完整的 Java 源代码也包含在支持以下内容的附录中:
- 平面度测试;
- 正在生成平面嵌入;和
- 循环生成双连通图的所有可能的平面嵌入(线性时间与边数和嵌入数成比例以生成所有嵌入)。
我想编写一个算法,将图形作为输入,returns 如果它是平面的则为真,否则为假。我四处搜索,发现了大量算法,但实现起来并不容易理解。
是否有类似 Boyer-Myrvold 的实现或 C++ 中可用的任何其他实现或 Java 可以满足我的要求?
Boyer-Myrvold 的 Boost 中的 implementation 非常容易理解并且评论非常好。
https://www.boost.org/doc/libs/1_67_0/boost/graph/planar_detail/boyer_myrvold_impl.hpp
不过,如果不先阅读 original paper,我不会尝试阅读代码。
Planarity Testing的Path Addition方法在this thesis中有详细的描述(包括数学理论和算法实现)
完整的 Java 源代码也包含在支持以下内容的附录中:
- 平面度测试;
- 正在生成平面嵌入;和
- 循环生成双连通图的所有可能的平面嵌入(线性时间与边数和嵌入数成比例以生成所有嵌入)。