CSE 202 Algorithms - PowerPoint PPT Presentation

1 / 11
About This Presentation
Title:

CSE 202 Algorithms

Description:

Slow convolutions can be changed to faster point wise ops. ... O(N) to form convolution (point wise multiplication) O(N lg N) to convert back. ... – PowerPoint PPT presentation

Number of Views:55
Avg rating:3.0/5.0
Slides: 12
Provided by: car72
Learn more at: https://cseweb.ucsd.edu
Category:
Tags: cse | algorithms | wise

less

Transcript and Presenter's Notes

Title: CSE 202 Algorithms


1
CSE 202 - Algorithms
  • Polynomial Representations,
  • Fourier Transfer,
  • and other goodies.
  • (Chapters 28-30)

2
Representation mattersExample simple graph
algorithms
  • Adjacency lists
  • Mi is list of nodes attached to node i by edge
  • O(E) algorithm for connected components,
  • O(E lg E) for MST
  • ...
  • Adjacency matrix
  • Mi,j 1 iff (i,j) is an edge.
  • Requires ?(V2) just to find some edges (if youre
    unlucky and graph is sparse)

3
Representation mattersExample long integer
operations
  • Arabic notation
  • O(N lg 3), or even better.
  • Roman numerals
  • multiplication isnt hard, but if size of
    instance is number characters, can be O(N2)
    (why??)

4
Another long integer representation
  • Let q1, q2,..., qk be relatively prime integers.
  • Assume each is short, (e.g. lt 231 )
  • For 0 lt i lt q1 q2 qk , represent i as vector
  • lt i (mod q1), i (mod q2),..., i (mod qk) gt
  • Converting to this representation takes perhaps
    O(k2)
  • k divides of k-long number by a short one.
  • Converting back requires k Chinese Remainder
    operations.
  • Why bother?
  • or x on two such number takes O(k) time.
  • but comparisons are very time-consuming.
  • If you have many xs per convert, you can save
    time!

5
Representing (N-1)th degree polynomials
To convert Evaluate at N points O(N2)
  • Use N points
  • b0f(0), ..., bN-1f(N-1).
  • Addition point wise
  • Multiplication point wise
  • Use N coefficients
  • a0 a1 x a2 x2 ... aN-1 xN-1
  • Addition point wise
  • Multiplication convolution
  • ci ? ak bi-k

Add N basis functions O(N2)
6
So what?
  • Slow convolutions can be changed to faster point
    wise ops.
  • E.g., in signal processing, you often want to
    form dot product of a set of weights w0, w1, ...,
    wN-1 with all N cyclic shifts of data a0, a1,
    ..., aN-1. This is a convolution.
  • Takes N2 time done naively.
  • Pretend data and weights are coefficients of
    polynomials.
  • Convert each set to point value representations
  • Might take O(N2) time.
  • Now do one point wise multiplications
  • O(N) time.
  • And finally convert each back to original form
  • Might take O(N2) time.
  • Ooops ... we havent saved any time.

7
Fast Fourier Transform (FFT)
  • It turns out, we can switch back and forth
    between two representations (often called time
    domain and frequency domain) in O(N lg N)
    time.
  • Basic idea rather than evaluating polynomial at
    0, ..., N-1, do so at the N roots of unity
  • These are the complex numbers that solve XN 1.
  • Now use fancy algebraic identities to reduce
    work.
  • Bottom line to form convolution, it only takes
  • O(N lg N) to convert to frequency domain
  • O(N) to form convolution (point wise
    multiplication)
  • O(N lg N) to convert back.
  • O(N lg N) instead of O(N2).

8
The FFT computationButterfly network
a0
b0
a1
b1
a2
b2
Each box computes ...
a3
b3
a4
b4
x
x?i y
y
x-?i y
where ?i is some root of unity. Takes 10
floating-point ops (these are complex numbers).
Factoid In 1990, 40 of all Cray Supercomputer
cycles were devoted to FFTs
a15
b15
lg N stages
Bit reversal permutation
inputs
9
Fast Matrix Multiplication(chapter 28)
  • Naïve matrix multiplication is O(N3)
  • for multiplying two NxN matrices.
  • Strassens Algorithm uses 7 multiplies of N/2 x
    N/2 matrixes (rather than 8).
  • T(N) 7T(N/2) c N2. Thus, T(N) is O( ?? )
    O(N2.81...).
  • Its faster than naïve method for N gt 45-ish.
  • Gives slightly different answer, due to different
    rounding.
  • It can be argued that Strassen is more accurate.
  • Current champion O(N 2.376) Coppersmith
    Winograd

10
Linear Programming (chapter 29)
  • Given n variables x1, x2, ... xn,
  • maximize objective function c1x1
    c2x2...cnxn,
  • subject to the m linear constraints
  • a11x1 a12x2...c1nxn ? b1
  • ...
  • am1x1 am2x2...cmnxn ? bm
  • Simplex method Exponential worst case, but very
    fast in practice.
  • Ellipsoid method is polynomial time. There exists
    some good implementations (e.g. in IBMs OSL
    library).
  • NOTE Integer linear programming (where answer
    must be integers) is NP-hard (i.e., probably not
    polynomial time).

11
Glossary (in case symbols are weird)
  • ???????????????? ? ? ? ? ? ? ? ? ?
  • ? subset ? element of ? infinity ? empty
    set
  • ? for all ? there exists ? intersection ?
    union
  • ? big theta ? big omega ? summation
  • ? gt ? lt ? about equal
  • ? not equal ? natural numbers(N)
  • ? reals(R) ? rationals(Q) ? integers(Z)
Write a Comment
User Comments (0)
About PowerShow.com