Vertical Decomposition
Vertical Decomposition
TECHNIQUES
- KARTHEEK 190101023
- SAAKETH 190101080
OVERVIEW
Vertical Decomposition
Randomized Incremental Algorithm
Backward Analysis
Why randomization?
General Settings
PROBLEM STATEMENT
Let S = {s1, s2,….., sn} be a collection of n line segments in the plane, and let p be a point not lying on any
of the segments. We wish to compute the face that contains p in the arrangement A of S.
How to solve this problem?
We already know that this problem can be solved using the Slab Decomposition Technique.
But What’s the problem with slab decomposition?
REVIEW:
In this example, the space complexity is
O(n^2) which is too much.
Can we do better in space complexity?
To reduce the space complexity, we use
vertical decomposition.
VERTICAL
DECOMPOSITION
Let S = {s1, s2, ..., sn} be a set of line segments, then a vertex of
set S is either an endpoint of a segment of S, or an
intersection point of two of its segments.
Let us take a subset R of set S , and the vertical decomposition
be A’(R) corresponding to the arrangement A(R) of segments
in R.
From each such vertex in R we shoot up (similarly down) a
vertical ray till it hits a segment of R, or it continues all the way
to infinity.
VERTICAL
DECOMPOSITION
2
Let S be a set of n segments with k intersection points. Let Si be the first i segments in a random permutation
of S. The expected size of Bi = A'(Si), denoted by τ(i), (i.e., number of trapezoids in Bi) is O(i + k(i/n)2)
Proof:
Number of trapezoids in Bi is proportional to number of vertices in A(Si).
Number of vertices = End points of segments + Intersection Points.
Total endpoints = 2 * total no of segments = 2i.
The probability that an intersection point p exists in Bi is α.
α = (n-2)C(i-2) / nci = i*(i-1) / n*(n-1).
Expected number of intersection points in Bi = k*α.
So total number of trapezoids ∝ no of vertices = 2i + kα = 2i + k*i*(i-1) / n*(n-1) ≈ O(i + k* (i / n)2).
BACKWARD ANALYSIS
Assume that the overall size of the conflict-lists of the trapezoids of Bi is Wi , and total size of the conflict lists
created only in the ith iteration is Ci.
Bi does not depends on internal order of Si = {s1, s2, …, si}.
Probability that si is the last segment added is 1/i.
Now let σ ∈ Bi is a trapezoid formed in ith iteration then si must one of the segments (atmost 4) defining it.
So Prob[σ ∈ Bi / Bi-1] <= 4 / i.
By definition, Wi = ∑σ∈Bi |cl(σ)|
Expected overall size of conflict list created in ith iteration is given by,
BACKWARD ANALYSIS
In particular, the expected amount of work in the ith iteration is proportional to E[Ci]. Thus, the overall
expected running time of the algorithm is
BACKWARD ANALYSIS
Let's see Intuitively how the average size of conflict list is O(n/i).
Now let's think of the similar type of problem in 1D.
Consider a set P of n points on the line, and a random sample R of i points from P. Let I be the partition
of the real line into open intervals by the endpoints of R that do not contain points of R in their interior.
Probability that a point x belongs to R is (i/n).
Expected number of points in an interval is n/i.
Here, the expected number of points in the interval is of the same order as expected size of conflict list
for a trapezoid. So expected size of conflict list is O(n/i).
WHY RANDOMIZATION?
GENERAL SETTINGS
LEMMA:
Let r ≤ n and t be parameters, such that 1 ≤ t ≤ r/d.
Furthermore, let R be a sample of size r, R' be a sample
of size r' = ⌊r/t⌋, both from S. Let σ ∈ T be a trapezoid
with weight ω = ω(σ) ≥ t(n/r).
Then, Pr[σ ∈ F (R)] = O(td2-tPr[σ ∈ F(R')]).
CONTINUATION
GENERAL SETTINGS
Lemma:
Given a set S of n objects. Let r ≤ n and
t be parameters, such that 1 ≤ t ≤ r/d,
where d = max σ ∈ T(S)|D(σ)|.
we have,
#t(r) = O( td2−t #(⌊r/t⌋) ) = O( td2−t #(r) ).
GENERAL SETTINGS
Theorem:
Let R ⊆ S be a random subset of size r.
Let #(r) = E[|F(R)|] and c ≥ 1 be an arbitrary constant.
Then,
E(∑σ∈F(R)(ω(σ))c) = O(#(r) * (n/r)c).
ANALYSING RIC ALGO
THANK YOU