본문 바로가기

Algorithm/AlphaBeta Pruning

Alpha Beta Pruning Test

Alpha-Beta-Pruning 알고리듬의 이해


https://en.wikipedia.org/wiki/Alpha%E2%80%93beta_pruning

http://web.cs.ucla.edu/~rosen/161/notes/alphabeta.html



깊이 우선 트리탐색(Depth-First Search)



Alpha Beta Pruning

Alpha : Maximum value found so far (나에게 유리한 정도, Alpha값이 클수록 나에게 유리함)

Beta : Minimum value found so far (나에게 불리한 정도, Beta값이 작을수록 나에게 불리함)

평가함수: 나에게 유리한 정도를 수로 표현하는 함수. 

Alpha-cutoff : MIN 노드의 값(v)과 Alpha값을 비교하여 v<=Alpha  인 경우, MIN노드 하위에 연결된 MAX 노드를 잘라내는 것

Beta-cutoff : MAX 노드의 값(v)과 Beta값을 비교하여 v>=Beta 인 경우, MAX노드 하위에 연결된 MIN 노드를 잘라내는 것



By Jez9999 at the English language Wikipedia, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=3708424



Alpha-cutoff, Beta-cutoff 의 예



가지치기 조건

MAX 노드에서 beta cut : Value 가 beta 보다 크거나 같을 때, ( V >= beta )

MIN 노드에서 alpha cut : Value 가 alpha 보다 작거나 같을 때, ( V<= alpha ) 



위의 그림에 대한 설명



Alpha-Beta Pruning 연습용 그림


위의 그림에 표시된 트리구조에 Alpha-Beta Pruning 알고리듬을 적용한 결과 A-B-E-M 노드가 최종적으로 선택된다