순열 게임 redux


20

이것은 이전의 질문을 다시 말한 것입니다 .

Alice와 Bob이라는 두 명의 플레이어 사이에 있는 다음과 같은 공정한 완벽한 정보 게임을 고려하십시오 . 플레이어는 정수 1에서 n까지의 순열을받습니다. 매 턴마다 현재 순열이 증가하면 현재 플레이어가 패배하고 다른 플레이어가 승리합니다. 그렇지 않으면 현재 플레이어가 숫자 중 하나를 제거하고 다른 플레이어에게 패스를 전달합니다. 앨리스가 먼저 연주합니다. 예를 들면 다음과 같습니다.

  • (1,2,3,4) — Bob은 정의상 즉시 승리합니다.

  • (4,3,2,1) — 앨리스는 3 번의 턴에서 아무리 플레이해도 승리합니다.

  • (2,4,1,3) — 밥은 앨리스의 플레이 방식에 관계없이 첫 턴에서 이길 수 있습니다.

  • (1,3,2,4) — Alice는 2 또는 3을 제거하여 즉시 승리합니다. 그렇지 않으면, Bob은 첫 턴에서 2 또는 3을 제거하여 이길 수 있습니다.

  • (1,4,3,2) — 앨리스가 첫 턴에서 1을 차지하면 결국 승리합니다. 그렇지 않으면 Bob은 1을 제거 하지 않고 첫 턴에서 이길 수 있습니다 .

완벽한 플레이를 가정 할 때 주어진 시작 순열에서 어떤 플레이어가이 게임에서이기는지를 결정하는 다항식 시간 알고리즘이 있습니까? 더 일반적으로, 이것은 표준 공정한 게임이기 때문에 모든 순열은 Sprague-Grundy 값을 갖습니다 . 예를 들어 (1,2,4,3)의 값은 * 1 이고 (1,3,2)의 값은 * 2입니다. 이 값을 계산하기가 얼마나 어렵습니까?

역 추적 알고리즘은 O (n!) 시간에 실행되지만 동적 프로그래밍을 통해 시간 으로 줄일 수 있습니다 .O(2npoly(n))


4
순진한 알고리즘이 O (2 ^ n⋅poly (n)) 시간에 실행되는 것 같습니다.
이토 쓰요시

귀하의 예에서 시퀀스가 ​​내림차순이면 Alice가 항상 승리하고 시퀀스가 ​​오름차순이면 Bob이 항상 승리한다는 것이 분명합니다. 이 문제는 광범위하게 연구되어 광범위한 도구를 사용할 수있는 정렬 알고리즘 분석을 상기시킵니다.
chazisop

1
@chazisop :“시퀀스가 내림차순이면 앨리스가 항상 이깁니다.”: n이 짝수 인 경우에만 해당됩니다.
Tsuyoshi Ito

사례 3의 @ Jɛ ff E, Bob은 첫 턴에서 어떻게 이길까요?
Suresh Venkat

2
@Suresh : (2,4,1,3)의 경우 그래프 표현은 4 개의 정점 (2-1-4-3)에 대한 선형 그래프입니다. Alice가 끝 노드를 제거하면 선형 그래프가 3 개의 정점에 남습니다. 가운데 정점을 제거하여 Bob이 승리합니다 (따라서 3은 1, 2는 4). Alice가 내부 노드를 제거하면 연결된 두 정점과 격리 된 노드가 남습니다. Bob은 연결된 두 정점 중 하나를 제거하여 이깁니다 (1은 3 또는 4로, 4는 1 또는 2로 답변).
mjqxxxx

답변:


7

"순열 게임"은 다음 게임과 동형입니다.

연결을 끊습니다. 플레이어는 그래프 에서 교점을 교대로 제거합니다 . 완전히 분리 된 그래프 (가장자리가없는 그래프)를 생성하는 플레이어가 승자입니다.G

그래프 특정 초기 순열에 대응 바로 그 가장자리 포함 되는 및 반대 부호를 가지고있다. 즉, 순열에서 잘못된 순서로 각 숫자 쌍은 모서리와 연관됩니다. 허용 된 동작은 순열 게임의 동작과 동형이며 (숫자 제거 = 노드 제거) 당첨 조건도 동형입니다 (내림차순 쌍 없음 = 남은 가장자리 없음). π S n ( i , j ) i j π ( i ) π ( j )GππSn(i,j)ijπ(i)π(j)

보완적인 관점은 그래프 보체 에서 "이중"게임을 고려하여 얻을 수 있습니다. 여기에는 와 가 있는 모서리 가 포함 됩니다 에서 올바른 순열의 순서. 연결을 끊는 듀얼 게임은 다음과 같습니다. ( i , j ) i jGπc=GR(π)(i,j)ij

다시 연결하십시오. 플레이어는 그래프 에서 교점을 교대로 제거합니다 . 완전한 그래프를 생성하는 플레이어가 승자입니다.G

특정 순열에 따라 이러한 게임 중 하나가 다른 게임보다 분석하기가 더 단순 해 보일 수 있습니다. 그래프 표현의 장점은 그래프의 연결이 끊어진 구성 요소가 별도의 게임이라는 것이 분명하므로 복잡성이 다소 줄어들기를 희망합니다. 그것은 또한 위치의 대칭을보다 분명하게 만듭니다. 불행히도,이기는 조건은 비표준입니다 ... 순열 게임은 모든 움직임이 다 사용되기 전에 항상 끝나서 잘못된 캐릭터가됩니다. 특히, nim-value는 연결이 끊어진 구성 요소의 nim-value의 nim-sum (이진 XOR)으로 계산할 수 없습니다.


연결 끊기의 경우 그래프 및 조차도 게임 은 와 같습니다 (여기서 은 꼭짓점 의 끝없는 그래프 임). . 이를 입증하기 위해, 결정적인 합 이 두 번째로 이겼 음 을 보여 주어야합니다 . 증명은 에 대한 유도입니다 . 경우 날이없는이며, 다음 첫 번째 플레이어는 (두 게임은 끝났다) 즉시 잃는다. 그렇지 않으면, 첫번째 선수 중 하나에 이동할 수 있습니다 , 두 번째 선수로 감소 다른 하나 (자신의 움직임을 복사 할 수 있습니다 와n G ˉ K n G ˉ K n n G + G ˉ K n | G | + N G G G ' + G '¯ K N | G ' | = | G | - 1 N 2 G + G ˉ K N - 2GnGK¯nGK¯nnG+GK¯n|G|+nGGG+GKn¯|G|=|G|1 ); 또는 인 경우 첫 번째 플레이어는 연결이 끊긴 조각으로 이동할 수 있고 두 번째 플레이어는 같은 작업을 수행 할 수 있습니다 ( ).n2G+GK¯n2

이것은 그래프 가 와 동일 하다는 것을 보여줍니다 . 여기서 는 연결이 끊긴 꼭지점이없는 의 일부 이고, 또는 은 에서 연결이 끊긴 꼭지점 수의 패리티 입니다 . 동등성 클래스의 모든 게임은 동일한 nim-value를 가지며 동등성 관계는 공용체 조작을 존중합니다. 만약 및 이면 . 또한, 하나의 볼 수있는 게임 과H K p H G p = 0 1 G G H K p G H K p G G ( H H ) K p p [ H K 0 ] [ H K 1 ] H H + H GHKpHGp=01GGHKpGHKpGG(HH)Kpp[HK0][HK1] 가 널 그래프가 아닌 한 다른 : 재생할 때 첫 번째 플레이어는 격리 된 정점을 가져 와서 남겨두고 두 번째 플레이어의 움직임을 복사 할 수 있습니다.H H + HH+HK1H+H

Reconnect에 대한 관련 분해 결과를 모릅니다.


두 가지 특수한 유형의 순열은 특히 간단한 힙 게임에 해당합니다.

  1. 첫 번째는 예를 들어 과 같이 강하 하는 오름차순 입니다. 때 이 형태를 취한다, 그래프 분리 된 파벌의 조합, 그리고 분리의 게임은 힙에 게임에 감소 : 플레이어가 교대 힙에서 하나의 콩을 제거 모든 힙 크기가 될 때까지 .π G π 132165487πGπ1
  2. 두 번째는 내림차순 실행 ( 예 : 입니다. 경우 이러한 형태의 그래프 얻어 끊긴 클리크의 조합이며, 다시 연결의 게임 힙에서 게임을 감소 : 선수 교대 힙으로부터 하나의 빈을 제거 있을 때까지 하나의 힙만 남았습니다 .π G c π78456123πGπc

약간의 생각은 힙에있는이 두 가지 게임 ( 혼동의 위험이있는 1 힙1 이라고 부를 수 있음 )은 실제로 그 자체가 동형이라는 것을 보여줍니다. 둘 다 영 다이어그램 (하위 @domotorp에 의해 제안 된)에서 한 줄만 남을 때까지 오른쪽 아래 사각형을 제거하는 게임으로 표현 될 수 있습니다. 이것은 열이 힙에 해당하는 경우 1- 힙과 동일한 게임이고 행이 힙에 해당하는 경우 1- 힙과 동일한 게임입니다.

연결 끊기 및 다시 연결로 확장되는이 게임의 핵심 요소는 지속 시간이 간단한 방식으로 최종 게임 상태와 관련되어 있다는 것입니다. 당신의 차례가되면, 당신이하려고하는 것을 포함하여 게임에 홀수의 움직임이 남아 있다면 당신은 이길 것입니다. 한 칸씩 움직일 때마다 하나의 칸이 제거되므로 게임이 끝날 때 남은 칸의 개수가 현재의 반대 패리티를 갖기를 원합니다. 더욱이, 사각형의 수는 당신의 모든 턴에서 같은 패리티를 가질 것입니다; 처음부터 최종 개수에 어떤 패리티를 갖기를 원하는지 알 수 있습니다. 최종 카운트가 짝수인지 홀수인지에 따라 이브와 오토 두 선수를 부를 수 있습니다. Eve는 항상 홀수 패리티 상태로 이동하고 패리티가 짝수 인 상태를 생성하며 Otto는 반대입니다.

그의 대답에서 @PeterShor는 One-Heap에 대한 완전한 분석을 제공합니다. 증거를 반복하지 않으면 결과는 다음과 같습니다.

  • 오토는 힙과 힙을 좋아 하며 하나의 더 큰 힙을 견딜 수 있습니다. 적어도 Eve에게 형식의 즉각적인 승리를주지 않고 하나의 제외한 모든 힙 크기를 만들 수 있으면 승리합니다 . 오토을위한 최적의 전략은 항상 상태가있는 경우를 제외하고 두 번째로 큰 힙에서 걸릴 것입니다 그가에서해야 할 때, . 큰 힙에 콩이 너무 많으면 오토가 없어집니다.2 2 ( 1 , N ) ( 1 , 1 , N > 1 ) N122(1,n)(1,1,n>1)n
  • 2 112121

언급 한 바와 같이, 이것은 1- 힙에 대한 최적의 전략을 제공하지만, 어구에 다소 어색하지만 (일차-이중 "번역"에서 오류가 발생할 수 있습니다). 1 힙 게임에서 :

  • 11(1,1,,1,2)
  • Eve는 가장 큰 힙과 두 번째로 큰 힙 사이의 간격을 싫어합니다. 그녀는 두 개의 가장 큰 힙을 같은 크기로 만들 수 있으면 이깁니다. Eve에 대한 최적의 전략은 고유 한 경우 가장 큰 힙에서 가져 와서 가장 큰 크기의 정확히 두 개가있는 경우에는 사용하지 않는 것입니다.

@PeterShor가 지적했듯이, 이러한 분석이 어떻게 일반적인 연결 끊기 및 다시 연결 게임으로 확장 될 수 있는지 명확하지 않습니다.


2
이러한 종류의 게임을 통칭하여 "정점 삭제 게임"이라고합니다. 그러나 우승 조건은 등급과 같은 지역 속성 대신 그래프의 전역 속성을 참조한다는 점에서 상당히 비표준 적이라는 점에 동의합니다. 정점.
이토 쓰요시

4
작성된 그래프 는 문헌에서 순열 그래프 ( en.wikipedia.org/wiki/Permutation_graph ) 라고합니다 . 일부 구조적 특성이 도움이 될 수 있습니다.
오카모토 요시오

1
@Yoshio : 좋은 지적입니다. 순열 게임은 그래프 게임과 동형이지만 시작 그래프는 임의적이지 않습니다. 따라서 일반 그래프 게임을 분석하기 어려운 경우에도이 하위 클래스 그래프로 제한 될 때 더 단순 해 질 수 있습니다.
mjqxxxx

2
다른 한편으로,보다 일반적인 공식은 어렵다는 것을 쉽게 증명할 수 있습니다. 정점 삭제 게임의 변형은 PSPACE 하드, 예를 들면 것으로 알려져 있습니다 emis.ams.org/journals/INTEGERS/papers/a31int2005/a31int2005.pdf
Jeffε을

2
나는이 종류의 게임에 대한 질문을 특별히 math.SE ( math.stackexchange.com/questions/95895/… )에서 추가했습니다. 또한, 순열 그래프는 원형 그래프이므로 대체 공식은 다음과 같습니다. 플레이어는 초기 세트에서 코드를 교대로 제거합니다. 교차하지 않는 코드 세트를 떠나는 플레이어가 승자입니다.
mjqxxxx

7

ihihihi3,3,2,1입니다. 나는 domotorp의 답변에 대한 의견 으로이 게임의 분석을 시도했지만 (a) 내가 잘못했고 (b) 의견에 실제 증거를 줄 충분한 공간이 없습니다.

st=i2,hi>2hi2

  1. ts2

  2. ts

ts

이것이 (1) 또는 (2)가 아닌 모든 위치에서 첫 번째 플레이어가 한 번에 카테고리 (1) 또는 (2)의 위치에 도달 할 수 있음을 보여 주어야합니다. 또는 직접 승리.

두 가지 경우가 있습니다.

  1. ts1s>0tss=0ts

  2. ts1tsts2

이 전략을 원래 게임에 일반화하려고 시도했지만 어떻게해야하는지 알지 못했습니다.


1
내 대답에 따르면,이 특수 사례에 대한 솔루션을 보유하면 Young 다이어그램을 조옮김으로써 얻은 "이중"위치에서 재생함으로써 일련의 감소하는 실행으로 특수 사례를 해결할 수 있다고 언급했습니다. 특히 Eve의 최적 전략은 "크기가 정확히 두 개가 아니라면 가장 큰 힙에서 가져옵니다"가되고 오토의 최적 전략은 "가장 작은 힙에서 가져옵니다"가됩니다.
mjqxxxx

나는이 접근법이 완벽한 해결책으로 이어질 것이라고 확신하지만, 현재로서는 (3,1)이 잃지 않고 (3,1,1)과 같은 사소한 실수가 여전히 있습니다. 문제는 한 단계에서 하나의 힙 위치에 도달 할 수 있기 때문에 2의 정의는이 경우를 제외해야한다는 것입니다. 그러나 나는 이것이 2의 유일한 문제라고 생각하며 그것을 고치기가 어렵지 않기를 바랍니다.
domotorp

1

물론, 나는 그 부분을 마지막에 잊어 버렸습니다 ... 그러면이 게임이 해결되었습니다!
domotorp

1
완전한 대답은 아니지만 현상금의 가치가 있습니다.
Jeffε

3

빠른 가설 확인을 위해 솔루션을 구현했습니다 . 그것으로 놀아주십시오 . 로컬에 C ++ 컴파일러가없는 경우 "새 입력으로 업로드"링크를 사용하여 원격으로 다른 입력에서 실행할 수 있습니다.O(2nn)

@ Jɛ ff E 제안한대로 (1,4,3,2)의 값은 * 2가 아니라 * 1입니다.


죄송합니다. 질문을 수정했습니다 : g (1,3,2) = mex {g (1,3), g (1,2), g (3,2)} = mex {0, 0, * 1} = * 2.
Jeffε

@ Jɛ ff E 어떤 위치의 SG 값이 2보다 크지 않다는 것이 흥미 롭습니다. 임의의 대해 지금 그것을 증명하려고 노력하고 있지만 어떻게 도움이 될지 모르겠습니다. Nn10n
Dmytro Korduban

@maldini : 게임에 좋은 속성이있어서 다루기 쉬울 수 있기를 바랍니다. 그래프로 일반화 된 게임이나 완벽한 그래프로 일반화 된 게임이 어떻게되는지 궁금합니다.
피터 쇼어

3

1 월 5 일 수정 : 실제로 아래에 설명 된 1 개의 힙 게임은 문제의 특별한 경우입니다. 즉, 숫자가 특정 방식으로 서로 뒤따를 때 첫 번째 그룹이 세 번째 그룹보다 큰 두 번째 그룹보다 큰 경우 각 그룹의 숫자가 증가하고 있습니다. 예를 들어 8, 9, 4, 5, 6, 7, 2, 3, 1은 그러한 순열입니다. 그래서 나는이 특별한 경우를 먼저 해결하도록 제안합니다.

면책 조항 : 나는 더 이상 아래 증거가 정확하다고 주장하지 않습니다. 예를 들어 순열에서 숫자를 삭제하면 순열 다이어그램에서 사각형을 삭제하여 얻을 수없는 다이어그램을 얻을 수 있음을 보여주는 Tsuyoshi의 의견을 참조하십시오. 나는이 접근법이 작동하지 않는다는 것을 보여주기 위해 여기에 답을 남겼으며, 다른 간단한 게임이 포함되어 있기 때문에.

이 게임은 Young Tableaux 덕분에 매우 간단한 다른 공식을 가지고 있습니다. 다른 게임처럼 분석 할 수 있으며 선형 시간 알고리즘이 생성됩니다.

먼저 Young Diagrams에서 다음 게임을 정의하십시오. 매 턴마다 현재 다이어그램이 가로 (한 줄의 모든 사각형)이면 현재 플레이어가 패배하고 다른 플레이어가 승리합니다. 그렇지 않으면 현재 플레이어가 오른쪽 아래 사각형 중 하나를 제거하고 다른 플레이어에게 패스를 전달합니다.

이제 일련의 숫자를 Young Tableaux로 주문하십시오. 주요 주장은 원래 게임의 승자가이 형태로 시작하는 다이어그램 게임의 승자와 동일하다는 것입니다. 이를 확인하기 위해 플레이어가 숫자를 삭제할 때마다 다이어그램의 오른쪽 아래 사각형을 삭제하여 새 시퀀스의 다이어그램을 얻을 수 있습니다. 또한, 각각의 오른쪽 아래 정사각형에서 숫자를 삭제하면 이러한 다이어그램을 얻을 수 있습니다. 이 진술은 표준 젊은 Tableaux 이론을 따릅니다.

이 다이어그램 게임은 충분히 간단하지만 다음 게임과 거의 동일합니다.

하나의 힙 게임 : 플레이어는 각각 자갈이있는 더미를받습니다. 매 턴마다 남은 힙이 하나만 있으면 현재 플레이어가 패배하고 다른 플레이어가 승리합니다. 그렇지 않으면 현재 플레이어는 힙에서 조약돌을 제거하고 다른 플레이어에게 패스를 전달합니다.

힙 게임에 대한 간단한 해결책이 있다면 (그리고 나는 강력하게 생각합니다) 우리는 또한 원래 게임에 대한 해결책을 얻습니다. 시퀀스를 Young Tableaux에 넣고 다이어그램을 힙으로 변환하십시오.

불행히도 Sprague–Grundy 값을 결정하는 방법 / 어떻게 힙 위치를 볼 수 없습니다. 손으로 몇 가지 사례를 확인했으며 최대 6 개의 자갈이있는지는 위치는 다음과 같습니다.

하나의 힙; (1,1,1); (2,2); (3,1,1); (2,1,1,1); (1,1,1,1,1); (4,2); (3,3); (2,2,2).

누구나이 게임을 해결할 수 있습니까?

편집 : 피터 쇼어가 대답을 볼 수 있습니다!


1
특정 순열이 Young Tableau로 바뀌는 방법과 동일한 게임 (오름차순에 도달 할 때까지 번호 제거)이 Tableau에서 재생되는 방법을 보여주는 적어도 하나의 예를 제공 할 수 있습니까? 특히 "오른쪽 아래 사각형 중 하나"를 제거하는 것이 무엇을 의미하는지 이해하지 못합니다.
mjqxxxx

5
다음은 순열에서 숫자를 제거하는 것이 (Young tableau 대신) 해당하는 젊은 다이어그램 에서 오른쪽 아래 셀 중 하나를 제거하는 것에 해당한다는 약한 주장에 대한 반례 입니다. n = 5라고하고 순열 [4,1,3,5,2]로 지정된 위치 (즉, σ (1) = 4, σ (2) = 1 등)를 고려하고 3을 제거합니다. 이것으로부터. 이동 전의 해당 영 다이어그램은 5 = 3 + 1 + 1이지만 이동 후의 해당 영 다이어그램은 4 = 2 + 2이며, 3 + 1 + 1에서 하나의 셀을 제거하면 얻을 수 없습니다.
Ito Tsuyoshi

5
그리고 순열 [5,4,1,2,3]은 [4,1,3,5,2]와 동일한 영 다이어그램을 가지지 만 영 다이어그램 4 = 2 + 2에 도달 할 수는 없습니다. 따라서 게임은 Young tableau의 모양 이상에 달려 있습니다.
Peter Shor

2
건설적인 오해를위한 만세!
Jeffε

3
@ Jɛ ff E : 네, 이것은 단지 오해가 있다는 증거보다 훨씬 더 유용합니다.
Ito Tsuyoshi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.