2.1 Osnovni pojmi 2 Nim Ga²per Ko²mrlj, 2. 3. 2009 Denicija 2.1 P-poloºaj je poloºaj, ki je izgubljen za igralca na potezi. N- poloºaj je poloºaj, ki je dobljen za igralca na potezi. Poloºaj je kon en, e ni ve moºnih potez. rditev 2.2 (Karakterizacija P- in N-poloºajev) Za P- in N-poloºaje velja: (1) Vsi kon ni poloºaji so P-poloºaji. (2) Iz vsakega N-poloºaja obstaja poteza v P-poloºaj. (3) Iz vsakega P-poloºaja, e le-ta ni kon ni, se lahko naredi poteza zgolj v N-poloºaj. Denicija 2.3 Nim-vsota ²tevil x = (x n,..., x 1 ) 2 in y = (y n,..., y 1 ) 2 je z = (z n,..., z 1 ) 2, kjer za vsak k, 1 k n, velja z k = x k + y k (mod 2). Oznaka: x y = z. Za poljubna tri cela, nenegativna ²tevila x,y,z velja: (1) x y = y x (komutativnost) (2) x (y z) = (x y) z (asociativnost) (3) x x = 0 (vsako ²tevilo je samo sebi inverz) (4) x y = x z y = z (sledi iz tretje to ke) 2.2 Nim z ve jim ²tevilom kupov Videli smo ºe, da sta nim z enim ali dvema kupoma trivialna, medtem ko je bil nim s tremi kupi ºe precej bolj zapleten. Naravno je pri akovati, da se bo teºavnost pove evala s tem, ko bomo pove evali ²tevilo kupov. Vendar temu ni tako, saj Boutonov izrek velja za poljubno, kon no mnogo kupov. Izrek 2.4 Poloºaj (x 1, x 2,..., x n ) v igri nim je P-poloºaj natanko tedaj, ko je nim-vsota enaka ni, tj. x 1 x 2... x n = 0. Dokaz: Naj bo P mnoºica poloºajev, ki ima nim-vsoto enako 0 in naj bo N mnoºica poloºajev, ki ima nim-vsoto ve jo od 0. Za ti dve mnoºici je treba preveriti, e veljajo vsi trije pogoji iz trditve o karakterizaciji P- in N-poloºajev. 1
(1) Vsi kon ni poloºaji so v P Edini kon ni poloºaj je (0, 0,..., 0), ko noben kup ne vsebuje nobenega ºetona. akrat je nim-vsota enaka 0, tj. 0 0... 0 = 0. (2) Iz vsakega poloºaja iz N obstaja premik v poloºaj iz P Najprej tvorimo nim-vsoto po stolpcih in poi² emo prvi stolpec z lihim ²tevilom enk gledano od leve proti desni strani. Nato spremenimo eno imed ²tevil, ki imajo v tem stolpcu enko tako, da je v vseh stolpcih sodo enk. Sedaj je nim-vsota enaka ni. aka poteza je dovoljena, ker smo ²tevilo zmanj²ali. orej smo skontruirali premik iz poloºaja iz N v poloºaj iz P. (3) Vsak premik iz poloºaja iz P vodi v poloºaj iz N Naj bo (x 1, x 2,..., x n ) poloºaj iz P. Izberemo poljuben j, 1 j n, da je x j 0. Naj bo x j < x j spremenjena vrednost x j. Denimo, da velja x 1... x j... x n = 0 = x 1... x j... x n. Potem bi po etrti lastnosti nim-vsote sledilo, da je x j = x j. o pa je protislovje. orej velja x 1... x j... x n 0, kar pomeni, da je poloºaj (x 1, x 2,..., x j,..., x n ) v N. Pokazali smo, da je P mnoºica P-poloºajev. Opomba: Iz to ke (2) vidimo, da je ²tevilo zmagovalnih potez enako ²tevilu enk v najbolj levem stolpcu nim-vsote, ki vsebuje enko. Iz tega sledi, da je ²tevilo zmagovalnih potez vselej liho. 2.3 Misère nim Boutonov izrek nam je pokazal, kako moramo igrati nim, e igramo po obi ajnih pravilih igre. Zanima pa nas ²e, kak²na je strategija igranja, e igramo "misère" nim, tj. zmagovalec igre je tisti, ki ostane brez potez. Boutonova metoda za igranje spremenjenega nima je naslednja: (1) Igramo, kot bi igrali po obi ajnih pravilih, toliko asa, dokler obstajata vsaj dva kupa, ki vsebujeta ve kot en ºeton. (2) V nekem trenutnku mora nasprotnik narediti tako potezo, da ostane natanko en kup z ve kot enim ºetonom. (3) Sedaj imamo za na²o potezo dve moºnosti: ƒe je ²tevilo kupov z natanko enim ºetonom sodo, iz kupa z ve kot enim ºetonom vzamemo vse razen enega ºetona. ƒe je ²tevilo kupov z natanko enim ºetonom liho, iz kupa z ve kot enim ºetonom vzamemo vse ºetone. 2
(4) Sedaj ºetone izmeni no vzemamo stran enega po enega. Ker jih je liho, nasprotnik vzame zadnjega. a strategija vedno deluje, kajti optimalna igra od nas nikoli ne zahteva, da pustimo natanko en kup z ve kot enim ºetonom (vaºno je le, da je vsota nim enaka 0). Poleg tega nasprotnik ne more narediti take poteze, da bi se naenkrat zmanj²ala dva kupa. Zaradi tega imamo v nekem trenutku poloºaj z natanko enim kupom, ki ima ve kot en ºeton, in takrat smo mi na vrsti za potezo. Zgled: (Naloga 2.2) Poi² i vse zmagovalne poteze v igri nim: (1) s tremi kupi po 12, 19 in 27 ºetonov. Iz prvega kupa (z dvanajstimi ºetoni) odstranimo 4 ºetone. (2) s ²tirimi kupi po 13, 17, 19 in 23 ºetoni. Iz drugega kupa (s sedemnajstimi ºetoni) odstranimo 8 ºetonov. Iz tretjega kupa (z devetnajstimi ºetoni) odstranimo 8 ºetonov. Iz etrtega kupa (s triindvajsetimi ºetoni) odstranimo 8 ºetonov. (3) Kak²en je odgovor v primerih (1) in (2), e igramo na spremenjen na in? Odgovor je enak kot v igri z obi ajnimi pravili, saj vedno (tudi, ko zmanj²amo en kup) ostaneta vsaj dva kupa z ve kot enim ºetonom. 2.4 Igre z druga nimi opisi nima 2.4.1 Nimble Pravila: Nimble se igra na igralni plo² i, ki je sestavljena iz n polj (kvadratov), ki so ozna eni z 0, 1,..., n 1 (od leve proti desni). Na nekaterih poljih so postavljeni kovanci. Na enem polju je lahko tudi ve kot eden. Vsaki, ko smo na vrsti za potezo, lahko enega izmed kovancev premaknemo bolj levo po igralni plo² i. Igralca izmeni no premikata kovance, dokler niso vsi kovanci na polju z oznako 0. Zmaga tisti, ki naredi zadnjo potezo. V resnici je to igra nim, predstavljena na druga en na in (0 i n 1): k kovancev ustreza k kupom v nimu kovanec na i-tem polju ustreza i ºetonom na i-tem kupu v nimu kon ni poloºaj, ko so vsi kovanci na polju 0, ustreza kon nemu poloºaju (0, 0,..., 0) v nimu premik kovanca v levo za k mest pa ustreza zmanj²anju kupa za k ºetonov 3
Zgled: (Naloga 2.3) Na igralni plo² i s 15 polji je postavljenih ºetonov na slede na in: 0 1 2 3 4 5 7 8 9 10 11 12 13 14 o je N-poloºaj. Zmagovalne poteze so: Kovanec s polja ²tevilka 13 premaknemo na polje ²tevilka 7. Kovanec s polja ²tevilka 10 premaknemo na polje ²tevilka 0. Kovanec s polja ²tevilka 9 premaknemo na polje ²tevilka 3. Katerega koli izmed kovancev s polja ²tevilka 8 premaknemo na polje ²tevilka 2. 2.4.2 urning turtles Pravila: V vrsti imamo postavljenih n kovancev, kjer nekateri kaºejo cifro (angl. heads, oznaka: ), nekateri pa moºa (angl. tails, oznaka: ). Ko smo na potezi, moramo en kovanec obrniti tako, da bo kazal moºa (iz cifre na moºa), nato pa, e ºelimo, lahko obrnemo ²e en kovanec, ki leºi levo od tega. Slednjega lahko obrnemo ne glede na to, kaj kaºe (torej iz cifre na moºa ali pa iz moºa na cifro). Cilj igre je obrniti vse kovance na moºa. Zmaga tisti, ki obrne zadnjega. udi to igro lahko prevedemo na nim (1 j < i n): n kovancev ustreza n kupom v nimu kovanec, ki kaºe cifro, na i-tem mestu ustreza i ºetonom na i-tem kupu v nimu, kovanec, ki kaºe moºa, pa ustreza praznemu kupu na i-tem mestu kon ni poloºaj, ko so vsi kovanci obrnjeni na moºa, ustreza kon nemu poloºaju (0, 0,..., 0) v nimu za potezo imamo tri moºnosti: (1) obrnemo i-ti kovanec iz cifre na moºa, kar v jezika nima pomeni, da iz i-tega kupa odstranimo vse ºetone (2) obrnemo i-ti kovanec iz cifre na moºa in j-tega prav tako iz cifre na moºa, kar v nimu pomeni, da iz i-tega in j-tega kupa odstranimo vse ºetone (ta poteza v nimu sicer ni dovoljena) 4
(3) obrnemo i-ti kovanec iz cifre na moºa, j-tega pa iz moºa na cifro, kar v nimu pomeni, da iz i-tega kupa odstranimo vse ºetone, v j-ti kup pa postavimo j ºetonov (to je enako, kot e i-ti kup zmanj²amo za i j ºetonov) Zgled: na in: (Naloga 2.4) Na mizi imamo postavljenih 13 kovancev na slede 1 2 3 4 5 7 8 9 10 11 12 13 o je N-poloºaj. Zmagovalne poteze so: Obrnemo ºetona na mestih ²tevilka 12 in 4. Obrnemo ºetona na mestih ²tevilka 10 in 2. Obrnemo ºetona na mestih ²tevilka 9 in 1. 2.4.3 Northcott's game Pravila: Igra se na plo² i velikosti n n. V vsaki vrstici je en bel in en rn ºeton. Prvi igralec premika samo bele, drugi pa samo rne ºetone. V eni potezi lahko igralec premakne enega izmed svojih ºetonov levo ali desno po vrstici za poljubno ²tevilo polj, vendar s tem ne sme "presko iti" nasprotnikovega ºetona, niti ne sme postaviti svoj ºeton na polje z nasprotnikovim ºetonom. Igralca izmeni no vle eta poteze, zmaga tisti, ki naredi zadnjo. a igra spada pod pristranske igre, saj ima vsak igralec svoje ºetone, katere lahko premika. Poleg tega pa ni nujno, da se igra sploh kdaj kon a, saj lahko igralca v neskon nost vle eta poteze (do tega ne more priti, e vsaj en igralec igra optimalno). Igra se na prvi pogled precej razlikuje od nima, vendar pa nam znanje nima pride ²e kako prav. Poglejmo si, kako sta ti dve igri povezani: vi²ina igralne plo² e ustreza ²tevilu kupov v nimu ²tevilo polj med belim in rnim ºetonom v i-ti vrstici ustreza ²tevilu ºetonov v i-tem kupu v nimu poloºaj, ko ima en igralec vse ºetone na robu igralne plo² e in je razlika polj med ºetonoma prvega ter drugega igralca v vsaki vrstici enaka 0, je kon en in le-ta ustreza kon nemu iz nima 5
premik ºetona za k polj proti nasprotnikovemu (²tevilo polj med njima se zmanj²a) v i-ti vrstici ustreza odstranitvi k ºetonov iz i-tega kupa v nimu) premik ºetona za k polj stran od nasprotnikovega v i-ti vrstici bi v nimu pomenilu, da na i-ti kup dodamo k ºetonov (to v nimu sicer ni dovoljeno) Igralec, ki igra optimalno, ne bo nikoli rabil premakniti ºetona stran od nasprotnikovega (torej bo vedno igral to no tako kot bi igral nim), medtem ko bo igralec, ki izgublja, moral premikati ºetone stran od nasprotnikovih (dokler ne bodo na robu plo² e). Zgled: (Naloga 2.5) Imamo plo² o velikosti 8 8, ºetoni pa so razporejeni kot kaºe spodnja slika: 8 7 5 4 3 2 1 1 2 3 4 5 7 8 Kdorkoli je na potezi, lahko zmaga. Zmagovalne poteze so: Premik ºetona v osmi vrstici za dve polji proti nasprotnikovemu ºetonu. Premik ºetona v peti vrstici za dve polji proti nasprotnikovemu ºetonu. Premik ºetona v tretji vrstici za ²est polj proti nasprotnikovemu ºetonu. Premik ºetona v drugi vrstici za dve polji stran od nasprotnikovega ºetona. Poleg tega pa obstajajo tudi ²e druge zmagovalne poteze, vendar je odvisno od tega, kdo je na potezi. Za igralca z belimi ºetoni sta zmagovalni potezi tudi: Premik ºetona v ²esti vrstici za dve polji stran od nasprotnikovega ºetona.
Premik ºetona v etrti vrstici za dve polji stran od nasprotnikovega ºetona. Za igralca s rnimi ºetoni pa je zmagovalna poteza tudi: Premik ºetona v sedmi vrstici za ²tiri polja stran od nasprotnikovega ºetona. 2.4.4 Staircase nim Imamo n stopnic, katere vsebujejo poljubno ²tevilo ºetonov. Poloºaj ozna imo z n-terico (x 1, x 2,..., x n ), kjer je x i ²tevilo ºetonov na i-ti stopnici, za i = 1, 2,..., n. Poteza je sestavljena iz premika k ºetonov iz i-te na (i 1)- vo stopnico, kjer je 1 k x i. Igre je konec, ko so vsi ºetoni na tleh, tj. poloºaj je enak (0, 0,..., 0). Igralca izmeni no vle eta poteze, zmaga tisti, ki naredi zadnjo. rditev 2.5 Poloºaj (x 1, x 2,..., x n ) v igri Staircase nim je P-poloºaj natanko tedaj, ko je poloºaj (x 1, x 3,..., x k ), kjer je k = n, e je n lih, oziroma k = n 1, e je n sod, P-poloºaj v navadnem nimu. Dokaz: Brez ²kode za splo²nost lahko privzamemo, da je ²tevilo stopnic liho. Naj bo P mnoºica takih poloºajev (x 1, x 2,..., x n ), da je nim-vsota poloºajev oblike (x 1, x 3,..., x n ) enaka 0, in naj bo N njen komplement. Pokazati ºelimo, da je P mnoºica vseh P-poloºajev. Preverimo to ke iz trditve o karakterizaciji P- in N-poloºajev: (1) Vsi kon ni poloºaji so v P Edini kon ni poloºaj je (0, 0,..., 0), ko so vsi ºetoni na tleh. akrat je nim-vsota ²tevil na mestih z lihih indeksom enaka 0, tj. 0 0... 0 = 0. (2) Iz vsakega poloºaja iz N obstaja premik v poloºaj iz P Najprej tvorimo nim-vsoto ²tevil na mestih z lihim indeksom po stolpcih in poi² emo prvi stolpec z lihim ²tevilom enk gledano od leve proti desni strani. Nato spremenimo eno izmed ²tevil, ki imajo v tem stolpcu enko tako, da je v vseh stolpcih sodo enk. Sedaj je nim-vsota enaka ni. aka poteza je dovoljena, saj razliko med prej²njim in sedanjim ²tevilom ºetonov na tej stopnici, premaknemo na stopnico niºje. orej smo skontruirali premik iz poloºaja iz N v poloºaj iz P. (3) Vsak premik iz poloºaja iz P vodi v poloºaj iz N Naj bo (x 1, x 2,..., x n ) poloºaj iz P. Izberemo poljuben j lih, 1 j n, da je x j 0. Naj bo k, 1 k x j, ²tevilo ºetonov, ki jih premaknemo iz j-te na (j 1)-vo stopnico, in x j = x j k spremenjena vrednost x j. Denimo, da velja x 1... x j... x n = 0 = x 1... x j... x n. Potem bi po etrti lastnosti nim-vsote sledilo, da je 7
x j = x j. o pa je protislovje. orej velja x 1... x j... x n 0, kar pomeni, da je poloºaj (x 1, x 2,..., x j 1 + k, x j,..., x n ) v N. Pokazali smo, da je P mnoºica P-poloºajev. 2.4.5 Nim k Nim k je poslo²eni nim z n kupi le, da lahko tu igralec v eni potezi vzame ºetone iz k kupov. Iz vsaj enega kupa mora vzeti vsaj en ºeton. Za k = 1 je to navadni nim. Strategijo za igranje razkriva Moorov izrek. Denicija 2. Nim k -vsota ²tevil (x n,..., x 2, x 1 ) 2 in (y n,..., y 2, y 1 ) 2 je (z n,..., z 2, z 1 ) 2, kjer za vsak j, 1 j n, velja z j = x j + y j (mod k + 1). Izrek 2.7 Poloºaj (x 1, x 2,..., x n ) v igri nim k je P-poloºaj natanko tedaj, ko je nim k -vsota ²tevil x 1, x 2,..., x n enaka 0. Zgled: (Naloga 2.7) Igro nimble iz razdelka 2.4.1 priredimo tako, da dovolimo v eni potezi premakniti najve dva kovanca. Za etna postavitev ostane enaka. 0 1 2 3 4 5 7 8 9 10 11 12 13 14 o je N-poloºaj. Iz spodnje nim 2 -vsote sledi, da je vseh zmagovalnih potez 10. o pa velja, zato ker je v najbolj levem stolpcu te vsote, ki ima ²tevilko razli no od 0, 5 enk. Ker lahko premaknemo dva kovanca, moramo izmed petih ²tevil, ki imajo v tem stolpcu enko, izbrati dve in premakniti kovanca iz tistih polj. 13 = 1100 2 10 = 1010 2 9 = 1001 2 8 = 1000 2 8 = 1000 2 5 = 101 2 Ena izmed zmagovalnih potez je: 2210 3 Kovanec s polja 13 premaknemo na polje 5 ter kovanec s polja 10 na polje 4. 8