私は与えられた非シンプルなポリゴンがあるかどうかを決定する際の複雑さに興味があり、ほぼ二つの異なる形式的な感覚のいずれかで、シンプル:弱いシンプルまたは非自己交差を。これらの用語は広く知られていないため、いくつかの定義から始めましょう。
ポリゴン いくつかの有限のシーケンス結ぶ線分の閉サイクルで平面内の点の。ポイントはポリゴンの頂点と呼ばれ、セグメントはそのエッジと呼ばれます。頂点を順番にリストするだけで、任意のポリゴンを指定できます。p 0、p 1、p 2、… 、p n − 1 p i
n個の頂点がすべて異なり、エッジが端点でのみ交差する場合、ポリゴンは単純です。同様に、ポリゴンが円と同相であり、すべてのエッジが正の長さである場合、ポリゴンは単純です。ただし、一般に、ポリゴンの頂点とエッジは任意に交差する場合があります。1
交差点が両方の共通のサブパスである2つのポリゴンパスとを検討します(1つのポイントである可能性があります)。エンドポイントが共通のサブパスA \ cap Bの近傍の境界で交互になる場合、と交差と言います。ポリゴンは、2つの交差サブパスがある場合は自己交差し、それ 以外の場合は非自己交差します。2B A B A ∩ B
ポリゴンは、単純なポリゴンのシーケンスの制限である場合、または同等に、ポリゴンを単純にする頂点の任意の小さな摂動がある場合、弱く単純です。弱く単純なポリゴンはすべて非自己交差です。ただし、一部の非自己交差ポリゴンはそれほど単純ではありません。
たとえば、以下に示す6つの点a、b、p、q、x、yを考えます。
ポリゴンは単純です。左図をご覧ください。
多角形は非常に単純です。中央の図は、近くの単純なポリゴンを示しています。ただし、このポリゴンは 3回アクセスするため、単純ではありません。
サブパスと交差するため、ポリゴンは自己交差します。直観については右図をご覧ください。b p q z y q p a
最後に、多角形(中央の多角形の周りに2回)は非自己交差ですが、それほど単純ではありません。直感的に、このポリゴンの回転数は、単純なポリゴンの回転数はなければなりません。(正式な証明には、いくつかのケース分析が必要です。一部は、回転角度が角度のポリゴンに対して実際に明確に定義されていないためです!)± 2 ± 1 0 ∘
更新(9月13日):次の図では、多角形は非自己交差であり、回転数1を持っていますが、それほど単純ではありません。おそらく、ポリゴンにはいくつかの交差する単純でないサブウォークがありますが、交差する単純なサブパスはありません。(私は「ほぼ間違いなく」と言います。なぜなら、2つの非単純な歩行が交差するときを定義する方法が明確ではないからです!)
最後に、実際の質問を次に示します。
特定のポリゴンが非自己交差であるかどうかをどのくらい迅速に判断できますか?
特定のポリゴンが非常に単純であるかどうかをどのくらい迅速に判断できますか?
最初の問題は、時間で次のように解決できます。頂点が個あるため、頂点から頂点へのサブパスがあります。特定のサブパスが時間で単純かどうかをテストできます(ブルートフォースによる)。単純な頂点から頂点へのサブパスのペアごとに、それらが時間で交差するかどうかをテストできます。しかし、これは最良のアルゴリズムではありません。
2番目の問題が多項式時間で解決できるかどうかはわかりません。単純でない多角形の明確に定義された回転数をすばやく計算できると思います(多角形のエッジの結合が単なるパスでない場合は、多角形は非常に単純でなければなりません)。以下の私の答えをご覧ください。 ただし、上記の新しいポリゴンの例は、非自己交差および1番の回転が弱く単純であることを意味しないことを意味します。
与えられたポリゴンが、交差のエッジのすべてのペアをチェックすることにより、時間で単純であるか、標準スイープラインアルゴリズムを使用して時間で、または時間でさえ単純かどうかを判断できシャゼルの三角測量アルゴリズムを使用。(入力ポリゴンが単純でない場合、三角形分割アルゴリズムは例外、無限ループをスローするか、有効な三角形分割ではない出力を生成します。)しかし、これらのアルゴリズムはいずれも私が求めている問題を解決しません。 O (n log n )O (n )
1ブランコグリュンバウム。 ポリゴン:マイスターは正解で、ポインソットは間違っていましたが、勝ちました。Beiträgezur Algebra und Geometrie 53(1):57–71、2012。
2たとえば、Erik D. DemaineとJoseph O'Rourkeを参照してください。 幾何学的折りたたみアルゴリズム:リンケージ、折り紙、多面体。ケンブリッジ大学出版局、2007。