마스터 정리(알고리즘 분석)

Master theorem (analysis of algorithms)

알고리즘 분석에서 분할 및 재무 재발을 위한 마스터 정리는 많은 분할 정복 알고리즘 분석에서 발생하는 유형의 재발 관계에 대해 점증적 분석(Big O 표기법을 사용)을 제공한다. 접근법은 존 벤틀리, 도로테아 하켄, 제임스 B에 의해 처음 제시되었다. 1980년 작센 주(州)[1]에서는 이런 재발 문제를 해결하기 위한 '단일화 방식'으로 묘사되었다."마스터 정리"라는 이름은 널리 사용되는 알고리즘 교과서 코멘, Leiserson, Rivest, Stein이 쓴 알고리즘 소개의해 대중화되었다.

모든 재발 관계가 이 정리의 사용으로 해결될 수 있는 것은 아니다; 그것의 일반화에는 Akra-Bazi 방법이 포함된다.

소개

다음과 같은 재귀 알고리즘을 사용하여 해결할 수 있는 문제를 고려하십시오.

절차 p(크기 n의 입력 x): n < 어떤 상수 k: 다른 반복 없이 x를 직접 해결:각각 크기가 n/bx하위 문제 작성 각 하위 문제에 대해 반복적으로 호출 절차 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

(대칭 다항식 하한)

...이것이 반드시 아무것도 산출하는 것은 아니다.게다가, 만약
( ) frac {n}{)\ kf)} k<1 {\} 충분히큰 n {\정규격 조건이라고 함)에 대한 경우)

그러면 총계는 분할 용어 ) 에 의해 지배된다

= }}및 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 = = }

참고 항목

메모들

  1. ^ 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
  2. ^ 듀크 대학 "재귀적 기능에 대한 빅 오:재발 관계", http://www.cs.duke.edu/~ola/ap/reason.properties.properties
  3. ^ Chee Yap, 마스터 반복 및 일반화에 대한 진정한 초등적 접근방식, 제8차 연차총회 이론 및 연산 모델 적용에 관한 회의(TAMC'11), 2011년 14-26페이지.온라인 카피.
  4. ^ 매사추세츠 공과대학교(MIT), "마스터 정리: 연습 문제와 해결책", https://people.csail.mit.edu/thies/6.046-web/master.pdf
  5. ^ a b 다트머스 대학교, http://www.math.dartmouth.edu/archive/m19w03/public_html/Section5-2.pdf

참조

외부 링크