COMPUTING THE LARGEST EMPTY RECTANGLE

Similar documents
PowerPoint Presentation

プログラム言語及び演習Ⅲ

Microsoft PowerPoint - ppt-7.pptx

Microsoft PowerPoint - ca ppt [互換モード]

Microsoft PowerPoint - 05.pptx

memo

Microsoft PowerPoint - 06.pptx

PowerPoint Presentation

Microsoft PowerPoint - 13approx.pptx

Microsoft PowerPoint - algo ppt [互換モード]

オートマトン 形式言語及び演習 3. 正規表現 酒井正彦 正規表現とは 正規表現 ( 正則表現, Regular Expression) オートマトン : 言語を定義する機械正規表現 : 言語

Microsoft PowerPoint - ad11-09.pptx

スライド 1

Microsoft PowerPoint - algo ppt [互換モード]

Microsoft PowerPoint - 04dandc.pptx

016-22_ŒÚ”Ł

Taro-再帰関数Ⅱ(公開版).jtd

Taro-2分探索木Ⅱ(公開版).jtd

INTRODUCTION TO ALGORITHMS

PPP_‚Ü‚Æ‚ß.pdf

2

Microsoft PowerPoint - DA2_2017.pptx

Microsoft PowerPoint - kougi10.ppt

Taro-2分探索木Ⅰ(公開版).jtd



Microsoft PowerPoint - DA2_2019.pptx

Handsout3.ppt

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

INTRODUCTION TO ALGORITHMS

( ) ( ) 30 ( ) 27 [1] p LIFO(last in first out, ) (push) (pup) 1

離散数学

Microsoft PowerPoint - DA2_2018.pptx

計算幾何学入門 Introduction to Computational Geometry

PowerPoint Presentation

¥¢¥ë¥´¥ê¥º¥à¥¤¥ó¥È¥í¥À¥¯¥·¥ç¥ó ÎØ¹Ö #1

Microsoft PowerPoint - 03dandc.pptx

Microsoft PowerPoint - 10.pptx

Taro-最大値探索法の開発(公開版

Microsoft PowerPoint - DA2_2017.pptx

離散数学

Taro-cshプログラミングの応用.jt

A Constructive Approach to Gene Expression Dynamics

Microsoft PowerPoint - 13.ppt [互換モード]

始めに, 最下位共通先祖を求めるための関数 LcaDFS( int v ) の処理を記述する. この関数は値を返さない再帰的な void 関数で, 点 v を根とする木 T の部分木を深さ優先探索する. 整数の引数 v は, 木 T の点を示す点番号で, 配列 NodeSpace[ ] へのカーソル

Microsoft PowerPoint - mp13-07.pptx

0 21 カラー反射率 slope aspect 図 2.9: 復元結果例 2.4 画像生成技術としての計算フォトグラフィ 3 次元情報を復元することにより, 画像生成 ( レンダリング ) に応用することが可能である. 近年, コンピュータにより, カメラで直接得られない画像を生成する技術分野が生

夏リニューアル第2弾記者発表

An Automated Proof of Equivalence on Quantum Cryptographic Protocols

memo

nlp1-04a.key

Microsoft PowerPoint - e-stat(OLS).pptx

Taro-スタック(公開版).jtd

アルゴリズムとデータ構造

Microsoft PowerPoint - mp11-02.pptx

Taro-再帰関数Ⅲ(公開版).jtd

< C93878CBB926E8C9F93A289EF8E9197BF2E786264>

DVIOUT-SS_Ma

コンピュータ応用・演習 情報処理システム

07年1級_CG記述解答-3.indd

alg2015-6r3.ppt

次に示す数値の並びを昇順にソートするものとする このソートでは配列の末尾側から操作を行っていく まず 末尾の数値 9 と 8 に着目する 昇順にソートするので この値を交換すると以下の数値の並びになる 次に末尾側から 2 番目と 3 番目の 1

パソコンシミュレータの現状

第2回

2004


06佐々木雅哉_4C.indd

AtCoder Regular Contest 073 Editorial Kohei Morita(yosupo) A: Shiritori if python3 a, b, c = input().split() if a[len(a)-1] == b[0] and b[len(

構造力学Ⅰ第12回

LIFO(last in first out, ) 1 FIFO(first in first out, ) 2 2 PUSH POP : 1

Java KK-MAS チュートリアル

Microsoft PowerPoint SIGAL.ppt

Microsoft PowerPoint - ip02_01.ppt [互換モード]

alg2015-2r4.ppt


1

分析のステップ Step 1: Y( 目的変数 ) に対する値の順序を確認 Step 2: モデルのあてはめ を実行 適切なモデルの指定 Step 3: オプションを指定し オッズ比とその信頼区間を表示 以下 このステップに沿って JMP の操作をご説明します Step 1: Y( 目的変数 ) の

文法と言語 ー文脈自由文法とLR構文解析2ー

.L.....C1302.qxd

二次関数 1 二次関数とは ともなって変化する 2 つの数 ( 変数 ) x, y があります x y つの変数 x, y が, 表のように変化するとき y は x の二次関数 といいます また,2 つの変数を式に表すと, 2 y x となりま

mnal_HDR4ex_5ex.pdf

自然言語は曖昧性だらけ! I saw a girl with a telescope 構文解析 ( パージング ) は構造的な曖昧性を解消 2

目次 概要... 2 フォームレイアウトデザイナー機能の設定... 3 設定したフォームレイアウトデザイナーの確認...14 その他スタイルの設定...15 フォームレイアウトデザイナーをエクスポート...17 フォームレイアウトデザイナーをインポート...18 インポート時の制限事項...19 リ

情報処理Ⅰ

クリッピング領域

微分方程式による現象記述と解きかた


[2] 2. [3 5] 3D [6 8] Morishima [9] N n 24 24FPS k k = 1, 2,..., N i i = 1, 2,..., n Algorithm 1 N io user-specified number of inbetween omis

Page 1 of 6 B (The World of Mathematics) November 20, 2006 Final Exam 2006 Division: ID#: Name: 1. p, q, r (Let p, q, r are propositions. ) (10pts) (a

Microsoft PowerPoint - IntroAlgDs pptx

Microsoft PowerPoint - ●SWIM_ _INET掲載用.pptx

Microsoft PowerPoint - 3.ppt [互換モード]

Microsoft Word - 13

Microsoft PowerPoint - 05DecisionTree-print.ppt

画像類似度測定の初歩的な手法の検証

ソフトウェア基礎 Ⅰ Report#2 提出日 : 2009 年 8 月 11 日 所属 : 工学部情報工学科 学籍番号 : K 氏名 : 當銘孔太

Microsoft Word - VBA基礎(3).docx

MRI X......

Transcription:

COMPUTING THE LARGEST EMPTY RECTANGLE B.Chazelle, R.L.Drysdale and D.T.Lee SIAM J. COMPUT Vol.15 No.1, February 1986 2012.7.12 TCS 講究関根渓 ( 情報知識ネットワーク研究室 M1)

Empty rectangle 内部に N 個の点を含む領域長方形 (bounding rectangle) が与えられたとき, その内部に形成できる長方形で, かつ領域長方形の辺に全ての辺が平行で, かつ内部に点を含まないもの. 辺上に点が存在したり, 辺が領域長方形の辺と重なっていてもよい.

Largest empty rectangle problem upper support left support right support lower support 入力 : 内部に N 個の点を含む bounding rectangle 出力 : 領域長方形内に形成できる最大 ( 面積 ) の empty rentangle それぞれの辺が領域長方形の辺または最低 1 つの点で支えられる

Application 実世界への応用 素材の再利用 布や金属板の欠片 = 領域長方形 素材に付いた傷 = 点集合 学問への応用 画像分割 画像処理 パターン認識

General approach and Related works 単純な方法では O N 5 の時間計算量 4 つの support の選択が O N 4 通り 各組み合わせに対して内部に点が含まれるかのチェックに O(n) A. NAAMAD, W. L. Hsu AND D. T. LEE, On maximum empty rectangle problem, Appl. Disc. Math., 8 (1984), pp. 267-277. O N 2 の最悪時間計算量, O Nlog 2 N の平均時間計算量 本論文 手法 1 O Nlog 4 N の時間計算量,O(NlogN) の領域計算量 手法 2( 手法 1 を改良 ) O Nlog 3 N の時間計算量,O(NlogN) の領域計算量

Approach in this paper 分割統治法を用いる 点集合 S を S 1 = p 1,, p N/2 と S 2 = p N/2 +1,, p N に分割し, S 1 と S 2 における部分問題を解き, 統合する. S 1 S 2 問題 1 問題 2

Approach in this paper アルゴリズムの流れ 1. S 1 と S 2, 各領域に 4 つのサポートを持つ largest empty rectangle を計算する. 2. S 1 と S 2 のどちらか片方に 3 つ, もう片方に 1 つのサポートを持つ largest empty rectangle を計算する.( 問題 1) 3. S 1 と S 2 の両方に 2 つずつサポートを持つ largest empty rectangle を計算する.( 問題 2) 4. これらを比べていき, 最大なものを S における解とする 計算時間 アルゴリズム全体の計算時間は問題 1, 問題 2 の計算時間による T(N) 2T(N/2) + C(N) + D N (1)

Approach in this paper アルゴリズムの流れ 1. S 1 と S 2, 各領域に 4 つのサポートを持つ largest empty rectangle を計算する. 2. S 1 と S 2 のどちらか片方に 3 つ, もう片方に 1 つのサポートを持つ largest empty rectangle を計算する.( 問題 1) 3. S 1 と S 2 の両方に 2 つずつサポートを持つ largest empty rectangle を計算する.( 問題 2) 4. これらを比べていき, 最大なものを S における解とする 全体の計算量 O Nlog 計算時間 4 N ( 手法 1) O Nlog 3 N ( 手法 2) 問題 1 O(N) 問題 2 O Nlog 3 N ( 手法 1) O Nlog 2 N ( 手法 2) アルゴリズム全体の計算時間は問題 1, 問題 2 の計算時間による T(N) 2T(N/2) + C(N) + D N (1)

Three supports in one half, one in the other 特徴 left support が与えられると長方形の形が決定する. S 1 S 2 p j left support が点である empty rectangle は O(N) 個

Three supports in one half, one in the other 特徴 left support が与えられると長方形の形が決定する. S 1 S 2 left support が bounding rectangle の左辺であるものの数は N/2 + 1 = O(N) 個

Three supports in one half, one in the other 特徴 left support が与えられると長方形の形が決定する. S 1 S 2 おおよそ O(N) 個の長方形を考えればよい left support が bounding rectangle の左辺であるものの数は N/2 + 1 = O(N) 個

Three supports in one half, one in the other アルゴリズム 単純な方法では O N 2 の時間計算量 本論文の提案アルゴリズム スタックを用いて, O(N) の時間計算量で empty rectangle を計算. upper j p 0 p j 1 above j gap j p j below j lower j S 1 p m+1 S 2

Three supports in one half, one in the other アルゴリズム 動作 S 1 S 2 p j 2 p j 1 above j 1 p j 1 p j p j 2 p j+1 stack p j+2

Three supports in one half, one in the other アルゴリズム 動作 S 1 S 2 p j 2 p j 1 above j 1 gap j p j 1 p j p j 2 p j+1 stack p j+2

Three supports in one half, one in the other アルゴリズム 動作 S 1 S 2 p j 2 p j 1 above j 1 above j p j p j 2 p j+1 stack p j+2

Three supports in one half, one in the other アルゴリズム 動作 S 1 S 2 p j 2 p j 1 above j 1 above j p j p j 2 p j+1 stack p j+2 一度 POP された点はスタックに再び PUSH されることはないので, スタックに対する操作は合計で O(N) 回

Three supports in one half, one in the other アルゴリズム 擬似コード (upper と above を計算する部分のみ ) 1. top p 0 2. above top q 0 (= (x max, y max )) 3. for each p j of S 4. if x(gap j ) < x(right j ) 5. then above j gap j 6. else above j right j 7. while x(top) x(p j ) do 8. if x above j x above top 9. then above j above top 10. Pop the stack. 11. upper j top 12. Push p j onto the stack. 補題 1 分割された領域の半分に 3 つの support を, もう半分に 1 つの support を含む,N 点についての the largest empty rectangle の計算時間 C(N) は O(N) である.

Two support in each half 全てのあり得る lower left corner と upper right corner を計算し, そのペアによって形成される empty rectangle の中で最大なもの largest empty corner rectangle (LECR) を見つければよい. corner ractangle 着目 upper right corner upper j RC j upper left corner p i q j LC i lower left corner lower i lower right corner p i = x i, y i, lower i によって決まる corner point を LC i とする CL = {LC 1, LC 2,, LC s } を形成 ( 右半分は RC j, CR) CL, CR は O(N) 時間で構成可能

Two support in each half ペアリング条件 (pairing condition) left support が p l で,bottom support が p b の LC i は, top support が p l より高く, right support が p b より高くなるような RC j としかペアになれない. 補題 2 どの入力点も,the largest empty rectangle の corner point にならない. さらに,CL と CR に含まれる点は, 上記のペアリング条件を満たす. 補題 3 corner rectangle がその内部にどんな入力点も含まないなら, 新しく作られたどの corner point もその内部には含まれない.

T(N) 2T(N/2) + C(N) + D N (1) Computation the largest empty rectangle アルゴリズム ( 手法 1) 分割統治法を用いる 計算時間 D(N) 2D(N/2) + E(N) (2) O Nlog 2 N CL CR CL 1 CR 1 CL 2 CR 2

Computation the largest empty rectangle 再帰ステップの手順 ( 手法 1) corner point 集合 CL, CR を CL 1, CL 2 と CR 1, CR 2 に分割 O(N) CL 2 の点 P それぞれについて, CR 1 中のペアになり得る点の集合 S を求める O(N) 集合 S それぞれについて LL-diagram,LL(S) を計算 O(NlogN) CR 1 の区分木 T を構築 O(NlogN) CL 2 の点 P それぞれに関する LECR を計算 O(Nlog 2 N) 以上から,E(N) = O(Nlog 2 N)

Computation the largest empty rectangle LL-diagram (Lower-Left-diagram) の導入 Voronoi diagram に似た概念 点集合 S = M 1, M 2,, M N に関する領域集合 定義 LL(S) = V M 1, V M 2,, V M N V M i = M NE d M, M i d M, M i for all j = 1,2,, N d M, M i は点 M, M i 間の d 距離といい, 点 M, M i 間のユークリッド距離である. NE は (, x max ) (, y max ) ( ただし点集合 S を取り囲む最小長方形のエリアを除く ) で表される領域である.

Computation the largest empty rectangle 区分木 (segment-tree) LL-diagram を保持するのためのデータ構造 CR 1 = {M 1, M 2,, M u } の各点をこの順に, 完全二分木の左から右の葉とする. 部分木の根は, その部分木の葉の連続する部分集合を表す. 連続する葉の列の集合を SL = { M 1, M 2,, M 1, M 2,, {M 1, M 2,, M u }} とおく 任意の区分 [M i, M j ] を表す節点集合を O(logu) 時間でみつける.

Computation the largest empty rectangle 計算量の吟味 ( 手法 1) D(N) 2D(N/2) + E(N) (2) において, E N = O(Nlog 2 N) より, D N = O(Nlog 3 N). さらに, T(N) 2T(N/2) + C(N) + D N (1) において, C N = O(N) より, T N = O(Nlog 4 N).

An improved algorithm for computing LECR 方針 ( 手法 2) 水平方向への再帰を無くし, 冗長さを減らした表現へ あるルールに基づいて,CR の点をノードとする木 T CR を構成する

An improved algorithm for computing LECR 方針 ( 手法 2) 木 T CR を, あるルールに従い特殊な三分木 G に変換. T CR の任意の連続するパスを,G から O(logn) 時間で取り出せる T CR の構成,G への変換は合計で O nlog 2 n 時間. CL の点 P それぞれに対して LECR を求めるのに O nlog 2 n

An improved algorithm for computing LECR 方針 ( 手法 2) 木 T CR を, あるルールに従い特殊な三分木 G に変換. D(N)= O nlog 2 n T CR の任意の連続するパスを,G から O(logn) 時間で取り出せる T CR の構成,G への変換は合計で O nlog 2 n 時間. CL の点 P それぞれに対して LECR を求めるのに O nlog 2 n

Computation the largest empty rectangle 計算量の吟味 ( 手法 2) D N = O(Nlog 2 N). さらに, T(N) 2T(N/2) + C(N) + D N (1) において, C N = O(N) より, T N = O(Nlog 3 N).

まとめ Largest empty rectangle probrem を解く, 以下のアルゴリズムを与えた. 手法 1 O nlog 4 n の時間計算量,O(nlogn) の領域計算量 手法 2 O nlog 3 n の時間計算量,O(nlogn) の領域計算量