Sprague-Grundy-toimintoa käytetään laajasti peliteoriassa voittostrategian löytämiseen kombinatorisissa peleissä, kuten Nîmesin pelissä . Sprague-Grundy-toiminto on määritelty kahden pelaajan peleihin, joissa pelaaja, joka ei pysty tekemään uutta siirtoa, häviää.
Erillisten pelien tapauksessa sitä kutsutaan joskus nimberiksi .
Sprague-Grundyn lause on yleinen päätelmä tuloksista, jotka R. Sprague (1935) ja P. M. Grandy (1939) ovat todenneet ja todenneet itsenäisesti. Se koostuu siitä tosiasiasta, että jokaisessa puolueettomassa pelissä , jossa viimeisen liikkeen tehnyt pelaaja voittaa, jokaiselle positiolle määritetään yksilöllisesti Sprague-Grundy-funktion arvo, joka määrittää voittostrategian tai sen puuttumisen.
Sprague-Grundy-funktio on funktio F, joka on määritetty x :lle ja joka ottaa ei-negatiivisia arvoja, kuten:
missäNäin ollen F( x ) on pienin ei-negatiivinen kokonaisluku, jota ei löydy tietyn x :n Sprague-Grundy-arvoista .
Määritelmä 2Funktio F määritellään kaikkien pelipaikkojen joukkoon seuraavasti:
jos asema P on yksiselitteisesti häviämässä (liikettä ei voida tehdä) muuten,missä on joukko ei-negatiivisia kokonaislukuja ja on kaikkien sallittujen siirtojen joukko paikasta P .
Yksi Sprague-Grundy-funktion hyödyllisistä ominaisuuksista on, että se on nolla kaikille tappiollisille positioille ja positiivinen kaikille voittosijoille. Tämä antaa menetelmän voittaa strategia:
Jos meillä on pelejä , niin voimme harkita näiden pelien yhdistelmää, jossa pelikenttä koostuu joukosta pelikenttiä ja yhdellä liikkeellä pelaaja voi valita joitain ja tehdä liikkeen pelikentällä pelaamista varten . Tällaista yhdistelmää kutsutaan pelien summaksi ja sitä merkitään . Tilanne pelin pelikentällä , kun pelin pelikenttä on paikoillaan , merkitään kätevästi nimellä .
Sprague-Grundy-toiminnolla on yllättävä ominaisuus, jonka avulla voit pelata optimaalisesti pelien summaa , kun tiedät Sprague-Grundy-toiminnon jokaisen pelin kaikissa asemissa . Se on muotoiltu seuraavasti:
missä - yksinomainen "tai" (alias XOR).
Siellä on alue, joka koostuu 10 solusta. Kaksi pelaajaa pelaa. Yhdellä siirrolla alue on sallittu jakaa kahteen epätasaiseen nollasta poikkeavaan alueeseen, jotta kunkin yksittäisen solun yhtenäisyyttä ei rikota (eli solua ei voida jakaa). Se, joka ei pysty liikkumaan, häviää. Kuka voittaa oikean reilun pelin ehdoilla?
RatkaisuOngelma ratkeaa loppuun asti. Harkitse vaihtoehtoja alueen jakamiseksi kaikille tapauksille 1 - 10 soluun ja löydä niille Sprague-Grandy-funktion arvot. Huomaa, että tässä pelissä Sprague-Grundy-funktion arvo saadaan käyttämällä Nim-summaa , koska alue jaetaan joka kerta kahdeksi uudeksi alueeksi .
Sprague-Grundyn arvo arvolle n = 10 osoittautuu 0:ksi. Näin ollen pelaaja, joka tekee ensimmäisen liikkeen, häviää. Jokaisessa siirrossaan toinen pelaaja siirtyy paikkoihin 4 + 4 tai n = 1/2/7, jolle Sprague-Grundy-arvo on myös 0.
VastausSe, joka liikkuu toiseksi, voittaa.