일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 전치사
- 영어기초
- Hyperledger Fabric
- 정렬
- 알고리즘
- 관계절
- 일상회화
- python
- 회화기초
- 다이나믹프로그래밍
- N-Queens
- IF
- dfs
- 영어회화
- 백트래킹 알고리즘
- 영어
- 완전탐색
- baekjoon
- 라이브아카데미
- 라이브 아카데미
- 파이썬
- 백준
- BFS
- 회화
- Backtracking Algorithm
- 영어회와
- 블록체인
- 영어 회화
- 백트래킹
- used to
Archives
- Today
- Total
내 맴
백트래킹 알고리즘 (파이썬) 본문
728x90
- Backtracking Algorithm
✔ 해를 찾는도중에 해가 아니면 되돌아가서 다시 해를 찾는 기법
✔ 모든 경우의 수를 전부 고려한다 ( 브루트 포스 Algorithm과 유사)
✔ 최적화(optimization) 문제와 결정(decision) 문제 ( yes or no question) 를 해결할수있다.
✔ DFS (깊이 우선 탐색 ) 으로 모든 Node를 검색한뒤 Node의 유망성을 점검하여
유망하지않으면 부모노드로 돌아간 후 다른 자손 노드를 탐색한다
- 순서
1. State Space Tree에서 DFS를 실시한다
2. 각 Node가 promising한 지 점검
3.
If Node가 promising한 경우 → 자손 Node 탐색
Else non promising한 경우 → 부모 Node로 돌아가서 탐색 계속한다
- DFS (깊이 우선 탐색)이란?
https://luz0911.tistory.com/97?category=765468
- 시간 복잡도
정확하게 계산할 수 있는 방법은 없다. 그러나 promising하지 않은 Node들을 탐색하지 않으므로 브루트 포스 Algorithm으로 해결하는 것 보다 좀 더 빠르다.
- N-Queens ( Backtracking Algorithm의 대표 문제 )
Baekjoon 사이트에 있는 N-queens문제를 풀어놓은 포스팅이다. 설명도 있으니 여기서 봐주시길 바랍니다,,,
728x90
'Algorithm > 개념 공부' 카테고리의 다른 글
Greedy Algorithm - Fractional Knapsack Problem (0) | 2020.04.09 |
---|---|
BFS ( Breath First Search, 너비 우선 탐색 ) python으로 구현하기 (0) | 2020.03.30 |
DFS ( Depth First Search, 깊이 우선 탐색 ) python으로 구현하기 (0) | 2020.03.27 |
Quick Sort (퀵 정렬) python으로 구현하기 (1) | 2020.03.24 |
Bubble Sort (버블 정렬) python으로 구현하기 (0) | 2020.03.17 |