• 검색 결과가 없습니다.

쉽게 배우는 알고리즘

N/A
N/A
Protected

Academic year: 2021

Share "쉽게 배우는 알고리즘"

Copied!
15
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

http://www.hanbit.co.kr

2장. 점화식과 점근적 복잡도 분석

(2)

2장. 점화식과 점근적 복잡도 분석

사실을 많이 아는 것보다는 이론적 틀이 중요하고, 기억력보다는 생각하는 법이 더 중요하다.

- 제임스 왓슨

(3)

- 3 - 한빛아카데미㈜

학습목표

• 재귀 알고리즘과 점화식의 관계를 이해한다.

• 점화식의 점근적 분석을 이해한다.

(4)

점화식의 이해

• 점화식

– 어떤 함수를 자신보다 더 작은 변수에 대한 함수와의 관계로 표현한 것

• 예

– an = an-1 + 2 – f(n) = n f(n−1)

– f(n) = f(n−1) + f(n−2) – f(n) = f(n/2) + n

(5)

한빛아카데미㈜

- 5 -

Mergesort의 수행시간

mergeSort(A[ ], p, r) {

if (p < r) then {

q ← (p+q)/2; --- ① ▷ p, q의 중간 지점 계산 mergeSort(A, p, q); --- ② ▷ 전반부 정렬

mergeSort(A, q+1, r); --- ③ ▷ 후반부 정렬 merge(A, p, q, r); --- ④ ▷ 병합

} }

merge(A[ ], p, q, r) {

정렬되어 있는 두 배열A[p ... q]와 A[q+1 ... r]을 합하여 정렬된 하나의 배열A[p ... r]을 만든다.

}

수행시간의 점화식: T(n) = 2T(n/2) + 오버헤드

크기가 n인 병합정렬 시간은 크기가 n/2인 병합정렬을 2번 하고

나머지 오버헤드를 더한 시간이다

(6)

점화식의 점근적 분석 방법

• 반복대치

– 더 작은 문제에 대한 함수로 반복해서 대치해 나가는 해법

• 추정후 증명

– 결론을 추정하고 수학적 귀납법으로 이용하여 증명하는 방법

• 마스터 정리

– 형식에 맞는 점화식의 복잡도를 바로 알 수 있다

(7)

한빛아카데미㈜

- 7 -

반복대치

T(n) = T(n−1) + n T(1) = 1

T(n) = T(n−1) + n

= (T(n−2) + (n−1)) + n

= (T(n−3) + (n−2)) + (n−1) + n

= T(1) + 2 + 3 + … + n

= 1 + 2 + … + n

= n(n+1)/2

= Θ(n

2)

(8)

반복대치

T(n) = 2T(n/2) + n T(1) = 1

T(n) = 2T(n/2) + n

= 2(2T(n/22) + n/2) + n = 22

T(n/2

2) + 2n

= 2

2(2T(n/23) + n/22) + 2n = 23

T(n/2

3) + 3n

= 2

k

T(n/2

k) + kn

= n + nlogn

= Θ(nlogn)

(9)

한빛아카데미㈜

- 9 -

T(n) = 2T(n/2) + n

<증명>

T(n) = 2T(n/2) + n

≤ 2c(n/2)log(n/2) + n

= cnlogn − cnlog2 + n

= cnlogn + (−clog2 + 1)n

≤ cnlogn

추정 : T(n) = O(nlogn), 즉 T(n)

≤ cnlogn

이를 만족하는 c가 존재한다

추정후 증명 Guess&Verification

(10)

T(n) = 2T(n/2) + 1

<증명>

T(n) = 2T(n/2) + 1

≤ 2c(n/2) + n

= cn + n

추정 : T(n) = O(n), 즉 T(n)

≤ cn

귀납적 가정 이용

더 이상 진행 불가!

추정후 증명

(11)

한빛아카데미㈜

- 11 -

<증명>

T(n) = 2T(n/2) + 1

≤ 2(c(n/2) – 2) + n

= cn – 3

≤ cn – 2

추정 : T(n)

≤ cn-2

귀납적 가정 이용

(12)

• T(n) = aT(n/b) + f(n)와 같은 모양을 가진 점화식은 마스터 정리에 의해 바로 결과를 알 수 있다

• nlogba = h(n)이라 하자

① 어떤 양의 상수 ε에 대하여 f(n)/h(n) = O(1/nε)이면, T(n) = Θ(h(n))이다.

② 어떤 양의 상수 ε에 대하여 f(n)/h(n) = Ω(1/nε)이고, 어떤 상수

c

(< 1)와 충분히 큰 모든

n

에 대해 af(n/b)

≤ cf(n)이면 T(n) = Θ(f(n))이다.

③ f(n)/h(n) = Θ(1)이면 T(n) = Θ(h(n)logn)이다.

마스터 정리 Master Theorem

(13)

한빛아카데미㈜

- 13 -

① h(n)이 더 무거우면 h(n)이 수행시간을 결정한다.

② f(n)이 더 무거우면 f(n)이 수행시간을 결정한다.

③ h(n)과 f(n)이 같은 무게이면 h(n)에 logn을 곱한 것이 수행시간이 된다.

마스터 정리의 직관적 의미

(14)

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

– a=2, b=3, h(n) = nlog32, f(n) = c – T(n) = Θ(nlog32)

• T(n) = 2T(n/4) + n

– a=2, b=4, h(n) = nlog42, f(n) = n – T(n) = Θ(n)

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

– a=2, b=2, h(n) = nlog22

= n, f(n) = n

– T(n) = Θ(nlogn)

마스터 정리의 적용 예

(15)

- 15 - 한빛아카데미㈜

Thank you

참조

관련 문서

아직까지 청소년들은 클래식이라고 하면 '학교에서 배우는 고리타분한 음악이라거 나 어려운 음악,지루한 음악,돈을 많이 들여야만 들을 수 있는 고급 음악'등으로

Random Forests는 과학계는 물론 산업계에서도 많이 사용되는 Machine Learning 알고리즘으로, 매우 우수한 성능을 보여주는 알고리즘 중에 하나입니다.. Random

그런 가운데 시각장애인을 위한 점자 또한 인천 에서 태어난 송암 박두성 선생님께서 창안해 역사적인 문화유산을 보유하고 있는 곳입니다. 하지만 관계자 외 에는 그런

이주여성노동자들은 열악한 노동조건에 더해 성희롱 성폭력에도 노출되어 있 습니다.. 이주노동자들은 산업재해도 더

• 신장성 트레이닝은 근건 단위가 탄성 에너지를 더 많이 저장하고 생성할 수 있는

var cannonindex = everything.length; // 나중 사용을

Naimipour, Foundations of Algorithms using Java... 알고리즘 설계의 전체 목차 알고리즘

따라서 “성경이 하나님의 말씀이라는 것을 어떻게 아는 가?”라고 묻는 것이 오히려 더 긴급한 일이다.. 이 질문에 대해 간단히 대답하자면 성경을