[결정 문제] 최적화 문제를 결정문제로 바꿔 풀기
2021. 1. 21. 16:19ㆍ알고리즘/알고리즘 정리
1. 결정 문제(decision problem)
결정 문제란 예 아니오 현태의 답만이 나오는 문제들을 가리킴.
최적화 문제의 반환 값은 답의 경우의 수가 무한한 데 반해, 결정 문제는 두가지 답만 있음.
그러므로 결정 문제가 최적화 문제보다 더 어렵거나 시간 복잡도가 더 클 일도 없다.
2. 결정 문제로 바꾸기
어떤 문제에서 최대가 되는 x를 구하자고 하자
이를 결정 문제로 바꾸는 것은 다음과 같다.
y이상일때 문제가 해결되는지?
이 결정 문제를 이분법을 사용하여 10번 100번 반복하면 결국 원래 문제인 x를 구할 수 있다.
3. 이분법의 함정
답이 가질 수 있는 가지수가 유한일 때
이분법은 수치적 안정성을 잃어버리게 된다.
최적화 문제는 아주 미세한 차이가 나더라도 답과 가까운 값을 반환하지만
결정 문제는 답이 true false 두가지 밖에 없으므로 그 미세한 차이 때문에 답이 완전 달라진다.
4, 최적화 문제 결중문제로 바꾸기 레시피
- "가장 좋은 답은 무엇인가?" 라는 최적화 문제를 "x 혹은 그보다 좋은 답이 있는가?" 라는 형태로 변형한다.
- 결정 문제를 쉽게 풀 수 있는 방법이 있는지 찾아본다.
- 결정 문제를 내부적으로 이용하는 이분법 알고리즘을 작성한다.
-알고리즘 문제해결전략 450p
'알고리즘 > 알고리즘 정리' 카테고리의 다른 글
[정수론] [정리 필요]number theory (0) | 2021.01.23 |
---|---|
[수치 해석] Numerical analysis (0) | 2021.01.22 |
[완전 탐색] Combinatorial search 조합 탐색 (0) | 2021.01.19 |
[탐욕법] Greedy method (0) | 2021.01.18 |
[비트 마스크] bitmask (0) | 2021.01.15 |