重複の可能性:
ブルートフォース検索とは別に、凸包で最大の三角形を見つける方法
私は頂点のそれぞれがそれらの点の1つにある領域ごとに最大の三角形を見つけたいランダムな点のセットを持っています。
これまでのところ、最大の三角形の頂点は点群 (または凸包) の外側の点にのみあることがわかったので、それを行う関数をプログラムしました (nlogn 時間でグラハム スキャンを使用)。
しかし、それは私が立ち往生しているところです。これらのポイントから最大の三角形を見つける方法を理解できる唯一の方法は、凸包アルゴリズムが通常大多数のポイントを追い出すため、平均的なケースではまだ許容できる n^3 時間でブルート フォースを使用することです。ただし、点が円上にある最悪のシナリオでは、この方法は惨めに失敗します。
これをより効率的に行うアルゴリズムを知っている人はいますか?
注:CGALにはこのアルゴリズムがあることは知っていますが、その方法については詳しく説明していません。私はライブラリを使用したくありません。これを学び、自分でプログラムしたいです (また、他の実装が共線点を拾うグラハムスキャンのように、操作したい方法に正確に微調整できるようにします)私はほしくない)。