+ All Categories
Home > Documents > Complexity of Computations Nicholas Tran Department of Mathematics & Computer Science Santa Clara...

Complexity of Computations Nicholas Tran Department of Mathematics & Computer Science Santa Clara...

Date post: 08-Jan-2018
Category:
Upload: irene-harrington
View: 217 times
Download: 0 times
Share this document with a friend
Description:
Running Time is measured... In terms of basic operations (digit addition) As a function of input size (number of digits)
41
Complexity of Computations Nicholas Tran Department of Mathematics & Computer Science Santa Clara University Santa Clara, CA 95053 USA
Transcript
Page 1: Complexity of Computations Nicholas Tran Department of Mathematics & Computer Science Santa Clara University Santa Clara, CA 95053 USA.

Complexity of Computations

Nicholas TranDepartment of Mathematics & Computer

ScienceSanta Clara UniversitySanta Clara, CA 95053

USA

Page 2: Complexity of Computations Nicholas Tran Department of Mathematics & Computer Science Santa Clara University Santa Clara, CA 95053 USA.

How fast can computers add two integers ? 1 2 3

+ 4 5 6

---------

5 7 9

Page 3: Complexity of Computations Nicholas Tran Department of Mathematics & Computer Science Santa Clara University Santa Clara, CA 95053 USA.

Running Time is measured ... In terms of basic operations (digit

addition) As a function of input size

(number of digits)

Page 4: Complexity of Computations Nicholas Tran Department of Mathematics & Computer Science Santa Clara University Santa Clara, CA 95053 USA.

A(n) = n (digit additions) an an-1 an-2 ... a2 a1

+ bn bn-1 bn-2 ... b2 b1

---------------------------------------

cn+1 cn cn-1 cn-2 ... c2 c1

Page 5: Complexity of Computations Nicholas Tran Department of Mathematics & Computer Science Santa Clara University Santa Clara, CA 95053 USA.

Linear Running Time is FAST! Assume:

3GHz processor (3 billion cycles / second)

One basic operation = 10 cycles 64-bit words (19 decimal digits)

Can add 4.7 million pairs of 64-bit integers in one second!

Page 6: Complexity of Computations Nicholas Tran Department of Mathematics & Computer Science Santa Clara University Santa Clara, CA 95053 USA.

Is Linear Time Optimal ? Yes! Every bit must be examined

Page 7: Complexity of Computations Nicholas Tran Department of Mathematics & Computer Science Santa Clara University Santa Clara, CA 95053 USA.

How fast can computers multiply two integers ? 1 2

* 3 4

--------

4 8

3 6

4 0 8

Page 8: Complexity of Computations Nicholas Tran Department of Mathematics & Computer Science Santa Clara University Santa Clara, CA 95053 USA.

M(n) = n2 (digit mults) + (n-1)n (digit additions) an an-1 an-2 ... a2

a1

* bn bn-1 bn-2 ... b2 b1

---------------------------------------

Page 9: Complexity of Computations Nicholas Tran Department of Mathematics & Computer Science Santa Clara University Santa Clara, CA 95053 USA.

Quadratic Running Time is OK Assume:

3GHz processor (3 billion cycles / second)

One basic operation = 10 cycles Can multiply 300 pairs of 1024-bit

integers in one second.

Page 10: Complexity of Computations Nicholas Tran Department of Mathematics & Computer Science Santa Clara University Santa Clara, CA 95053 USA.

Is Quadratic Time optimal ? No! Divide-and-conquer method: n1.585

Fast-Fourier-Transform: n log n

Page 11: Complexity of Computations Nicholas Tran Department of Mathematics & Computer Science Santa Clara University Santa Clara, CA 95053 USA.

Divide and Conquer Multiplication

A1 an ... a1+n/2 an/2 ... a1 A0

B1 bn ... b1+n/2 bn/2 ... b1 B0

A*B = 2n(A1*B1) + 2n/2[(A1 – A0)*(B0 – B1) + A1*B1 + A0*B0] + A0*B0

Page 12: Complexity of Computations Nicholas Tran Department of Mathematics & Computer Science Santa Clara University Santa Clara, CA 95053 USA.

Running TimeM(n) = 3M(n/2) = 3*(3M(n/4)) = 3*3*(3M(n/8)) = ... = 3lg n = nlg 3 = n1.585...

Page 13: Complexity of Computations Nicholas Tran Department of Mathematics & Computer Science Santa Clara University Santa Clara, CA 95053 USA.

Open Question Linear-time algorithm for integer

multiplication ?

Page 14: Complexity of Computations Nicholas Tran Department of Mathematics & Computer Science Santa Clara University Santa Clara, CA 95053 USA.

How fast can computers multiply two matrices ? 1 2 5 6 19 22 * = 3 4 7 8 36 40

Page 15: Complexity of Computations Nicholas Tran Department of Mathematics & Computer Science Santa Clara University Santa Clara, CA 95053 USA.

MT(n) = n3 (multiplications) Result matrix has n2 entries Each entry requires n

multiplications

Page 16: Complexity of Computations Nicholas Tran Department of Mathematics & Computer Science Santa Clara University Santa Clara, CA 95053 USA.

Is Cubic Time optimal ? No! Divide-and-conquer method: n2.8074

Fastest known: n2.376

Page 17: Complexity of Computations Nicholas Tran Department of Mathematics & Computer Science Santa Clara University Santa Clara, CA 95053 USA.

Open Question Quadratic-time algorithm for matrix

multiplication ?

Page 18: Complexity of Computations Nicholas Tran Department of Mathematics & Computer Science Santa Clara University Santa Clara, CA 95053 USA.

How fast can computers compute bx ? 207314 =

163941337332542421506559015723347759364300068397756479870218390908602100383\ 07922727887209064687385169802330113993715822472651871750525058759656611\

33524136520376084888852214059673269428533014335800256092944711066046124\ 65720634680059676515229653689770006451644184755542774816379633924627617\ 05099174019255538743584629999826446047309939592097350115722833385636445\ 63886481013473075657995735436727794479189654529537393093545923092137017\ 52102655263222045614392981857588240904150531584994663864142668575382184\ 77683376171973571372801939885320527927087749711039139096117682810252441\ 30411871017236729965957901414498677146321719899287248980868996796413073\ 45380396119706515352607745909505485585157609318105039969986657456119601\ 41747323092449

Page 19: Complexity of Computations Nicholas Tran Department of Mathematics & Computer Science Santa Clara University Santa Clara, CA 95053 USA.

Naïve algorithm: x multiplications bx = b*b*...*b (x times)

Page 20: Complexity of Computations Nicholas Tran Department of Mathematics & Computer Science Santa Clara University Santa Clara, CA 95053 USA.

Better algorithm: 2n multiplications (n=lg x)b21 = b16+4+1 = b16b4b1

bb2 = b*bb4 = b2 * b2

b8 = b4 * b4

b16 = b8 * b8

Page 21: Complexity of Computations Nicholas Tran Department of Mathematics & Computer Science Santa Clara University Santa Clara, CA 95053 USA.

How fast can computers find gcd(a,b) ? Greatest common divisor of 9 and 6

is 3

Page 22: Complexity of Computations Nicholas Tran Department of Mathematics & Computer Science Santa Clara University Santa Clara, CA 95053 USA.

Naïve method: min(a,b) divisionsGcd(9, 6):

6 divides 6 but not 95 does not divide 64 does not divide 63 divides 6 AND 9

Page 23: Complexity of Computations Nicholas Tran Department of Mathematics & Computer Science Santa Clara University Santa Clara, CA 95053 USA.

Euclidean Algorithm: 5*lg min(a, b)

gcd(a, b) = gcd(b, a mod b)

gcd(1357911,361) = gcd(361, 190) = gcd(190, 171) = gcd(171, 19) = gcd(19, 0) = 19

Page 24: Complexity of Computations Nicholas Tran Department of Mathematics & Computer Science Santa Clara University Santa Clara, CA 95053 USA.

gcd(a, b) by factoring into primes

9 = 20 * 32

6 = 21 * 31

gcd(9, 6) = 20 * 31

Page 25: Complexity of Computations Nicholas Tran Department of Mathematics & Computer Science Santa Clara University Santa Clara, CA 95053 USA.

How fast can computers recognize primes ? Isprime(11) = true Isprime(314159) = true Isprime(27183) = fase

Page 26: Complexity of Computations Nicholas Tran Department of Mathematics & Computer Science Santa Clara University Santa Clara, CA 95053 USA.

Naïve method: √x divisionsTheorem: if x = ab, then either a or b is at most √x

Page 27: Complexity of Computations Nicholas Tran Department of Mathematics & Computer Science Santa Clara University Santa Clara, CA 95053 USA.

Too slow for large x! Largest known prime: 232482657 – 1

Would take 216241272 ~ 104889109 years (age of universe ~ 1010 years)

Page 28: Complexity of Computations Nicholas Tran Department of Mathematics & Computer Science Santa Clara University Santa Clara, CA 95053 USA.

Major Breakthrough Agrawal, Kayal, Saxena published

an algorithm in 2004 with running time

(lg x)6

Would take 1029 years on the largest known prime!

Page 29: Complexity of Computations Nicholas Tran Department of Mathematics & Computer Science Santa Clara University Santa Clara, CA 95053 USA.

In practice... Probabilistic algorithm (Rabin) Very fast [(lg x)2] but may make

mistake Would take 40 days on the largest

known prime

Page 30: Complexity of Computations Nicholas Tran Department of Mathematics & Computer Science Santa Clara University Santa Clara, CA 95053 USA.

How fast can computers factor integers ? 3141592653589793 = 13 * 241 * 1002742628021

Page 31: Complexity of Computations Nicholas Tran Department of Mathematics & Computer Science Santa Clara University Santa Clara, CA 95053 USA.

Open Question Fastest known algorithm for

factoring integers is faster than x but slower than lg x

Is there a fast algorithm for factoring integers ?

Page 32: Complexity of Computations Nicholas Tran Department of Mathematics & Computer Science Santa Clara University Santa Clara, CA 95053 USA.

Major Breakthrough Shor published a (lg x)3 method for

quantum computers in 2001

Page 33: Complexity of Computations Nicholas Tran Department of Mathematics & Computer Science Santa Clara University Santa Clara, CA 95053 USA.

RSA Cryptography Invented by Rivest, Shamir,

Adleman in 1978 Seems unbreakable if there are no

fast methods for integer factoring

Page 34: Complexity of Computations Nicholas Tran Department of Mathematics & Computer Science Santa Clara University Santa Clara, CA 95053 USA.

How RSA works I put on my website two integers (n,

e) n is the product of two secret big

primes p, q e is chosen so that gcd(e, (p-1)(q-1)) = 1 I compute d so that de = 1 + multiple of (p-1)(q-1)

Page 35: Complexity of Computations Nicholas Tran Department of Mathematics & Computer Science Santa Clara University Santa Clara, CA 95053 USA.

To send a message x You get (n, e) from my website and send xe (mod n)

I decrypt by computing (xe)d (mod n) = x Unless you can factor n = pq, it seems

hard to find d

Page 36: Complexity of Computations Nicholas Tran Department of Mathematics & Computer Science Santa Clara University Santa Clara, CA 95053 USA.

Example (Stinson) I put on my website (11413, 3533) 11413 = 101 * 113 gcd(3533, (100*112)) = 1 d = 6597 6597 * 3533 = 1 (mod 11200)

Page 37: Complexity of Computations Nicholas Tran Department of Mathematics & Computer Science Santa Clara University Santa Clara, CA 95053 USA.

Example (ctd.) To send me 9726, you compute 97263533 (mod 11413) = 5761 To decode I compute 57616597 (mod 11413) =

9726

Page 38: Complexity of Computations Nicholas Tran Department of Mathematics & Computer Science Santa Clara University Santa Clara, CA 95053 USA.

Exploiting Hardness of Pattern Recognition

Page 39: Complexity of Computations Nicholas Tran Department of Mathematics & Computer Science Santa Clara University Santa Clara, CA 95053 USA.

Even Harder Problems Traveling Salesman: shortest

route starting from San Jose through n cities

Partition: divide a set of n people into two groups, so that the total weight of each group is identical

Page 40: Complexity of Computations Nicholas Tran Department of Mathematics & Computer Science Santa Clara University Santa Clara, CA 95053 USA.

NP-hard Problems Solutions are hard to find but easy to

check A fast solution to any of these

problems would yield a fast solution to integer factoring

A one-million dollar prize is currently offered to a resolution of this issue

Page 41: Complexity of Computations Nicholas Tran Department of Mathematics & Computer Science Santa Clara University Santa Clara, CA 95053 USA.

Summary


Recommended