0

グラフがありますG。グラフは平面グラフです。

グラフのすべての面を見つけたいです。平面埋め込みを作成することは、面(または領域、またはサイクル)を見つける方法であり、すべてのエッジを最大2つの面で共有する必要があることを理解しています。

C#で平面埋め込みアルゴリズムを簡単に実装できますか?商用またはオープンソースのどちらでも構いません。

4

2 に答える 2

0

いくつか検索したところ、BoostライブラリのPlanarFaceTraversal関数が私のニーズに合っていることがわかりました。

次に、関数をプレーンCの方法でラップし、PInvokeを介してC#から呼び出すことができます。

于 2010-12-05T07:15:48.127 に答える
0

ここで、このC#プロジェクトは、Boostライブラリに触発され、以下をサポートしていると述べています。

  • 特定の無向グラフが平面であるかどうかを確認します
  • 特定のグラフが平面である場合、平面埋め込みを計算します
  • 与えられた平面埋め込みの面を計算します

Boyer-Myrvold平面性テストは次のように見えます。

  • グラフが1つの大きなサイクルである場合、それは平面であり、埋め込みに正確に2つの面があることを確認します
  • ランダムグラフに3n-6を超える頂点がある場合、それが平面ではないことを確認します

https://github.com/OndrejNepozitek/GraphPlanarityTesting

于 2021-10-29T14:31:32.417 に答える