design and analysis of algorithms (daa) 3621511 (6 cp) pasi fränti 7.9.2015

Post on 04-Jan-2016

218 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Design and Analysis of Algorithms (DAA)

3621511 (6 cp)

Pasi Fränti7.9.2015

2

DAA course at Autumn 2015

• Web: http://cs.uef.fi/pages/franti/asa/

• ETCS 6 (=richer content)• Lectures (34h):

- Mon 14-17- Tue 14-16

• Exercises (16h):- Fri 10-12

• Exam dates: 6.11. 27.11.

3

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

4

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

136

170315

148 78

231

234

12089

131109

116

86

246

182

216110

117

199

121

142242

79

191178

191

126149

17051 112

90163

59

14373

63 5327

135

10558

116

72

79

Graph problems• Coloring problem• Shortest path• Traveling

salesman

6

Clustering problem

Input Output

7

• 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

What is algorithm?

AlgorithmInput Output

8

Non-solvable problems

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

A B

Anyalgorithm

SolveStopping

TRUE

FALSE

Does algorithm A stop always?

9

Non-solvable problems

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

A B

Anyalgorithm

SolveStopping

TRUE

FALSECEternal loop

Algorithm“Vice

Versa”

Stop

Algorithm C NOT stop always!

Algorithm principles

• Sequence- One command at a time- Parallel and distributed computing

• Condition- IF- CASE

• Loops- FOR- WHILE- REPEAT

11

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)

Complexity

12

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(logN) O(N²) O(2N)

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

Asymptotic analysis

log N --- sub-linear

2N -

-- e

xponenti

al

---

quad

raticN ---

linear

N3

---

cubic

N lo

gN

14

Processing power increases →

f(N) T(N) = 1,000 T(N)=10,000 Growth rate

100N N = 10 N=100 10 x

5N² 14 44 3.1 x

½N³ 12 27 2.3 x

2N 9 13 1.4 x

logN 21,000 210,000 Very high!!

Problem size vs. processing time

15

Exponential time complexity

1 2 4 8 16 32 64 128

512256 1k 2k

264 = 18.4 ∙ 1018

1M

1G

1T

1P

1E

Halfway…?

Large than Everest

Graph algorithms

Graph algorithms

top related