Docstoc

Lecture 3

Document Sample
Lecture 3 Powered By Docstoc
					Algorithms and Complexity Theory

UKZN - Computer Science - 2009

ALGORITHMS and COMPLEXITY THEORY

Lecture 3
Algorithms Analysis

Lecture 3: Algorithms Analysis

1

Algorithms and Complexity Theory

UKZN - Computer Science - 2009

Running time and elementary operation
• The running time of an algorithm is affected by many factors: input data, compiler, programming language, etc. • Exact time calculation : difficult! • it is often preferable to count elementary operations. • The growth rate of the time or space required is generally used to classify algorithms provided that the size of input data is large.

Lecture 3: Algorithms Analysis

2

Algorithms and Complexity Theory

UKZN - Computer Science - 2009

Types of Analysis
Let T (n) be the running time of an algorithm. 1. Worst case: It is the upper bound of its running time for any input. T (n) is the maximum time taken over all inputs of size n. 2. Average case: It is the expected running time, given some probability distribution on the input. T (n) is the average time taken over all inputs of size n. 3. Amortized: It is the running time for a series of executions, divided by the number of executions.

Lecture 3: Algorithms Analysis

3

Algorithms and Complexity Theory

UKZN - Computer Science - 2009

Detailed model of computing
In the process evaluation the running time of an algorithm we will assume the following:
• fetching time ( τf etch ) and storing time (τstore ) are constant. e.g: y = x has running time τf etch + τstore • elementary arithmetic operations time and comparison time are all constant. These times are denoted by τ+ , τ− , τx , τ÷ , and τ< . e.g: y = x + 2 has running time 2τf etch + τ+ + τstore • The time required to call a function is constant, τcall , and the time required to return from a method is a constant , τreturn . • The time required to pass an argument is same as storing time. e.g: y = f (x) has running time τf etch + 2τstore + τcall + Tf (x) where Tf (x) is the running time of f for the entry x. • The time required for the address calculation implied by an array subscribing operation, for example, a[i], is constant, τ[.] . This time does not include the time to compute the subscript expression, nor does it include the time to access (i.e., fetch or store) the array element. e.g: y = a[i] has running time 3τf etch + τstore + τ[.]

Lecture 3: Algorithms Analysis

4

Algorithms and Complexity Theory

UKZN - Computer Science - 2009

Example
Compute the running time of the following algorithm and give its growth rate.
1. public class Example 2. { 3. public static int sum(int n) 4. { 5. int result = 0; 6. for(int i = 1 ; i <= n;++i) 7. result += i; 8. return result 9. } 10. } Statement 5 6a 6b 6c 7 8 TOTAL Time τf etch + τstore τf etch + τstore (2τf etch + τ< ) × (n + 1) (2τf etch + τ+ + τstore ) × n (2τf etch + τ+ + τstore ) × n τf etch + τreturn (6τf etch + 2τstore + τ< + 2τ+ ) × n +(5τf etch + 2τstore + τ< + τreturn ) Code result = 0 i=1 i <= n ++i result +=i return result

Lecture 3: Algorithms Analysis

5

Algorithms and Complexity Theory

UKZN - Computer Science - 2009

Example (cont’d)
• The running time is then T (n) = t1 + t2 n where t1 = 6τf etch + 2τstore + τ< + 2τ+ and t2 = 5τf etch + 2τstore + τ< + τreturn • T (n) = O(n)

Lecture 3: Algorithms Analysis

6

Algorithms and Complexity Theory

UKZN - Computer Science - 2009

Simplified model of computing
• In the detailed model of computing we have a certain number of parameters. • In real machine each of these parameters is a multiple of the basic clock period of the machine. • If T is the clock period , for example τstore = kstore T where kstore ∈ Z, kstore > 0. • The simplified model consider that all parameters are expressed in units of clock cycles means T=1 and the proportionality constant ,k ( kstore for store) is assume to be the same for all timing parameters.

Lecture 3: Algorithms Analysis

7

Algorithms and Complexity Theory

UKZN - Computer Science - 2009

Example
Compute the running time of the following algorithm and give its growth rate using a simplified model of computing.
1. public class Example 2. { 3. public static int sum(int n) 4. { 5. int result = 0; 6. for(int i = 1; i <= n;++i) 7. result += i; 8. return result 9. } 10. } Statement 5 6a 6b 6c 7 8 TOTAL Time 2 2 3 × (n + 1) 4×n 4×n 2 11 × n + 9 Code result = 0 i=1 i <= n ++i result +=i return result

T (n) = 11n + 9 = O(n)
Lecture 3: Algorithms Analysis 8

Algorithms and Complexity Theory

UKZN - Computer Science - 2009

General rules of evaluation
1. For Loop The running time of a for loop is at most the running time of the statements inside the for loop ( including tests ) times the number of iteration. for(i =1;i<=n;i++) Instr; if the Instr runs in constant time, then the running time of the loop T (n) = O(n) 2. Nested For loops Total running time of a statement inside a group of nested for loops is the running time of the statement multiply by the product of sizes of all loops. 3. Consecutive statements For the consecutive statements add the running times of the statements 4. IF/THEN fragment IF cond THEN S1 ELSE S2 Running time of an IF/THEN statement is never more than the running time of the test plus the larger running time of S1 and S2.

Lecture 3: Algorithms Analysis

9

Algorithms and Complexity Theory

UKZN - Computer Science - 2009

Comparing Algorithms
comparison of two algorithms which compute ex
public class example { public static float expo1(float x,int n) { float S =1; for(int i=1; i<=n;i++) { float p = 1; for(int j=1; j<=i;j++) p = p*(x/j); S = S+p; } return(S); } } The running time is then of expo1 is T1 (n) = 9 + 49 n + 13 n2 2 2 hence T1 (n) is θ(n2 ) expo2 has a running time T2 (n) = 11 + 17n then T2 (n) is θ(n), which shows an improvement of expo1 by expo2 .

1+

x 1!

+

x2 2!

+ ... x n!

n

public class example { public static float expo2(float x,int n) { float S =1; float p =1; for(int i=1; i<=n;i++) { p = p*(x/i); S = S+p; } return(S); } }

Lecture 3: Algorithms Analysis

10

Algorithms and Complexity Theory

UKZN - Computer Science - 2009

Your To do List
• Read your notes Chapter 1: Introduction - sections: 4. Running Time Calculations. 5. Spatial complexity.

Lecture 3: Algorithms Analysis

11


				
DOCUMENT INFO
Shared By:
Tags: Lecture
Stats:
views:96
posted:12/19/2009
language:English
pages:6
Description: Lecture 3