a basic study on the algorithm analysis chapter 2. getting started 한양대학교 정보보호 및...

26
A Basic Study on the Algorithm Analysis Chapter 2. Getting Started 한한한한한 한한한한 한 한한한한 한한한 2008. 1. 2 한한한 한한한한한 : 한한한 한한한 1

Upload: marilyn-lindsey

Post on 15-Jan-2016

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: A Basic Study on the Algorithm Analysis Chapter 2. Getting Started 한양대학교 정보보호 및 알고리즘 연구실 2008. 1. 2 이재준 담당교수님 : 박희진 교수님

A Basic Study on the Algorithm Analysis

Chapter 2. Getting Started

한양대학교 정보보호 및 알고리즘 연구실

2008. 1. 2이재준

담당교수님 : 박희진 교수님

1

Page 2: A Basic Study on the Algorithm Analysis Chapter 2. Getting Started 한양대학교 정보보호 및 알고리즘 연구실 2008. 1. 2 이재준 담당교수님 : 박희진 교수님

Contents of Table

1. Algorithmic Paradigms2. Analysis Of Computer Algorithms3. Analyzing Insertion Sort algorithm4. Analyzing Merge Sort algorithm5. Comparing Insertion Sort and Merge

Sort6. Next Step for Algorithm Analysis7. References8. Question & Answer

2

Page 3: A Basic Study on the Algorithm Analysis Chapter 2. Getting Started 한양대학교 정보보호 및 알고리즘 연구실 2008. 1. 2 이재준 담당교수님 : 박희진 교수님

1. Algorithmic Paradigms• Design and analysis of computer algorithms.

Critical thinking and problem-solvingCritical thinking and problem-solving

1) Greedy.2) Divide and conquer.3) Dynamic programming.4) Network flow.5) Randomized algorithms.6) Intractability.7) Copying with intractability.

3

Page 4: A Basic Study on the Algorithm Analysis Chapter 2. Getting Started 한양대학교 정보보호 및 알고리즘 연구실 2008. 1. 2 이재준 담당교수님 : 박희진 교수님

1. Algorithmic Paradigms In Chapter 2

Chapter Contents

Chapter 3 - Theta[θ]-notation - formally interpret equation containing Theta[θ]-notation

Chapter 4 - How to solve Recurrence Relation - Master theorem

Chapter 5 Probabilistic analysis for Randomized algorithms

4

Page 5: A Basic Study on the Algorithm Analysis Chapter 2. Getting Started 한양대학교 정보보호 및 알고리즘 연구실 2008. 1. 2 이재준 담당교수님 : 박희진 교수님

2. Analysis of computer algorithms• Loop Invariant - Definition Statements that remains true each time when the program

enters, and executes, and exits the loop.

- Understanding Loop invariants help us analyze programs, check for errors, derive

programs from specifications.

• Asymptotic Complexity - Big Oh[O], Omega[Ω], Theta[θ]

5

Page 6: A Basic Study on the Algorithm Analysis Chapter 2. Getting Started 한양대학교 정보보호 및 알고리즘 연구실 2008. 1. 2 이재준 담당교수님 : 박희진 교수님

2. Analysis of computer algorithms • Use a Loop invariant to prove

Correctness

- Initialization : It is true prior to the first iteration of the loop.

- Maintenance : If it is true before an iteration of the loop, it remains true before the next iteration.

- Termination : When the loop terminates, the invariant gives us a useful property that helps show that the algorithm is correct.

6

Page 7: A Basic Study on the Algorithm Analysis Chapter 2. Getting Started 한양대학교 정보보호 및 알고리즘 연구실 2008. 1. 2 이재준 담당교수님 : 박희진 교수님

2. Analysis of computer algorithms • Asymptotic complexity (Theta[θ])

- [Theta] : f(n) = θ(g(n))

- for all n, n ≥ n0 ,

If there exist positive constant c1 , c2 and n0 such that

c1 g(n) ≤ f(n) ≤ c2 g(n) then,

f(n) = θ(g(n)).

- if g(n) is both an upper and lower bound on f(n) then,

f(n) = g(n).

Big Oh

Omega

The Theta notation more precise than both the “Big Oh” and “Omega”.

The Theta notation more precise than both the “Big Oh” and “Omega”.

7

Page 8: A Basic Study on the Algorithm Analysis Chapter 2. Getting Started 한양대학교 정보보호 및 알고리즘 연구실 2008. 1. 2 이재준 담당교수님 : 박희진 교수님

3. Analyzing Insertion Sort algorithm

J = 2J = 2 J = 3J = 3 J = 4J = 4

J = 5 J = 5 J = 6 J = 6 J = n + 1 J = n + 1

8

Page 9: A Basic Study on the Algorithm Analysis Chapter 2. Getting Started 한양대학교 정보보호 및 알고리즘 연구실 2008. 1. 2 이재준 담당교수님 : 박희진 교수님

3. Analyzing Insertion Sort algorithm • Loop Invariant for Insertion Sort

• Initialization : When j=2 then, this subarray(A[1..j-1]=A[1])is sorted • Maintenance : the body outer for loop works by moving subarray is

sorted.• Termination : When j=N+1 then, for loop ends. A[1..j-1] is sorted.

• Initialization : When j=2 then, this subarray(A[1..j-1]=A[1])is sorted • Maintenance : the body outer for loop works by moving subarray is

sorted.• Termination : When j=N+1 then, for loop ends. A[1..j-1] is sorted.

9

Page 10: A Basic Study on the Algorithm Analysis Chapter 2. Getting Started 한양대학교 정보보호 및 알고리즘 연구실 2008. 1. 2 이재준 담당교수님 : 박희진 교수님

3. Analyzing Insertion Sort algorithm • Asymptotic complexity for Insertion Sort

• Best Case : The array is already sorted ( tj = 1, T(n) is linear function of n )

• Worst Case : The array is in reverse sorted order ( tj = j, T(n) is quadratic function of n. )

• Average Case : running time is approximately half of the worst-case running

time ( tj = j / 2 ), it’s still a quadratic function of n.

• Best Case : The array is already sorted ( tj = 1, T(n) is linear function of n )

• Worst Case : The array is in reverse sorted order ( tj = j, T(n) is quadratic function of n. )

• Average Case : running time is approximately half of the worst-case running

time ( tj = j / 2 ), it’s still a quadratic function of n.

10

Page 11: A Basic Study on the Algorithm Analysis Chapter 2. Getting Started 한양대학교 정보보호 및 알고리즘 연구실 2008. 1. 2 이재준 담당교수님 : 박희진 교수님

3. Analyzing Insertion Sort algorithm • Asymptotic complexity for Insertion Sort

Can Express T(n) as an2 + bn + c for constants a, b, c (that again depend on statement costs ) → T(n) is a quadratic function of n

Can Express T(n) as an2 + bn + c for constants a, b, c (that again depend on statement costs ) → T(n) is a quadratic function of n

11

Page 12: A Basic Study on the Algorithm Analysis Chapter 2. Getting Started 한양대학교 정보보호 및 알고리즘 연구실 2008. 1. 2 이재준 담당교수님 : 박희진 교수님

4. Analyzing Merge Sort algorithm • Divide and Conquer algorithm

– Divide the problem into a number of subproblems

– Conquer the subproblems by solving them recursively Base case: If the subproblems are small enough, just solve

them by brute force

– Combine the subproblem solutions to give a solution to the original problem

12

Page 13: A Basic Study on the Algorithm Analysis Chapter 2. Getting Started 한양대학교 정보보호 및 알고리즘 연구실 2008. 1. 2 이재준 담당교수님 : 박희진 교수님

4. Analyzing Merge Sort algorithm

Divide

Divide

Conquer

Conquer

Solution Solution

13

Page 14: A Basic Study on the Algorithm Analysis Chapter 2. Getting Started 한양대학교 정보보호 및 알고리즘 연구실 2008. 1. 2 이재준 담당교수님 : 박희진 교수님

4. Analyzing Merge Sort algorithm

14

Page 15: A Basic Study on the Algorithm Analysis Chapter 2. Getting Started 한양대학교 정보보호 및 알고리즘 연구실 2008. 1. 2 이재준 담당교수님 : 박희진 교수님

4. Analyzing Merge Sort algorithm • Example : Call of Merge (9, 12,

16)Sorted Order

Subarray

15

Page 16: A Basic Study on the Algorithm Analysis Chapter 2. Getting Started 한양대학교 정보보호 및 알고리즘 연구실 2008. 1. 2 이재준 담당교수님 : 박희진 교수님

4. Analyzing Merge Sort algorithm • Example : Call of Merge (9, 12,

16)

Merge Complete

16

Page 17: A Basic Study on the Algorithm Analysis Chapter 2. Getting Started 한양대학교 정보보호 및 알고리즘 연구실 2008. 1. 2 이재준 담당교수님 : 박희진 교수님

4. Analyzing Merge Sort algorithm

• Initialization : When k=p then, A[p..k-1] is empty. Not copied back to A

• Maintenance : L[i] > R[j] then R[i], or L[i]≤R[j] then L[i] copied into A[k].

• Termination : When k=r+1 then loop ends. A[p..r] is sorted.

• Initialization : When k=p then, A[p..k-1] is empty. Not copied back to A

• Maintenance : L[i] > R[j] then R[i], or L[i]≤R[j] then L[i] copied into A[k].

• Termination : When k=r+1 then loop ends. A[p..r] is sorted.

• Loop Invariant for Merging

17

Page 18: A Basic Study on the Algorithm Analysis Chapter 2. Getting Started 한양대학교 정보보호 및 알고리즘 연구실 2008. 1. 2 이재준 담당교수님 : 박희진 교수님

4. Analyzing Merge Sort algorithm • Asymptotic complexity for Merging

θ(n1 + n2)

θ(n)

⇒ θ (n ) ⇒ θ (n )

18

Page 19: A Basic Study on the Algorithm Analysis Chapter 2. Getting Started 한양대학교 정보보호 및 알고리즘 연구실 2008. 1. 2 이재준 담당교수님 : 박희진 교수님

4. Analyzing Merge Sort algorithm If we assume that n is a power of 2 ⇒ each divide step yields

two subproblems, both of size exactly n/2

The base case occurs when n = 1When n ≥2, time for merge sort steps:

CombineDivide & Conquer

Divide: Just compute q as the average of p and r ⇒ D(n) = θ(1)Conquer: Recursively solve 2 subproblems, each of size n/2 ⇒

2T(n/2)Combine: MERGE on an n-element subarray takes θ(n) time ⇒ C(n)

= θ(n)

Divide: Just compute q as the average of p and r ⇒ D(n) = θ(1)Conquer: Recursively solve 2 subproblems, each of size n/2 ⇒

2T(n/2)Combine: MERGE on an n-element subarray takes θ(n) time ⇒ C(n)

= θ(n) 19

Page 20: A Basic Study on the Algorithm Analysis Chapter 2. Getting Started 한양대학교 정보보호 및 알고리즘 연구실 2008. 1. 2 이재준 담당교수님 : 박희진 교수님

c is a constant that describes the running time for the base case and also is the time per array element for the divide and conquer steps

c is a constant that describes the running time for the base case and also is the time per array element for the divide and conquer steps

4. Analyzing Merge Sort algorithm

• Rewrite the recurrence

• Draw a recurrence tree

20

Page 21: A Basic Study on the Algorithm Analysis Chapter 2. Getting Started 한양대학교 정보보호 및 알고리즘 연구실 2008. 1. 2 이재준 담당교수님 : 박희진 교수님

4. Analyzing Merge Sort algorithm • Continue expanding until the problem sizes get down to 1:

Level = log n +1

cn (Log n + 1)⇒ θ (n log n )

cn (Log n + 1)⇒ θ (n log n )

21

Page 22: A Basic Study on the Algorithm Analysis Chapter 2. Getting Started 한양대학교 정보보호 및 알고리즘 연구실 2008. 1. 2 이재준 담당교수님 : 박희진 교수님

4. Analyzing Merge Sort algorithm

• T(n) = 2i T(n/2i) + i c n

The expansion stops when n/2i = 1⇒ i = log n⇒ 2log n T(1) + log n c n⇒ n + c n log n

Ignore low-order term n and costant coefficient c⇒ θ (n lg n)

22

Page 23: A Basic Study on the Algorithm Analysis Chapter 2. Getting Started 한양대학교 정보보호 및 알고리즘 연구실 2008. 1. 2 이재준 담당교수님 : 박희진 교수님

5. Compare Insertion & Merge

• Compared to insertion sort, merge sort is faster.• One small inputs, insertion sort may be faster. But, for large enough

inputs, merge sort will always be faster

• Compared to insertion sort, merge sort is faster.• One small inputs, insertion sort may be faster. But, for large enough

inputs, merge sort will always be faster

Insertion Sort

Merge Sort

23

Page 24: A Basic Study on the Algorithm Analysis Chapter 2. Getting Started 한양대학교 정보보호 및 알고리즘 연구실 2008. 1. 2 이재준 담당교수님 : 박희진 교수님

6. Next Step for Algorithm Analysis

Chapter Contents

Chapter 3 - Theta[θ]-notation - formally interpret equation containing Theta[θ]-notation

Chapter 4 - How to solve Recurrence Relation - Master theorem

Chapter 5 Probabilistic analysis for Randomized algorithms

Reinforcement About this StudyReinforcement About this Study

24

Page 25: A Basic Study on the Algorithm Analysis Chapter 2. Getting Started 한양대학교 정보보호 및 알고리즘 연구실 2008. 1. 2 이재준 담당교수님 : 박희진 교수님

7. References▣ Introduction to Algorithms Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein | The MIT Press | pg18 -

pg39

▣ Fundamentals of Data Structures in C Horowitz, Sahni, Anderson-Freed | Computer Science Press | pg31 – pg49

▣ Wikipedia the free encyclopedia http://www.wikipedia.org | definition about keyword.

▣ Algorithm Design Jon Kleinberg & Eva Tardos | Pearson International Edition, Addison Wesly

25

Page 26: A Basic Study on the Algorithm Analysis Chapter 2. Getting Started 한양대학교 정보보호 및 알고리즘 연구실 2008. 1. 2 이재준 담당교수님 : 박희진 교수님

8. Q & A

Thank you !&

Happy New Year!!!

26