一連のポイントから最も散乱するポイントを選択する


15

ポイントのセットからポイントのサブセットを選択する(効率的な)アルゴリズムはありますか()、ほとんどの領域を(サイズすべての可能なサブセットに対して)「カバー」しますか?N M < N MMNM<NM

ポイントは2D平面にあると仮定します。

素朴なアルゴリズムは単純ですが、時間の複雑さの点では法外です。

for each subset of N points
    sum distance between each pair of points in the subset
    remember subset with the maximum sum

より効率的な、または近似的な方法を探しています。

例、これはいくつかのランダムな点を持つ平面です:

ここに画像の説明を入力してください

以下のために、私はこのような点を選択期待します:M=5

ここに画像の説明を入力してください

選択したポイント(赤)が平面全体に散在していることに注意してください。

この問題に関連する記事「視覚的な追跡のための空間的に分散されたキーポイントの効率的な選択」を見つけました。ただし、これはポイントが重み付けされていることを前提としています。


2
の場合、StackOverflowのこれを参照してください。最も離れている点を見つけるアルゴリズム-O(n ^ 2)よりも良いですか?M=2
ハードマス

残念ながら、は通常約1500〜5000で、Mは10〜50のようです。NM
リボール

されているNは、固定の両方、またはあなたが変化しているMを(あなたが最大化したいので、例えば、同様の平均距離のをする場合が増加し、Mはさらに減少をもたらす場合がありますか)?MNMM
ウルフギャングバンガース

1
これはNPハードだと強く思う。これは、2つの頂点間のエッジの重みが頂点間のユークリッド距離である最大重みクリーク問題に非常に似ています。(max-cliqueで知られている実際に効果的なヒューリスティックがあると思います。それらがどれであるかは
わかり

1
@hardmathそれはタイプミスでした。私は達成する必要があるものを説明しようとしました。問題は、少数のポイントフィーチャのみを取得する必要がある画像フィーチャの抽出にありますが、それらは変換推定に使用されるため、すべての画像に散らばっています。たぶん「エントロピー」はより良い尺度です- 最大エントロピー状態のガスのように、それらがいたるところにあるように点を選びたいです。一方、選択したポイントがクラスター化されるのを避けようとしています。M
リボール

回答:


11

これはおおよその解決策です。以来Nがとても大きく、Mは非常に小さいので、どのように以下について:

  1. Nの凸包を計算する
  2. 最大距離基準を満たす船体から最大Mポイントを選択します。
  3. 手順2でMポイントよりも少ない場合、以前に選択したポイントからの距離を最大にする内部から1ポイントを選択します。
  4. 選択したポイントの数がMになるまで手順3を繰り返します

その背後にある直観は、N >> Mであり、ポイントを可能な限り互いに遠くにしたいので、ポイントはデータのエッジに近い可能性が高いため、船体から始めて反復的にそこから進んでください。

また、ハルから開始することにより、初期検索をNからN 1/2に減らします。


更新

上記の手順3と4に時間がかかりすぎる場合(データセットの内部を繰り返しテストしているため)、問題をスピードアップするためにさらに2つのアイデアが思いつきました。

  1. ランダム検索:手順2で船体にPポイントが見つかったとします。次に、内部からM - Pポイントをランダムに描画します。Xトライアル後に最適なセットを選択します。
  2. シミュレーテッドアニーリング:データセットを覆う最小の境界ボックスを計算します(軸と整列する必要はなく、傾斜させることができます)。次に、その境界ボックスにM個の均一に分布したグリッドポイントのセットを定義します。これらのポイントは、データセットポイントのいずれかと必ずしも一致しないことに注意してください。次に、各グリッドポイントについて、データセット内のk最近傍を見つけます。すべてのM x kの組み合わせを実行し、最大距離基準を満たす組み合わせを選択します。つまり、初期グリッドをブートストラップとして使用して、適切な初期ソリューションを見つけています。

ありがとう。たぶん間違って質問を策定しました。ほとんどのエリアを「カバー」するようなポイントのセットを目指しています。距離の基準だけで十分だと思いましたが、何か追加する必要があるように見えます。
リボール

さて、質問を更新しました。提案された方法はうまくいくかもしれません。1)ランダムポイントAを選択、2)Aから最も離れたポイントBを選択、3)AとBの両方から最も離れたポイントCを選択、4)...のように動作する貪欲なバージョンアルゴリズムについても考えましたポイントが選択されるまで。M
リボール

1
おそらくあなたの問題をより正式に表現する方法は、Nをカバーし、平均テッセレーションファセット領域を最小化するサイズMのテッセレーションが必要なことでしょうか?ファセット領域を最小化することは、ポイントを周囲に広げて、それらが一緒に凝集しないようにする方法のようです。
dpmcmlxxvi

はい。グリッドラインの周りにポイントが誤ってクラスター化される可能性がある場合、グリッドが選択範囲内にクラスター化されるため、グリッドの使用を避けたいと思いました。
リボール

あなたが言及する貪欲なアルゴリズムの1つの問題は、最初のシードポイントに非常に敏感であることです。種の成長アルゴリズム(インサイドアウトから始める)にはその問題があります。私が言及した船体アプローチは、外部から機能するため、おそらくより安定しています。
dpmcmlxxvi

6

非常に多数のポイントと小さなサブセットMを選択する場合、2次元の問題の連続バージョンについて知られていることを考慮することが役立つ場合があります。NM

L.フェストース(「ポイントセットによって決定される距離の合計について」、Acta Math。Acad。Sci。Hungar。、7:397–401、1956)は、の集合が円上のMポイントの集合がペアワイズ距離は、円に内接する通常のMゴンの頂点によって実現されます。 MM

彼はその後(L. FejesTóth、 "Übereine Punktverteilung auf der Kugel"、Acta Math。Acad。Sci。Hungar。、10:13-19、1959)、ポイントのペアワイズ距離の合計を最大化するより難しい問題を提起しました。直径(最大ペアワイズ距離)が1の平面内。フリードリヒPillichshammerが上限所与とするためのシャープであることを示しているが、この問題は、一般的に開いたままM = 3 4 5「ユークリッド平面における極値点分布に」、アクタのMathematica Hungarica、98(4): 311-321、2003)。M1M=3,4,5

M=31M=4M=51

周辺でのポイントの支配的な選択を避けたい場合は、別の目的が有用であることがわかります。ポイント間の最小距離の最大化はそのような基準です。関連する問題は、StackOverflowComputer Science SEMath.SE、およびMathOverflowでブローチされています。

MDMD


1

では、ユークリッド平面内のN個のポイントのセットからM個のポイントを選択して、選択したポイントのペアワイズ距離の合計が最大になるようにしますか?

標準のローカル検索アルゴリズムは非常に高速で、かなり良い近似値を提供します。ランタイムはNで線形、Mで2次です。その近似比は1-4 / Mです。これは、Mが増加すると比率が良くなることを意味します。たとえば、M = 10の場合、最適値は60%になり、M = 50の場合、最適値は92%になります。

このアルゴリズムは、一般次元のユークリッド空間でも機能します。この場合、問題はNPハードです。しかし、飛行機では、それがNP困難であるかどうかはわかりません。

ソースはこの論文です。お役に立てれば!ベスト、アルフォンソ



1
「視覚追跡のための空間的に分散されたキーポイントを効率的に選択する」2011年第18回IEEE国際会議画像処理の論文の「ディスクカバーによる抑制」アルゴリズムを使用してこれをすでに解決しました。IEEE、2011
-Libor

1
アルフォンソ、提案された論文への所属を明示してください。
ニコグアロ

0

1つの解決策は次のとおりです。

  • で境界矩形を作成しますO(n)

  • 作るMのこの境界の矩形の内側に人工的にも分散型のポイントを、いくつかのMは、他よりも困難です。あなたの場合、長方形の角に4つ、中央に1つ

  • O(n(log(n)))

  • O(m(log(n)))

O(n(log(n)))MN

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.