+ All Categories
Home > Documents > CSE 421 - University of Washington · Graphics, computer vision, geographic information systems,...

CSE 421 - University of Washington · Graphics, computer vision, geographic information systems,...

Date post: 26-Sep-2020
Category:
Upload: others
View: 3 times
Download: 0 times
Share this document with a friend
31
CSE 421 Divide and Conquer: Integer Multiplication Shayan Oveis Gharan 1
Transcript
Page 1: CSE 421 - University of Washington · Graphics, computer vision, geographic information systems, molecular modeling, air traffic control. Special case of nearest neighbor, Euclidean

CSE 421

Divide and Conquer: Integer Multiplication

Shayan Oveis Gharan

1

Page 2: CSE 421 - University of Washington · Graphics, computer vision, geographic information systems, molecular modeling, air traffic control. Special case of nearest neighbor, Euclidean

Closest Pair of Points (2-dimensions)Given n points in the plane, find a pair with smallest Euclidean distance between them.

Fundamental geometric primitive.Graphics, computer vision, geographic information systems, molecular

modeling, air traffic control.Special case of nearest neighbor, Euclidean MST, Voronoi.

Brute force: Check all pairs of points p and q with Q(n2) time.

Assumption: No two points have same x coordinate.

Page 3: CSE 421 - University of Washington · Graphics, computer vision, geographic information systems, molecular modeling, air traffic control. Special case of nearest neighbor, Euclidean

A Divide and Conquer AlgDivide: draw vertical line L with ≈ n/2 points on each

side.Conquer: find closest pair on each side, recursively.

Combine to find closest pair overall

Return best solutions

12

218

L

seems like Q(n2) ?

Page 4: CSE 421 - University of Washington · Graphics, computer vision, geographic information systems, molecular modeling, air traffic control. Special case of nearest neighbor, Euclidean

Key ObservationSuppose 𝛿 is the minimum distance of all pairs in left/right of L.

𝛿 = min 12,21 = 12.Key Observation: suffices to consider points within d of line L.Almost the one-D problem again: Sort points in 2d-strip by their y

coordinate.

12

21

L

d=12

7

1

2

3

45

6

Only check pts within 11 in sorted list!

Page 5: CSE 421 - University of Washington · Graphics, computer vision, geographic information systems, molecular modeling, air traffic control. Special case of nearest neighbor, Euclidean

Almost 1D ProblemPartition each side of L into !

"× !"

squares

Claim: No two points lie in the same !"× !"

box.Pf: Such points would be within

!"

"+ !

"

"= 𝛿 #

"≈ 0.7𝛿 < 𝛿

Let si have the ith smallest y-coordinate among points in the 2𝛿-width-strip.

Claim: If 𝑖 − 𝑗 > 11, then the distance between si and sj is > 𝛿.Pf: only 11 boxes within d of y(si).

d

2930

31

28

26

25

d

½d

½d

39

i

j

27

29

>𝛿

Page 6: CSE 421 - University of Washington · Graphics, computer vision, geographic information systems, molecular modeling, air traffic control. Special case of nearest neighbor, Euclidean

Recap: Finding Closest Pair

So, enough to check distanceDistance of 30 to 19…41.

d

2930

31

28

26

25

d

½d

½d

42

i 27

33>𝛿

32

34

353637

At most 11 pointsahead of 30 have

distance < 𝛿 from it.

Sorted based on y

Point 42 has distance atleast 2𝛿 from point 30.

Page 7: CSE 421 - University of Washington · Graphics, computer vision, geographic information systems, molecular modeling, air traffic control. Special case of nearest neighbor, Euclidean

Closest Pair (2Dim Algorithm)

i

Closest-Pair(p1, …, pn) {if(n <= ??) return ??

Compute separation line L such that half the pointsare on one side and half on the other side.

d1 = Closest-Pair(left half)d2 = Closest-Pair(right half)d = min(d1, d2)

Delete all points further than d from separation line L

Sort remaining points p[1]…p[m] by y-coordinate.

for i = 1..mfor k = 1…11if i+k <= m

d = min(d, distance(p[i], p[i+k]));

return d.}

Page 8: CSE 421 - University of Washington · Graphics, computer vision, geographic information systems, molecular modeling, air traffic control. Special case of nearest neighbor, Euclidean

Closest Pair Analysis ILet D(n) be the number of pairwise distance calculations in the Closest-Pair Algorithm when run on n ³ 1 points

𝐷 𝑛 ≤ $1 if 𝑛 = 12𝐷

𝑛2 + 11 𝑛 o.w. ⇒ 𝐷 𝑛 = O(𝑛log 𝑛)

BUT, that’s only the number of distance calculationsWhat if we counted running time?

𝑇 𝑛 ≤ $1 if 𝑛 = 12𝑇

𝑛2+ 𝑂(𝑛 log 𝑛) o.w. ⇒ 𝐷 𝑛 = O(𝑛log! 𝑛)

Page 9: CSE 421 - University of Washington · Graphics, computer vision, geographic information systems, molecular modeling, air traffic control. Special case of nearest neighbor, Euclidean

Can we do better? (Analysis II)Yes!!

Don’t sort by y-coordinates each time.Sort by x at top level only.

This is enough to divide into two equal subproblems in O(n)Each recursive call returns d and list of all points sorted by ySort points by y-coordinate by merging two pre-sorted lists.

𝑇 𝑛 ≤ $1 if 𝑛 = 12𝑇

𝑛2 + 𝑂 𝑛 o.w. ⇒ 𝐷 𝑛 = 𝑂(𝑛 log 𝑛)

Page 10: CSE 421 - University of Washington · Graphics, computer vision, geographic information systems, molecular modeling, air traffic control. Special case of nearest neighbor, Euclidean

Master TheoremSuppose 𝑇 𝑛 = 𝑎 𝑇 "

# + 𝑐𝑛$ for all 𝑛 > 𝑏. Then,

• If 𝑎 > 𝑏$ then 𝑇 𝑛 = Θ 𝑛%&'!(

• If 𝑎 < 𝑏$ then 𝑇 𝑛 = Θ 𝑛$

• If 𝑎 = 𝑏$ then 𝑇 𝑛 = Θ 𝑛$log 𝑛

Works even if it is "# instead of "# .

We also need 𝑎 ≥ 1, 𝑏 > 1 , 𝑘 ≥ 0 and 𝑇 𝑛 = 𝑂(1) for 𝑛 ≤ 𝑏.

Page 11: CSE 421 - University of Washington · Graphics, computer vision, geographic information systems, molecular modeling, air traffic control. Special case of nearest neighbor, Euclidean

Proving Master Theorem

𝑇(𝑛) = 𝑎𝑇(𝑛/𝑏) + 𝑐𝑛𝑘

anProblem size

n/b

n/b2

b

1

d=log bn

# probs

a2

a

1

ad

=c×nk(a/bk)2

costcnk

c×a×nk/bk

c×a2×nk/b2k

c×nk(a/bk)d

𝑇 𝑛 = 𝑐𝑛%2&'(

)'*+,! - 𝑎𝑏%

&

Page 12: CSE 421 - University of Washington · Graphics, computer vision, geographic information systems, molecular modeling, air traffic control. Special case of nearest neighbor, Euclidean

A Useful Identity

Theorem: 1 + 𝑥 + 𝑥! +⋯+ 𝑥) = *"#$+,*+,

Pf: Let 𝑆 = 1 + 𝑥 + 𝑥! +⋯+ 𝑥)

Then, 𝑥𝑆 = 𝑥 + 𝑥! +⋯+ 𝑥)-,

So, 𝑥𝑆 − 𝑆 = 𝑥)-, − 1i.e., 𝑆 𝑥 − 1 = 𝑥)-, − 1Therefore,

𝑆 =𝑥)-, − 1𝑥 − 1

Page 13: CSE 421 - University of Washington · Graphics, computer vision, geographic information systems, molecular modeling, air traffic control. Special case of nearest neighbor, Euclidean

Solve: 𝑇 𝑛 = 𝑎𝑇 !"+ 𝑐𝑛#, 𝑎 > 𝑏#

𝑇 𝑛 = 𝑐𝑛$E./0

%&'! " 𝑎𝑏$

.

= 𝑐𝑛$𝑎𝑏$

%&'! "-,− 1

𝑎𝑏$ − 1

"!"##$"#$

for 𝑥 = %&$

𝑑 = log& 𝑛using 𝑥 ≠ 1

= 𝑐𝑛$

𝑏$ %&'! "

𝑎𝑏$𝑎𝑏$ − 1

𝑎%&'! "

≤ 𝑐′ 𝑎%&'! " = 𝑂(𝑛%&'! ()

𝑏' ()*% +

= 𝑏()*% + '

= 𝑛'𝑎()*% += (𝑏()*% %)()*% += (𝑏()*% +)()*% %= 𝑛()*% %

Page 14: CSE 421 - University of Washington · Graphics, computer vision, geographic information systems, molecular modeling, air traffic control. Special case of nearest neighbor, Euclidean

Solve: 𝑇 𝑛 = 𝑎𝑇 !"+ 𝑐𝑛#, 𝑎 = 𝑏#

𝑇 𝑛 = 𝑐𝑛$E./0

%&'! " 𝑎𝑏$

.

= 𝑐𝑛$ log# 𝑛

Page 15: CSE 421 - University of Washington · Graphics, computer vision, geographic information systems, molecular modeling, air traffic control. Special case of nearest neighbor, Euclidean

Master TheoremSuppose 𝑇 𝑛 = 𝑎 𝑇 "

# + 𝑐𝑛$ for all 𝑛 > 𝑏. Then,

• If 𝑎 > 𝑏$ then 𝑇 𝑛 = Θ 𝑛%&'!(

• If 𝑎 < 𝑏$ then 𝑇 𝑛 = Θ 𝑛$

• If 𝑎 = 𝑏$ then 𝑇 𝑛 = Θ 𝑛$log 𝑛

Works even if it is "# instead of "# .

We also need 𝑎 ≥ 1, 𝑏 > 1 , 𝑘 ≥ 0 and 𝑇 𝑛 = 𝑂(1) for 𝑛 ≤ 𝑏.

Page 16: CSE 421 - University of Washington · Graphics, computer vision, geographic information systems, molecular modeling, air traffic control. Special case of nearest neighbor, Euclidean

Integer Multiplication

Page 17: CSE 421 - University of Washington · Graphics, computer vision, geographic information systems, molecular modeling, air traffic control. Special case of nearest neighbor, Euclidean

Integer ArithmeticAdd: Given two n-bit integers a and b, compute a + b.

Multiply: Given two n-bit integers a and b, compute a × b.The “grade school” method:

17

1

011 1

110 1+

010 1

111

010 1

011 1

100 0

10111

Add

1

1

0

0

1

1

1

0

0

1

1

1

1

0

0

1

1

1

1

0

1

0

1

0000000

1010101

1010101

1010101

1010101

1010101

100000000001011

1

0

1

1

1

1

1

0

*

Multiply

00000000

O(n) bit operations.

𝑂(𝑛") bit operations.

Page 18: CSE 421 - University of Washington · Graphics, computer vision, geographic information systems, molecular modeling, air traffic control. Special case of nearest neighbor, Euclidean

How to use Divide and Conquer?Suppose we want to multiply two 2-digit integers (32,45).We can do this by multiplying four 1-digit integersThen, use add/shift to obtain the result:

Same idea works when multiplying n-digit integers: • Divide into 4 n/2-digit integers.• Recursively multiply• Then merge solutions

5

2

4

3

0441

01

80

51

21

x0×y0

x0×y1

x1×y0

x1×y1

x1 x0

y1 y0

𝑥 = 10𝑥# + 𝑥(𝑦 = 10𝑦# + 𝑦(𝑥𝑦 = 10𝑥# + 𝑥( 10𝑦# + 𝑦(

= 100 𝑥#𝑦# + 10 𝑥#𝑦( + 𝑥(𝑦# + 𝑥(𝑦(

Page 19: CSE 421 - University of Washington · Graphics, computer vision, geographic information systems, molecular modeling, air traffic control. Special case of nearest neighbor, Euclidean

A Divide and Conquer for Integer MultLet 𝑥, 𝑦 be two n-bit integersWrite 𝑥 = 2"/!𝑥, + 𝑥0 and 𝑦 = 2"/!𝑦, + 𝑦0

where 𝑥0, 𝑥,, 𝑦0, 𝑦, are all n/2-bit integers.

Therefore, 𝑇 𝑛 = 4𝑇

𝑛2+ Θ(𝑛)

So, 𝑇 𝑛 = Θ 𝑛! .

𝑥 = 2-/" ⋅ 𝑥# + 𝑥(𝑦 = 2-/" ⋅ 𝑦# + 𝑦(𝑥𝑦 = 2-/" ⋅ 𝑥# +𝑥( 2-/" ⋅ 𝑦# + 𝑦(

= 2- ⋅ 𝑥#𝑦# + 2 ⁄- " ⋅ 𝑥#𝑦( + 𝑥(𝑦# + 𝑥(𝑦(We only need 3 values𝑥$𝑦$, 𝑥,𝑦,, 𝑥$𝑦, + 𝑥,𝑦$

Can we find all 3 by only3 multiplication?

Page 20: CSE 421 - University of Washington · Graphics, computer vision, geographic information systems, molecular modeling, air traffic control. Special case of nearest neighbor, Euclidean

Key Trick: 4 multiplies at the price of 3

𝑥 = 2-/" ⋅ 𝑥# + 𝑥(𝑦 = 2-/" ⋅ 𝑦# + 𝑦(𝑥𝑦 = 2-/" ⋅ 𝑥# +𝑥( 2-/" ⋅ 𝑦# + 𝑦(

= 2- ⋅ 𝑥#𝑦# + 2 ⁄- " ⋅ 𝑥#𝑦( + 𝑥(𝑦# + 𝑥(𝑦(

𝛼 = 𝑥# + 𝑥(𝛽 = 𝑦# + 𝑦(𝛼𝛽 = 𝑥# + 𝑥( 𝑦# + 𝑦(

= 𝑥#𝑦# + 𝑥#𝑦( + 𝑥(𝑦# + 𝑥(𝑦(𝑥#𝑦( + 𝑥(𝑦# = 𝛼𝛽 − 𝑥#𝑦# − 𝑥(𝑦(

Page 21: CSE 421 - University of Washington · Graphics, computer vision, geographic information systems, molecular modeling, air traffic control. Special case of nearest neighbor, Euclidean

Key Trick: 4 multiplies at the price of 3Theorem [Karatsuba-Ofman, 1962] Can multiply two n-digit integers in O(n1.585…) bit operations.

To multiply two n-bit integers:Add two n/2 bit integers.Multiply three n/2-bit integers.Add, subtract, and shift n/2-bit integers to obtain result.

𝑇 𝑛 = 3𝑇𝑛2+ 𝑂 𝑛 ⇒ 𝑇 𝑛 = 𝑂 𝑛%&'% B = 𝑂(𝑛,.DED…)

𝑥 = 2-/" ⋅ 𝑥# + 𝑥( ⇒ 𝛼 = 𝑥# + 𝑥(𝑦 = 2-/" ⋅ 𝑦# + 𝑦( ⇒ 𝛽 = 𝑦# + 𝑦(𝑥𝑦 = 2-/" ⋅ 𝑥# +𝑥( 2-/" ⋅ 𝑦# + 𝑦(

= 2- ⋅ 𝑥#𝑦# + 2 ⁄- " ⋅ 𝑥#𝑦( + 𝑥(𝑦# + 𝑥(𝑦(A B𝛼𝛽 − 𝐴 − 𝐵

Page 22: CSE 421 - University of Washington · Graphics, computer vision, geographic information systems, molecular modeling, air traffic control. Special case of nearest neighbor, Euclidean

Integer Multiplication (Summary)• Naïve: Θ(𝑛2)

• Karatsuba: Θ(𝑛,.DED…)

• Amusing exercise: generalize Karatsuba to do 5 size n/3 subproblems

This gives Θ 𝑛#.%&… time algorithm

• Best known algorithm runs in Θ(𝑛 log 𝑛) using fast Fourier transform but mostly unused in practice (unless you need really big numbers - a billion

digits of p, say)

• Best lower bound 𝑂(𝑛): A fundamental open problem

Page 23: CSE 421 - University of Washington · Graphics, computer vision, geographic information systems, molecular modeling, air traffic control. Special case of nearest neighbor, Euclidean

Median

Page 24: CSE 421 - University of Washington · Graphics, computer vision, geographic information systems, molecular modeling, air traffic control. Special case of nearest neighbor, Euclidean

Selecting k-th smallestProblem: Given numbers 𝑥,, … , 𝑥" and an integer 1 ≤ 𝑘 ≤ 𝑛

output the 𝑘-th smallest numberSel( 𝑥,, … , 𝑥" , 𝑘)

A simple algorithm: Sort the numbers in time O(n log n) then return the k-th smallest in the array.

Can we do better?

Yes, in time 𝑂(𝑛) if 𝑘 = 1 or 𝑘 = 2.

Can we do 𝑂 𝑛 for all possible values of k?

Assume all numbers are distinct for simplicity.

Page 25: CSE 421 - University of Washington · Graphics, computer vision, geographic information systems, molecular modeling, air traffic control. Special case of nearest neighbor, Euclidean

An IdeaChoose a number 𝑤 from 𝑥,, … , 𝑥"Define• 𝑆G 𝑤 = 𝑥.: 𝑥. < 𝑤• 𝑆/ 𝑤 = 𝑥.: 𝑥. = 𝑤• 𝑆H 𝑤 = 𝑥.: 𝑥. > 𝑤

Solve the problem recursively as follows:• If 𝑘 ≤ |𝑆G(𝑤)|, output 𝑆𝑒𝑙(𝑆G 𝑤 , 𝑘)• Else if 𝑘 ≤ 𝑆G 𝑤 + 𝑆/ 𝑤 , output w• Else output 𝑆𝑒𝑙(𝑆H 𝑤 , 𝑘 − |𝑆G 𝑤 | − |𝑆/ 𝑤 |)

Ideally want 𝑆G 𝑤 , |𝑆H(𝑤)| ≤ 𝑛/2. In this case ALG runs in 𝑂 𝑛 + 𝑂 "

! + 𝑂 "I +⋯+ 𝑂 1 = 𝑂 𝑛 .

Can be computed in linear time

Page 26: CSE 421 - University of Washington · Graphics, computer vision, geographic information systems, molecular modeling, air traffic control. Special case of nearest neighbor, Euclidean

How to choose w?Suppose we choose w uniformly at random

similar to the pivot in quicksort.Then, 𝔼 𝑆( 𝑤 = 𝔼 𝑆) 𝑤 = 𝑛/2. Algorithm runs in 𝑂(𝑛) in

expectation.Can we get 𝑂(𝑛) running time deterministically?• Partition numbers into sets of size 3.• Sort each set (takes O(n))• 𝑤 = 𝑆𝑒𝑙(𝑚𝑖𝑑𝑝𝑜𝑖𝑛𝑡𝑠, 𝑛/6)

≤≤

≤≤

≤≤

≤≤

≤≤

≤≤

≤≤

≤≤

≤≤

≤≤

≤≤

≤≤

≤≤

≤≤w

Page 27: CSE 421 - University of Washington · Graphics, computer vision, geographic information systems, molecular modeling, air traffic control. Special case of nearest neighbor, Euclidean

• 𝑆G 𝑤 ≥ 2 "J = "

B

• 𝑆H 𝑤 ≥ 2 "J = "

B .

So, what is the running time?

How to lower bound 𝑆! 𝑤 , |𝑆" 𝑤 |?

<<

<<

<<

<<

<<

<<

<<

<<

<<

<<

≤<w< <<<< < < < < <

< 𝒘

> 𝒘

𝑛3 ≤ |𝑆1 𝑤 |, 𝑆2 𝑤 ≤

2𝑛3

Page 28: CSE 421 - University of Washington · Graphics, computer vision, geographic information systems, molecular modeling, air traffic control. Special case of nearest neighbor, Euclidean

• If 𝑘 ≤ |𝑆((𝑤)|, output 𝑆𝑒𝑙(𝑆( 𝑤 , 𝑘)• Else if 𝑘 ≤ 𝑆( 𝑤 + 𝑆* 𝑤 , output w• Else output 𝑆𝑒𝑙(𝑆) 𝑤 , 𝑘 − 𝑆( 𝑤 − 𝑆* 𝑤 )

Where +,≤ 𝑆( 𝑤 , 𝑆) 𝑤 ≤ "+

,

𝑇 𝑛 = 𝑇𝑛3+ 𝑇

2𝑛3

+ 𝑂 𝑛 ⇒ 𝑇 𝑛 = 𝑂(𝑛 log 𝑛)

Asymptotic Running Time?

<<

<<

<<

<<

<<

<<

<<

<<

<<

<<

≤<w

< <<<< < < < < <

O(nlog n) again? So, what is the point?

Page 29: CSE 421 - University of Washington · Graphics, computer vision, geographic information systems, molecular modeling, air traffic control. Special case of nearest neighbor, Euclidean

Partition into n/5 sets. Sort each set and set 𝑤 = 𝑆𝑒𝑙(𝑚𝑖𝑑𝑝𝑜𝑖𝑛𝑡𝑠, 𝑛/10)

• 𝑆G 𝑤 ≥ 3 ",0 = B"

,0

• 𝑆H 𝑤 ≥ 3 ",0

= B",0

𝑇 𝑛 = 𝑇𝑛5+ 𝑇

7𝑛10

+ 𝑂 𝑛 ⇒ 𝑇 𝑛 = 𝑂(𝑛)

An Improved Idea

< <<<< < < < < <

< 𝒘

> 𝒘

3𝑛10 ≤ |𝑆1 𝑤 |, 𝑆2 𝑤 ≤

7𝑛10

<<

<<

<<

<<

<<

<<

<<

<<

<<

<<

<<

<<

<<

<<

<<

<<

<<

<<

<<

<<

<<

<<

Page 30: CSE 421 - University of Washington · Graphics, computer vision, geographic information systems, molecular modeling, air traffic control. Special case of nearest neighbor, Euclidean

An Improved IdeaSel(S, k) {

𝒏 ← 𝑺If (n < ??) return ??Partition S into n/5 sets of size 5Sort each set of size 5 and let M be the set of medians, so

|M|=n/5Let w=Sel(M,n/10)For i=1 to n{

If 𝒙𝒊 < 𝒘 add x to 𝑺" 𝒘If 𝒙𝒊 > 𝒘 add x to 𝑺# 𝒘If 𝒙𝒊 = 𝒘 add x to 𝑺$(𝒘)

}If (𝒌 ≤ |𝑺" 𝒘 |)

return Sel(𝑺" 𝒘 ,𝒌)else if (𝒌 ≤ 𝑺" 𝒘 + |𝑺$ 𝒘 |)

return w;else

return Sel(𝑺# 𝒘 ,𝒌 − 𝑺" 𝒘 − |𝑺$(𝒘)|)}

We can maintain eachset in an array

Page 31: CSE 421 - University of Washington · Graphics, computer vision, geographic information systems, molecular modeling, air traffic control. Special case of nearest neighbor, Euclidean

D&C SummaryIdea:

“Two halves are better than a whole”• if the base algorithm has super-linear complexity.

“If a little's good, then more's better”• repeat above, recursively

• Applications: Many. • Binary Search, Merge Sort, (Quicksort), • Root of a Function• Closest points, • Integer multiplication• Median• Matrix Multiplication


Recommended