1

나는 모든 움직임이 양 선수에게 모두 알려지기 전에 포켓몬 같은 게임에 대한 AI를 작성하려고합니다 (모든 플레이어가 모든 것을 볼 수 있습니다). 나는 손상, 정확성, 비판적 기회 등 필요한 모든 정보를 기록했습니다."동시"이동 게임을위한 Minimax 확대하기

나는 Expectediminimax (알려진 알고리즘) 솔루션을 목표로하고 있다고 생각했지만 합리적인 것처럼 보였습니다. 걸림 새 : 누가 먼저 간다는지를 어떻게 처리 할 것인가. 물론, 그것은 현재 플레이어의 속도와 빠른 시작을 기반으로하지만 일부 움직임은 우선 순위를 얻고 속도가 빠르더라도 먼저 끝납니다.

예를 들어 상대방이 빠른 상대는 강력한 능력을 사용하지만 우선 순위를두고 자신의 능력을 완전히 무효화하는 블록을 사용합니다. 나는 그의 움직임이 그의 것을 취소 할 것이므로 그가 더 이상 먼저 움직이는 척 할 수 없다.

아마도 나는 이것을 과장 생각하고있을 것입니다. 그러나 나는 종이에 내 Expectiminimax를 쓰려고 할 때 실제 문제가되고 있습니다.

+0

나는 Pokemon을 한 번도 사용하지 않았지만 두 플레이어가 각각의 게임 트리 노드에서 움직일 가능성을 고려해야하는 것처럼 들린다. (각 플레이어가 나무 레벨을 교대로 사용할 때 표준 미니 맥스와 달리) AI 알고리즘을 약간 복잡하게 만들 것입니다. 특정 하위 노드를 트리 수준 단위가 아닌 하위 단위로 최소화하거나 최대화해야하는지 여부를 고려해야하기 때문입니다.하지만 여전히 수행 가능해야한다고 생각합니다. –

답변

3

동시 이동에 대한 가장 간단한 해결책은 먼저 상대방을 편집증 적으로 가정하는 것입니다 (상대방이 마음을 읽고 상대방의 움직임을 알 수 있기 때문에). 플레이어 별 게임 트리를 계산하여 모든 플레이어에 대해 독립적 인 편집증 가정을 만들 수 있습니다. 당신이 최첨단을 원한다면, 나는이 논문들을봤을 뿐이다 : Using Counterfactual Regret Minimization to Create Competitive Multiplayer Poker Agents, Comparing Uppper-Confidence-Tree versus CounterFactual-Rergret in Simultaneous Games.