Redux permutasi game

20

Ini adalah pernyataan kembali dari pertanyaan sebelumnya .

Pertimbangkan permainan informasi sempurna yang tidak memihak antara dua pemain, Alice dan Bob. Para pemain diberi permutasi bilangan bulat 1 sampai n. Di setiap belokan, jika permutasi saat ini meningkat, pemain saat ini kalah dan pemain lain menang; jika tidak, pemain saat ini menghapus salah satu angka, dan memainkan pass ke pemain lain. Alice bermain terlebih dahulu. Sebagai contoh:

  • (1,2,3,4) - Bob langsung menang, menurut definisi.

  • (4,3,2,1) - Alice menang setelah tiga putaran, tidak peduli bagaimana orang bermain.

  • (2,4,1,3) - Bob bisa menang pada giliran pertamanya, tidak peduli bagaimana Alice bermain.

  • (1,3,2,4) - Alice segera menang dengan menghapus 2 atau 3; jika tidak, Bob dapat menang pada giliran pertamanya dengan menghapus 2 atau 3.

  • (1,4,3,2) - Alice akhirnya menang jika dia mengambil angka 1 pada giliran pertama; jika tidak, Bob bisa menang pada giliran pertamanya dengan tidak melepas 1.

Apakah ada algoritma waktu polinomial untuk menentukan pemain mana yang memenangkan game ini dari permutasi awal yang diberikan, dengan asumsi bermain sempurna ? Lebih umum, karena ini adalah permainan standar yang tidak memihak, setiap permutasi memiliki nilai Sprague-Grundy ; misalnya, (1,2,4,3) memiliki nilai * 1 dan (1,3,2) memiliki nilai * 2. Seberapa sulit untuk menghitung nilai ini?

Algoritma backtracking yang jelas berjalan dalam waktu O (n!), Meskipun ini dapat direduksi menjadi waktu melalui pemrograman dinamis.O(2npoly(n))

Jeffε
sumber
4
Menurut saya algoritma naif berjalan dalam waktu O (2 ^ npoly (n)).
Tsuyoshi Ito
Dari contoh Anda, jelas bahwa Alice selalu menang jika urutannya menurun dan Bob selalu menang jika urutannya naik. Masalah ini mengingatkan saya pada menganalisis algoritma penyortiran, yang telah dipelajari secara luas dan memungkinkan Anda untuk menggunakan gudang alat yang luas.
chazisop
1
@ chazisop: “Alice selalu menang jika urutannya menurun”: Itulah yang terjadi jika dan hanya jika n adalah genap.
Tsuyoshi Ito
@ Jɛ ff E dalam kasus 3, bagaimana Bob menang pada giliran pertamanya?
Suresh Venkat
2
@ Suresh: Dalam kasus (2,4,1,3), representasi grafik adalah grafik linier pada 4 simpul (2-1-4-3). Jika Alice menghilangkan titik akhir, ini meninggalkan grafik linier pada 3 simpul; Bob menang dengan menghapus simpul tengah (jadi 3 dijawab oleh 1, dan 2 dijawab oleh 4). Jika Alice menghilangkan simpul interior, ini menyisakan dua simpul yang terhubung dan simpul yang terisolasi; Bob menang dengan menghapus salah satu dari dua simpul yang terhubung (jadi 1 dijawab oleh 3 atau 4, dan 4 dijawab oleh 1 atau 2).
mjqxxxx

Jawaban:

7

"Permutasi game" isomorfik untuk gim berikut:

Memutuskan. Pemain bergantian menghapus simpul dari graf . Pemain yang menghasilkan grafik yang terputus sepenuhnya (yaitu, grafik tanpa tepi) adalah pemenangnya.G

Grafik berhubungan dengan permutasi awal tertentu π S n berisi hanya sisi-sisi tersebut ( i , j ) yang i - j dan π ( i ) - π ( j ) memiliki tanda-tanda yang berlawanan. Artinya, setiap pasangan angka salahGππSn(i,j)ijπ(i)π(j)urutan permutasi dikaitkan dengan edge. Jelas gerakan yang diizinkan adalah isomorfis bagi yang ada dalam permutasi permainan (hapus angka = hapus simpul), dan kondisi yang menang adalah isomorfik juga (tidak ada pasangan dalam urutan menurun = tidak ada tepi yang tersisa).

Pandangan komplementer diperoleh dengan mempertimbangkan memainkan game "ganda" pada komplemen grafik , yang berisi tepi-tepi ( i , j ) yang i dan j berada dalam urutan yang benar dalam permutasi. Game ganda untuk Putus adalah:Gπc=GR(π)(i,j)ij

Hubungkan kembali. Pemain bergantian menghapus simpul dari graf . Pemain yang menghasilkan grafik lengkap adalah pemenangnya.G

Bergantung pada permutasi tertentu, salah satu game ini mungkin tampak lebih sederhana daripada yang lain untuk dianalisis. Keuntungan dari representasi grafik adalah jelas bahwa komponen-komponen grafik yang terputus adalah permainan yang terpisah, sehingga orang berharap untuk pengurangan kompleksitas. Itu juga membuat simetri posisi lebih jelas. Sayangnya, kondisi yang menang tidak standar ... permutasi permainan akan selalu berakhir sebelum semua gerakan habis, memberikannya karakter misère . Secara khusus, nim-nilai tidak dapat dihitung sebagai nim-sum (biner XOR) dari nim-nilai komponen yang terputus.


Untuk Putus, tidaklah sulit untuk melihat bahwa untuk grafik setiap dan setiap bahkan n , permainan G ˉ K n setara dengan G (di mana ˉ K n adalah grafik edgeless pada n simpul). Untuk membuktikannya, kita harus menunjukkan bahwa jumlah disjungtif G + G ˉ K n adalah kemenangan pemain kedua. Buktinya adalah dengan induksi pada | G | + n . Jika GGnGK¯nGK¯nnG+GK¯n|G|+nGedgeless, maka pemain pertama langsung kalah (kedua game berakhir). Jika tidak, pemain pertama dapat bergerak di salah satu , dan pemain kedua dapat menyalin gerakannya di yang lain (dikurangi menjadi G + G ¯ K n dengan | G | = | G | - 1 ); atau, jika n 2 , pemain pertama dapat bergerak di bagian yang terputus, dan pemain kedua dapat melakukan hal yang sama (dikurangi menjadi G + G ˉ K n - 2 ).GG+GKn¯|G|=|G|1n2G+GK¯n2

Ini menunjukkan bahwa setiap graf adalah setara dengan H K p , di mana H adalah bagian dari G tanpa simpul terputus, dan p = 0 atau 1 adalah paritas dari jumlah simpul terputus di G . Semua game di kelas kesetaraan memiliki yang sama nim-nilai, dan terlebih lagi, kesetaraan hubungan hal operasi union: jika G ~ H K p dan G ' ~ H 'K p ' kemudian GGHKpHGp=01GGHKpGHKp . Selain itu, orang dapat melihat bahwa permainan di [ H K 0 ] dan [ H K 1 ] memiliki nilai nim yang berbeda kecuali H adalah grafik nol: ketika bermain H + H K 1 , pemain pertama dapat mengambil yang terisolasi simpul, meninggalkan H + H , dan kemudian menyalin gerakan pemain kedua sesudahnya.GG(HH)Kpp[HK0][HK1]HH+HK1H+H

Saya tidak tahu hasil dekomposisi terkait untuk Hubungkan kembali.


Dua jenis permutasi khusus berhubungan dengan game heap yang sangat sederhana.

  1. Yang pertama adalah menaik menjalankan dari keturunan , misalnya, . Ketika π mengambil formulir ini, grafik G π adalah gabungan dari klik-klik yang terpisah, dan permainan Disconnect dikurangi menjadi sebuah game dengan tumpukan: pemain secara bergantian menghapus satu kacang dari tumpukan sampai semua tumpukan memiliki ukuran 1 .32165487πGπ1
  2. Yang kedua adalah penurunan yang naik , misalnya, . Ketika π mengambil formulir ini, grafik G c π adalah gabungan klik yang terputus-putus, dan gim Reconnect mengecil menjadi gim dengan tumpukan: pemain secara bergantian melepas satu biji dari tumpukan sampai hanya ada satu tumpukan yang tersisa .78456123πGπc

Sebuah pemikiran kecil menunjukkan bahwa dua permainan berbeda ini bertumpuk (kita dapat menyebutnya 1-Tumpukan dan Satu Tumpukan , dengan beberapa risiko kebingungan), pada kenyataannya, itu sendiri isomorfis. Keduanya dapat diwakili oleh permainan pada diagram Young (seperti yang awalnya diusulkan oleh @domotorp) di mana pemain secara bergantian menghapus kotak kanan bawah sampai hanya satu baris yang tersisa. Ini jelas merupakan game yang sama dengan 1-Heaps ketika kolom sesuai dengan heaps, dan game yang sama dengan One-Heap ketika baris sesuai dengan heaps.

Elemen kunci dari game ini, yang meluas ke Disconnect dan Reconnect, adalah durasinya terkait dengan status game final dengan cara yang sederhana. Saat giliran Anda tiba, Anda akan menang jika gim masih tersisa, termasuk gim yang akan Anda buat. Karena satu kotak dihapus setiap gerakan, ini berarti Anda ingin jumlah kotak yang tersisa di akhir permainan memiliki paritas yang berlawanan dengan yang ada sekarang. Selain itu, jumlah kotak akan memiliki paritas yang sama di semua belokan Anda; jadi Anda tahu dari awal berapa paritas yang Anda inginkan untuk penghitungan akhir. Kita dapat memanggil dua pemain Eve dan Otto, berdasarkan apakah penghitungan akhir harus genap atau ganjil bagi mereka untuk menang. Hawa selalu bergerak di negara-negara dengan paritas ganjil dan menghasilkan negara-negara dengan paritas genap, dan Otto sebaliknya.

Dalam jawabannya, @PeterShor memberikan analisis lengkap One-Heap. Tanpa mengulangi buktinya, hasilnya adalah sebagai berikut:

  • Otto suka heaps dan 2- heaps, dan bisa mentolerir tumpukan yang lebih besar. Dia menang jika dia dapat membuat semua ukuran tumpukan kecuali satu 2 , setidaknya tanpa memberi Hawa kemenangan langsung dari formulir ( 1 , n ) . Strategi optimal untuk Otto adalah untuk selalu mengambil dari tumpukan terbesar kedua kecuali ketika negara adalah ( 1 , 1 , n > 1 ) , ketika ia harus mengambil dari n . Otto akan kalah jika terlalu banyak kacang dalam tumpukan besar untuk memulai.122(1,n)(1,1,n>1)n
  • Eve tidak suka -heaps. Dia menang jika dia dapat membuat semua ukuran tumpukan 2 . Strategi optimal untuk Hawa adalah selalu mengambil dari 1- heap, jika ada, dan tidak pernah mengambil dari 2- heap. Hawa akan kalah jika terlalu banyak 1- tumpukan untuk memulai.12121

Seperti disebutkan, ini memberikan strategi optimal untuk 1-Heaps juga, walaupun mereka agak canggung untuk frase (dan saya mungkin membuat kesalahan dalam "terjemahan" primer-ke-ganda). Dalam game 1-Heaps:

  • Otto menyukai satu atau dua tumpukan besar, dan dapat mentoleransi jumlah tumpukan. Dia menang jika dia bisa membuat semua kecuali dua tumpukan terbesar menjadi 1- tumpukan, setidaknya tanpa memberi Hawa kemenangan langsung dari formulir ( 1 , 1 , , 1 , 2 ) . Strategi optimal untuk Otto adalah selalu mengambil dari tumpukan terbesar ketiga, atau dari tumpukan kecil ketika hanya ada dua tumpukan.11(1,1,,1,2)
  • Eve tidak menyukai celah antara tumpukan terbesar dan terbesar kedua. Dia menang jika dia bisa membuat dua tumpukan terbesar dengan ukuran yang sama. Strategi optimal untuk Hawa adalah selalu mengambil dari tumpukan terbesar, jika unik, dan tidak pernah jika ada tepat dua dari ukuran terbesar.

Sebagaimana dicatat oleh @PeterShor, tidak jelas bagaimana (atau jika) analisis ini dapat diperluas ke permainan Putus dan Hubungkan kembali yang lebih umum.

mjqxxxx
sumber
2
Saya berpikir bahwa jenis permainan ini secara kolektif disebut sebagai "permainan penghapusan titik." sebuah titik.
Tsuyoshi Ito
4
Grafik yang dibangun disebut grafik permutasi ( en.wikipedia.org/wiki/Permutation_graph ) dalam literatur. Beberapa sifat struktural mungkin membantu.
Yoshio Okamoto
1
@Yoshio: Itu poin yang bagus. Game permutasi isomorfik untuk permainan grafik, tetapi grafik awal tidak sembarang. Jadi bahkan jika permainan grafik umum sulit untuk dianalisis, ada kemungkinan bahwa ketika dibatasi untuk subkelas grafik ini, itu menjadi lebih sederhana.
mjqxxxx
2
Di sisi lain, formulasi yang lebih umum mungkin lebih mudah untuk dibuktikan dengan keras. Varian dari game vertex- delection
Jeff
2
Saya telah menambahkan pertanyaan pada game jenis ini khususnya di math.SE ( math.stackexchange.com/questions/95895/… ). Secara kebetulan, karena grafik permutasi adalah grafik lingkaran, formulasi alternatif adalah sebagai berikut: Pemain bergiliran melepas akor dari set awal; pemain yang meninggalkan seperangkat akord yang tidak berpotongan adalah pemenangnya.
mjqxxxx
7

Dalam jawabannya, domotorp menyarankan untuk menganalisis kasus khusus permainan. Kasus khusus ini muncul ketika permutasi adalah serangkaian urutan meningkat, masing-masing lebih besar dari yang berikut, seperti (8,9,5,6,7,4,1,2,3). Dalam permainan ini, Anda mulai dengan koleksi tumpukan batu, dan pemain secara bergantian menghapus satu batu dari tumpukan. Pemain yang meninggalkan satu tumpukan menang. Kami akan mengatakan tumpukan th memiliki h i batu di dalamnya, dan menganggap bahwa h i diberikan dalam urutan menurun. Misalnya, untuk permutasi di atas, h iihihihiadalah 3,3,2,1. Saya mencoba memberikan analisis permainan ini di komentar untuk jawaban domotorp, tetapi (a) saya salah dan (b) tidak ada cukup ruang di komentar untuk memberikan bukti nyata.

Untuk menganalisis permainan ini, kita perlu membandingkan dua jumlah: , jumlah tumpukan yang mengandung batu tunggal dan t = i 2 , h i > 2s ; perhatikan bahwa kita mengabaikan tumpukan terbesar dalam jumlah. Ini adalah jumlah batu yang harus Anda hapus untuk memastikan bahwa semua timbunan tetapi satu berisi tidak lebih dari dua batu. Kami mengklaim bahwa posisi yang hilang adalah sebagai berikut:t=i2,hi>2hi2

  1. Posisi di mana berisi jumlah batu ganjil.ts2

  2. Posisi di mana berisi jumlah batu genap.ts

Sangat mudah untuk menunjukkan bahwa dari posisi yang kalah, Anda harus pergi ke posisi yang menang, karena hanya dapat berubah paling banyak 1 setiap belokan, dan jumlah batu turun 1 langkah.ts

Untuk menyelesaikan menunjukkan bahwa ini benar, kita perlu menunjukkan bahwa dari posisi apa pun yang tidak dalam kategori (1) atau (2), pemain pertama dapat dalam satu gerakan mencapai posisi dalam kategori (1) atau (2), atau menang langsung.

Ada dua kasus:

  1. Posisi di mana berisi jumlah batu ganjil. Di sini, jika s > 0 , lepaskan batu dari tumpukan dengan satu batu. Jika hanya ada satu tumpukan yang tersisa, kita menang. Kalau tidak, sekarang kita memiliki t s . Jika tidak ada tumpukan dengan satu batu, lepaskan batu dari tumpukan dengan setidaknya tiga batu. (Karena ada jumlah batu yang ganjil, ini mungkin). Karena s = 0 , kita memiliki t s .ts1s>0tss=0ts

  2. ts1tsts2

Saya sudah mencoba menyamaratakan strategi ini ke gim asli, dan belum menemukan cara melakukannya.

Peter Shor
sumber
1
Dalam jawaban saya, saya mencatat bahwa memiliki solusi untuk kasing khusus ini juga memecahkan kasing khusus dengan serangkaian peningkatan run menurun, dengan bermain di posisi "ganda" yang diperoleh dengan mentransposkan diagram Young. Secara khusus, strategi optimal Hawa menjadi "ambil dari tumpukan terbesar, kecuali ada dua ukuran itu", dan strategi optimal Otto menjadi "ambil dari tumpukan terkecil".
mjqxxxx
Saya yakin bahwa pendekatan ini akan mengarah ke solusi yang sempurna, tetapi saat ini masih ada kesalahan kecil, misalnya (3,1) tidak kalah dan (3,1,1). Masalahnya adalah bahwa definisi 2. harus mengecualikan kasus ini, karena kita dapat mencapai posisi satu tumpukan dalam satu langkah. Tapi saya pikir ini adalah satu-satunya masalah dengan 2. dan semoga tidak sulit untuk memperbaikinya.
domotorp
1
Tentu saja, saya lupa bagian itu di akhir ... Maka game ini terpecahkan!
domotorp
1
Bukan jawaban yang lengkap, tetapi masih sepadan dengan karunia.
Jeffε
3

O(2nn)

@ Jɛ ff E Kebetulan (1,4,3,2) memiliki nilai * 1, bukan * 2 seperti yang Anda sarankan.

Dmytro Korduban
sumber
Ups, kesalahan saya. Memperbaiki pertanyaan: g (1,3,2) = mex {g (1,3), g (1,2), g (3,2)} = mex {0, 0, * 1} = * 2.
Jeffε
n10n
@Maldini: ini memberi harapan bahwa permainan memiliki beberapa sifat yang bagus, yang mungkin membuatnya bisa ditelusuri. Saya ingin tahu apa yang terjadi pada game yang digeneralisasikan ke grafik, atau game yang digeneralisasikan ke grafik yang sempurna.
Peter Shor
3

Sunting 5 Jan: Faktanya One Heap Game yang dijelaskan di bawah ini adalah kasus khusus dari masalah, yaitu ketika angka-angka saling mengikuti dengan cara tertentu sehingga kelompok pertama lebih besar dari kelompok kedua yang lebih besar dari yang ketiga dll dan jumlah di masing-masing kelompok meningkat. Misalnya 8, 9, 4, 5, 6, 7, 2, 3, 1 adalah permutasi yang demikian. Jadi saya mengusulkan untuk menyelesaikan kasus khusus ini terlebih dahulu.

Penafian: Saya tidak lagi mengklaim bahwa bukti di bawah ini benar, lihat misalnya komentar Tsuyoshi yang menunjukkan bahwa menghapus nomor dari permutasi akan memberikan diagram yang tidak dapat diperoleh dengan menghapus kuadrat dari diagram permutasi. Saya meninggalkan jawaban di sini untuk menunjukkan bahwa pendekatan ini tidak berhasil, ditambah lagi karena berisi permainan sederhana lainnya.

Permainan ini memiliki formulasi lain yang sangat sederhana berkat Young Tableaux. Saya yakin itu bisa dianalisis dari sana sebagai game lain dan itu akan menghasilkan algoritma waktu linier.

Pertama-tama tentukan permainan berikut pada Young Diagram: Di setiap belokan, jika diagram saat ini adalah horisontal (semua kotak dalam satu baris), pemain saat ini kalah dan pemain lain menang; jika tidak, pemain saat ini menghapus salah satu kotak di kanan bawah, dan bermain melewati ke pemain lain.

Sekarang pesan urutan angka menjadi Tableaux Muda. Klaim utama adalah bahwa pemenang dari game asli sama dengan pemenang seperti diagram game yang dimulai dengan bentuk ini. Untuk melihat ini, perhatikan bahwa setiap kali pemain menghapus angka, diagram urutan baru dapat dicapai dengan menghapus kuadrat kanan bawah diagram. Selain itu, diagram semacam itu dapat dicapai dengan menghapus nomor dari masing-masing kotak kanan bawah. Pernyataan-pernyataan ini mengikuti dari teori Young Tableaux standar.

Meskipun permainan diagram ini cukup sederhana, ini sepele setara dengan permainan berikut, yang tampaknya lebih standar:

Satu Heap Game: Para pemain diberi beberapa tumpukan dengan beberapa kerikil di masing-masing. Di setiap belokan, jika hanya ada satu tumpukan yang tersisa, pemain saat ini kalah dan pemain lainnya menang; jika tidak, pemain saat ini menghilangkan sebuah kerikil dari tumpukan, dan bermain melewati ke pemain lain.

Jika ada solusi sederhana untuk game heap (dan saya sangat percaya ada game) kami juga mendapatkan solusi untuk game original: Cukup masukkan urutannya dalam Young Tableaux, dan ubah diagramnya menjadi banyak.

Sayangnya saya tidak melihat posisi tumpukan mana yang menang / bagaimana menentukan nilai Sprague-Grundy. Saya memeriksa beberapa kasing dengan tangan, dan berikut ini adalah posisi yang hilang dengan paling banyak 6 kerikil:

satu tumpukan; (1,1,1); (2,2); (3,1,1); (2,1,1,1); (1,1,1,1,1); (4,2); (3,3); (2,2,2).

Adakah yang bisa menyelesaikan game ini?

Sunting: Peter Shor dapat, lihat jawabannya!

domotorp
sumber
1
Bisakah Anda memberikan setidaknya satu contoh yang menunjukkan bagaimana permutasi tertentu diubah menjadi Tablo Muda dan bagaimana permainan yang sama (penghilangan angka sampai urutan naik tercapai) dimainkan di Tablo? Secara khusus saya tidak mengerti apa artinya menghapus "salah satu kotak kanan bawah".
mjqxxxx
5
Berikut adalah contoh tandingan terhadap klaim yang lebih lemah bahwa menghapus nomor dari permutasi berhubungan dengan menghapus salah satu sel kanan bawah dari diagram Young yang sesuai (bukan tablo Young ). Misalkan n = 5, dan pertimbangkan posisi yang ditentukan oleh permutasi [4,1,3,5,2] (yaitu, σ (1) = 4, σ (2) = 1, dan seterusnya), dan hapus 3 dari itu. Diagram Young yang sesuai sebelum pindah adalah 5 = 3 + 1 + 1, tetapi diagram Young yang sesuai setelah pindah adalah 4 = 2 + 2, yang tidak diperoleh dari mengeluarkan satu sel dari 3 + 1 + 1.
Tsuyoshi Ito
5
Dan permutasi [5,4,1,2,3] memiliki diagram Young yang sama dengan [4,1,3,5,2], tetapi Anda tidak dapat mencapai diagram Young 4 = 2 + 2 darinya. Jadi permainannya lebih bergantung pada bentuk tablo Young.
Peter Shor
2
Hore untuk kesalahpahaman yang konstruktif!
Jeff
3
@ Jɛ ff E: Ya, ini jauh lebih berguna daripada sekadar bukti adanya kesalahpahaman.
Tsuyoshi Ito