# DAA Introduction ### Design and Analysis of Algorithms (DAA)

3621511 (6 cp) Pasi Fränti 16.9.2013

DAA course at Autumn 2013

• • • • • Web: http://cs.uef.fi/pages/franti/asa/ ETCS 6 (=richer content) Lectures (34h): - Mon 14-16, 16-18 - Tue 14-16 Exercises (16h): - Fri 10-12 Exam dates: 1.11. 18.12. x.5.

2

Motivation

• Design - 90% cases simple algorithms found from Bachelor level courses - Focus on the 10% tough ones • Analysis – – – Why not just measure processing time?

Time vs. space complexity analyses Upper and lower limits 3

Key concepts

• Problem - Can the problem be solved? - How difficult is the problem?

- Real-life problems to algorithmic problems • Algorithm – – How to find suitable algorithm?

How to make it efficient?

• Instance – Upper and lower limits 4

199 117 110 216 246 182 121 315 170 231 79 142 191 242 148 136 78 191 178 149 126 116 89 51 112 90 163 59 143 116 79 170 58 73 72 63 105 135 131 109 53 86 27 120 234 Graph problems

• Coloring problem • Shortest path • Traveling salesman

Clustering problem

Input Output 6

What is algorithm?

• We need a well-specified problem that tells what needs to be achieved • Algorithm solves the problem • It consists of a sequence of commands that takes an input and gives output Input Algorithm Output 7

Non-solvable problems

• Give list of all rational numbers in [0..1] • Longest sequence of  without the 0 digit • Stopping problem

Does algorithm A stop always?

Any algorithm

A

Solve Stopping

B 8

Non-solvable problems

• Give list of all rational numbers in [0..1] • Longest sequence of  without the 0 digit • Stopping problem

Algorithm C NOT stop always!

Any algorithm

A

Solve Stopping

B

Algorithm “Vice Versa”

Eternal loop C Stop 9

Algorithm principles

• Sequence - One command at a time - Parallel and distributed computing • Condition - IF - CASE • Loops - FOR - WHILE - REPEAT

Complexity

Time complexity: – – How much time it takes to compute Measured by a function T ( N ) Space complexity: – – How much memory it takes to compute Measured by a function S ( N ) 11

Time complexity

• • N = Size of the input T ( N ) = Time complexity function • Order of magnitude: – – How rapidly T ( N ) grows when N grows For example: O( N ) O(log N ) O( N ²) O(2 N ) 12

Asymptotic analysis

Examples: Bubble sort ( N ²), Quicksort ( N∙ log N ) 13

Problem size vs. processing time f(N)

100

N

5

N

² ½

N

³ 2

N

log

N

Processing power increases →

T(N) = 1,000

N

= 10

T(N)=10,000

N

=100

Growth rate

10 x 14 12 9 2 1,000 44 27 13 2 10,000 3.1 x 2.3 x 1.4 x Very high!!

14

Exponential time complexity 1 2 4 256 512 1k 8 2k 16 … 1M 32 64 128 1G Halfway…?

1T 1P 1E Large than Everest 2 64 = 18.4 ∙ 10 18

15

Graph algorithms

Graph algorithms