Presentation is loading. Please wait.

Presentation is loading. Please wait.

TTIT33 Algorithms and Optimization – Lecture 1 Jan Maluszynski - HT 20061.1 Analysis of Algorithms Introductory Example Principles of Analysis Big-Oh notation.

Similar presentations


Presentation on theme: "TTIT33 Algorithms and Optimization – Lecture 1 Jan Maluszynski - HT 20061.1 Analysis of Algorithms Introductory Example Principles of Analysis Big-Oh notation."— Presentation transcript:

1 TTIT33 Algorithms and Optimization – Lecture 1 Jan Maluszynski - HT 20061.1 Analysis of Algorithms Introductory Example Principles of Analysis Big-Oh notation Time complexity of iterative algorithms Time complexity of recursive algorithms References: [G&T] 4.2, or [L&D] Chapter 1, 2.1-2.2, or [CL] Chapter 1-3, or …

2 TTIT33 Algorithms and Optimization – Lecture 1 Jan Maluszynski - HT 20061.2 Example problem: Checking results of an exam: Input: –A set of students (name, personal no) who passed the exam –Name of a student Output: ”yes” or ”no” To implement this on a computer we: Characterize the data and the needed operations on data  ADT (e.g ADT Set) Choose a representation of the data in the computer?  datastructure (e.g. table/array) Implement the needed operations: algorithm (e.g. Table search) Analyse the efficiency of the implementation

3 TTIT33 Algorithms and Optimization – Lecture 1 Jan Maluszynski - HT 20061.3 How to measure time/space Describe algorithms in pseudocode (or in a high-level programming language) Analyse number of basic operations as function of the size of input data Use simple data memory model Analyse number of needed memory cells

4 TTIT33 Algorithms and Optimization – Lecture 1 Jan Maluszynski - HT 20061.4 Example of pseudocode: function TableSearch ( table T[1..n], key k ):boolean for i from 1 to n do if T [i] = k then return true if T [i] > k then return false return false...”scope” defined by indentation!

5 TTIT33 Algorithms and Optimization – Lecture 1 Jan Maluszynski - HT 20061.5 Principles of Algorithm Analysis An algorithm should work for (input) data of any size. (Example TableSearch: input size is the size of the table.) Show the resource (time/memory) used as an increasing function of input size. Focus on the worst case performance. Ignore constant factors analysis should be machine-independent; more powerful computers introduce speed-up by constant factors. Study scalability / asymptotic behaviour for large problem sizes: ignore lower-order terms, focus on dominating terms.

6 TTIT33 Algorithms and Optimization – Lecture 1 Jan Maluszynski - HT 20061.6 ”Order” notation Compares growth rate of functions f  O( g ) ” f grows at most as fast as g” apart of constant factors Refer to simple well known functions f(n) grows aproximately as n 2

7 TTIT33 Algorithms and Optimization – Lecture 1 Jan Maluszynski - HT 20061.7 Types of growth comparison: f, g growing functions from natural numbers to positive real numbers f is (in) O ( g) iff there exist c > 0, n 0  1 such that f(n )  c g(n) for all n  n 0 Intuition: Apart from constant factors, f grows at most as quickly as g f is (in)  ( g ) iff there exist c > 0, n 0  1 such that f ( n)  c g(n) for all n  n 0 Intuition: Apart from constant factors, f grows at least as quickly as g  is the converse of O, i.e. f is in  (g) iff g is in O(f)  f is (in)  (g) iff f(n)  O(g(n)) and g(n)  O(f(n)) Intuition: Apart from constant factors, f grows exactly as quickly as g

8 TTIT33 Algorithms and Optimization – Lecture 1 Jan Maluszynski - HT 20061.8 Types of growth comparison:  (g),  (g), O ( g)..??

9 TTIT33 Algorithms and Optimization – Lecture 1 Jan Maluszynski - HT 20061.9 …comparison with simple math function: 1.84* 10 19 µ sec = 2.14 * 10 8 days = 5845 centuries nlog 2 nnn log 2 nn2n2 2n2n 212244 164 64256 6.5 * 10 4 646 3844096 1.84 * 10 19

10 TTIT33 Algorithms and Optimization – Lecture 1 Jan Maluszynski - HT 20061.10 To check growth rate?

11 TTIT33 Algorithms and Optimization – Lecture 1 Jan Maluszynski - HT 20061.11 Estimating execution time for iterative programs

12 TTIT33 Algorithms and Optimization – Lecture 1 Jan Maluszynski - HT 20061.12 Example of ”algebraic” analysis

13 TTIT33 Algorithms and Optimization – Lecture 1 Jan Maluszynski - HT 20061.13 Example: Dependent Nested Loops

14 TTIT33 Algorithms and Optimization – Lecture 1 Jan Maluszynski - HT 20061.14 Analysis of Recursive Program (1)

15 TTIT33 Algorithms and Optimization – Lecture 1 Jan Maluszynski - HT 20061.15 Analysis of Recursive Programs...

16 TTIT33 Algorithms and Optimization – Lecture 1 Jan Maluszynski - HT 20061.16 Towers of Hanoi.... As stated earlier: Formulate an equation T(1)=... T(2)=... Unroll a few times, get hypothesis for T(n)=... Prove the hypothesis!

17 TTIT33 Algorithms and Optimization – Lecture 1 Jan Maluszynski - HT 20061.17 Average case analysis Reconsider TableSearch(): sequential search through a table Input argument: one of the table elements, assume it is chosen with equal probability for all elements. Expected search time: Time to find the element when it was in the n:th place


Download ppt "TTIT33 Algorithms and Optimization – Lecture 1 Jan Maluszynski - HT 20061.1 Analysis of Algorithms Introductory Example Principles of Analysis Big-Oh notation."

Similar presentations


Ads by Google