Upload
deiondre
View
47
Download
0
Embed Size (px)
DESCRIPTION
Randomized Algorithms CS648. Lecture 15 Randomized Incremental Construction (building the background). Partition Theorem. A set of events ,…, defined over a probability space ( , P ) is said to induce a partition of if = = ∅ for all P artition Theorem:. B. Ω. - PowerPoint PPT Presentation
Citation preview
Randomized AlgorithmsCS648
Lecture 15Randomized Incremental Construction
(building the background)
1
Partition Theorem
A set of events ,…, defined over a probability space (,P) is said to induce a partition of if• = • =∅ for all
Partition Theorem:
2
P(B) = )
ΩB
) ∙ ) This theorem solves
many difficult problems magically. But one needs some
experience in order to apply it effectively. You will realize it
soon.
PROBLEM 1FIND-MIN PROBLEM
3
Find-Min algorithm
Find-Min(A[1..]){ A[1]; For to do { if ( ?? ) ?? } return ; }
Question: If elements of A are permuted randomly uniformly, what is the expected number of times variable is updated ?
: no. of times is updated.
4
8 5 16 11 32 4 57 6 19 82 7 42 2 23
1 2 3 4 5 6 7 8 9 10 11 12 13 14
A
A[] A[] ;
??
Find-Min algorithm
= Probability that A[] is smaller than {A[],…, A[]}
Notations:• : set of all subsets of A of size .• For any , : first elements of A are (some permutation of) .
Using Partition Theorem, =
5
𝒊 𝒏−𝟏1 2 …
A
𝐏 (𝑿¿¿ 𝒊=𝟏∨𝓔𝒂)¿ 𝐏 (𝓔𝒂)
First elements
Though this equation is perfectly correct, you won’t be able to proceed from this
point onwards to find . Can you find the reason behind its
uselessness ?
PROBLEM 2CLOSEST PAIR OF POINTS
6
Closest Pair of Points
Problem Definition:Given a set of points in plane, compute the pair of points with minimum Euclidean distance.
Deterministic algorithms:• O() : Trivial algorithm• O() : Divide and Conquer based algorithm
Randomized algorithm:• O() : Randomized Incremental Construction based algorithm
7
Notations and assumptions
Notations: • : set of points in plane.
• Coordinates of each point are positive integers.
• distance(,) : Euclidean distance between and .
Assumption:
• Distance between each pair of points is distinct.
8
A discrete math exercise
Exercise: What is the maximum number of points that can be placed in a unit square such that the minimum distance is at least 1 ?Answer: 4.
This exercise is used is deterministic algorithm as well the randomized algorithm that we shall discuss now.
9
1
1√2
If there are more than 4 points, at least one
of the four small squares will have more
than 1 points.
Overview of the randomized algorithm
• Incremental algorithm: starts with a set of 2 points, computes their distance; inserts 3rd point and updates the closest pair distance; inserts 4th point and updates the closest pair distance; … • Uses an efficient data structure, called Grid, to facilitate efficient
processing during ith step: - To determine if ith point is going to change the closest pair distance.
10
Grid()
A data structure with operations:• Locate_cell(, ): Locates the cell to which belongs.
• Report_points(, ): Report all points belonging to cell .
• Insert_point(, ): Insert point in grid .
• Build_Grid(): Build grid for with parameter .
11
𝜹
𝜹
: set of points
: distance between closest pair of points in .
Grid()
Height Balanced Binary search tree
Dynamic hashing
Locate_cell(, ) (1)
Report_points(, ) (1)
Insert_point(, ) (1) expected
Build_Grid() ) expected
12
The following time bounds are possible.
Excluding Insert_point() operation, show as a homework, that we can achieve all other bounds using static hashing discussed in this course.
Closest Pair of PointsClosest-pair-algorithm() Let <,,…, > be a uniformly random permutation of ; distance(,); Build_Grid(, ); For to do { Step 1: locate the cell of the grid containing ; Step 2: find the point closest to ; let = distance(, ); Step 3: If ; Insert(, ); Else ; Build_Grid(, ); } return ;
13
th iteration
14
𝜹𝒊−𝟏
𝜹𝒊−𝟏
:𝒑𝒊
We just need to
insert
th iteration
15
𝜹𝒊−𝟏
𝜹𝒊−𝟏
𝜹𝒊
:𝒑𝒊
We need to rebuild the grid
th iteration
16
𝜹𝒊
𝜹𝒊
:𝒑𝒊
Analysis of th iterationClosest-pair-algorithm() Let <,,…, > be a uniformly random permutation of ; distance(,); Build_Grid(, ); For to do { Step 1: locate the cell of the grid containing ; Step 2: find the point closest to ; let = distance(, ); Step 3: If ; Insert(, ); Else ; Build_Grid(, ); } return ;
17
O(1)
O(1)
O(1)
for constant
running time of th iteration
: running time of th iteration
E[] = ??
Question: What is ?
depends upon which depends upon the first points.
So we need to use Partition theorem to calculate .
18
O(1) + ∙
Calculating
Notations:
• : set of all subsets of of size .
• For any , : first points are (some permutation of) .
=
19
𝐏 (𝜹¿¿ 𝒊<𝜹𝒊−𝟏∨𝓔𝒂)¿ 𝐏 (𝓔𝒂)
Though this equation is perfectly correct, you won’t be able to proceed from this
point onwards to find Can you find the reason behind its
uselessness ?
Homework Exercise
• Investigate the cause of problem in our forward analysis for each of the two problems.
• Try to find alternate approach for analysis. (Backward analysis )
• Provide efficient implementation of Grid data structure.
20
I am hopeful that at least one of
you will reinvent this technique on
his/her own before next class.