内側の長方形を傷つけずに長方形を分割する


12

Cは軸に平行な長方形です。

C1Cnはようにような、ペアごとに内部で互いに素な軸に平行な長方形です。C1CnC

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

矩形保存パーティションのパーティションであるように、、ペアワイズ-内部ディスジョイント軸平行長方形であり、そしてすべてのため:つまり、既存の各長方形は、次のように一意の新しい長方形に含まれます。C = E 1E N N N E I I = 1 ... N C IE ICC=E1ENNnEii=1,,nCiEi

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

小さな持つ長方形保存パーティションを見つけるためのアルゴリズムは何ですか?N

特に、部分を持つ長方形保存パーティションを見つけるためのアルゴリズムはありますか?N=O(n

回答:


4

新しい回答:次の単純なアルゴリズムは漸近的に最適です。

各長方形任意に、可能な限り最大限にて、長方形がペアごとにばらばらになるようにします。C

穴の数は最大でです。穴の数が少なくともである構成があるため、これは漸近的に最適です。k2kO(k

証明はこの論文にあります。


古い回答:

次のアルゴリズムは、最適ではありませんが、部分を持つ長方形を保持するパーティションを見つけるには明らかに十分です。N=On

このアルゴリズムは、長方形初期化される直線ポリゴンで機能します。PC

フェーズ1:西側境界に隣接する長方形を選択します(つまり、の西側と西側境界の間に他の長方形はありません)。を内に配置し、西の境界に接触するまで引き伸ばします。してみましょう(のために)の延伸バージョンで。してみましょう。すべてのまでフェーズ1を回繰り返しますCPCjCPCPPEii=1,,nCiP=PEinn元の長方形が配置され、引き伸ばされます。以下の画像では、長方形を配置する可能な順序はです。C1,C2,C4,C3

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

現在、は次のように直線のポリゴン(切断されている可能性があります)です。P

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

私は多くのことを主張し、凹面頂点における最大である。これは、引き伸ばされた長方形がから削除されるたびに、3つの可能性があるためです。P2nP

  • 2つの新しい凹状の頂点が追加されます(配置するときなど)。C1,C4
  • 3つの新しい凹状の頂点が追加され、1つが削除されます(と)。C3
  • 4つの新しい凹状の頂点が追加され、2つが削除されます(場合と同様)。C2

フェーズ2:既存のアルゴリズムを使用して、を軸に平行な長方形に分割します(Keil 2000の10〜13ページおよびEppstein 2009の3〜5 ページを参照してください)。P

2n+1N3n+1


N=13N=5

A.このアルゴリズムは正しいですか?

N


さて、フェーズ1では、パーティションセルを追加します。各セルには、最初の長方形が1つだけ含まれ、別の長方形とは重なりません。フェーズ2では、残りのスペースを分割します。そのため、フェーズ2で作成されたセルは、最初の長方形と交差しません。正確さの証明はかなり簡単に思えますが、何か見落としていましたか?
ボソン

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