Cutting trees and the cutting lemma

32
Cutting trees and the cutting lemma Presented by Amir Mograbi

description

Cutting trees and the cutting lemma. Presented by Amir Mograbi. Goal:. Solve the Triangular range counting problem. The problem: Given a set S of n points in the plane and a triangle t, count the points in t . t contains 3 points. For now lets forget it altogether, - PowerPoint PPT Presentation

Transcript of Cutting trees and the cutting lemma

Page 1: Cutting trees and the cutting lemma

Cutting trees and the cutting lemma

Presented by Amir Mograbi

Page 2: Cutting trees and the cutting lemma

Goal:

• Solve the Triangular range counting problem.

t contains 3 pointsThe problem:Given a set S of n points in the plane and a triangle t, count the points in t.

For now lets forget it altogether,We must perform some steps before.

Page 3: Cutting trees and the cutting lemma

Cutting Trees

• Definition: given a set L of n lines in the plane

– A (1/r)-cutting is the partitioning of the plane into triangles (possibly unbounded) so that each triangle is intersected by at most n/r line.

– The size of the cutting is defined as the number these triangles.

Page 4: Cutting trees and the cutting lemma

An example:A (1/2)-cutting of size 10 in a plane with a set of 6 linesn/r = 6/2 = 3 the maximum of lines to intersect a triangle.

Page 5: Cutting trees and the cutting lemma

The cutting lemma

For any set L of n lines in the plane, and any parameter r with 1≤r≤n, a (1/r)-cutting of size O(r^2) exists.

Page 6: Cutting trees and the cutting lemma

A new problem:

Given a set L of n lines in the plane. Query: given a point p, count how many lines

are below p.

Page 7: Cutting trees and the cutting lemma

Solution:

• We solve this by building a cutting tree over the set of lines, and performing the query using it.

Page 8: Cutting trees and the cutting lemma

Structure of Cutting treesThe tree structure is recursively defined as follows: Given a (1/r)-cutting of size O(r^2) of the plane, and a set L of lines.

• If there is only one line in L, the tree consists of a single leaf where L is explicitly stored.

l

Page 9: Cutting trees and the cutting lemma

Structure of Cutting trees – cont.

• If L consists of more than 1 line the tree will consist of a root with r^2 children.each child corresponds to a single triangle of the cutting.each child v, contains:

• L-(v) number of all lines under it.• L+(v) number of lines above it.• τ(v) a cutting tree over lines

intersecting v.

r^2 direct children of the root each refers to a triangle of the cut Note: using a new (1/r)-cutting

of the triangle which corresponds to v.

Page 10: Cutting trees and the cutting lemma

Structure of Cutting trees – cont.A visual example of L-(v) L+(v)

Yes, they are called “canonical subsets” but I spared you the jargon earlier.

Page 11: Cutting trees and the cutting lemma

Using cutting trees

• Given a point p and a set L of n lines in the plane we want to count the number of lines under p.– Algorithm:

Page 12: Cutting trees and the cutting lemma

Space and Time requirements

• We now prove that using the “select Below Point” algorithm takes time, and the cutting tree used by the algorithm takes

• Proof: Let Q(n) denote the runtime, it satisfies:

)(lognO)( 2 nO

1 )/()(

1 )1()(

2 nifrnQrO

nifOnQ

Which solves to:

)(lognO

Page 13: Cutting trees and the cutting lemma

Finding time complexity

)(loglog...

)/())/((

)/( ))/((

)/()(

2222

32223222

222222

2

nOnrrrr

rnQrrrrnQrrr

rnQrrrnQrr

rnQrnQ

)(lognO

Page 14: Cutting trees and the cutting lemma

Space and Time requirements – cont.

• According to the cutting lemma:– Given r ,we can construct a (1/r)-cutting for L of

size ,c is a constant.• Let ε>0 we will prove that by wisely choosing r

we could make the space complexity:

2cr

1n if )(

1 n if )1()( 2

v vnMcr

OnM

Resolve to: )()( 2 nOnM

Page 15: Cutting trees and the cutting lemma

1n if )(

1 n if )1()( 2

v vnMcr

OnM

1n if M(n/r)

1 n if )1()(

22 crcr

OnM

Since we have cr^2 children, each a cutting tree over at most 1/r lines.

Page 16: Cutting trees and the cutting lemma

)1....11(...

)/())/((

)/( ))/((

)/( )/()(

1loglogloglog32

3332322

2222

22

nnnn

rr

rr

ppppppp

rnMpppprnpMpppp

rnMppprnpMppp

rnpMprnMcrcrnM

This is a geometrical series and p<1, thus its bounded by the constant 1/(1-p)so its O(1)

Now it boils down to this!

Let p=cr^2

Page 17: Cutting trees and the cutting lemma

2log2loglog

log2loglog2log

)(

)()()(

ncrc

rccrpnnn

nnnn

rrr

rrrr

We promised that complexity would be proved to be: For any ε>0c is a constant we cant change (given by the cutting lemma)On the other hand, r we can choose!So for a required ε let

)( 2 nO

rr

cc log

11

Now we look at this

rnn

c

cr log

loglog

nnccc rrnrn

n cccc

c

r log/1log/1logloglog

log )(

Combining the above we get: )( 2 nO

Page 18: Cutting trees and the cutting lemma

Space Time complexity recap

• We saw that we can query (count and select) the number of lines under a point in:– Time: – Space:Where n is the number of lines, and ε>0 is as small

as we want.

)(lognO

)( 2 nO

Page 19: Cutting trees and the cutting lemma

Cutting Trees – two level tree

Earlier we solved the query: “find the number of lines below a point”

Now we see how we solve this new query:

Input: two points q1 q2, a set L of n linesQuery: count the lines from L below both q1 & q2.

Page 20: Cutting trees and the cutting lemma

At first glance…

• Hold your horses! Can’t we just determine which point is lower and query for lines below that point like we did before?

Absolutely Not!

Page 21: Cutting trees and the cutting lemma

Cutting Trees – two level tree cont.Structure of a two level cutting tree:

• first we construct a cutting tree as before, T• for each direct child of the root of T:

• In addition to L-(v) the number of lines below v we store T-(v), which is a cutting tree over the lines below v.

…v T(v)T-(v)

Page 22: Cutting trees and the cutting lemma

Cutting Trees – two level tree cont.

• Algorithm:

Page 23: Cutting trees and the cutting lemma

Two level cutting tree - Analysis

• We will prove that adding the extra level will:– Keep space complexity as before:– Worsen time complexity to: )(log2 nO

)( 2 nO

1 )/()(log)(

1 )1()(

2 nifrnQnOrO

nifOnQ

Which solves to )()( 2 nOnM

Which solves to:

)(log2 nO

1n if )()(

1 n if )1()(

v2

vnMnO

OnM

Page 24: Cutting trees and the cutting lemma

)(loglog...

)/())/((

)/( ))/((

)/()(

2222

32223222

222222

2

nOnrrrr

rnQrrrrnQrrr

rnQrrrnQrr

rnQrnQ

The only difference here is that we replace r^2 with r^2 + O(logn)

1 )/()(log)(

1 )1()(

2 nifrnQnOrO

nifOnQ

After replacing: )(loglogloglog 22 nOnnnr

Page 25: Cutting trees and the cutting lemma

1n if )()(

1 n if )1()(

v2

vnMnO

OnM

Since we have cr^2 children, each a cutting tree over at most 1/r lines.

1n if ))/()((

1 n if )1()(

22 rnMnOcr

OnM

1n if )/()(

1 n if )1()(

22 rnMcrnO

OnM

Page 26: Cutting trees and the cutting lemma

1n if )/()(

1 n if )1()(

22 rnMcrnO

OnM

2

log322

332222

32222

2222

222

222

)...1(

)/()()(

))/()(()(

)/()(

))/()((

)/( )/()(

2222

2

2

n

n

rnMpppn

rnpMppn

rnMppn

rnpMpn

rnpMnrnMcrnnM

n

rp

rp

rp

rp

rn

rn

rn

rn

rn

rn

r

constant. is thing whole theThus

r.enogh largefor 12

2

2 rc

rcr

rp

Page 27: Cutting trees and the cutting lemma

Three level cutting tree

• A three point query– Given:

• a set L of n lines in the plane– Query:

• For a triple of points, each of which has a direction attached (below/above):Find out how many lines answer the criteria of the points.

Page 28: Cutting trees and the cutting lemma

Three level cutting tree - structure

Root

)( 2rO

Direct child

3-level tree over intersecting lines

2-level tree over lines

below

2-level tree over lines

above

Page 29: Cutting trees and the cutting lemma

Three level cutting tree

γ←ØIf T is a single leaf

• Then – check explicitly if the line fulfills criteria• Else - find the child which p3 belongs to – Vp3

γ1 ← SelectTriple(p1,p2,p3,T(Vp3)) γ2 ← SelectBelowPair(p1,p2,T+(Vp3)) γ ← γ1 U γ2

Return γ

Input: three query points p1,p2,p3, with ↑↓, a 3-level cutting tree TOutput: a set of all canonical subsets that fulfill criteria

SelectTriple(p1,p2,p3,T) (we assume p1↓,p2↓,p3↑)

Page 30: Cutting trees and the cutting lemma

Three level cutting tree - Analysis

Similarly to its two level variant:Lets look at the recurrenceTime:

Space:

1 )/()(log)(

1 )1()(

22 nifrnQnOrO

nifOnQ

Which solves to:

)(log2 nO

Which solves to )()( 2 nOnM

1n if )()(

1 n if )1()(

v2

vnMnO

OnM

Page 31: Cutting trees and the cutting lemma

Applying to our first problem:

Using the duality transform

• we convert the set of points P to a set of lines L.

• convert the three lines of the query triangle into a triple with above/below tag.

• perform the query, and then we can convert the lines found back to the original points.

Page 32: Cutting trees and the cutting lemma