109
Section 1: Computational Complexity Section 2: Asymptotic Notation Section 3: Algorithms Computational Complexity II: Asymptotic Notation and Classification Algorithms Maria-Eirini Pegia Seminar on Theoretical Computer Science and Discrete Mathematics Aristotle University of Thessaloniki Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classifica

Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Computational Complexity II:Asymptotic Notation and Classification Algorithms

Maria-Eirini Pegia

Seminar on Theoretical Computer Science and Discrete MathematicsAristotle University of Thessaloniki

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 2: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Context

1 Section 1: Computational Complexity

2 Section 2: Asymptotic Notation

3 Section 3: Algorithms

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 3: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Computational Complexity

Computational Complexity of an algorithm A:

¢ time, space (memory)

¢worst, average, best case

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 4: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Computational Complexity

Computational Complexity of an algorithm A:

¢ time, space (memory)

¢worst, average, best case

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 5: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Computational Complexity

Computational Complexity of an algorithm A:

¢ time, space (memory)

¢worst, average, best case

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 6: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Computational Complexity

Input snapshot size n:

¢ #bits for the representation input data to the memory

¢ number of basic components which constitute the size anddifficulty measure of snapshot(i.e., vetrices and edges of a graph)

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 7: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Computational Complexity

Input snapshot size n:

¢ #bits for the representation input data to the memory

¢ number of basic components which constitute the size anddifficulty measure of snapshot(i.e., vetrices and edges of a graph)

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 8: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Computational Complexity

Input snapshot size n:

¢ #bits for the representation input data to the memory

¢ number of basic components which constitute the size anddifficulty measure of snapshot(i.e., vetrices and edges of a graph)

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 9: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Computational Complexity

Computational Complexity of the problem P:

Complexity (worst case) best algorithm which solvesthe problem P.

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 10: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Computational Complexity

Computational Complexity of the problem P:

Complexity (worst case) best algorithm which solvesthe problem P.

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 11: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Algorithm Design

Valuation of computational complexity

¢worst case

Running time guarantees for any input of size n.- Generally captures efficiency in practice .- ¢ Draconian view, but hard to find effective alternative

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 12: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Algorithm Design

Valuation of computational complexity

¢worst case

Running time guarantees for any input of size n.- Generally captures efficiency in practice .- ¢ Draconian view, but hard to find effective alternative

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 13: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Algorithm Design

Valuation of computational complexity

¢worst case

Running time guarantees for any input of size n.

- Generally captures efficiency in practice .- ¢ Draconian view, but hard to find effective alternative

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 14: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Algorithm Design

Valuation of computational complexity

¢worst case

Running time guarantees for any input of size n.- Generally captures efficiency in practice .- ¢ Draconian view, but hard to find effective alternative

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 15: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Algorithm Design

¢ average case

the performance of an algorithm averaged over ”random”instances can sometimes provide considerable insight.

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 16: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Algorithm Design

¢ average case

the performance of an algorithm averaged over ”random”instances can sometimes provide considerable insight.

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 17: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Algorithm Design

¢ best case

The term best case performance is used to describe an algorithm’sbehavior under optimal conditions.

Best solution depending on application requirements.

Average performance and worst-case performance are themost used in algorithm analysis.

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 18: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Algorithm Design

¢ best case

The term best case performance is used to describe an algorithm’sbehavior under optimal conditions.

Best solution depending on application requirements.

Average performance and worst-case performance are themost used in algorithm analysis.

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 19: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Algorithm Design

¢ best case

The term best case performance is used to describe an algorithm’sbehavior under optimal conditions.

Best solution depending on application requirements.

Average performance and worst-case performance are themost used in algorithm analysis.

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 20: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Algorithm Design

¢ best case

The term best case performance is used to describe an algorithm’sbehavior under optimal conditions.

Best solution depending on application requirements.

Average performance and worst-case performance are themost used in algorithm analysis.

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 21: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Asymptotic Valuation

Running time of the algorithm A:¢ Increasing function of T(n) that expresses in how muchtime is completed A when is applied in snapshot of size n.

We are interested in the size class T(n)¢ Size class is intrinsic property of algorithm.- binary search logarithmic time- dynamic programming linear time

ignores stables & focuses on runtime size class

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 22: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Asymptotic Valuation

Running time of the algorithm A:¢ Increasing function of T(n) that expresses in how muchtime is completed A when is applied in snapshot of size n.

We are interested in the size class T(n)¢ Size class is intrinsic property of algorithm.

- binary search logarithmic time- dynamic programming linear time

ignores stables & focuses on runtime size class

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 23: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Asymptotic Valuation

Running time of the algorithm A:¢ Increasing function of T(n) that expresses in how muchtime is completed A when is applied in snapshot of size n.

We are interested in the size class T(n)¢ Size class is intrinsic property of algorithm.- binary search logarithmic time- dynamic programming linear time

ignores stables & focuses on runtime size class

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 24: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Asymptotic Valuation

Running time of the algorithm A:¢ Increasing function of T(n) that expresses in how muchtime is completed A when is applied in snapshot of size n.

We are interested in the size class T(n)¢ Size class is intrinsic property of algorithm.- binary search logarithmic time- dynamic programming linear time

ignores stables & focuses on runtime size class

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 25: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Asymptotic Upper Bounds

Big-Oh notation

T(n) is O(Sf nS) if there existconstants c A 0 and n0 C 0 suchthat T(n) B c · f(n) ¦ n C n0.

Figure: f(x) > O(g(x))

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 26: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Big-Oh notation

Example

T(n) = pn2 + qn + r, p,q,r A 0

We claim that any such function is O(n2).

¦ n C 1, qn B qn2 and r B rn2

T(n) = pn2 + qn + r B pn2 + qn2 + rn2 = (p+q+r) n2 = c n2

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 27: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Big-Oh notation

Example

T(n) = pn2 + qn + r, p,q,r A 0

We claim that any such function is O(n2).

¦ n C 1, qn B qn2 and r B rn2

T(n) = pn2 + qn + r B pn2 + qn2 + rn2 = (p+q+r) n2 = c n2

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 28: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Big-Oh notation

Example

T(n) = pn2 + qn + r, p,q,r A 0

We claim that any such function is O(n2).

¦ n C 1, qn B qn2 and r B rn2

T(n) = pn2 + qn + r B pn2 + qn2 + rn2 = (p+q+r) n2 = c n2

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 29: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Big-Oh notation

¢ O( f(n) ) is a set of functions

- T(n) > O( f(n) ) ( )- T(n) = O( f(n) ) ( x, )

¢ Nonnegative functions: When using Big-Oh notation, we assumethat the functions involved are (asymptotically) nonnegative.

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 30: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Big-Oh notation

¢ O( f(n) ) is a set of functions

- T(n) > O( f(n) ) ( )- T(n) = O( f(n) ) ( x, )

¢ Nonnegative functions: When using Big-Oh notation, we assumethat the functions involved are (asymptotically) nonnegative.

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 31: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Asymptotic Lower Bounds

Big-Omega notation

T(n) is Ω( f(n)) if there existconstants c A 0 and n0 C 0 suchthat T(n) C c f(n) ¦ n C n0.

Figure: Big-Omega notation

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 32: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Asymptotic Lower Bounds

Example

T(n) = pn2 + qn + r, p,q,r A 0

Let’s claim that T(n) = Ω(n2).

¦ n C 0, T(n) = pn2 + qn + r C pn2 = c n2

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 33: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Asymptotic Lower Bounds

Example

T(n) = pn2 + qn + r, p,q,r A 0

Let’s claim that T(n) = Ω(n2).

¦ n C 0, T(n) = pn2 + qn + r C pn2 = c n2

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 34: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Asymptotic Lower Bounds

Example

T(n) = pn2 + qn + r, p,q,r A 0

Let’s claim that T(n) = Ω(n2).

¦ n C 0, T(n) = pn2 + qn + r C pn2 = c n2

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 35: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Asymptotically Tight Bounds

Big-Theta notation

T(n) is Θ( f(n) ) if there existconstants c1 A 0 , c2 A 0 and

n0 C 0 such thatc1 f(n) B T(n) B c2 f(n)

¦ n C n0.Figure: Big-Theta notation

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 36: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Big-Theta notation

Example

T(n) = pn2 + qn + r, p,q,r A 0

We saw that T(n) is both O(n2) and Ω(n2).

T(n) = Θ(n2)

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 37: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Big-Theta notation

Example

T(n) = pn2 + qn + r, p,q,r A 0

We saw that T(n) is both O(n2) and Ω(n2).

T(n) = Θ(n2)

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 38: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Relational Properties

Reflexivity: O, Ω, Θ

Transitivity: O, Ω, Θ

Symmetry: f(n) = Θ( g(n) ) g(n) = Θ( f(n) )

Transpose Symmetry (Duality):

f(n) = O( g(n) ) g(n) = Ω( f(n) )

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 39: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Relational Properties

Reflexivity: O, Ω, Θ

Transitivity: O, Ω, Θ

Symmetry: f(n) = Θ( g(n) ) g(n) = Θ( f(n) )

Transpose Symmetry (Duality):

f(n) = O( g(n) ) g(n) = Ω( f(n) )

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 40: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Relational Properties

Reflexivity: O, Ω, Θ

Transitivity: O, Ω, Θ

Symmetry: f(n) = Θ( g(n) ) g(n) = Θ( f(n) )

Transpose Symmetry (Duality):

f(n) = O( g(n) ) g(n) = Ω( f(n) )

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 41: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Relational Properties

Reflexivity: O, Ω, Θ

Transitivity: O, Ω, Θ

Symmetry: f(n) = Θ( g(n) ) g(n) = Θ( f(n) )

Transpose Symmetry (Duality):

f(n) = O( g(n) ) g(n) = Ω( f(n) )

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 42: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Master Theorem

Master Theorem

If T(n) = a T(nb ) + O(nd) for constants a A 0, b A 1, d C 0, then

T n

¢¨¦¨¤

Ond if d A logba

Ond logn if d logba

Onlogba if d @ logba

Nice Trick for computing quickly the computational complexity.

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 43: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 44: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Efficient algorithm

Definition 1

An algorithm is efficient if, when implemented, it runs quickly onreal input instances.

¢ the omission of where, and how well

¢ real input instances

¢ scale

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 45: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Efficient algorithm

Definition 1

An algorithm is efficient if, when implemented, it runs quickly onreal input instances.

¢ the omission of where, and how well

¢ real input instances

¢ scale

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 46: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Efficient algorithm

Definition 2

An algorithm is efficient if it achieves qualitatively better worstcase performance, at an analytical level, than brute-force search.

¢ What do we mean by ”qualitatively better performance”?

Definition 3

An algorithm is efficient if it has a polynomial running time.

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 47: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Efficient algorithm

Definition 2

An algorithm is efficient if it achieves qualitatively better worstcase performance, at an analytical level, than brute-force search.

¢ What do we mean by ”qualitatively better performance”?

Definition 3

An algorithm is efficient if it has a polynomial running time.

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 48: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Efficient algorithm

Definition 2

An algorithm is efficient if it achieves qualitatively better worstcase performance, at an analytical level, than brute-force search.

¢ What do we mean by ”qualitatively better performance”?

Definition 3

An algorithm is efficient if it has a polynomial running time.

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 49: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Poly-time algorithm

¢ Desirable scaling property: When the input size doubles, thealgorithm should only slow down by some constant factor C.

Definition

An algorithm is poly-time if the above scaling property holds.

¢ There exists constants c A 0 and d A 0 such that on every inputof size n, its running time is bounded by cnd primitivecomputational steps.

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 50: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Poly-time algorithm

¢ Desirable scaling property: When the input size doubles, thealgorithm should only slow down by some constant factor C.

Definition

An algorithm is poly-time if the above scaling property holds.

¢ There exists constants c A 0 and d A 0 such that on every inputof size n, its running time is bounded by cnd primitivecomputational steps.

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 51: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Poly-time algorithm

¢ Desirable scaling property: When the input size doubles, thealgorithm should only slow down by some constant factor C.

Definition

An algorithm is poly-time if the above scaling property holds.

¢ There exists constants c A 0 and d A 0 such that on every inputof size n, its running time is bounded by cnd primitivecomputational steps.

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 52: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Why we care for the asymptotic bound of an algorithm?

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 53: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Classification algorithms by their design methodology

Brute-force (or exhaustive search)

Divide and conquer

Dynamic programming

Randomized algorithms

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 54: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Classification algorithms by their design methodology

Brute-force (or exhaustive search)

Divide and conquer

Dynamic programming

Randomized algorithms

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 55: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Classification algorithms by their design methodology

Brute-force (or exhaustive search)

Divide and conquer

Dynamic programming

Randomized algorithms

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 56: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Classification algorithms by their design methodology

Brute-force (or exhaustive search)

Divide and conquer

Dynamic programming

Randomized algorithms

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 57: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Brute-force search

Definition

Brute-force search is a very general problem-solving technique thatconsists of systematically enumerating all possible candidates forthe solution and checking whether each candidate satisfies theproblem’s statement.

¢ (-) can end up doing far more work to solve a given problemthan might do a more clever or sophisticated algorithm

¢ (+) is often easier to implement than a more sophisticated one,because of this simplicity, sometimes it can be more efficient

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 58: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Brute-force search

Definition

Brute-force search is a very general problem-solving technique thatconsists of systematically enumerating all possible candidates forthe solution and checking whether each candidate satisfies theproblem’s statement.

¢ (-) can end up doing far more work to solve a given problemthan might do a more clever or sophisticated algorithm

¢ (+) is often easier to implement than a more sophisticated one,because of this simplicity, sometimes it can be more efficient

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 59: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Brute-force search

Definition

Brute-force search is a very general problem-solving technique thatconsists of systematically enumerating all possible candidates forthe solution and checking whether each candidate satisfies theproblem’s statement.

¢ (-) can end up doing far more work to solve a given problemthan might do a more clever or sophisticated algorithm

¢ (+) is often easier to implement than a more sophisticated one,because of this simplicity, sometimes it can be more efficient

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 60: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Bubble Sort

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 61: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Bubble Sort

Input: array a with n elements

For i = 1 to n

For j = i + 1 to n

If ( a[i] A a[j] )then swap their values

End - If

End - For

End - For

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 62: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Bubble Sort

¢ Computational Complexity: O(n2)

WHY???

¢ not a practical sorting algorithm when n is large

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 63: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Bubble Sort

¢ Computational Complexity: O(n2)

WHY???

¢ not a practical sorting algorithm when n is large

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 64: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Bubble Sort

¢ Computational Complexity: O(n2)

WHY???

¢ not a practical sorting algorithm when n is large

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 65: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Divide and Conquer

Definition

A divide and conquer algorithm works by recursively breaking downa problem into two or more sub-problems of the same or relatedtype, until these become simple enough to be solved directly. Thesolutions to the sub-problems are then combined to give a solutionto the original problem.

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 66: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

3 steps of divide and conquer

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 67: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Mergesort

Example

T(n) = number of comparisons to mergesort an input of size n.

Divide array into two halves (divide O(1)).

Recursively sort each half (sort 2T(n

2)).

Merge two halves to make sorted whole (merge O(n)).

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 68: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Mergesort

Example

T(n) = number of comparisons to mergesort an input of size n.

Divide array into two halves (divide O(1)).

Recursively sort each half (sort 2T(n

2)).

Merge two halves to make sorted whole (merge O(n)).

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 69: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Mergesort

Example

T(n) = number of comparisons to mergesort an input of size n.

Divide array into two halves (divide O(1)).

Recursively sort each half (sort 2T(n

2)).

Merge two halves to make sorted whole (merge O(n)).

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 70: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Mergesort

Example

T(n) = number of comparisons to mergesort an input of size n.

Divide array into two halves (divide O(1)).

Recursively sort each half (sort 2T(n

2)).

Merge two halves to make sorted whole (merge O(n)).

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 71: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Mergesort

T n ¢¨¦¨¤

0 if n = 1

2T n2 On otherwise

¢ Master Theorem ,

¢ Solution: T(n) = O(nlog(n))

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 72: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Mergesort

T n ¢¨¦¨¤

0 if n = 1

2T n2 On otherwise

¢ Master Theorem ,

¢ Solution: T(n) = O(nlog(n))

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 73: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Mergesort

T n ¢¨¦¨¤

0 if n = 1

2T n2 On otherwise

¢ Master Theorem ,

¢ Solution: T(n) = O(nlog(n))

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 74: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Dynamic programming

Divide and Conquer

Break up a problem into independent sub-problems, solve eachsub-problem, and combine solution to sub-problems to formsolution to original problem.

Dynamic programming

Break up a problem into a series of overlapping sub-problems, andbuild up solutions to larger and larger sub-problems.

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 75: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Dynamic programming

Divide and Conquer

Break up a problem into independent sub-problems, solve eachsub-problem, and combine solution to sub-problems to formsolution to original problem.

Dynamic programming

Break up a problem into a series of overlapping sub-problems, andbuild up solutions to larger and larger sub-problems.

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 76: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Applications

¢ Dynamic programming applications:

Bioinformatics

Control Theory

Information Theory

¢ Cocke-Kasami-Younger for parsing context-free grammars.

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 77: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Applications

¢ Dynamic programming applications:

Bioinformatics

Control Theory

Information Theory

¢ Cocke-Kasami-Younger for parsing context-free grammars.

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 78: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Applications

¢ Dynamic programming applications:

Bioinformatics

Control Theory

Information Theory

¢ Cocke-Kasami-Younger for parsing context-free grammars.

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 79: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Applications

¢ Dynamic programming applications:

Bioinformatics

Control Theory

Information Theory

¢ Cocke-Kasami-Younger for parsing context-free grammars.

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 80: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Applications

¢ Dynamic programming applications:

Bioinformatics

Control Theory

Information Theory

¢ Cocke-Kasami-Younger for parsing context-free grammars.

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 81: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Knapsack Problem

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 82: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Knapsack

Given n objects and a ”knapsack”.

Item i weights wi A 0 and has value vi A 0.

Knapsack has capacity of W.

Goal: fill knapsack so as to maximize total value.

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 83: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Knapsack

Given n objects and a ”knapsack”.

Item i weights wi A 0 and has value vi A 0.

Knapsack has capacity of W.

Goal: fill knapsack so as to maximize total value.

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 84: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Knapsack

Given n objects and a ”knapsack”.

Item i weights wi A 0 and has value vi A 0.

Knapsack has capacity of W.

Goal: fill knapsack so as to maximize total value.

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 85: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Knapsack

Given n objects and a ”knapsack”.

Item i weights wi A 0 and has value vi A 0.

Knapsack has capacity of W.

Goal: fill knapsack so as to maximize total value.

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 86: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Knapsack problem

OPT(i, w) = max profit subset of items 1, . . . , i with weight limitw

¢ Case 1: OPT does not select item i.

OPT selects best of 1, 2, . . . , i – 1 using weight limit w.

¢ Case 2: OPT selects item i.

New weight limit = w – wi .

OPT selects best of 1, 2, . . . , i – 1 using this new weight limit.

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 87: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Knapsack problem

OPT(i, w) = max profit subset of items 1, . . . , i with weight limitw

¢ Case 1: OPT does not select item i.

OPT selects best of 1, 2, . . . , i – 1 using weight limit w.

¢ Case 2: OPT selects item i.

New weight limit = w – wi .

OPT selects best of 1, 2, . . . , i – 1 using this new weight limit.

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 88: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Knapsack problem

OPT(i, w) = max profit subset of items 1, . . . , i with weight limitw

¢ Case 1: OPT does not select item i.

OPT selects best of 1, 2, . . . , i – 1 using weight limit w.

¢ Case 2: OPT selects item i.

New weight limit = w – wi .

OPT selects best of 1, 2, . . . , i – 1 using this new weight limit.

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 89: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Knapsack problem

OPT(i, w) = max profit subset of items 1, . . . , i with weight limitw

¢ Case 1: OPT does not select item i.

OPT selects best of 1, 2, . . . , i – 1 using weight limit w.

¢ Case 2: OPT selects item i.

New weight limit = w – wi .

OPT selects best of 1, 2, . . . , i – 1 using this new weight limit.

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 90: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Knapsack problem

OPT(i, w) = max profit subset of items 1, . . . , i with weight limitw

¢ Case 1: OPT does not select item i.

OPT selects best of 1, 2, . . . , i – 1 using weight limit w.

¢ Case 2: OPT selects item i.

New weight limit = w – wi .

OPT selects best of 1, 2, . . . , i – 1 using this new weight limit.

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 91: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Knapsack problem

OPT(i, w) = max profit subset of items 1, . . . , i with weight limitw

¢ Case 1: OPT does not select item i.

OPT selects best of 1, 2, . . . , i – 1 using weight limit w.

¢ Case 2: OPT selects item i.

New weight limit = w – wi .

OPT selects best of 1, 2, . . . , i – 1 using this new weight limit.

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 92: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Knapsack problem

Objective function:

OPT i ,w

¢¨¦¨¤

0 if i 0

OPT i 1,w if wi A w

maxOPT i 1,w, vi OPT i 1,w wi otherwise

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 93: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Knapsack Problem

¢ Knapsack problem: bottom-up

KNAPSACK (n, W,w1,. . . ,wn,v1,. . . ,vn)for w = 0 to W

M [0, w] Ð 0.for i = 1 to n

for w = 0 to Wif ( wi A w )

M [i, w] Ð M [i – 1, w].else

M [i, w] Ð max M [i – 1, w], vi + M [i – 1, w – wi ] return M [n, W]

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 94: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Knapsack problem: running time

Theorem

There exists an algorithm to solve the knapsack problem with nitems and maximum weight W in Θ(nW) time and Θ(nW) space.

¢ not polynomial in input size! (pseudo-polynomial)

¢ NP - complete problem ,

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 95: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Knapsack problem: running time

Theorem

There exists an algorithm to solve the knapsack problem with nitems and maximum weight W in Θ(nW) time and Θ(nW) space.

¢ not polynomial in input size! (pseudo-polynomial)

¢ NP - complete problem ,

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 96: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Knapsack problem: running time

Theorem

There exists an algorithm to solve the knapsack problem with nitems and maximum weight W in Θ(nW) time and Θ(nW) space.

¢ not polynomial in input size! (pseudo-polynomial)

¢ NP - complete problem ,

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 97: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Randomized Algorithms

Definition

A randomized algorithm is an algorithm that employs a degree ofrandomness as part of its logic.

¢ Randomization: Allow fair coin flip in unit time.

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 98: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Randomized Algorithms

Definition

A randomized algorithm is an algorithm that employs a degree ofrandomness as part of its logic.

¢ Randomization: Allow fair coin flip in unit time.

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 99: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Randomized Algorithms

Why randomize?

Can lead to simplest, fastest, or only known algorithm for a

particular problem! ,

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 100: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Randomized Algorithms

Why randomize?Can lead to simplest, fastest, or only known algorithm for a

particular problem! ,

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 101: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Randomized Algorithms

There are two large classes of such algorithms:

¢ Las Vegas: A randomized algorithm that always outputsthe correct answer, it is just that there is a small probability oftaking long to execute.

¢Monte Carlo: Sometimes we want the algorithm toalways complete quickly, but allow a small probability error.

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 102: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Randomized Algorithms

There are two large classes of such algorithms:

¢ Las Vegas: A randomized algorithm that always outputsthe correct answer, it is just that there is a small probability oftaking long to execute.

¢Monte Carlo: Sometimes we want the algorithm toalways complete quickly, but allow a small probability error.

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 103: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Randomized Algorithms

There are two large classes of such algorithms:

¢ Las Vegas: A randomized algorithm that always outputsthe correct answer, it is just that there is a small probability oftaking long to execute.

¢Monte Carlo: Sometimes we want the algorithm toalways complete quickly, but allow a small probability error.

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 104: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Randomized Algorithms

Any Las Vegas algorithm can be converted into a Monte Carloalgorithm by outputting an arbitrary, possibly incorrect answer if itfails to complete within a specified time.

Monte Carlo algorithm cannot be converted into a Las Vegas(i.e., approximation of π)

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 105: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Randomized Algorithms

Any Las Vegas algorithm can be converted into a Monte Carloalgorithm by outputting an arbitrary, possibly incorrect answer if itfails to complete within a specified time.

Monte Carlo algorithm cannot be converted into a Las Vegas(i.e., approximation of π)

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 106: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Monte Carlo vs Las Vegas

π 4n cycle

4

nsquare

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 107: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Next

¢ Computational Complexity¢ Complexity Classes (i.e., P, NP)¢ Some nice computational problems ,¢ Some reductions

YY/

YY/ Y

Y/

YY/ Y

Y/ Y

Y/

YY/ Y

Y/ Y

Y/ Y

Y/

YY/ Y

Y/ Y

Y/ Y

Y/ Y

Y/

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 108: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

References

J.Kleinberg, E.Tardos. Algorithm Design. Boston, Mass.:Pearson/Addison-Wesley, cop. 2006

I.Manwlìpouloc, A.Papadìpouloc, K.TsÐqlac. JewrÐakai Algìrijmoi Grfwn, Aj na: Ekd. Nèwn Teqnologi¸n,2014.

TsÐqlac, K., GoÔnarhc, A., Manwlìpouloc, I., 2015.SqedÐash kai anlush algorÐjmwn. [hlektr. bibl.]Aj na:SÔndesmoc Ellhnik¸n Akadhmaðk¸n Bibliojhk¸n.Diajèsimo sto: http:hdl.handle.net114194005

Domèc dedomènwn, Mpoznhc Panagi¸thc D, EKDOSEISA. TZIOLA & UIOI A.E., 2006

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms

Page 109: Computational Complexity II: Asymptotic Notation and ...users.auth.gr/grahonis/Computational Complexity II.pdf · ¦ n C 1, qn B qn2 and r B rn2 T(n) = pn 2 + qn + r B pn 2 + qn 2

Section 1: Computational ComplexitySection 2: Asymptotic Notation

Section 3: Algorithms

Thank you!!!

Maria-Eirini Pegia Computational Complexity II: Asymptotic Notation and Classification Algorithms