평범한 분할 정복 알고리즘의 성능 평가 도구
… 평범한 놈들만 적용된다.
가정
몇가지 가정이 필요하다.
- 같은 크기의 sub-problem 으로 나뉠 것.
- a, b 파라미터가 상수일 것.
- extra work function 은 polynomial
적용 방법
다음과 같은 Recursion relation 이 주어졌을 때
Critical exponent 를 정의하고
라고 하자.
- Heavy-leaf condition 일 때, 문제를 나누고 합하는 일이 상대적으로 가볍고, leaf 의 작업이 보틀넥이 된다.
- Steady condition 일 때,
좀 복잡한데, polynomial 인 케이스가 많으므로 그 경우에만 따로 적는다면
- Heavy-root condition 일 때, 문제를 나누고 합하는 일이 상대적으로 무겁고, root 의 작업이 보틀넥이 된다.
일반적으로는 좀 더 복잡한데, regularity condition 에선 그렇다고 한다.
예시
각 케이스의 대표적인 예시들
- Matrix multiplication
- Merge sort, Binary search
- 보통 잘못된 알고리즘임 (합치고 나누는데 힘이 너무 들면 분할 정복하는 의미가?)
처음 분할 정복을 봤을 때 와 가 같을 거라고 무의식적으로 생각했는데, 최적화를 위해 그렇지 않은 경우가 있고, Binary search 처럼 태생적으로 그런 경우도 있다.