Algorithm/MinMax
MinMax Algorithm Test
Soul-Learner
2016. 9. 18. 18:45
MinMax 알고리듬의 이해
https://en.wikipedia.org/wiki/Minimax
MinMax 알고리듬을 이용하여 간단한 오목게임을 작성해보려고 시도했지만 마음대로 되지 않았다. 그 원인은 MinMax 알고리듬에 대한 자세하고 철저한 이해가 부족한 탓이었다. 인터넷을 검색하면 많은 자료를 찾을 수 있지만 그 설명이 추상적인 경우가 많아서 그대로 프로그래밍할 수가 없었고 제대로 작동하지 않은 경우가 대부분이었다.
그러던 중에 아래의 그림이 전해주는 정보는 지금까지 고민해왔던 문제에 종지부를 찍을 수 있었고 안될 것 같던 문제도 며칠, 몇주를 두고 덤벼들면 결국 해결할 수 있다는 소박한 교훈을 새삼스레 새겨보게 되었다.
아래의 그림은 MinMax알고리듬을 설명한 것인데, 말단노드에만 청색 점수가 표시되어 있고 그 외의 노드에는 검정색으로 점수가 표시되어 있다.
즉, 부모 노드에서는 노드 자체에서 점수를 계산하지 않고 자식 노드에서 평가되고 결정된 점수를 부모 노드에 올려 주면 된다는 것이다
아래의 그림에서 말단 노드에 적용한 점수는 x 가 이기는 경우에는 1, 지면 -1, 비기면 0으로 평가하고 있다
위의 이론을 적용하여 간단한 오목게임에 사용하기 위한 MinMax 알고리듬을 구현한 예제는 여기를 링크를 눌러 참조하세요 여기<---