19
IL GIOCO DELLE SCACCHIERE LINEARI SIMONE CASTELLAN (5C) FEDERICO MORODEI (5C) MARTINO WONG (5C) ABSTRACT. In questo articolo vengono analizzate le caratteristiche di alcuni giochi chiamati “imparziali” risolvendo tramite il teorema di Grundy-Sprague il problema della strategia vincente per il gioco delle “scacchiere lineari” , ispirato al gioco della “tavola di Faust”. 1. INTRODUZIONE Nella teoria dei giochi assumono un ruolo importante i cosiddetti giochi imparziali, come il “nim”, il gioco del “chomp”, il gioco a “sottrazione” e la “tavola di Faust”. In questo ultimo i due giocatori a turno devono posizionare su una tavola circolare una moneta presa da un mucchio di monete uguali. Le monete non possono sovrapporsi e o sporgere dal tavolo. Perde chi di turno non può più posizionare la moneta. Come è noto nel gioco della tavola di Faust il primo giocatore (A) può sempre vincere applicando uno strategia basata sulla “simmetria centrale”. Il primo giocatore (A), pone la moneta (indicata con un cerchio bianco) al centro della tavola, e poi ogni volta che il secondo giocatore (B) posa una moneta (indicato con un cerchio nero), (A) pone la sua nella posizione simmetrica rispetto al centro. Nel corso del gioco ogni volta che B deve posa la sua moneta, per ogni altra presente, eccetto quella centrale, c’è anche la sua simmetrica. Ne segue che A troverà sempre lo POSIZIONE NELLA QUALE CHI È DI TURNO HA PERSO PERCHÉ NON HA LO SPAZIO NECESSARIO PER POSIZIONARE LA SUA MONETA

Il gioco delle scacchiere lineari - crf.uniroma2.itcrf.uniroma2.it/wp-content/uploads/2010/04/Il-gioco-delle... · Le allieve C. Eleuteri, A. Iula e R. Palazzo nel loro lavoro di

  • Upload
    vankhue

  • View
    212

  • Download
    0

Embed Size (px)

Citation preview

IL GIOCO DELLE SCACCHIERE LINEARI

SIMONE CASTELLAN (5C) FEDERICO MORODEI (5C)

MARTINO WONG (5C)

ABSTRACT. In questo articolo vengono analizzate le caratteristiche di alcuni giochi chiamati “imparziali” risolvendo tramite il teorema di Grundy-Sprague il problema della strategia vincente per il gioco delle “scacchiere lineari” , ispirato al gioco della “tavola di Faust”.

1. INTRODUZIONE Nella teoria dei giochi assumono un ruolo importante i cosiddetti giochi imparziali, come il “nim”, il gioco del “chomp”, il gioco a “sottrazione” e la “tavola di Faust”. In questo ultimo i due giocatori a turno devono posizionare su una tavola circolare una moneta presa da un mucchio di monete uguali. Le monete non possono sovrapporsi e o sporgere dal tavolo. Perde chi di turno non può più posizionare la moneta.

Come è noto nel gioco della tavola di Faust il primo giocatore (A) può sempre vincere applicando uno strategia basata sulla “simmetria centrale”. Il primo giocatore (A), pone la moneta (indicata con un cerchio bianco) al centro della tavola, e poi ogni volta che il secondo giocatore (B) posa una moneta (indicato con un cerchio nero), (A) pone la sua nella posizione simmetrica rispetto al centro.

Nel corso del gioco ogni volta che B deve posa la sua moneta, per ogni altra presente, eccetto quella centrale, c’è anche la sua simmetrica. Ne segue che A troverà sempre lo

POSIZIONE NELLA QUALE CHI È DI TURNO HA PERSO

PERCHÉ NON HA LO SPAZIO NECESSARIO PER

POSIZIONARE LA SUA MONETA

spazio per la sua moneta (se così non fosse vorrebbe dire che questa è intralciata da qualche moneta già presente alla quale corrisponderebbe in posizione simmetrica una moneta che impedirebbe a B di posare la sua); così quando ad un certo punto non ci sarà più spazio sulla tavola, sarà B a non poter posare la sua moneta, perdendo la partita.

Le allieve C. Eleuteri, A. Iula e R. Palazzo nel loro lavoro di ricerca [1] hanno posto le seguenti questioni: • esistono per la tavola di Faust altre strategie vincenti di tipo “non simmetrico” ? • cosa succede se si modifica il gioco facendogli perdere le caratteristiche di simmetria (ad

esempio con una tavola di forma asimmetrica)? Per affrontarle le autrici hanno introdotto il gioco della “scacchiera lineare”, nel quale la tavola di Faust è sostituita da un insieme di caselle quadrate allineate. Il presente lavoro ha lo scopo di proseguire la loro indagine dando risposta ad alcune delle questioni in essa sollevate.

2. GIOCHI IMPARZIALI

Si definiscono giochi imparziali quelli che rispondono alle seguenti caratteristiche:

• Ci sono due giocatori che giocano alternando le mosse. • Ogni partita si sviluppa all’interno di un numero finito di possibili posizioni del gioco. • Le mosse lecite non dipendono dal giocatore di turno (a differenza di quanto

avviene nel gioco degli scacchi o della dama nei quali ogni giocatore quando è di turno può muovere solo i suoi pezzi)

• Il gioco termina quando non ci sono più mosse possibili. • Il giocatore che non può più giocare perde.

Ci riferiremo ai giochi imparziali chiamandoli semplicemente giochi.

IL GIOCATORE A (BIANCO) VINCE ADOTTANDO LA

STRATEGIA SIMMETRICA

Mostriamo ora un esempio di gioco imparziale per illustrare alcuni elementi base di teoria dei giochi.

2.1. GIOCO “A SOTTRAZIONE” Il gioco consiste nel sottrarre a turno un numero prefissato di monete da un numero di partenza. Perde chi dei due giocatori non ha più monete da togliere. Esempio: il mucchio iniziale conta 5 monete, e le monete da togliere sono 1, 2 o 3

2.2. IL GRAFO DEL GIOCO. Ogni gioco imparziale può essere rappresentato da un grafo orientato finito nel quale i nodi rappresentano le diverse posizioni di gioco , e gli archi orientati il passaggio da una posizione di gioco alle successive posizioni che si raggiungono con una mossa. Illustriamo come esempio il grafo del gioco a sottrazione visto in 2.1.

5

4 3 2

3

2

2 1 2 1 0 1 0

1 0 1 0 0 1 0 0 0

0001 0

0

IL GIOCATORE A TOGLIE UNA MONETA

IL GIOCATORE B TOGLIE TRE MONETE

IL GIOCATORE A TOGLIE UNA MONETA E VINCE

2.3 POSIZIONI VINCENTI E POSIZIONI PERDENTI Le posizioni di un gioco imparziale possono essere classificate nel seguente modo:

• Una posizione è vincente (V) se da essa si può passare ad almeno una posizione perdente;

• Una posizione è perdente (P) se da essa si può passare solo a posizioni vincenti o se da queste non ci si può muovere

Per analizzare le diverse posizioni si deve tener presente che:

• tutte le posizioni terminali sono posizioni perdenti; • una posizione è vincente se da essa si può passare ad almeno una posizione

perdente; • una posizione è perdente se da essa si può passare solo a posizioni vincenti.

E’ sempre possibile quindi partendo dalle posizioni finali, etichettare via via tutto il grafo fino alla posizione iniziale.

Nell’esempio del gioco a sottrazione si ha:

Se la posizione iniziale è vincente, vuol dire che c’è una strategia vincente per il primo giocatore che consiste nello scegliere ogni volta una posizione P.

Ciò è possibile perché abbiamo affermato che da ogni posizione vincente si può passare ad almeno una posizione perdente, e che da questa l’avversario si può passare solo a posizioni vincenti (e quindi di nuovo favorevoli al primo giocatore). Analogamente si può vedere che se la posizione iniziale è perdente vuol dire che c’è una strategia vincente per il secondo giocatore. Nell’esempio il giocatore A vince togliendo all’inizio una sola moneta e poi: se B ne toglie 1, A ne toglie 3; se B ne toglie 2, A ne toglie 2; se B ne toglie 3, A ne toglie 1. Quanto detto si può riassumere nei seguenti teoremi.

2.4. TEOREMI SUI GIOCHI IMPARZIALI.

• In ogni gioco imparziale ogni posizione del gioco è o di tipo V o di tipo P • In ogni gioco imparziale esiste sempre una strategia vincente per il primo o per il

secondo giocatore

3. IL GIOCO DELLE SCACCHIERE LINEARI

• I due giocatori a turno devono posizionare su una tavola formata da una fila di caselle quadrate (più un’eventuale mezza casella) adiacenti, delle monete circolari aventi il diametro uguale al lato dei quadrati;

• Le monete devono essere inserite all’interno di un quadrato o a metà tra due quadrati adiacenti;

• Le monete non si possono sovrapporre; • Il giocatore che al suo turno non può posizionare la moneta, perde.

Esempio di partita (le monete poste dal giocatore A sono state colorate di bianco, quelle poste dal giocatore B di nero) IL GIOCATORE B NON PUÒ DEPORRE LA SUA MONETA,

IL GIOCATORE A VINCE

3.1 SIMMETRIA La scacchiere lineari con un numero intero di caselle sono una versione “discreta” della tavola di Faust. Le monete hanno ora una libertà di posizione molto più limitata, tuttavia le tavole lineari conservano una struttura simmetrica rispetto al centro che permette anche in questo caso una strategia vincente di tipo simmetrico. Esempio.

3.2 STRATEGIE NON SIMMETRICHE Le scacchiere lineari pur con la loro semplicità, ci permettono di indagare anche sulle strategie non simmetriche che effettivamente possono presentarsi. A tale scopo analizziamo attraverso il grafo il gioco della scacchiera lineare con tre caselle.

Si vede che in questo caso l’unica strategia vincente per il primo giocatore è quella simmetrica.

IL GIOCATORE B NON PUÒ DEPORRE LA SUA MONETA, IL GIOCATORE A VINCE

Diversamente nel caso n=4 il primo giocatore può scegliere una strategia alternativa di tipo “non simmetrico”, come si nota dal grafo illustrato solo nella sua parte sinistra.

Il lavoro sulle tavole lineari [1] terminava con la seguente congettura: data una tavola lineare con n>2

• se n è dispari l’unica strategie vincente per il primo giocatore è quella simmetrica; • se n è pari esistono strategie vincenti per il primo giocatore anche non simmetriche.

Per verificarla non è sufficiente lo studio del grafo di gioco che cresce velocemente di dimensione e complessità. Fortunatamente la teoria di Grundy e Sprague ci viene in soccorso.

4. TEORIA DI GRUNDY-SPRAGUE 4.1 NUMERO DI GRUNDY Dato un gioco G, ad ogni nodo del suo grafo può essere associato un numero, detto numero di Grundy , nel modo seguente:

• Ai nodi terminali viene associato il numero 0 • Ad ogni altro nodo viene associato il più piccolo numero naturale che non è stato

associato ai nodi che lo seguono. ( Tale operazione prende in nome di MEX (minimum excluded). Indicato con N(V) il numero di Grundy associato al nodo V e con SV l’insieme dei nodi successivi a V possiamo quindi scrivere: N(V) = MEX{ N(V’) con V’∈ SV } )

4.2 TEOREMA DI GRUNDY - SPRAGUE

Dato un gioco G, considerato il grafo e i relativi numeri di Grundy si ha:

• un nodo è di tipo V sse il suo numero di Grundy è positivo; • un nodo è di tipo P sse il suo numero di Grundy è zero.

NUMERI DI GRUNDY DEL GRAFO DELLA TAVOLA LINEARE CON n=3

NUMERI DI GRUNDY DEL GRAFO E POSIZIONI VINCENTI E

PERDENTI DELLA TAVOLA LINEARE CON n=3

4.3 FUNZIONE DI GRUNDY Dato un gioco G, definiamo valore della funzione di Grundy di G , indicato con f(G) il numero di Grundy della sua posizione iniziale. Per quanto detto in 2.3. segue immediatamente che

Proprietà della Funzione di Grundy

• esiste una strategia vincente per il primo giocatore sse f(G)>0 • esiste una strategia vincente per il secondo giocatore sse f(G)=0

4.4 SOMMA DI GIOCHI Dati due giochi G1 e G2 si definisce somma dei giochi G1 e G2 il gioco G1 + G2 definito dalla seguente regola: Il giocatore di turno sceglie uno dei due giochi e fa la sua mossa nel gioco scelto

Osserviamo che il gioco delle tavoli lineari dopo ogni mossa si comporta come somma di giochi di tavole lineari più piccole.

Esempio

4.5 SOMMA NIM Dati due numeri naturali n1 e n2 si definisce somma nim e si indica con n1⊕ n2 il numero che si ottiene nel seguente modo:

• si scrivono n1 e n2 in notazione binaria; • si effettua la somma in notazione binaria senza riporti; • si ritorna alla notazione decimale

Esempio

4.6 TEOREMA DELLA SOMMA DI GIOCHI Dati due giochi G1 e G2 si ha:

f(G1+ G2) = f(G1 ) ⊕ f(G2 ) Esempio

5 ⊕ 3 = 6 5 → 101 3 → 011 110 → 6

4.7. RICORSIVITÀ E SIMMETRIA DEL GRAFO DELLE TAVOLE LINEARI Il grafo delle tavole lineari possiede due fondamentali proprietà che, grazie al teorema della somma dei giochi, facilitano il calcolo della funzione di Grundy .

• Ricorsività: Il grafo di una scacchiera lineare con n caselle è determinato dai grafi

delle somme delle tavole lineari con m ≤ n−1 caselle. • Simmetria: La struttura del grafo è simmetrica.

4.8. ALGORITMO RICORSIVO DELLA FUNZIONE DI GRUNDY DELLE TAVOLE LINEARI . Grazie al teorema della somma di Grundy e alla struttura ricorsiva del grafo, è possibile calcolare la funzione di Grundy di una tavola lineare grazie alle somme nim dei valori delle tavole lineari più piccole, per poi calcolare a partire da questi il numero di Grundy della posizione di partenza, cioè:

• f(n) = MEX { f(i) ⊕ f(n−1− i) , 0 ≤ i ≤ n−1 } dove i indica il numero di caselle

La natura simmetrica del grafo ci consente di dimezzare i calcoli; cioè

• f(n) = MEX �f�i�⊕ f�n−1−i� con 0 ≤ i ≤n−1

2�nel caso n sia intero

oppure

• f(n) = MEX �f�i�⊕ f�n−1−i� con 0 ≤ i ≤2n−3

2�nel caso n non sia intero

Abbiamo quindi implementato questo algoritmo ricorsivo compilando un programma

nel linguaggio di programmazione Pyton, che riportiamo qui di seguito.

NELL’ESEMPIO È ILLUSTRATO IL GRAFO DI UNA TAVOLA LINEARE CON n INTERO , SE n NON È INTERO AL POSTO DELL’UNICA

POSIZIONE CENTRALE �� /�� CI SARANNO DUE POSIZIONI CENTRALI 2��34 /��� E2��14 /����

a_3=input

a_2=1.5

x_4=[0,0,1]

while a_2!=a_3:

b_2=0

c_2=a_2-1

m=[ ]

while c_2!=-0.5:

b_8=0

while b_8!=b_2/0.5:

b_8=b_8+1

c_8=0

while c_8!=c_2/0.5:

c_8=c_8+1

a=x_4[b_8]

a_1=x_4[c_8]

x=[ ]

x_1=[ ]

b=11111

old_b=a

while b!=0:

b=old_b/2

b_1=old_b%2

old_b=b

x.append(b_1)

c=1111

old_c=a_1

while c!=0:

c=old_c/2

c_1=old_c%2

old_c=c

x_1.append(c_1)

while len(x)!=len(x_1):

if len(x)<len(x_1):

x.append(0)

elif len(x)>len(x_1):

x_1.append(0)

j=len(x)-1

z=[ ]

while j!=-1:

if x[j]==1 and x_1[j]==0 or x[j]==0 and x_1[j]==1:

z.append(1)

else:

z.append(0)

j=j-1

old_q=0

for i in range(len(z)):

z[i]=z[i]*(2**(len(z)-1-i))

q=z[i]+old_q

old_q=q

new_q=q

m.append(new_q)

b_2=b_2+0.5

c_2=c_2-0.5

m.sort( )

p=m[0]

if p!=1:

while p in m:

p=p+1

else:

p=0

print p,

x_4.append(p)

a_2=a_2+0.5

4.9. VALORI DELLA FUNZIONE DI GRUNDY DELLE TAVOLE LINEARI . Usando il programma abbiamo calcolato i valori della funzione di Grundy di varie tavole lineari. Nello schema sottostante la prima colonna di ogni tabella indica il numero di caselle della tavola lineare e la seconda colonna i relativi valori della funzione di Grundy.

5. ALCUNE RISPOSTE. Siamo ora in grado di confutare la congettura illustrata in 3.2: per n>2 (dove n indica il numero di caselle):

• se n è dispari l’unica strategie vincente per il primo giocatore è quella simmetrica; • se n è pari esistono strategie vincenti per il primo giocatore anche non simmetriche.

La funzione di Grundy calcolata con il programma ci permette di affermare che

• per n=3 dopo la prima mossa c’è una sola posizione P • per n=4 dopo la prima mossa ci sono più posizioni P • per n=5 dopo la prima mossa c’è una sola posizione P • per n=6 dopo la prima mossa ci sono più posizioni P • per n=7 dopo la prima mossa c’è una sola posizione P • per n=8 dopo la prima mossa ci sono più posizioni P • per n=9 dopo la prima mossa ci sono più posizioni P (la congettura è falsa!)

Nel caso della tavola lineare con 9 caselle dunque, il primo giocatore ha a disposizione anche delle strategie di tipo non simmetrico.

6. PERIODICITÀ DELLA FUNZIONE DI GRUNDY DELLE TAVOLE LINEARI Proveremo ora che la funzione di Grundy delle tavole lineari, a partire da quella con 36,5 caselle, è periodica con un periodo T= 17.

STRATEGIA NON SIMMETRICA STRATEGIA SIMMETRICA

Nelle tabelle sottostanti vengono evidenziati i valori ricorrenti

6.1 TEOREMA DI PERIODICITÀ Per ogni tavola lineare con n ≥ 36,5 caselle si ha:

f(n + 17) = f(n)

Dimostrazione (per induzione generalizzata sul numero di caselle)

• Passo base: n = 36,5 : e sufficiente verificare che f(36,5) = 0 = f(53,5)

• Passo induttivo: supponiamo che la tesi sia vera per ogni m con 36,5 ≤ m < n e proviamo che vale per n 1° caso: n < 91 verifica numerica per casi (con l’ausilio del computer) 2° caso n ≥ 91. Consideriamo i grafi della scacchiera lineare con n e con n+17 caselle (supponiamo che n sia un numero intero, il caso di n non intero si può trattare in maniera analoga)

Per quanto detto in 4.8 si ha:

Per quanto detto in 4.8 si ha:

f(n) = MEX �f�i�⊕ f�n−1−i� con 0 ≤ i ≤n−1

2�

e siccome n−1

2≤

n+162

, grazie alla simmetria del grafo si ha:

f(n) = MEX �f�i�⊕ f�n−1−i� con 0 ≤ i ≤n+16

2�

mentre per la scacchiera n+17 possiamo scrivere:

f(n+17) = MEX �f�i�⊕ f�n+16−i� con 0 ≤ i ≤n+16

2�

ma n−1−i≥ n−1− n+16

2� n−18

2

ed essendo n ≥ 91 ⇒ n−1−i ≥ n −18

2≥ 36,5 .

Quindi per ipotesi induttiva, per ogni i tale che 0 ≤ i ≤n+16

2 si ha:

f�n+16−i� � f�n−1−i�17� � f�n−1−i� Possiamo allora concludere che:

f(n+17) = MEX�f�i�⊕ f�n+16−i� 0 ≤ i ≤n+16

2� � MEX�f�i�⊕ f�n−1−i� 0 ≤ i ≤

n+162� � f(n)

Q.e.d.

7.STRATEGIE VINCENTI

Per le scacchiere lineari con un numero intero di caselle, la strategia simmetrica è sempre applicabile: il primo giocatore può sempre vincere. Più interessante è quello che succede nel caso delle scacchiere con un numero non intero di caselle; in tale caso infatti la strategia simmetrica non può essere applicata. Grazie alla periodicità della funzione di Grundy possiamo stabilire per ogni numero di caselle in quale caso esista una strategia vincente per il primo o per il secondo giocatore. 7.1 TEOREMA DELLE SCACCHIERE LINEARI Una scacchiera di lunghezza n

• ammette una strategia vincente per il secondo giocatore se

n ∈ { 0,5 ; 2,5 ; 4,5 ; 7,5 ; 10,5 ; 12,5 ; 14,5 ; 17,5 ; 19,5 ; 21,5 27,5 ; 29,5 ; 31,5 }

oppure

n ∈ { 36,5 + h + k 17 con h = 0 ; 2; 8; 10 ; 12 e k∈ ℕ }

• altrimenti ammette una strategia vincente per il primo giocatore

Dimostrazione Per il Teorema di Grundy - Sprague è sufficiente individuare le scacchiere lineari con funzione di Grundy pari a zero. Nel caso n < 36,5 si può consultare le tabelle della funzione di Grundy (vedi 4.9) Nel caso n ≥ 36,5 sfruttando la periodicità della funzione di Grundy occorre considerare tutte quelle che si ottengono aggiungendo multipli di 17 alle scacchiere con numero di caselle (nell’intervallo 36,5 ≤ n < 36,5 +17) : 36,5 ; 38,5 ; 44,5 ; 46,5 ; 48,5 per le quali la funzione di Grundy vale zero (vedi 9) .

8. PROBLEMI APERTI Il nostro teorema ci permette di sapere immediatamente se una scacchiera ammette una strategia vincente per il primo o per il secondo giocatore; ma non indica un metodo semplice per applicare tali strategie. Una via per raggiungere tale obiettivo potrebbe scaturire da un ulteriore studio del carattere periodico e della struttura ricorsiva della funzione di Grundy delle tavole lineari. Sarebbe interessante inoltre studiare giochi in grado di approssimare ancora meglio la tavola di Faust, introducendo ad esempio il gioco delle scacchiere lineari crociate nel quale il tavoliere è formato da due tavole lineari con una casella in comune:

9. BIBLIOGRAFIA E SITOGRAFIA [1] http://crf.uniroma2.it/wp-content/uploads/2010/04/Tavola-di-Faust-e-strategie-non- simmetriche.pdf [2] http://www.apav.it/master/gioconim.pdf [3] http://homes.di.unimi.it/~bertoni/Giochi%20combinatori%20e%20complessita.pdf

[4] http://docs.python.it/html/tut/tut.html