1 / 17

알고리즘 1 장 알고리즘 설계와 분석 2 장 점화식과 점근적 복잡도 분석

알고리즘 1 장 알고리즘 설계와 분석 2 장 점화식과 점근적 복잡도 분석. 서국화 kookhwa@kunsan.ac.kr 군산대학교 통계컴퓨터과학과 정보과학기술 연구실 2012. 9. 4. 목 차. 1 장 알고리즘의 설계와 분석의 기초 몇 가지 기초 사항들 점근적 표기 점근적 표기의 엄밀한 정의 2 장 점화식과 점근적 복잡도 분석 점화식의 이해 점화식의 점근적 분석 방법. 몇 가지 기초 사항들 (1/3). 알고리즘이란

Download Presentation

알고리즘 1 장 알고리즘 설계와 분석 2 장 점화식과 점근적 복잡도 분석

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 알고리즘1장알고리즘 설계와 분석2장 점화식과 점근적 복잡도 분석 서국화 kookhwa@kunsan.ac.kr 군산대학교 통계컴퓨터과학과 정보과학기술 연구실 2012. 9. 4

  2. 목 차 • 1장 알고리즘의 설계와 분석의 기초 • 몇 가지 기초 사항들 • 점근적 표기 • 점근적 표기의 엄밀한 정의 • 2장 점화식과 점근적 복잡도 분석 • 점화식의 이해 • 점화식의 점근적 분석 방법 IST (Information Sciences & Technology) Laboratory

  3. 몇 가지 기초 사항들(1/3) • 알고리즘이란 • 어떤 작업을 수행하기 위해 입력을 받아 원하는 출력을 만들어내는 과정을 기술한 것 • 명확하고 효율적이여야 함 • 알고리즘을 왜 분석하는가 • 작업의 소요시간을 짐작할 수 있음 • 알고리즘의 수행시간 • 입력크기에 대해 시간이 어떤 비율로 소요되는지 표현됨 • 알고리즘 예 sample1(A[],n) { k=n/2; return A[k]; } n에 상관없이 상수 시간이 소요됨 IST (Information Sciences & Technology) Laboratory

  4. 몇 가지 기초 사항들(2/3) sample2(A[],n) { sum ← 0; for i← 1 to n sum ← sum + A[i]; return sum; } 알고리즘의 수행시간은 n에 비례 sample3(A[],n) { sum ← 0; for i← 1 to n for j ← 1 to n sum ← sum + A[i] * A[j]; return sum; } n x n번 반복되므로 알고리즘의 수행시간은 n2에 비례 IST (Information Sciences & Technology) Laboratory

  5. 몇 가지 기초 사항들(3/3) • 알고리즘으로 어떤 문제를 푸는가 • 네비게이션을 이용하여 최단경로나 최단시간이 소용되는 경로찾기 • ATM기 스케줄링 • 신용카드 사용내역 발송순서 결정 IST (Information Sciences & Technology) Laboratory

  6. 점근적 표기(1/2) • 점근적 표기 • 점근적 증가율 • 변수가 커짐에 따라 함수가 증가하는 비율 • 함수의 점근적 증가율의 표기법 • Θ-표기법 • 알고리즘의 소요시간이 입력의 크기 n에대해 Θ(n2 )이라면 대략 n2 에 비례하는 시간이 소요됨 • Θ((n))은 최고차항의 차수가 f(n)과 일치하는 함수들의 집합 • 5n2 +4 =Θ(n2) 5n2 +4 의 증가율은 n2의 증가율과 점근적인 의미에서 같음 • Θ(f(n)) 은 집합으로 정의 되기 때문에 =대신 ∈을 사용해도 됨 IST (Information Sciences & Technology) Laboratory

  7. 점근적 표기(2/2) • Ο-표기법 • Ο(f(n)) • 최고차항의 차수가 f(n)과 일치하거나 더 작은 함수들의 집합 • Ο(f(n))은 점근적 증가율이 f(n)을 넘지 않는 모든 함수들의 집합 • 5n2 +4 = Ο(n2) or 7n = Ο(n2 ) • Ω-표기법 • Ω(f(n)) • 최고차항의 차수가 f(n)과 일치하거나 더 큰 함수들의 집합 • Ο(f(n))은 점근적 증가율이 적어도 f(n)이 되는 모든 함수들의 집합 • 5n2 +4 =Ω(n2 ) or7n3= Ω(n2 ) IST (Information Sciences & Technology) Laboratory

  8. 점근적 표기의 엄밀한 정의(1/4) • Ο-표기법정의 • Ο(g(n))은 충분히 큰 n에 대하여 g(n)에 상수만 곱하면 g(n)이 f(n)보다 크거나 같아질 수 있는 모든 함수의 집합 • 예제1 5n2 =Ο(n2) 증명) c=6, =1 모든 n에대해서 5n2 <=6n2 ∴ 정의를 만족하는 상수c와 가 존재함 • 예제2 5n2 +3=Ο(n2) 증명) c=6, n>= n>=2에 대해서 5n2+3<=6n2 ∴ 정의를 만족하는 상수c와 가 존재함 IST (Information Sciences & Technology) Laboratory

  9. 점근적 표기의 엄밀한 정의(2/4) • Ω-표기법정의 • Ω(g(n))은 충분히 큰 n에 대하여 g(n)에 상수(c)만 곱하면 g(n)이 f(n)보다 작거나 같아질 수 있는 모든 함수의 집합 • 예제1 5n2 =Ω(n2) 증명) c=4, =1 모든 n에 대해서 4n2 <=5n2 ∴ 정의를 만족하는 상수c와 가 존재함 • 예제2 5n2 +3=Ω(n2) 증명) c=1, 모든 n에 대해서 이 성립 ∴ 정의를 만족하는 상수c와 가 존재함 IST (Information Sciences & Technology) Laboratory

  10. 점근적 표기의 엄밀한 정의(3/4) • Θ-표기법 정의 • Θ(g(n))은 Ο(g(n))과Ω(g(n))이 동시에 성립하는 모든 함수의 집합 • 예제1 5n2 =Θ(n2) • 예제2 5n2+3=Θ(n2) • Ο-표기법정의 • Ο(g(n))은 충분히 큰 n에 대하여 g(n)에 아무리 작은 상수를 곱해도 g(n)이 압도하는 모든 함수의 집합 IST (Information Sciences & Technology) Laboratory

  11. 점근적 표기의 엄밀한 정의(4/4) • 예제1 5n2 =ο(n3) 증명) • ω- 표기법정의 • ω(g(n))은 충분히 큰 n에 대하여 g(n)에 아무리 작은 상수를 곱해도 g(n)을 압도하는 모든 함수의 집합 • 예제1 증명) IST (Information Sciences & Technology) Laboratory

  12. 점화식의 이해 mergeSort(A[ ], p, r) { if(p < r) then {                 q ← ; -----------  ①   ▷ 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) + 후처리시간 • 점화식 • 어떤 함수를 자신보다 더 작은 변수에 대한 함수와의 관계로 표현하는 방법 • 예 • an = an-1 + 2 • f(n) = nf(n−1) • 점화식 표현 IST (Information Sciences & Technology) Laboratory

  13. 점화식의 점근적 분석 방법(1/4) factorial(n) { if (n=1) return 1 ; -----① return n*factorial(n-1) ; ---② } T(n) = T(n−1) + c ( n-1계승을 구하는 시간+ ①과 ②를수행하는시간) T(1) ≤ c T(n) = T(n−1) + c = (T(n−2) + c) + c = T(n−2) + 2c = (T(n−3) + c) + 2c = T(n−3) + 3c … = T(1) + (n −1)c ≤ c + (n −1)c =cn • 반복대치 • 더 작은 문제에 대한 함수로 반복해서 대치해 나가는 해법 • 점근적 복잡도 IST (Information Sciences & Technology) Laboratory

  14. 점화식의 점근적 분석 방법(2/4) T(n) = 2T(n/2) + n (n=merge(A, p, q, r)의 최대 비교횟수n-1+if(p < r) then에있는 비교1번) =2(2T(n/22) + n/2) + n = 22T(n/22) + 2n = 22(2T(n/23) + n/22) + 2n = 23T(n/23) + 3n … = 2kT(n/2k) + kn,where n= 2k = n T(1)+ nlogn =n+nlogn = Ο(nlogn) T(n) = 2T(n/2) + n 의 점근적 복잡도는 T(n) = Ο(nlogn)이다, 즉 충분히 큰 n에 대하여 T(n)<= cnlogn인 양의 상수c가 존재한다. • 구체적인 복잡도 • 추정후 증명 • 결론을 추정하고 수학적 귀납법으로 이용하여 증명하는 방법 • 예제1 IST (Information Sciences & Technology) Laboratory

  15. 점화식의 점근적 분석 방법(3/4) <증명> 경계조건 : T(2)<=c2log2를 만족하는 c가 존재한다. 귀납적 가정과 전개 : n/2에 대해 T(n/2)<=c(n/2)logn/2을 만족한다 가정하면 T(n) ≤2T(n/2) + n ≤ 2c(n/2) log(n/2) + n = cnlogn − cn log2 + n = cnlogn + (−c log2 + 1)n ≤ cnlogn • 마스터 정리 • 형식에 맞는 점화식의 복잡도를 바로 알 수 있는 정리 • T(n) = aT(n/b) + f(n)와 같은 모양을 가진 점화식은 마스터 정리에 의해 바로 결과를 알 수 있음 • nlogba = h(n)이라 가정함 • T(n)의 점근적 복잡도 • 어떤 양의 상수 ε에 대하여 f(n)/h(n) = O(1/nε)이면, T(n) = Θ(h(n)) • 어떤 양의 상수 ε에 대하여 f(n)/h(n) = Ω(nε)이고, 어떤 상수 c(< 1)와 충분히 큰 모든 n에 대해 af(n/b) ≤ cf(n)이면 T(n) = Θ(f(n)) • f(n)/h(n) = Θ(1)이면 T(n) = Θ(h(n)logn) IST (Information Sciences & Technology) Laboratory

  16. 점화식의 점근적 분석 방법(4/4) • 마스터 정리의 직관적 의미 • h(n)이 더 무거우면 h(n)이 수행시간을 결정함 • f(n)이 더 무거우면 f(n)이 수행시간을 결정함 • h(n)과 f(n)이 같은 무게이면 h(n)에 logn을 곱한 것이 수행시간이 됨 • 예시 • 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=b=2, h(n) = nlog22 = n, f(n) = n 이므로T(n) = Θ(nlogn) IST (Information Sciences & Technology) Laboratory

  17. 감사합니다 서국화 kookhwa@kunsan.ac.kr

More Related