2 つの解の点の分布について何も知らずに、どちらが最も効率的なアルゴリズムであるかを判断することはできません。しかし、最初の推測では...
最初のアルゴリズムは機能しません— 2 つの理由で: (1) 間違った仮定 - 境界ハルがばらばらであると仮定し、(2) 質問の誤解 - すべてのポイントのペアに対して最短エッジを見つけられません。
...2 つのセットの凸包を計算します。最も近い点は、2 つの重心間の線が通過する 2 つの包の超面上にある必要があります。
中心点を計算し、すべての点の質量が等しいと仮定して重心を計算し、中心から最も遠いものから最も遠いものへとリストを並べ替えることで、凸包を計算できます。次に、リスト内の最も離れた点を取得し、これを凸包に追加し、これまでに計算された凸包内にあるすべての点を削除します (これを行うには、10 次元超三角形を多数計算する必要があります)。リストに凸包上にないものがなくなるまで繰り返します。
2 番目のアルゴリズム: 部分的
List2 の凸包を計算します。List1 の各点について、点が凸包の外側にある場合、最初のアルゴリズムと同様に超面を見つけます。最も近い点はこの面上にある必要があります。顔の場合も同様です。内側にある場合でも、List1 からの点を越えて線を延長することで、ハイパーフェースを見つけることができます。最も近い点は、ハイパーフェースを含むボールの内側にあり、List2 の重心にある必要があります。ただし、ここでは、取得するための新しいアルゴリズムが必要です。最も近い点、おそらくkd-treeアプローチ。
パフォーマンス
List2 が、かなり斜めの形状を介して均等に分散または正規に分散されているようなものである場合、これは検討中のポイントの数を減らすのに適切であり、kd ツリーの提案と互換性があるはずです。
ただし、いくつかの恐ろしいワートのケースがあります。リスト 2 に、幾何学的中心がリストの重心であるトーラスの表面上のポイントのみが含まれている場合、凸包は計算に非常にコストがかかり、削減にはあまり役立ちません。検討中の点数。
私の評価
これらの種類の幾何学的手法は、他のポスターの kd-trees アプローチを補完するのに役立つ場合がありますが、適用する価値があるかどうかを判断するには、点の分布について少し知っておく必要があります。