[강화시스터즈 2기] Min-max 알고리즘, 알파-베타 프루닝

Min-Max 알고리즘

최대 최소 전략을 사용하여 턴제 게임(체스, 바둑, 오목, 틱택토 …)등과 같은 프로그램에서 의사결정에 주로 사용되는 알고리즘. two-player 게임에서 주로 사용된다.

game: A situation in which decision-makers “Stragically interact”

  • 최대 최소 전략이란? 어떤 계획이 성공했을 때의 효과를 고려하는 것보다 실패했을 때의 손실을 고려해서, 손실이 최소가 되도록 계획을 세우는 전략.
  • minimize the possible loss in a worst-case scenario(”min”), maximize the potential gain(”max”)
  • 두 플레이어가 있을 때, 양쪽 플레이어의 가능한 모든 행동들을 상대의 반응까지 고려해 계산하고, 가장 높은 결과값을 얻을 것으로 기대되는 최적의 행동을 선택한다.

[Player에 대한 가정]

  1. Rationality 합리적이다.
    • 여기서 합리적이라는 것은, 각 플레이어가 일관된 선호를 갖고있다는 뜻이다. (아래를 생각하면, Max 플레이어는 항상 일관되게 자신의 score를 최대화 하는 행동을 하고, Min 플레이어는 항상 일관되게 Max 플레이어의 score를 최소화하는 행동을 해야만 한다는 것이다)
  1. Common knowledge of Rationallity
    • 서로가 합리적으로 행동한다는 것을 너도 알고 나도 안다.
  2. Perfect Recall
    • 플레이어는 자신이 알고 있는 정보와, 자신이 어떤 행동을 했는지 그 히스토리를 까먹지 않는다.

알파-베타 가지치기

순서대로 탐색하다가, 더이상 탐색할 필요가 없는 노드는 건너뛰어서 노드 탐색 시간을 단축한다.

알파 컷

image.png

베타 컷

image.png

노드의 순서가 중요!

image.png


코드 (출처: 유튜브 영상)

image.png

그냥 Min-Max 알고리즘

image.png

Min-Max 알고리즘 with alpha-beta pruning


[출처]

https://aboutnlp.tistory.com/18

https://www.geeksforgeeks.org/mini-max-algorithm-in-artificial-intelligence/

https://blog.naver.com/jerrypoiu/221280459884

https://www.youtube.com/watch?v=l-hh51ncgDI




Comments