2명의 플레이어가 게임을 진행하고, 순차적, 완전 정보, 공정, 노멀 플레이, 유한 상태, loopfree인 게임일 때의 필승법에 대한 정리이다.
- 순차적 게임 : 바둑, 체스같이 상대 행동이 모두 끝나면 내 차례가 온다.
- 완전 정보 게임 : 바둑, 체스처럼 모든 정보가 공개되어있다. 포커는 완전 정보 게임이 아니다.
- 공정 게임 : 플레이어에 상관 없이 게임의 상태에 의해서만 할 수 있는 행동이 정해진다. 체스는 플레이어가 움직일 수 있는 말이 다르므로 공정 게임이 아니다.
- 노멀 플레이 : 할 수 있는 행동이 없는 플레이어가 패배한다.
- 유한 상태 : 플레이어가 할 수 있는 행동이 항상 유한하다.
- loopfree : 같은 상태가 2번 이상 나타나지 않는다. 체스는 loopfree가 아니다.
Nim Game
1개 이상의 더미에 돌이 쌓여있고, 두 명에서 플레이어가 번갈아가며 돌을 제거해나가는 게임이다. 돌을 제거할 땐 하나의 더미에서 한 개 이상의 돌을 제거해야만 한다. 마지막 돌을 제거한 사람이 이기는 게임이다. 위의 조건들을 모두 만족한다.
그런디 수
그런디 수는 ∗0,∗1,∗2,... 처럼 별표와 0 이상의 정수로 표시된다.
그런디 수는 더미가 한 개인 님 게임에서의 돌의 개수를 나타낸다. 즉, ∗n은 님 게임에서 더미가 하나 있고, 돌이 n개 쌓여있는 상태를 나타낸다.
그런디 수는 nimber라고도 부른다.
행동 집합
행동 집합(a set of options)을 현재 상태에서 해당 차례의 플레이어가 취한 행동에 따라 바뀌는, 가능한 모든 상태(position)들의 집합으로 정의하자.
현재 상태에서 플레이어의 선택으로 게임을 ∗0,∗1중 하나의 상태로 만들 수 있을 때, 게임의 상태 G를 다음과 같이 행동 집합으로 표현할 수 있다.
G={∗0,∗1}
G는 사실상 ∗2와 같다. 어떤 그런디 수 ∗n은 다음을 만족한다.
∗n={∗0,∗1,∗2,...,∗(n−1)}
행동 집합의 덧셈
같은 게임의 두 행동 집합 A와 B를 합쳐 하나의 게임으로 진행할 수 있다. 이를 A+B라고 표현한다. 예를 들어 님 게임에서 돌이 3개 쌓인 더미(∗3)와 돌이 5개 쌓인 더미(∗5)를 합쳐 진행할 수 있다. 행동 집합의 합 A+B 를 아래와 같이 재귀적으로 표현할 수 있다.
A+B={A+b ∣ b∈B}∪{a+B ∣ a∈A}
행동 집합의 덧셈은 교환법칙과 결합법칙이 성립한다.
P-position과 N-position
2명의 플레이어가 게임을 진행하고, 순차적, 완전 정보, 공정, 노멀 플레이, 유한 상태, loopfree인 게임의 모든 행동 집합은 P-position과 N-position으로 나눌 수 있다. P-position은 이전(다음) 차례의 사람이 무조건 이길 수 있는 행동 집합이고, N-position은 이번 차례의 사람이 무조건 이길 수 있는 행동 집합이다.
노멀 플레이에서 ∗0은 P-position이고, 이외에는 전부 N-position이다.
정의 1.
두 행동 집합 A, B가 임의의 행동 집합 G에 대해 A+G, B+G 모두 P-position이거나 N-position으로 같을 경우 A≈B 라고 쓰자. 이때, A와 B를 동등하다고 말한다.
정리 1.
행동 집합 A가 P-position이면 임의의 행동 집합 G에 대해 G≈A+G이다.
임의의 행동 집합 H에 대해 G+H와 A+G+H가 둘 다 P-position이거나 N-position임을 증명하면 된다.
증명 1. G+H가 P-position일 때
A도 P-position이므로 상대방은 A와 G+H에서 모두 승리 전략을 구사하여 무조건 이길 수 있다. 따라서 A+G+H또한 P-position이다.
증명 2. G+H가 N-position일 때
G+H에서 P-position으로 이동하여 (G+H)′로 만들자. A+(G+H)′는 증명 1과 같이 P-position이다. 따라서 A+G+H는 N-position이다.
정리 2.
A≈B⟺A+B 는 P-position
증명 1. A≈B⇒A+B 는 P-position
A≈B 이므로 A+A와 A+B는 둘 다 N-position이거나 P-position이다. 그런데 A+A는 똑같은 게임 두 개를 갖다놓고 하기 때문에 한쪽에서 내가 어떻게 두든 상대방이 반대쪽에서 나와 똑같은 행동을 하면 마지막에 돌을 가져가는 건 상대방이다. 따라서 A+A는 P-position이고 A+B 또한 P-position이다.
증명 2. A≈B⇐A+B 는 P-position
A+B가 P-position이면 정리 1에 의해 A≈A+A+B 이다. 그리고 A+A도 P-position이기 때문에 또한 정리 1에 의해 B≈A+A+B 이다. 따라서 A≈B 이다.
정리 3.
행동 집합 G={G1,G2,...,Gk} 의 각 원소 Gi 와 동등한 그런디 수를 ∗ni라고 할 때, 행동 집합 G′={∗n1,∗n2,...,∗nk} 은(는) G 와 동등하다.
증명
행동 집합 G+G′ 이(가) P-position이라면 정리 2에 의해 G≈G′ 이다.
G+G′에서 내가 G를 골라서 Gi로 이동하면 상대는 G′에서 ∗ni로 이동할 수 있다. Gi≈∗ni 이므로 정리 2에 의해서 Gi+∗ni 은(는) P-position이다. 내가 G′을 고르는 경우에도 마찬가지이다. 따라서 G+G′ 은(는) P-position이다.
정리 4.
G′={∗n1,∗n2,...,∗nk} 은(는) 행동 집합이다. 집합 {n1,n2,...,nk}에 속하지 않는 가장 작은 음이 아닌 정수(minimum excluded value, mex)를 m이라고 할 때, G′≈∗m이다.
증명
행동 집합 G′+∗m 이(가) P-position이라면 정리 2에 의해 G′≈∗m 이다.
G′가 공집합이면 m=0 이고, ∗m=∗0 또한 공집합이므로 G′+∗m 은(는) P-position이다.
G′가 공집합이 아니라면, 나는 G′에서 ∗ni로 이동할 수 있다. ni<m 이라면 상대방은 ∗m에서 ∗ni로 이동하여 ∗ni+∗ni로 만들 수 있다. 이는 P-position이다. ni>m 라면 상대방은 ∗ni에서 ∗m으로 이동하여 ∗m+∗m으로 만들 수 있다. 이 또한 P-position이다.
m>0 라면, ∗m이 공집합이 아니므로 나는 G′대신 ∗m을 선택할 수 있다. 하지만 m의 정의에 따라 ∗m에서 어떤 선택을 하던 상대방이 G′에서 같은 상태로 만들 수 있고, 내 차례는 P-position이다. 따라서 G′+∗m 은(는) P-position이다.
정리 5.
a⊕b⊕c=0⟺ 행동 집합 ∗a+∗b+∗c 은(는) P-position
여기서 ⊕ 연산은 binary XOR을 뜻한다. 조합 게임 이론에선 nim-sum이라고 부른다.
증명
s를 다음과 같이 정의하자.
s=a1⊕a2⊕...⊕an (ai≥0)
s에서 임의의 ak>0를 골라서 ak보다 작고, 0이상으로 만들자. 이것을 다음과 같이 정의하자.
t=b1⊕b2⊕...⊕bn
i=k 라면 ai=bi이다.
따라서,
t=0⊕t
=(s⊕s)⊕t
=s⊕(s⊕t)
=s⊕((a1⊕a2⊕...⊕an)⊕(b1⊕b2⊕...⊕bn))
=s⊕((a1⊕b1)⊕(a2⊕b2)⊕...⊕(an⊕bn))
=s⊕(0⊕0⊕...⊕(ak⊕bk)⊕...⊕0)
=s⊕(ak⊕bk)
s=0 이면 t=0 이다.
ak⊕bk=0 이다. 그렇지 않다면,
ak=ak⊕0
=ak⊕(ak⊕bk)
=(ak⊕ak)⊕bk
=bk
이므로 모순이다.
따라서,
t=s⊕(ak⊕bk)
=0⊕(ak⊕bk)
=ak⊕bk
=0
s=0 이면 t=0 으로 만들 수 있다.
s를 이진수로 표현했을 때, 최상위 비트를 2x 이라고 하자. ⊕ 연산의 특성 때문에 2x이 포함된 ak 또한 반드시 존재한다. ak를 bk로 바꾸자. bk=s⊕ak 이다. s의 최상위 비트(2x)가 사라지므로 bk<ak 을(를) 만족한다.
따라서,
t=s⊕(ak⊕bk)
=s⊕(ai⊕(s⊕ai))
=(s⊕s)⊕(ai⊕ai)
=0
내 차례에 nim-sum이 0 이고 상대방이 필승법을 알고 있다면, 나는 계속 nim-sum이 0일 것이다. 언젠간 내 행동 집합은 공집합(∗0, 이또한 nim-sum이 0임)이 될 것이다. 따라서 nim-sum이 0인 상태는 P-position이고, nim-sum이 0이 아니라면 nim-sum을 0으로 무조건 만들 수 있으므로 N-position이다.
정리 6.
음이 아닌 정수 n과 m에 대하여 다음이 성립한다. ∗n+∗m≈∗(n⊕m)
증명
n⊕m⊕(n⊕m)=0
∴ 정리 5에 의해 ∗n+∗m+∗(n⊕m) 은(는) P-position이다.
∴ 정리 2에 의해 ∗n+∗m≈∗(n⊕m)
따라서 (앞서 서술한 조건의) 여러 게임을 동시에 진행하는 경우에도 스프라그-그런디 정리를 이용하면 누가 이기는지 쉽게 알 수 있다. 즉, 정리 4를 이용하여 각 게임과 동등한 그런디 수를 구하고, 그것들의 nim-sum이 0인 사람이 패배한다.
참고 자료
안녕하세요! 같은 학교 4학년 재학중인 학우인데, 연락처가 없어서 댓글로 남깁니다.
ucpc, icpc 팀원을 구하고 있는데, 혹시 관심 있으시면 dongbin1999@gmail.com으로 메일 하나만 보내주세요!