Teoria gier Katarzyna Koman Maria Koman Politechnika Gdaoska Wydział Fizyki Technicznej i Matematyki Stosowanej
GRA NIM
HISTORIA Pochodzenie gry NIM nie jest do końca znane. Najprawdopodobniej powstała ona w Chinach. Najwcześniejsze europejskie informacje o NIM pochodzą z początków XVI wieku. W 9 roku Charles L. Bouton z Uniwersytetu Harward rozwinął kompletną teorię na jej temat. Nazwa NIM prawdopodobnie pochodzi od niemieckiego słowa nimm lub od angielskiego słowa nim co oznacza zabierać. Można zwrócić uwagę na to, że obracając słowo NIM o 8 otrzymamy słowo WIN co w języku angielskim znaczy wygrywać. NIM WIN
OPIS GRY Jest to chińska dwuosobowa gra. Polega na wykonywaniu ruchów na przemian przez graczy. Każde posunięcie w tej grze polega na zmianie konfiguracji zapałek na stole, przy czym dopuszczalne są tylko pewne zmiany po wykonaniu ruchu zapałek musi być mniej niż przedtem, ale tylko na jednym stosie liczba zapałek może się zmienić. W jednym ruchu należy wybrać jeden z rzędów zapałek i usunąć z niego dowolną liczbę patyczków. Trzeba usunąć przynajmniej jeden patyczek, a można zabrać nawet wszystkie patyczki z wybranego rzędu. Przegrywa ten kto usunie ostatni patyczek. ( Na początku gracze mogą ustalić między sobą, że osoba która usunie ostatni patyczek wygrywa. )
Przykład : W grze udział biorą: GRACZ I GRACZ II Mamy 3 rzędy patyczków. W pierwszym rzędzie znajduje się 6 zapałek, w drugim rzędzie jest ich 3 a w trzecim rzędzie jest ich. 6 zapałek 3 zapałek zapałek
Ustalamy, który gracz rozpoczyna grę. Pierwszy ruch wykonuje GRACZ I. Ustalamy, że komu przypadnie ostatni patyczek ten przegrywa. RUCH I : GRACZ I usuwa 9 zapałek z rzędu I 7 zapałek 3 zapałek zapałek
RUCH II : GRACZ II usuwa zapałkę z rzędu II 7 zapałek zapałek zapałek
RUCH III : GRACZ I usuwa zapałkę z rzędu I 6 zapałek zapałek zapałek
RUCH IV : GRACZ II usuwa 9 zapałek z rzędu II 6 zapałek 3 zapałki zapałek
RUCH V : GRACZ I usuwa 5 zapałek z rzędu III 6 zapałek 3 zapałki 5 zapałek
RUCH VI : GRACZ II usuwa 4 zapałki z rzędu I zapałki 3 zapałki 5 zapałek
RUCH VII : GRACZ I usuwa 4 zapałki z rzędu III zapałki 3 zapałki zapałka
RUCH VIII : GRACZ II usuwa zapałki z rzędu II zapałki zapałka zapałka
RUCH IX : GRACZ I usuwa zapałkę z rzędu I zapałka zapałka zapałka
RUCH X : GRACZ II usuwa zapałkę z rzędu III zapałka zapałka zapałek
RUCH XI : GRACZ I usuwa zapałkę z rzędu II zapałka zapałek zapałek
W przedostatnim ruchu GRACZ I usunął zapałkę z II rzędu. Na polu pozostała jedna zapałka w I rzędzie. Ta zapałka przypada GRACZOWI II. GRACZ II przegrywa grę, zatem GRACZ I ją wygrywa.
Wstępna analiza (Preliminary Analysis) Zakładamy, że gracz zabierający ostatnią zapałkę wygrywa. P pozycja (P-position) pozycja, która zapewnia zwycięstwo poprzedniemu graczowi (graczowi, który wykonał ruch) N pozycja (N-position) pozycja, która zapewnia zwycięstwo następnemu graczowi Z każdej N pozycji istnieje przynajmniej jeden ruch do P - pozycji Z każdej P pozycji każdy ruch zmienia stan na N - pozycje
P pozycja jest pozycją końcową - (,,). Rozwiązanie jedno-stosowego NIMa jest trywialne, oznacza usunięcie całego stosu. Każda pozycja z dokładnie jednym niepustym stosem (,,x) dla x > jest N pozycją.
NIM dla dwóch rzędów zapałek Mamy dwa stosy patyczków, jednak więcej niż po jednym patyczku w każdym z nich. Warto wykonać I ruch, gdy ilości patyczków w obu rzędach są różne. Wtedy nasz ruch powinien wyrównać te ilości. P pozycjami są te, dla których oba stosy mają tę samą liczbę zapałek (,,), (,,) itd. Z kolei po ruchu przeciwnika liczby patyczków znowu będą różne. Ponownie wyrównujemy ilości patyczków w stosach. Dążymy do uzyskania pozycji końcowej (,,).
PRZYKŁAD - dla dwóch rzędów zapałek Mamy dwa rzędy zapałek. W pierwszym rzędzie jest 5 patyczków a w drugim są 4 patyczki. W grze bierze udział dwóch graczy: GRACZ I i GRACZ II. Wygrywa osoba, która dostanie ostatni patyczek. 5 zapałek 4 zapałki
RUCH I - GRACZ I (wyrównuje ilości zapałek, usuwa zapałkę z pierwszego rzędu) 4 zapałki 4 zapałki
RUCH II - GRACZ II (usuwa zapałki z pierwszego rzędu) zapałki 4 zapałki
RUCH III - GRACZ I (usuwa zapałki z drugiego rzędu) zapałki zapałki
RUCH IV - GRACZ II (usuwa zapałkę z pierwszego rzędu) zapałka zapałki
RUCH V - GRACZ I (usuwa zapałkę z drugiego rzędu) zapałka zapałka
RUCH VI - GRACZ II (usuwa zapałkę z drugiego rzędu) zapałka zapałek
Pozostała jedna zapałka. Ostatnią zapałkę dostanie GRACZ I, zatem GRACZ I wygrywa.
NIM dla większej ilości rzędów zapałek Mamy 3 rzędy zapałek, jednakże więcej niż po jednej zapałce w każdym z nich. Opis strategii dla 3 rzędów można uogólnić do strategii dla większej ilości rzędów, n>. W tym przypadku sytuacja jest bardziej skomplikowana. Jasne jest, że (,,), (,,), (,,3) oraz (,,) są N pozycjami ponieważ mogą być sprowadzone do pozycji (,,) albo (,,). Kolejną łatwą do określenia pozycją jest (,,3) i jest ona P pozycją ponieważ może ona być zredukowana do jednej z poprzednio wymienionych N - pozycji. Możemy zauważyć, że kolejną prostą do określenia P pozycją jest (,4,5) oraz (,4,6).
NIM - SUMA (NIM SUM) Korzystamy tu z dwójkowego systemu liczbowego. Liczbę : x x m m x i {,} m m m... m m x x x x będziemy zapisywać jako: x ( x x x x m... ) m
Nim - sumą... ) m m i ( y y... y y ) m m ( x x x x nazywamy oraz zapisujemy ( x x ( z z z z m... ) m mxm... x ) ( ym ym... y y) gdzie dla k,,... zk xk yk (mod ) otrzymamy z jeśli y k k k ( z z z... z ) m m x oraz z jeśli x k y k k
Przykład: 4 8 6 () 4 3 ) ( () ) ( 37 5
Własności NIM - SUMY: - łączność ( x ( y z)) (( x y) z) - przemienność ( x y) ( y x) - jest identycznością ( x) x - każda liczba jest swoim zaprzeczeniem ( x x) - przechodniość ( x y) ( x z) y z
( x, x, x3) (3,,8) Czy jest to P pozycja? Jeśli nie, to co należałoby zrobić? 3 8 NIM SUMA : 9 Otrzymaliśmy N pozycję. Dążymy do tego by NIM SUMA była równa. NIM SUMA : 4 8 NIM SUMA będzie równa jeśli w pierwszym wierszu będzie znajdować się 4. Musimy więc usunąć z pierwszego rzędu (3-4) 9 zapałek. Otrzymując otrzymamy P pozycję.
PRZYKŁAD - dla trzech rzędów zapałek Mamy trzy rzędy zapałek. W pierwszym rzędzie jest 7 patyczków, w drugim jest patyczków a w trzecim rzędzie jest 9 patyczków. W grze bierze udział dwóch graczy: GRACZ I i GRACZ II. Grę rozpoczyna GRACZ I. Wygrywa osoba, która dostanie ostatni patyczek. 7 zapałek zapałek 9 zapałek
9 RUCH I - GRACZ I Zamieniamy wartości ilości zapałek na liczby w systemie dwójkowym. Otrzymamy wówczas: 7 () () () NIM SUMA : () () () () 3 3 3 4 4 4 8 6 4 8 6 Dążymy do tego, aby nasza NIM SUMA wynosiła (). Aby to otrzymać musimy usunąć z naszej NIM SUMY. ( ) () ( 8) Aby w miejscu pojawiło się zamienimy:.
RUCH I - GRACZ I Zatem GRACZ I usuwa 4 zapałki z rzędu II. 7 zapałek 8 zapałek 9 zapałek
RUCH II - GRACZ II GRACZ II usuwa zapałki z rzędu II. 7 zapałek 6 zapałek 9 zapałek
RUCH III - GRACZ I 6 () 9 4 () 6 6 8 () 7 4 3 4 3 4 3 () () () () NIM SUMA : Dążymy do tego, aby nasza NIM SUMA wynosiła. Aby to otrzymać musimy usunąć z naszej NIM SUMY. () Aby w miejscu pojawiło się zamienimy:. ) (7 () ) (
RUCH III - GRACZ I Zatem GRACZ I usuwa 6 zapałek z rzędu I. zapałek 6 zapałek 9 zapałek
RUCH IV - GRACZ II GRACZ II usuwa zapałek z rzędu I. zapałek 6 zapałek 9 zapałek
RUCH V - GRACZ I Mamy dwa rzędy zapałek, zatem GRACZ I wyrównuje ilości zapałek w obu rzędach. GRACZ I usuwa 3 zapałek z rzędu III. zapałek 6 zapałek 6 zapałek
RUCH VI - GRACZ II GRACZ II usuwa 4 zapałki z rzędu III. zapałek 6 zapałek zapałki
RUCH VII - GRACZ I Mamy dwa rzędy zapałek, zatem GRACZ I wyrównuje ilości zapałek w obu rzędach. GRACZ I usuwa 4 zapałki z rzędu II. zapałek zapałki zapałki
RUCH VII - GRACZ II GRACZ II usuwa zapałki z rzędu III. zapałek zapałki zapałek
Pozostały dwie zapałki. Ostatnią zapałkę dostanie GRACZ I. GRACZ I wygrywa.
PRZYKŁAD - dla czterech rzędów zapałek Mamy cztery rzędy zapałek. W pierwszym rzędzie jest 3 patyczków, w drugim jest 7 patyczków, w trzecim rzędzie jest 9 patyczków, a w czwartym znajdują się 4 patyczki. W grze bierze udział dwóch graczy: GRACZ I i GRACZ II. Grę rozpoczyna GRACZ I. Wygrywa osoba, która dostanie ostatni patyczek. 3 zapałek 7 zapałek 9 zapałek 3 zapałki
RUCH I - GRACZ I Zamieniamy wartości ilości zapałek na liczby w systemie dwójkowym. Otrzymamy wówczas: 6 4 () 3 6 () 9 6 () 7 8 4 () 3 4 3 4 3 4 3 4 3 () () () () () NIM SUMA : Dążymy do tego, aby nasza NIM SUMA wynosiła. Aby to otrzymać musimy usunąć z naszej NIM SUMY. () Aby w miejscu pojawiło się zamienimy:. 9) (7 () ) (
RUCH I - GRACZ I GRACZ I usuwa 8 zapałki z rzędu II. 3 zapałek 9 zapałek 9 zapałek 3 zapałki
RUCH II - GRACZ II Gracz II usuwa 3 zapałek z rzędu I. zapałek 9 zapałek 9 zapałek 3 zapałki
RUCH III - GRACZ I 6 4 () 3 6 () 9 8 () 9 () 4 3 4 3 4 3 () () () () () NIM SUMA : Dążymy do tego, aby nasza NIM SUMA wynosiła. Aby to otrzymać musimy usunąć z naszej NIM SUMY. () Aby w miejscu pojawiło się zamienimy:. 4) (9 () ) (
RUCH III - GRACZ I Gracz I usuwa 5 zapałek z rzędu II. zapałek 4 zapałki 9 zapałek 3 zapałki
RUCH IV - GRACZ II Gracz II usuwa 3 zapałki z rzędu III. zapałek 4 zapałki 9 zapałek zapałek
RUCH V - GRACZ I Mamy dwa rzędy zapałek. Gracz I wyrównuje ilości zapałek w obu Rzędach. Usuwa 5 zapałek z III rzędu. zapałek 4 zapałki 4 zapałki zapałek
RUCH VI - GRACZ II Gracz II usuwa zapałki z rzędu II. zapałek zapałki 4 zapałki zapałek
RUCH VII - GRACZ I Gracz I usuwa zapałki z rzędu III. zapałek zapałki zapałki zapałek
RUCH VIII - GRACZ II Gracz II usuwa zapałki z rzędu III. zapałek zapałki zapałek zapałek
Pozostały dwie zapałki. Ostatnią zapałkę dostanie GRACZ I. GRACZ I wygrywa.
Twierdzenie Boutona P pozycję w grze NIM otrzymamy wtedy i tylko wtedy gdy NIM - SUMA jej składników będzie równa zeru. Jedno-stosowy NIM jest trywialny. Dwu-stosowy NIM jest prosty. Twierdzenie Boutona można wykorzystać także dla większej liczby stosów.
DOWÓD TWIERDZENIA BOUTONA Przeprowadzając dowód sprawdzimy 3 punkty: () Wszystkie końcowe pozycje są P - pozycjami Jest tylko jedna pozycja końcowa. Nie ma wówczas na stosie żadnych zapałek. Otrzymana P pozycja :... () Z każdej N pozycji istnieje przynajmniej jeden ruch do otrzymania P - pozycji Z kolumn NIM SUMY, wybieramy pierwszą lewą kolumnę, w której suma jest nieparzysta. Następnie szukamy wiersza, który zawiera w tej kolumnie. Dążymy, aby każda NIM SUMA była równa zeru. (3) Każdy ruch z P pozycji zmienia stan na N - pozycję Stan x,,...) jest P pozycją. ( x Zamienimy x na x' ( x' x ). Nie możemy otrzymać: i x x x3... x... x x x3... x i... x ponieważ otrzymalibyśmy, że a wiemy że x i x. Sprzeczność! i x i
Misere NIM MISERE NIM polega na tym, że przegrywa ten gracz, który bierze ostatnią zapałkę ze stosu. Czy dla tego przypadku istnieje strategia wygrywająca? Istnieje metoda BOUTONA dla MISERE NIM. Gramy w NIM z normalnymi zasadami tak długo aż pozostaną nam stosy o liczbie zapałek większej niż. Gdy przeciwnik wykona ruch, w którym pozostanie jeden stos o liczbie zapałek większej niż, usuniemy z niego wówczas wszystkie zapałki poza. W ten sposób ostatnią zapałkę weźmie nasz przeciwnik, a my wygramy grę.
PRZYKŁAD: Mamy trzy rzędy zapałek. W pierwszym rzędzie jest 5 patyczków, w drugim jest patyczków, a w trzecim są 3 patyczki. W grze bierze udział dwóch graczy: GRACZ I i GRACZ II. Grę rozpoczyna GRACZ I. Przegrywa osoba, która dostanie ostatni patyczek. 5 zapałek 3 zapałki zapałek NIM SUMA : () () () ()
RUCH I - GRACZ I ( ) ( ) NIM SUMA : () () () () GRACZ I usuwa 4 zapałki z II rzędu. 5 zapałek 6 zapałek 3 zapałki
RUCH II - GRACZ II GRACZ II usuwa 6 zapałek z II rzędu. 5 zapałek zapałek 3 zapałki
RUCH III - GRACZ I Mamy dwa rzędy zapałek. Gracz I wyrównuje ilości zapałek w obu rzędach. Usuwa zapałki z I rzędu. 3 zapałki zapałek 3 zapałki
RUCH IV - GRACZ II GRACZ II usuwa 3 zapałki z I rzędu. zapałek zapałek 3 zapałki
RUCH V - GRACZ I GRACZ I usuwa zapałki z III rzędu. zapałek zapałek zapałka
Pozostała jedna zapałka. Ostatnią zapałkę zabiera GRACZ II. GRACZ I wygrywa grę.
WARIANTY GRY NIM
Marienbad: 6 pionków ustawiamy w 4 rzędach: rząd pionek; rząd 3 pionki; 3 rząd 5 pionków; 4 rząd 7 pionków. Ruch polega na wzięciu od pionka do całego rzędu. Przegrywa gracz, który zabiera ostatni pionek.
Wythoff (wyhoff): Pionki dzielimy na dwie różnoliczne kupki, bierzemy co najmniej pionek z kupki; można brać pionki z obu kupek w jednym ruchu, ale bierzemy wówczas tę samą ilość pionków z jednej i drugiej kupki.
Kayles: Ustawiamy 3 pionków w następujący sposób: O OOOOOOOOOOOO. Ruch polega na wzięciu lub pionków, ale gdy bierzemy pionki musimy pamiętać aby się stykały ze sobą. Wygrywa ten, kto bierze lub ostatnie pionki.
Kubo: 7 pionków ustawiamy w kwadrat 3x3 po trzy na sobie. Gracz może zabrać, bądź 3 pionki z jednej z 9 kupek lub po jednej z sąsiadujących pionowo, bądź poziomo kupek.
Dziewiętnaście: Dziewiętnaście pionków ustawia się w sześciokąt foremny. Wolno brać jeden kamień, dwa sąsiadujące, bądź trzy sąsiadujące.
Taktix: 6 pionków ustawiamy w kwadrat 4x4. Wolno zbierać dowolną ilość kamieni byle tylko z jednej kolumny, bądź wersu.
Literatura:
Dziękujemy za uwagę!