내가 이해하는 한 Minimax 알고리즘은 가장 간단한 형태로 다음과 같이 작동합니다. 게임 트리를 위쪽으로 이동하고 플레이어의 차례라면 모든 노드의 최대 점수를 현재 노드에 할당하고, 그렇지 않으면 최소값을 지정합니다 점수. 나뭇잎은 경기 결과에 따라 점수가 매겨집니다. 승리를 위해서는 +1, 추첨에는 0, 상실에는 -1을 가정합니다. 마지막으로 점수가 가장 높은 노드로 연결되는 이동을 선택합니다.Minimax : 최종 게임에서 동등한 점수로 무엇을 할 것인가?
물론 전체 게임 트리를 탐색하는 것은 비현실적이므로 경험적 방법이 사용됩니다. 그러나 우리는 게임이 끝날 무렵에 있다고 가정합니다. 그런 다음이 간단한 접근 방식에 몇 가지 문제점을 발견했습니다. 예를 들어, 우리는 체스 플레이어를 재생하는
(흰색 재생)이 위치에 도달했습니다
그것은 선수가 차례입니다. 그래서 Qg7을 가진 친구에게는 Qg7의 노드가 1이라는 점수를 얻습니다. 그러나 예를 들어, Ke1은 법적 절차이기도합니다. 유일한 대답은 c5이고, Qg7 #은 여전히 사용 가능합니다. Qg7이 1 점을 얻었으므로 c5도 마찬가지이므로 Ke1도 마찬가지입니다.
점수가 1 (Ke1 및 Qg7) 인 최소 두 번의 이동이 있습니다. 알고리즘이 왕의 움직임을 먼저 고려하고 가장 높은 점수를 가진 첫 번째 움직임을 선택한다고 가정 해 봅시다. 즉,이 위치에서 플레이어는 상대방을 장담하는 것이 아니라 상대가 실제로 폰을 여왕과 함께 방해 할 수있을 때까지 무작위로 킹을 움직일 것입니다.
근본적인 문제는 한 장의 체크 메이트 (Qg7)는 두 장의 장군 (Ke1)과 같은 점수를 가지므로 플레이어가 실제로 한 장의 장군을 찾으러 갈 이유가 없다는 것입니다.
이것은 Minimax 알고리즘을 간단히 수정하여 방지 할 수 있습니다. 동일한 점수 인 경우이 점수가있는 위치로의 더 짧은 경로를 선택하십시오. 따라서 한 명의 장례식장이 선호 될 것입니다.
내 질문은 : Minimax 관련 소스에서 이에 대한 언급이 없으므로 Minimax에 대한 오해가 있을까요? 그렇지 않다면 이것을 해결하는 일반적인 방법입니까, 아니면 우수한 방법입니까?