Funkce Sprague-Grundy

Funkce Sprague-Grundy je široce používána v teorii her k nalezení vítězné strategie v kombinatorických hrách, jako je hra Nîmes . Funkce Sprague-Grundy je definována pro hry pro dva hráče, ve kterých prohrává hráč, který není schopen provést další tah.

V případě diskrétních her, někdy nazývaných nimber .

Sprague-Grundyho teorém je obecná dedukce z výsledků, které nezávisle uvedli a dokázali R. Sprague (1935) a P. M. Grandy (1939). Spočívá v tom, že pro jakoukoli nestrannou hru , kde vyhrává hráč, který provedl poslední tah, je pro každou pozici jednoznačně určena hodnota funkce Sprague-Grundy, která určuje vítěznou strategii nebo její absenci.

Definice

Definice 1

Sprague-Grundy funkce je funkce F definovaná pro x a nabývající nezáporných hodnot tak, že:

kde

F( x ) je tedy nejmenší nezáporné celé číslo, které nebylo nalezeno mezi hodnotami Sprague-Grundy pro určité x .

Definice 2

Funkce F je definována na množině všech herních pozic následovně:

pokud pozice P  jednoznačně prohrává (nelze provést žádný tah) v opačném případě,

kde  je množina nezáporných celých čísel a  je množina všech povolených tahů z pozice P .

Základní vlastnosti

  1. Je-li x  konečná pozice, pak F( x ) = 0. Pozice x , pro které F( x ) = 0 jsou P-pozice (prohrává pro hráče, který je na řadě), zatímco všechny ostatní pozice jsou H- pozice (výhra pro hráče, který je na řadě, aby provedl tah). Vítěznou strategií je zvolit v každém kroku tah, ve kterém je hodnota Sprague-Grundy nulová.
  2. Z pozice x , pro kterou F( x ) = 0, jsou pouze tahy do pozice y takové, že F( y ) ≠ 0.
  3. Z pozice x , pro kterou F( x ) ≠ 0, je alespoň jeden tah do pozice y , pro kterou F( y ) = 0.

Aplikace

Jednou z užitečných vlastností funkce Sprague-Grundy je, že je nula pro všechny prohrávající pozice a kladná pro všechny vítězné pozice. To poskytuje metodu pro nalezení vítězné strategie:

  1. Najděte funkci Sprague-Grundy například tak, že ji vytvoříte rekurzivně , počínaje od konečných pozic.
  2. Pokud je v počáteční pozici funkce Grundy rovna nule, pak je hra pro prvního hráče ztracena.
  3. V opačném případě může první hráč vyhrát přesunem každého tahu na pozici s nulovou hodnotou funkce Grundy.

Součet her

Pokud máme hry , pak můžeme uvažovat o kombinaci těchto her, u kterých je hrací pole tvořeno souborem hracích polí pro hry a jedním tahem si hráč může některá vybrat a provést tah na hrací ploše pro hraní . Taková kombinace se nazývá součet her a značí se . Situace na hracím poli hry , kdy je hrací pole hry v pozici , je vhodně označeno jako .

Funkce Sprague-Grundy má překvapivou vlastnost, která vám umožňuje optimálně hrát součet her , přičemž znáte funkci Sprague-Grundy pro všechny pozice každé z her . Je formulován následovně:

kde  - exkluzivní "nebo" (aka XOR).

Příklad

Úkol

K dispozici je oblast skládající se z 10 buněk. Hrají dva hráči. Jedním tahem je dovoleno rozdělit oblast na dvě nestejné nenulové oblasti tak, aby nebyla narušena jednota každé jednotlivé buňky (tj. buňku nelze rozdělit). Ten, kdo nemůže udělat tah, prohrává. Kdo vyhraje pod podmínkou korektního fair play?

Řešení

Problém je vyřešen od konce. Zvažte možnosti rozdělení oblasti pro všechny případy od 1 do 10 buněk a najděte pro ně hodnoty funkce Sprague-Grandy. Všimněte si, že pro tuto hru je v důsledku rozdělení oblasti pokaždé na dvě nové oblasti hodnota funkce Sprague-Grundy nalezena pomocí Nim-sumu .

Hodnota Sprague-Grundy pro n = 10 se ukáže jako 0. Hráč, který provede tah jako první, tedy prohrává. V kterémkoli ze svých tahů se druhý hráč přesune na pozice 4 + 4 nebo n = 1/2/7, pro které je hodnota Sprague-Grundy také rovna 0.

Odpovědět

Vyhrává ten, kdo se posune jako druhý.

Viz také

Odkazy