About Approximation Algorithm
updated at 2022-06-17
Approximation Algorithm은 이론적 증거를 바탕으로 NP-C, NP-H 문제에 대해서 적용할 수 있다.
Approximation Algorithm의 특성
근사치를 계산하는 알고리즘의 개발은 쉽다.(suboptimal solution)
그렇다면 얼마나 optimal solution에 가까운가? 를 제시.
- mathematically: bound theorem
- empirically: accuracy, relavancy
또한 얼마나 빠른가(효율적인가)? 를 제시.
- mathematically: Time Complexity. T(n) = polynomial
- emprically: execution time, running time(in seconds)
Approximation algorithm의 개발 접근법
대부분 휴리스틱(그리디) 접근을 사용한다.
기존의 그리디 알고리즘과 근사치 계산의 그리디는 다르다!
- 기존의 그리디: 로컬 옵티마가 글로벌 옵티마로 간다는 것이 증명됨!
- 근사치의 그리디: 위의 증명을 기반으로 사용하는 것이 아니라 글로벌 옵티마를 구하기 어려우므로 사용하는 것!
Boundness
p-time안에 optimal을 계산하기 어렵다. ⇒ Approximation!
optimal solution과의 관계를 수학적으로 표현한다. ex) approximation solution < optimal * 2
Theorem을 통해 bound를 제시할 수 있으면 좋다. 더 좋은 bound 일 수록 더 좋다!
Approximation의 예시들
TSP, Bin Packing problem
TSP
MST를 이용하여 TSP를 해결.
MST의 특성
- short edge를 연결
- no cycle
MST로 연결된 구조는 round-trip route/path를 구성하는데 용이.
Approximation Design
- determine a MST(Using Prim’s Algorithm): ranking func.
- create a path around the MST(Using preorder visit)
Approximation Analysis
- Time Complexity: O(n^2)
- Boundness(theorem, proof): approx sol < optimal sol(관계성)
cost(mst.path) < cost(opt.path)
cost(full walk on MST) = 2 * cost(mst.path)
cost(full walk on MST) < 2 * cost(mst.path)
→ cost(opt.path) < cost(full walk on MST)(by triangular inequality)
⇒ cost(opt.path) < 2 * cost(opt) proof!
Bin Packing problem
- Bin Packing problem: NP-Hard
- unit-size의 가방을 최소한으로 하여 주어진 아이템들을 모두 가방에 담는 문제!
Applications: 이삿짐, 여행가방, 인테리어 레이아웃(방에 가구 배치), 게임서버 load balance issue
if “Bin packing problem을 해결하라”는 문제가 주어진다면?
- 문제의 problem-level(class) classification → 난이도 파악
- NP-C ⇒p Bin packing ?
Approximation Design(Non-increasing, First-fit: NFF)
- sort the items in non-increasing order(greedy, ranking)
- pack into as close bin as possible
Approximation Analysis
- Time Complexity: T(n) = O(nlogn)
- bound Theorem(Quality) → “approximate bin < optimal bin * 1.5”(theorem) → “any items placed by NFF in an extra bin has size ≤ 1/3”(lemma)