カバレッジの問題(送信機と受信機)


14

次のカバレッジ問題を解決しようとします。

あり 1キロとのカバレッジエリアと送信機の受信機は。、すべての受信機が任意の送信機でカバーされることを決定し。すべての受信者と送信者は、座標と座標で表されます。nnOnログnバツy

私が提供できる最も高度なソリューションはを取り。すべての受信機について、この現在の受信機までの距離ですべての送信機をソートし、最短距離で送信機を使用します。この最短距離は0.5 km以内でなければなりません。On2ログn

しかし、単純なアプローチは、時間の複雑さはるかに優れているように見えます。送信機と受信機のすべてのペア間のすべての距離を計算するだけです。On2

この問題に範囲検索アルゴリズムを適用できるかどうかはわかりません。たとえば、kdツリーを使用すると、このような範囲を見つけることができますが、例を見たことはなく、円の範囲検索の種類があるかどうかはわかりません。

与えられた複雑さは、ソリューションが何らかの方法でソートに類似していると仮定しています。Onログn


1
予想される時間で問題ない場合、トランスミッタ上でツリーを構築し(時間を取得)、各レシーバに対して最近傍クエリを実行する(各受信者の時間の平均)。これはうまくいくはずですが、最悪の場合の複雑さが必要だと思います。ツリーで複数の最近傍クエリを実行している場合、高速化のためのいくつかのトリックがあるようです。k d O n log n O log n k dOnログnkdOnログnOログnkd
utdiscant

1
私は推測するスイープラインアルゴリズムはリストをx座標とステップによりソートトランスミッタとレシーバの両方:トリックを行うことができます。実行可能な送信機のセットの巧妙な管理が不可欠です。
ラファエル

@Raphael、もう少し詳しく説明してください。最悪の場合、非常に遅くなるようです。
コム

1
飛行機でボロノイ図を計算するためのフォーチュンのアルゴリズムを見てみる価値があると思います。それはで動作します、およびボロノイ図を考えると、あなたの問題が容易になります。O(nlogn
ジージー

回答:


4

この問題を解決するには、VoronoiダイアグラムとKirkpatrickのデータ構造を使用できます。

RaphaelとSyzygyが提案したように、Fortuneの(スイープライン)アルゴリズムを使用してボロノイ図を作成できます。最悪の場合:。Onログn

ボロノイ図には、それぞれがトランスミッターを含む多数のポリゴンがあります。ポリゴン内の任意のポイントは、そのトランスミッターに最も近くなります。したがって、どのポリゴンにレシーバーが含まれているかがわかる場合は、何らかのポリゴンがどのポリゴンにあるかを見つけることで、最も近いトランスミッターを見つけることができます。その後、そのトランスミッターが内にあるかどうかを確認します。1 km

どのボロノイポリゴンにレシーバーが含まれているかを判断するには、最初にダイアグラム内の各ポリゴン三角形分割します。これで三角形メッシュができました。次に、Kirkpatrickのデータ構造を使用して、時間(最悪の場合特定のポイントを含む三角形を見つけます。Kirkpatrickのデータ構造の構築には、最悪の場合があります。三角形がわかれば、三角形を含むポリゴン、つまり最も近いトランスミッターがわかります。すべての受信者に対してこれを行うと、最悪の場合になり。On log n On log n OログnOnログnOnログn

ボロノイ図の各セルは、場合によっては無制限の凸多角形です。

...

[n個のサイトのボロノイ図の]頂点の数V≤2n-5

www.cs.arizona.edu

ボロノイ図の各ポリゴンは、凸ポリゴンです。ためしたがって、凸多角形の三角測量がかかり、時間、辺の数であることを、我々は、効率的に各セルを三角測量することができます。三角測量が病的なものになる可能性がある(各セルに側面があるセルがある)、これを考慮してください。ボロノイ図には頂点があります(上記の引用を参照)。ボロノイ図の三角形分割は平面であり、スパースグラフでもあるため、エッジと面を持ちます。したがって、特定のセルの三角形分割には場合がありますが、全体の三角形分割にも時間がかかりますΘvvnnOnOnOnOn。(基本的に、辺を持つ多くのセルに出会うことはありません。これは、平面グラフには三角形が多すぎることになります)。On

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