私は私の学生の集まりと矛盾三角形見つける問題割り当てられたの点R 2で標識し、± 1。(A三角形Tは、ある一貫性の場合、標識試料とTが負のポイントの正およびなしの全てを含み、仮定により、試料は、少なくとも1つの一貫した三角形を認めています)。
彼ら(または私)ができる最善の方法は、時間で実行されるアルゴリズムです。ここで、mはサンプルサイズです。誰もがもっとうまくできますか?
私は私の学生の集まりと矛盾三角形見つける問題割り当てられたの点R 2で標識し、± 1。(A三角形Tは、ある一貫性の場合、標識試料とTが負のポイントの正およびなしの全てを含み、仮定により、試料は、少なくとも1つの一貫した三角形を認めています)。
彼ら(または私)ができる最善の方法は、時間で実行されるアルゴリズムです。ここで、mはサンプルサイズです。誰もがもっとうまくできますか?
回答:
@TsuyoshiItoが示唆しているように、この問題には時間アルゴリズムがあります。これはEdelsbrunnerとPreparataによるものです。実際、彼らのアルゴリズムは、2つのポイントセットを分離する可能な最小数のエッジを持つ凸ポリゴンを見つけます。また、代数的決定木モデルのより一般的な問題のΩ (n log n )下限を証明します。ただし、この下限が三角形の場合に適用されるかどうかは明らかではありません。
アルゴリズムの完全な説明は長すぎてここに投稿できませんが、ここに基本的な考え方があります。してみましょう肯定的な点の凸包なります。各負の点qについて、Cに接するqを通る線を考慮します。これらの線は、平面を4つのくさびに分割します。くさびの1つにはCが含まれます。せW (qは)ウェッジこと対向含むものCを。最後に、F(「禁止領域」)をすべてのウェッジW (q )の結合とします。分離する三角形は、CとFを分離する必要があります。両方とは O (n log n )時間で構築できます。
のエッジに時計回りと反時計回りに交互にラベルを付けます。EdelsbrunnerとPreparataはさらに、分離三角形が存在する場合、エッジがFの時計回りのエッジと同一直線上にある分離三角形があることを証明します。でO (N )追加の時間、我々は(必ずしも時計回り方向)のエッジを見つけることができるFそれぞれ時計回りのエッジから光線が最初のヒットを電子、このエッジを「後継者」と呼びます。後続のポインターは、時計回りのエッジをサイクルに分割します。分離する三角形がある場合、これらの後続サイクルの1つは長さ3を持ちます(4つを超える長さを持つものはありません)。
詳細については、元の論文を参照してください。
の辺の候補として、「-1」点から「+1」点の凸包への接線を考慮することで十分であると思われます(「+1」点が内側になるとしましょう)T)。
残念なことに、ここでは画像を公開できません。しかし、これを想像してくださいは、「-1」ポイントを通過する凸包への接線です。Aは接点です。Bはtの極値(下記参照)であり、B Cは点からの接線です(Cは接線点です)。
したがって、アルゴリズムは次のとおりです。接線のすべての線に対して、それに基づいて三角形を構築することができます。
これは実行時間になるようです。おそらく、これはいくつかのデータ構造を使用することで改善できますか?