Lecture 30 CSE 331 Nov 11, 2016.

Slides:



Advertisements
Similar presentations
Closest Pair Given a set S = {p1, p2,..., pn} of n points in the plane find the two points of S whose distance is the smallest. Images in this presentation.
Advertisements

Lecture 30 CSE 331 Nov 8, HW 7 due today Place Q1, Q2 and Q3 in separate piles I will not accept HWs after 1:15pm DO NOT FORGET TO WRITE DOWN YOUR.
Chapter 2 Recursive Algorithms. 2 Chapter Outline Analyzing recursive algorithms Recurrence relations Closest pair algorithms Convex hull algorithms Generating.
Spring 2015 Lecture 5: QuickSort & Selection
CS38 Introduction to Algorithms Lecture 7 April 22, 2014.
Lecture 28 CSE 331 Nov 9, Flu and HW 6 Graded HW 6 at the END of the lecture If you have the flu, please stay home Contact me BEFORE you miss a.
Lecture 32 CSE 331 Nov 18, HW 8 solutions Friday.
Lecture 31 CSE 331 Nov 16, Jeff is out of town this week No regular recitation or Jeff’s normal office hours I’ll hold extra Question sessions Mon,
Lecture 34 CSE 331 Nov 19, HW 9 due today Q1 in one pile and Q 2+3 in another I will not take any HW after 1:15pm.
Lecture 33 CSE 331 Nov 20, Homeworks Submit HW 9 by 1:10PM HW 8 solutions at the end of the lecture.
Lecture 6 Divide and Conquer for Nearest Neighbor Problem Shang-Hua Teng.
CSE 421 Algorithms Richard Anderson Lecture 13 Divide and Conquer.
Lecture 34 CSE 331 Nov 23, Homework related stuff Graded HW 8+9, solutions to HW 9 the week after Thanksgiving.
Lecture 33 CSE 331 Nov 17, Online office hours Alex will host the office hours.
CSE 421 Algorithms Richard Anderson Lecture 11 Recurrences.
Lecture 30 CSE 331 Nov 10, Online Office Hours
Lecture 29 CSE 331 Nov 11, To be strictly enforced For the rest of the semester on Fridays SUBMIT your HOMEWORKS by 1:10 PM.
Sorting (Part II: Divide and Conquer) CSE 373 Data Structures Lecture 14.
Intro to Computer Algorithms Lecture 11 Phillip G. Bradford Computer Science University of Alabama.
1 Closest Pair of Points (from “Algorithm Design” by J.Kleinberg and E.Tardos) Closest pair. Given n points in the plane, find a pair with smallest Euclidean.
Divide-and-Conquer. Outline Introduction Merge Sort Quick Sort Closest pair of points Large integer multiplication.
Lecture 28 CSE 331 Nov 9, Mini project report due WED.
CSE 421 Algorithms Lecture 15 Closest Pair, Multiplication.
Advanced Algorithms Analysis and Design
Lecture 32 CSE 331 Nov 16, 2016.
Lecture 31 CSE 331 Nov 14, 2016.
Lecture 26 CSE 331 Nov 2, 2016.
Lecture 31 CSE 331 Nov 13, 2017.
Lecture 34 CSE 331 Nov 26, 2012.
Richard Anderson Lecture 14 Divide and Conquer
Divide and Conquer / Closest Pair of Points Yin Tat Lee
Punya Biswas Lecture 15 Closest Pair, Multiplication
Lecture 33 CSE 331 Nov 18, 2016.
Lecture 33 CSE 331 Nov 19, 2012.
Lecture 26 CSE 331 Nov 1, 2017.
Richard Anderson Lecture 11 Recurrences
Lecture 27 CSE 331 Nov 3, 2017.
Richard Anderson Lecture 13 Divide and Conquer
Richard Anderson Lecture 14 Inversions, Multiplication, FFT
Lecture 32 CSE 331 Nov 14, 2011.
Lecture 29 CSE 331 Nov 8, 2017.
Lecture 28 CSE 331 Nov 7, 2016.
Lecture 30 CSE 331 Nov 10, 2017.
Lecture 27 CSE 331 Oct 31, 2014.
Lecture 33 CSE 331 Nov 15, 2013.
Lecture 34 CSE 331 Nov 18, 2011.
Lecture 28 CSE 331 Nov 7, 2012.
Lecture 27 CSE 331 Nov 2, 2010.
Lecture 31 CSE 331 Nov 14, 2012.
Lecture 31 CSE 331 Nov 12, 2010.
CSE 373 Data Structures and Algorithms
Lecture 36 CSE 331 Nov 30, 2012.
Lecture 30 CSE 331 Nov 12, 2012.
CSCI 256 Data Structures and Algorithm Analysis Lecture 12
Lecture 15, Winter 2019 Closest Pair, Multiplication
Richard Anderson Lecture 14 Divide and Conquer
Lecture 31 CSE 331 Nov 11, 2011.
Lecture 30 CSE 331 Nov 9, 2011.
Lecture 32 CSE 331 Nov 12, 2014.
Richard Anderson Lecture 14, Winter 2019 Divide and Conquer
Richard Anderson Lecture 14 Divide and Conquer
Advanced Algorithms Analysis and Design
Lecture 15 Closest Pair, Multiplication
Richard Anderson Lecture 12, Winter 2019 Recurrences
Lecture 27 CSE 331 Nov 4, 2016.
Divide and Conquer Merge sort and quick sort Binary search
Richard Anderson Lecture 12 Recurrences
Richard Anderson Lecture 13 Divide and Conquer
Lecture 27 CSE 331 Nov 1, 2013.
Presentation transcript:

Lecture 30 CSE 331 Nov 11, 2016

Mini project video due Mon

Homework 8

Solutions to Homework 7 At the END of the lecture

Counting Inversions Input: n distinct numbers a1,a2,…,an Inversion: (i,j) with i < j s.t. ai > aj Output: Number of inversions

Divide and Conquer Divide up the problem into at least two sub-problems Solve all sub-problems: Mergesort Recursively solve the sub-problems Solve some sub-problems: Multiplication Solve stronger sub-problems: Inversions “Patch up” the solutions to the sub-problems for the final solution

Handling crossing inversions aL aR 1 100 2 4 Why should aL and aR be sorted? http://www.dovecoteidea.com/ Sort aL and aR recursively!

Mergesort-Count algorithm Input: a1, a2, …, an Output: Numbers in sorted order+ #inversion T(2) = c T(n) = 2T(n/2) + cn MergeSortCount( a, n ) If n = 1 return ( 0 , a1) If n = 2 return ( a1 > a2, min(a1,a2); max(a1,a2)) O(n log n) time aL = a1,…, an/2 aR = an/2+1,…, an (cL, aL) = MergeSortCount(aL, n/2) (cR, aR) = MergeSortCount(aR, n/2) O(n) Counts #crossing-inversions+ MERGE (c, a) = MERGE-COUNT(aL,aR) return (c+cL+cR,a)

Closest pairs of points Input: n 2-D points P = {p1,…,pn}; pi=(xi,yi) d(pi,pj) = ( (xi-xj)2+(yi-yj)2)1/2 Output: Points p and q that are closest

Group Talk time O(n2) time algorithm? 1-D problem in time O(n log n) ?

Sorting to rescue in 2-D? Pick pairs of points closest in x co-ordinate Pick pairs of points closest in y co-ordinate Choose the better of the two

A property of Euclidean distance yj d(pi,pj) = ( (xi-xj)2+(yi-yj)2)1/2 yi xi xj The distance is larger than the x or y-coord difference

Rest of Today’s agenda Divide and Conquer based algorithm

Dividing up P Q R First n/2 points according to the x-coord

Recursively find closest pairs Q R δ = min (blue, green)

An aside: maintain sorted lists Px and Py are P sorted by x-coord and y-coord Qx, Qy, Rx, Ry can be computed from Px and Py in O(n) time

An easy case R > δ Q All “crossing” pairs have distance > δ δ = min (blue, green)

Life is not so easy though Q R δ = min (blue, green)

Rest of Today’s agenda Divide and Conquer based algorithm

Euclid to the rescue (?) d(pi,pj) = ( (xi-xj)2+(yi-yj)2)1/2 yj yi xi The distance is larger than the x or y-coord difference

Life is not so easy though δ Q R > δ > δ > δ δ = min (blue, green)

All we have to do now δ R Q S Figure if a pair in S has distance < δ S δ = min (blue, green)

Assume can be done in O(n) The algorithm so far… O(n log n) + T(n) Input: n 2-D points P = {p1,…,pn}; pi=(xi,yi) Sort P to get Px and Py O(n log n) T(< 4) = c Closest-Pair (Px, Py) T(n) = 2T(n/2) + cn If n < 4 then find closest point by brute-force Q is first half of Px and R is the rest O(n) Compute Qx, Qy, Rx and Ry O(n) (q0,q1) = Closest-Pair (Qx, Qy) O(n log n) overall (r0,r1) = Closest-Pair (Rx, Ry) O(n) δ = min ( d(q0,q1), d(r0,r1) ) O(n) S = points (x,y) in P s.t. |x – x*| < δ return Closest-in-box (S, (q0,q1), (r0,r1)) Assume can be done in O(n)