Measure Algorithms Efficiency - UdL...

29
Measure Algorithms Efficiency Jordi Planes & Aitor Corchero Universitat de Lleida 15-02-2016 Jordi Planes & Aitor Corchero (Universitat de Lleida) Cost 15-02-2016 1 / 29

Transcript of Measure Algorithms Efficiency - UdL...

Page 1: Measure Algorithms Efficiency - UdL OpenCourseWareocw.udl.cat/enginyeria-i-arquitectura/algoritmica-i-complexitat/... · Measure Algorithms E ciency Jordi Planes & Aitor Corchero

Measure Algorithms Efficiency

Jordi Planes & Aitor Corchero

Universitat de Lleida

15-02-2016

Jordi Planes & Aitor Corchero (Universitat de Lleida) Cost 15-02-2016 1 / 29

Page 2: Measure Algorithms Efficiency - UdL OpenCourseWareocw.udl.cat/enginyeria-i-arquitectura/algoritmica-i-complexitat/... · Measure Algorithms E ciency Jordi Planes & Aitor Corchero

Index

Algorithms

Algorithms Performance (Time vs Space)

Measuring Cost

Growth Rates

Big O

What to measure in an algorithm?

Exercises

References

Jordi Planes & Aitor Corchero (Universitat de Lleida) Cost 15-02-2016 2 / 29

Page 3: Measure Algorithms Efficiency - UdL OpenCourseWareocw.udl.cat/enginyeria-i-arquitectura/algoritmica-i-complexitat/... · Measure Algorithms E ciency Jordi Planes & Aitor Corchero

Algorithms

Algorithms Definition

An algorithm is a procedure that takes a value or set of values as inputand produces a value or a set of values as an output.An algorithm is a set of instructions that solves certain problem.

Input Values (P) Algorithm (f) Output Values (Q)

Jordi Planes & Aitor Corchero (Universitat de Lleida) Cost 15-02-2016 3 / 29

Page 4: Measure Algorithms Efficiency - UdL OpenCourseWareocw.udl.cat/enginyeria-i-arquitectura/algoritmica-i-complexitat/... · Measure Algorithms E ciency Jordi Planes & Aitor Corchero

Algorithms

Is sufficient the algorithm correctness?? NO

Jordi Planes & Aitor Corchero (Universitat de Lleida) Cost 15-02-2016 4 / 29

Page 5: Measure Algorithms Efficiency - UdL OpenCourseWareocw.udl.cat/enginyeria-i-arquitectura/algoritmica-i-complexitat/... · Measure Algorithms E ciency Jordi Planes & Aitor Corchero

Algorithms

Is sufficient the algorithm correctness?? NO

The Algorithms has to respond on time (Time metrics)

The algorithms has to use lesser resources as possible (Space metrics)

Jordi Planes & Aitor Corchero (Universitat de Lleida) Cost 15-02-2016 5 / 29

Page 6: Measure Algorithms Efficiency - UdL OpenCourseWareocw.udl.cat/enginyeria-i-arquitectura/algoritmica-i-complexitat/... · Measure Algorithms E ciency Jordi Planes & Aitor Corchero

Algorithms Performance (Time vs Space)

TIME SPACEInstructions take time Data structures take spaceAlgorithm perform speed? Data structures to be used?What affects its runtime? How data structure affect the runtime?

Jordi Planes & Aitor Corchero (Universitat de Lleida) Cost 15-02-2016 6 / 29

Page 7: Measure Algorithms Efficiency - UdL OpenCourseWareocw.udl.cat/enginyeria-i-arquitectura/algoritmica-i-complexitat/... · Measure Algorithms E ciency Jordi Planes & Aitor Corchero

Algorithms Performance (Time vs Space)

TIME SPACEInstructions take time Data structures take spaceAlgorithm perform speed? Data structures to be used?What affects its runtime? How data structure affect the runtime?

Time vs Space

The best solution is:

Select efficient data structures

Use efficient methods over the selected data structures.

Jordi Planes & Aitor Corchero (Universitat de Lleida) Cost 15-02-2016 7 / 29

Page 8: Measure Algorithms Efficiency - UdL OpenCourseWareocw.udl.cat/enginyeria-i-arquitectura/algoritmica-i-complexitat/... · Measure Algorithms E ciency Jordi Planes & Aitor Corchero

Algorithms Performance (Time vs Space)

How we can measure theTime/Space efficiency?

Jordi Planes & Aitor Corchero (Universitat de Lleida) Cost 15-02-2016 8 / 29

Page 9: Measure Algorithms Efficiency - UdL OpenCourseWareocw.udl.cat/enginyeria-i-arquitectura/algoritmica-i-complexitat/... · Measure Algorithms E ciency Jordi Planes & Aitor Corchero

Measuring Cost

Cost Definition

The Cost (C) permit to benchmark different algorithms by considering aspecific metric.

metric = Time

How to measure algorithm time??

Jordi Planes & Aitor Corchero (Universitat de Lleida) Cost 15-02-2016 9 / 29

Page 10: Measure Algorithms Efficiency - UdL OpenCourseWareocw.udl.cat/enginyeria-i-arquitectura/algoritmica-i-complexitat/... · Measure Algorithms E ciency Jordi Planes & Aitor Corchero

Measuring Cost

Example 1: If structure

Calculate the cost in an if structure

Jordi Planes & Aitor Corchero (Universitat de Lleida) Cost 15-02-2016 10 / 29

Page 11: Measure Algorithms Efficiency - UdL OpenCourseWareocw.udl.cat/enginyeria-i-arquitectura/algoritmica-i-complexitat/... · Measure Algorithms E ciency Jordi Planes & Aitor Corchero

Measuring Cost

i f n%2==0:p r i n t ”Odd ! ! ”

e l s e :p r i n t ” Even ”

Cost (Ci) Time (Ti)C1 1C2 1C3 1

Cost = C1 + max(C2,C3) = 2

Jordi Planes & Aitor Corchero (Universitat de Lleida) Cost 15-02-2016 11 / 29

Page 12: Measure Algorithms Efficiency - UdL OpenCourseWareocw.udl.cat/enginyeria-i-arquitectura/algoritmica-i-complexitat/... · Measure Algorithms E ciency Jordi Planes & Aitor Corchero

Measuring Cost

Example 2: Simple Loop

Calculate the cost of a while.

Jordi Planes & Aitor Corchero (Universitat de Lleida) Cost 15-02-2016 12 / 29

Page 13: Measure Algorithms Efficiency - UdL OpenCourseWareocw.udl.cat/enginyeria-i-arquitectura/algoritmica-i-complexitat/... · Measure Algorithms E ciency Jordi Planes & Aitor Corchero

Measuring Cost

cont=0sum =0w h i l e ( cont<n ) :

sum+= contcont+=1

p r i n t ”The sum i s : ”+ sum

Cost (Ci) Time (Ti)C1 1C2 1C3 n+1C4 nC5 nC6 1

Cost = C1+C2+(n+1)∗C3+n∗C4+C5+C6 = 1+1+n+1+n+n+1 = 3n+4

Jordi Planes & Aitor Corchero (Universitat de Lleida) Cost 15-02-2016 13 / 29

Page 14: Measure Algorithms Efficiency - UdL OpenCourseWareocw.udl.cat/enginyeria-i-arquitectura/algoritmica-i-complexitat/... · Measure Algorithms E ciency Jordi Planes & Aitor Corchero

Measuring Cost

Example 3: Double Loop

Calculate the cost of a double while.

Jordi Planes & Aitor Corchero (Universitat de Lleida) Cost 15-02-2016 14 / 29

Page 15: Measure Algorithms Efficiency - UdL OpenCourseWareocw.udl.cat/enginyeria-i-arquitectura/algoritmica-i-complexitat/... · Measure Algorithms E ciency Jordi Planes & Aitor Corchero

Measuring Cost

c o n t r o w s=0sum =0w h i l e ( cont rows<n ) :

c o n t c o l=c o n t r o w sw h i l e ( c o n t c o l <n ) :

sum+= c o n t r o w s+c o n t c o l sc o n t c o l s+=1

c o n t r o w s+=1p r i n t ”The sum i s : ”+ sum

Cost (Ci) Time (Ti)C1 1C2 1C3 n+1C4 nC5 n*(n+1)C6 n*nC7 n*nC8 nC9 1

Cost =∑9

i=1 Ci = 3 + (n + 1) + 2n + n ∗ (n + 1) + 2n2 = 4 + 4n + 3n2

Jordi Planes & Aitor Corchero (Universitat de Lleida) Cost 15-02-2016 15 / 29

Page 16: Measure Algorithms Efficiency - UdL OpenCourseWareocw.udl.cat/enginyeria-i-arquitectura/algoritmica-i-complexitat/... · Measure Algorithms E ciency Jordi Planes & Aitor Corchero

Measuring Cost

General rules1 Loops: The running time of a loop is at most the running time of the

statements inside of that loop times the number of iterations.

2 Nested Loops: Running time of a nested loop containing astatement in the inner most loop is the running time of statementmultiplied by the product of the sized of all loops.

3 Consecutive Statements: Just add the running times of thoseconsecutive statements.

4 If/Else: Never more than the running time of the test plus the largerof running times of S1 and S2.

Jordi Planes & Aitor Corchero (Universitat de Lleida) Cost 15-02-2016 16 / 29

Page 17: Measure Algorithms Efficiency - UdL OpenCourseWareocw.udl.cat/enginyeria-i-arquitectura/algoritmica-i-complexitat/... · Measure Algorithms E ciency Jordi Planes & Aitor Corchero

Growth Rates

Growth Rate Definition

As seen, the cost is a mathematical function that represent the timegrowth of the algorithm execution. This function is called growth rate.

Function Descriptionc Constant

logn Logarithmiclog2n Log-Squaredn Linear

n ∗ logn Log-linearn2 Squaren3 Cubicnm Exponential

Jordi Planes & Aitor Corchero (Universitat de Lleida) Cost 15-02-2016 17 / 29

Page 18: Measure Algorithms Efficiency - UdL OpenCourseWareocw.udl.cat/enginyeria-i-arquitectura/algoritmica-i-complexitat/... · Measure Algorithms E ciency Jordi Planes & Aitor Corchero

Growth Rates

Figure 1: Algorithms growth ratesJordi Planes & Aitor Corchero (Universitat de Lleida) Cost 15-02-2016 18 / 29

Page 19: Measure Algorithms Efficiency - UdL OpenCourseWareocw.udl.cat/enginyeria-i-arquitectura/algoritmica-i-complexitat/... · Measure Algorithms E ciency Jordi Planes & Aitor Corchero

Big O

Definition Big O

For a given function g(n), we denote by O(g(n)) or Θ(g(n)) the set offunctions:Θ(g(n)) = O(n) ={f (n) : there exist a positive constant c and n0 suchthat 0 ≤ f (n) ≤ c ∗ g(n) ∀n ≥ n0}

Jordi Planes & Aitor Corchero (Universitat de Lleida) Cost 15-02-2016 19 / 29

Page 20: Measure Algorithms Efficiency - UdL OpenCourseWareocw.udl.cat/enginyeria-i-arquitectura/algoritmica-i-complexitat/... · Measure Algorithms E ciency Jordi Planes & Aitor Corchero

Big O

Example 1: If-structure -based on the example mentioned above-

Calculate Θ(g(n)) of an if-structure:

f (n) = C1 + max(C2,C3) = 2

Jordi Planes & Aitor Corchero (Universitat de Lleida) Cost 15-02-2016 20 / 29

Page 21: Measure Algorithms Efficiency - UdL OpenCourseWareocw.udl.cat/enginyeria-i-arquitectura/algoritmica-i-complexitat/... · Measure Algorithms E ciency Jordi Planes & Aitor Corchero

Big O

Example 1: If-structure -based on the example mentioned above-

Calculate Θ(g(n)) of an if-structure:

f (n) = C1 + max(C2,C3) = 2

Solution:

0 ≤ 2 ≤ c ∗ g(n) ∀n ≥ n0 ⇒ c = 2; g(n) = 1⇒ Θ(1)

Jordi Planes & Aitor Corchero (Universitat de Lleida) Cost 15-02-2016 21 / 29

Page 22: Measure Algorithms Efficiency - UdL OpenCourseWareocw.udl.cat/enginyeria-i-arquitectura/algoritmica-i-complexitat/... · Measure Algorithms E ciency Jordi Planes & Aitor Corchero

Big O

Example 2: Simple While -based on the example mentioned above-

Calculate Θ(g(n)) of an if-structure:

f (n) = C1 + C2 + (n + 1) ∗ C3 + n ∗ C4 + C5 + C6 = 3n + 4

Jordi Planes & Aitor Corchero (Universitat de Lleida) Cost 15-02-2016 22 / 29

Page 23: Measure Algorithms Efficiency - UdL OpenCourseWareocw.udl.cat/enginyeria-i-arquitectura/algoritmica-i-complexitat/... · Measure Algorithms E ciency Jordi Planes & Aitor Corchero

Big O

Example 2: Simple While -based on the example mentioned above-

Calculate Θ(g(n)) of an if-structure:

f (n) = C1 + C2 + (n + 1) ∗ C3 + n ∗ C4 + C5 + C6 = 3n + 4

Solution:

0 ≤ 3n + 4 ≤ c ∗ g(n) ∀n ≥ n0 ⇒ 0 ≤ 3n + 4 ≤ 4n⇒ Θ(n)

Jordi Planes & Aitor Corchero (Universitat de Lleida) Cost 15-02-2016 23 / 29

Page 24: Measure Algorithms Efficiency - UdL OpenCourseWareocw.udl.cat/enginyeria-i-arquitectura/algoritmica-i-complexitat/... · Measure Algorithms E ciency Jordi Planes & Aitor Corchero

Big O

Example 3: Nested While -based on the example mentioned above-

Calculate Θ(g(n)) of an if-structure:

f (n) =∑9

i=1 Ci = 4 + 4n + 3n2

Jordi Planes & Aitor Corchero (Universitat de Lleida) Cost 15-02-2016 24 / 29

Page 25: Measure Algorithms Efficiency - UdL OpenCourseWareocw.udl.cat/enginyeria-i-arquitectura/algoritmica-i-complexitat/... · Measure Algorithms E ciency Jordi Planes & Aitor Corchero

Big O

Example 3: Nested While -based on the example mentioned above-

Calculate Θ(g(n)) of an if-structure:

f (n) =∑9

i=1 Ci = 4 + 4n + 3n2

Solution:

0 ≤ 4 + 4n + 3n2 ≤ c ∗ g(n) ∀n ≥ n0 ⇒ 0 ≤ 4 + 4n + 3n2 ≤ 4n2 ⇒ Θ(n2)

Jordi Planes & Aitor Corchero (Universitat de Lleida) Cost 15-02-2016 25 / 29

Page 26: Measure Algorithms Efficiency - UdL OpenCourseWareocw.udl.cat/enginyeria-i-arquitectura/algoritmica-i-complexitat/... · Measure Algorithms E ciency Jordi Planes & Aitor Corchero

Big O

Strategy to calculate the Θ(g(x))

1 Calculate the cost function (Growth Rate) → f(x)

2 Obtain the max exponential of the equation

3 Remove constants → Θ(g(x))

Jordi Planes & Aitor Corchero (Universitat de Lleida) Cost 15-02-2016 26 / 29

Page 27: Measure Algorithms Efficiency - UdL OpenCourseWareocw.udl.cat/enginyeria-i-arquitectura/algoritmica-i-complexitat/... · Measure Algorithms E ciency Jordi Planes & Aitor Corchero

What to measure in an algorithm?

Types of Analysis

1 Worst-Case Analysis: The maximum amount of time that analgorithm require to solve a problem of size n.

2 Best-Case Analysis: The minimum amount of time that analgorithm require to solve a problem of size n.

3 Average-Case Analysis: The average amount of time that analgorithm require to solve a problem of size n.

Jordi Planes & Aitor Corchero (Universitat de Lleida) Cost 15-02-2016 27 / 29

Page 28: Measure Algorithms Efficiency - UdL OpenCourseWareocw.udl.cat/enginyeria-i-arquitectura/algoritmica-i-complexitat/... · Measure Algorithms E ciency Jordi Planes & Aitor Corchero

Exercises

1 Calculate the power between two values without using the”power function” of Python.

2 Calculate Fibonacci series given a length.

3 Calculate the quotient and the reminder from the divisionbetween two integers. Do not use the specific Pythonoperations.

4 Calculate the maximum value of an array.

Jordi Planes & Aitor Corchero (Universitat de Lleida) Cost 15-02-2016 28 / 29

Page 29: Measure Algorithms Efficiency - UdL OpenCourseWareocw.udl.cat/enginyeria-i-arquitectura/algoritmica-i-complexitat/... · Measure Algorithms E ciency Jordi Planes & Aitor Corchero

References

1 Big O cheatsheet: http://bigocheatsheet.com

2 Algorithm Analysis - METU OCW:ocw.metu.edu.tr/pluginfile.php/2548/mod.../0/algorithmAnalysis.ppt

3 Algorithms Analysis- CENG:www.cc.gatech.edu/ bleahy/cs1311/cs1311lecture23wdl.ppt

4 Codeacademy Big-O curse:https://www.codecademy.com/courses/big-o

Jordi Planes & Aitor Corchero (Universitat de Lleida) Cost 15-02-2016 29 / 29