반응형
- 백트래킹(BackTraking) 기법은 해를 찾는 도중에 '막히면' (즉, 해가 아니면) 되돌아가서
다시 해를 찾아 가는 기법이다. - 백트래킹 기법은 최적화 (Optimization) 문제와 결정 (decision) 문제를 해결할 수 있다.
- 결정 문제 : 문제의 조건을 만족하는 해가 존재하는지의 여부를 'yes' 또는 'no'가 답하는 문제
- 미로찾기
- n-Queen
- Map coloring
- 부분 집합의 합(Subset Sum) 등 - 백트래킹 vs DFS
- 어떤 노드에서 출발하는 경로가 해결책으로 이어질 것 같지 않으면 더 이상 그 경로를 따라
가지 않음으로써 시도의 횟수를 줄임 (Prunning 가지치기)
- 깊이우선탐색이 모든 경로를 추적하는데 비해 백트래킹은 불필요한 경로를 조기에 차단.
- 깊이우선탐색을 가하기에는 경우의 수가 너무나 많음. 즉, N! 가지의 경우의 수를 가진 문제에
대해 깊이우선탐색을 가하면 당연히 처리 불가능한 문제.
- 백트래킹 알고리즘을 적용하면 일반적으로 경우의 수가 줄어들지만 이 역시 최악의 경우에는
여전히 지수함수 시간(Exponential Time)을 요하므로 처리 불가능
<N-Queen>
https://www.acmicpc.net/problem/3344
반응형
'1. 알고리즘 이론 > 4. 백트래킹, DP' 카테고리의 다른 글
DP(Dynamic Programming) (0) | 2020.03.01 |
---|