마스터 정리(알고리즘 분석)
Master theorem (analysis of algorithms)알고리즘 분석에서 분할 및 재무 재발을 위한 마스터 정리는 많은 분할 및 정복 알고리즘 분석에서 발생하는 유형의 재발 관계에 대해 점증적 분석(Big O 표기법을 사용)을 제공한다.이 접근법은 존 벤틀리, 도로테아 하켄, 제임스 B에 의해 처음 제시되었다. 1980년 작센 주(州)[1]에서는 이런 재발 문제를 해결하기 위한 '단일화 방식'으로 묘사되었다."마스터 정리"라는 이름은 널리 사용되는 알고리즘 교과서 코멘, Leiserson, Rivest, Stein이 쓴 알고리즘 소개에 의해 대중화되었다.
모든 재발 관계가 이 정리의 사용으로 해결될 수 있는 것은 아니다; 그것의 일반화에는 Akra-Bazi 방법이 포함된다.
소개
다음과 같은 재귀 알고리즘을 사용하여 해결할 수 있는 문제를 고려하십시오.
절차 p(크기 n의 입력 x): n < 어떤 상수 k: 다른 반복 없이 x를 직접 해결:각각 크기가 n/b인 x의 하위 문제 작성 각 하위 문제에 대해 반복적으로 호출 절차 p. 하위 문제의 결과 결합
위의 알고리즘은 문제를 재귀적으로 여러 하위 문제로 나누는데, 각 하위 문제는 크기 n/b이다.솔루션 트리는 각 재귀 호출에 대한 노드를 가지고 있으며, 해당 노드의 하위 노드는 해당 호출에서 이루어진 다른 호출이다.나무의 잎은 재귀의 기본 케이스로, 재발하지 않는 하위 문제(k보다 작은 크기)이다.위의 예제는 각 잎이 아닌 노드에 하위 노드를 둘 수 있다.각 노드는 해당 재귀 호출 인스턴스에 전달되고 () 이(가) 제공한 하위 문제의 크기에 해당하는 작업을 수행한다전체 알고리즘에 의해 수행된 총 작업량은 트리의 모든 노드에 의해 수행된 작업의 합이다.
일반적으로 ( ) 로 표시되는 크기 'n'의 입력에서 위의 'p'와 같은 알고리즘의 런타임은 반복 관계에 의해 표현될 수 있다.
여기서 () 은(는) 하위 문제를 생성하고 그 결과를 위의 절차에 결합하는 시간이다.이 방정식은 연속적으로 그 자체로 대체될 수 있고, 수행된 총 작업량에 대한 표현을 얻기 위해 확장될 수 있다.[2]마스터 정리는 재귀적 관계의 확장을 하지 않고 이 형태의 많은 재귀적 관계를 직접 θ-notation으로 변환할 수 있도록 한다.
일반형식
마스터 정리는 입력을 동일한 크기의 작은 하위 문제로 분할하고 하위 문제를 재귀적으로 해결한 다음 하위 문제 해결 방법을 결합하여 원래의 문제에 대한 해결책을 제공하는 분할 및 정복 알고리즘으로부터의 재발을 항상 무증상적으로 엄격히 제한한다.그러한 알고리즘의 시간은 알고리즘의 재귀 호출에서 이루어진 시간과 함께 재귀의 최상위 수준에서 수행하는 작업(문제를 하위 문제로 나눈 다음 하위 문제 해결책들을 결합하는 작업)을 추가함으로써 표현할 수 있다.() 크기 및 ( 입력에 대한 알고리즘의 총 시간을 나타내는 경우 재발의 최상위 수준에서 소요된 시간을 나타내는 다음 형식을 취하는 반복 관계에 의해 시간을 표시할 수 있다.
여기서 은 (는) 입력 의크기, {\ a}은는) 재귀의 하위 문제 수, 은 (는) 각 재귀 호출(b)에서 하위 문제 크기가 감소되는 요인이다.아래의 정리도 재발을 위한 근거 사례로서 ( )= ( 1) 라고 가정한다.) n {\displaystyle 이 (가 일부 바인딩 > 보다 작을 때 재귀 호출로 이어질 가장 작은 입력 크기
의 f (n f을(를) 분할/재결합하는 작업이 임계 지수 c c c c = (아래 표는 표준 빅 O 표기법을 사용한다.)
케이스 | 설명 | c 에 대한 의 조건 즉 a | 마스터 정리 바인딩 | 공칭적 예 |
---|---|---|---|---|
1 | 문제를 분리/재결합하기 위한 작업은 하위 문제에 의해 왜소하다. 즉, 재귀나무는 잎이 무성하다. | ( )= ( c) 여기서 < c { (낮은 지수 다항식에 의해 경계됨) | ... 다음 ( )= ( c c ) (분할 용어는 나타나지 않으며, 재귀 트리 구조가 지배적이다.) | = 및 ()= O / 2- ) = / 2) T |
2 | 문제를 분할/재결합하기 위한 작업은 하위 문제에 필적한다. | ( )= c c c c ) 인 경우을(를) 0에 대해 (임계값-임계값 다항식으로 범위 제한, 0회 이상 선택 ) | ... 다음 ( n)= c c c c c + ) (바운드는 로그가 단일 전원에 의해 증강되는 분할 항이다.) | = 및 = 1/ ) }), 다음 T )= ( / T n. = }}및 ( = / ) 다음 )= 1/ 2 ) . |
3 | 문제를 분리/재결합하기 위한 작업이 하위 문제를 지배한다. 즉, 재귀나무는 뿌리째 뽑는다. | ( )= ( c) 여기서 > c c (대칭 다항식 하한) | ...이것이 반드시 아무것도 산출하는 것은 아니다.게다가, 만약
그러면 총계는 분할 용어 ) 에 의해 지배된다 | = }}및 f )= / + ) 이 (가) 규칙성 조건이 유지되면 )= ) )(f( |
사례 2의 유용한 확장은 의 모든 값을 처리한다[3]
케이스 | c 에 대한 의 조건 즉 a | 마스터 정리 바인딩 | 공칭적 예 |
---|---|---|---|
2a | ( )= c c c c ) 인 경우 - 1 {\ k | ... 다음 ( n)= c c c c c + ) (바운드는 로그가 단일 전원에 의해 증강되는 분할 항이다.) | = }}및 )= 1/ 2/ 1/ ) = / 2 1/ ) . |
2b | ( )= c c c c ) 인 경우 }} 에서 =- 1 k | ... 다음 ( n)= ( c c c c c ) T (바운드는 로그 역수가 반복된 로그로 대체되는 분할 기간이다.) | = }}및 ()= / / ) 다음 )==( / 2 로그) n. |
2c | ( )= c c c c ) 인 경우^{을(를) 임의의< - {\ k | ... 다음 ( )= ( c c ) (바운드는 로그가 사라지는 분할 항입니다.) | = }} f)= 1/ / ) T)= / 2) |
예
사례 1 예
위의 공식에서 알 수 있듯이:
- = b= = 그래서
- ^{c 서 c=2 {\
다음으로, 사례 1 조건을 충족하는지 확인하십시오.
- a= 8= > c {b}log .
라고 하는 것은 마스터 정리의 첫 번째 사례에서 따온 것이다.
( 는 T () = T(n) = n - 1000 n 2 {\displaystyle Tn T ( 1)= 을 가정하면 확인된다.
사례 2 예
위의 공식에서 알 수 있듯이 변수들은 다음과 같은 값을 얻는다.
- 서 c= ,=
다음으로, 사례 2 조건을 충족하는지 확인하십시오.
- = = 1 따라서 c와 a 는 동일하다.
그래서 마스터 정리의 두 번째 사례에서 다음과 같다.
따라서 주어진 재발관계 T(n)는 θ(n log n)에 있었다.
( 는 T( n)= n+ T( )= 을 가정하여 정확한 재발 관계 해법으로 확인된다.)
사례 3 예
위의 공식에서 알 수 있듯이 변수들은 다음과 같은 값을 얻는다.
- ( n)= ) 서 c= 2 }
다음으로 사례 3 조건을 충족하는지 확인하십시오.
- a = log 2 = 1 \log 따라서 yes, > b a c
규칙성 조건도 다음을 유지한다.
- ( ) 2 {2 =/ {\2}}
그래서 마스터 정리의 세 번째 경우에서 다음과 같다.
따라서 주어진 반복 관계 ( ) 은(는) 공식의 f( n) 를 준수하는( ) 에 있었다.
( 결과는 T ()= 2 - - n{\T () = {\(1을 가정하여 정확한 재발 관계 해법으로 확인된다.)
허용되지 않는 방정식
마스터 정리를 사용하여 다음과 같은 방정식을 풀 수 없다.[4]
-
- a는 상수가 아니다. 하위 문제 수는 고정되어야 한다.
-
- () 과 (와) b의 비항명적 n아래 참조, 확장 버전이 적용됨)
-
- 은 하나의 하위 문제를 가질 수 없다.
-
- ( ) 즉 조합 시간이 양수가 아님
-
- 사건 3은 규칙 위반이다.
In the second inadmissible example above, the difference between and can be expressed with the ratio . It is clear that for any constant .따라서 그 차이는 다항식이 아니며 마스터 정리의 기본 형태는 적용되지 않는다.확장형(사례 2b)이 적용되며, T( )= log n) 가 제공된다. n
공통 알고리즘에 적용
알고리즘. | 재발관계 | 런타임 | 댓글 |
---|---|---|---|
이진 검색 | 마스터 정리 사례 c= c 서 a= =, = = 0 {\ | ||
이진 트리 통과 | 마스터 정리 c< a c 여기서 = 2,=2, = | ||
최적 정렬 행렬 검색 | = 및 () = () 에 Akra-Bazi 정리를 적용하여 ( - ) | ||
병합 정렬 | 마스터 정리 케이스 c= a c 여기서 = b= 2 = = } |
참고 항목
메모들
- ^ Bentley, Jon Louis; Haken, Dorothea; Saxe, James B. (September 1980), "A general method for solving divide-and-conquer recurrences", ACM SIGACT News, 12 (3): 36–44, doi:10.1145/1008861.1008865
- ^ 듀크 대학 "재귀적 기능에 대한 빅 오:재발 관계", http://www.cs.duke.edu/~ola/ap/reason.properties.properties
- ^ Chee Yap, 마스터 반복 및 일반화에 대한 진정한 초등적 접근방식, 제8차 연차총회 이론 및 연산 모델 적용에 관한 회의(TAMC'11), 2011년 14-26페이지.온라인 카피.
- ^ 매사추세츠 공과대학교(MIT), "마스터 정리: 연습 문제와 해결책", https://people.csail.mit.edu/thies/6.046-web/master.pdf
- ^ a b 다트머스 대학교, http://www.math.dartmouth.edu/archive/m19w03/public_html/Section5-2.pdf
참조
- 토마스 H. 코멘, 찰스 E. Leiserson, Ronald L. Rivest, Clifford Stein.알고리즘 소개, Second Edition.MIT 프레스와 맥그로-힐, 2001.ISBN 0-262-03293-7섹션 4.3 (마스터 방식)과 4.4 (마스터 정리 증명), 페이지 73–90.
- 마이클 T. 굿리치와 로베르토 타마시아.알고리즘 설계: 기초, 분석 및 인터넷 예제.와일리, 2002년ISBN 0-471-38365-1.마스터 정리(CLRS의 정리보다 강한 여기에 포함된 사례 2의 버전을 포함)는 페이지 268–270에 수록되어 있다.
외부 링크
- 테오레마 메스트레 e Prescios Resolvidos (포르투갈어)