Sviluppo dell’intelligenza artificiale del gioco
5.5 Analisi robustezza algoritmi di IA
3 59 3.562 81925 129155 60
4 15 1.887 23834 44744 125
5 39 2.781 41666 92660 71
6 57 5.312 104676 257022 93
7 49 4.266 106693 165319 87
8 39 3.67 86821 134231 94
9 83 5.148 174840 252171 62
10 91 6.654 253674 377698 73
Media 60.1 4.5489 122989.7 210650.7 82
tabella 5.23: Tempi di individuazione della mossa con le transposition table
• N: numero della partita giocata
• M: numero di mosse effettuate da entrambi i giocatori
• TR: tempo richiesto per terminare la partita
• A: accessi effettuati con successo alle transposition table
• P A: accessi totali per cercare un valore all’interno delle transposition table (anche senza successo)
• TM: tempo medio richiesto per determinare una mossa
Come si può notare l’impiego delle transposition table in questo caso peggiora le prestazioni medie di ricerca della mossa da eseguire. Ciò implica che, in questo casi di studi, memorizzare tutti i tavoli che vengono visitati non risulta essere una strategia efficiente. Considerando che la percentuale di tavoli ritrovati (e quindi acceduti almeno una seconda volta) è pari al 57.69% del totale, significa che viene registrato un notevole numero di stati che non verranno mai acceduti nuovamente e che quindi riempiono la struttura dati peggiorando le prestazioni durante la ricerca e l’inserimento di nuovi stati. Inoltre bisogna considerare la quantità di memoria che tale tecnica richiede e che con un numero di giocatori sufficiente, potrebbe esaurirsi l’intero spazio disponibile in breve tempo per mantenere tale struttura dati.
Un altro problema sorgerebbe una volta che l’intelligenza artificiale non conosce il tipo dei pezzi avversari. Una volta eseguita la valutazione delle feature raccolte per i pezzi e successivamente fornita una classificazione per tali, può succedere che il tipo del pezzo cambi perché il suo comportamento viene classificato tra i cattivi e non più tra i buoni (o viceversa). Di conseguenza, il tavolo che si genera non è più collegato direttamente da una mossa con il tavolo precedente e ciò comporta che tutti i tavoli inseriti precedentemente nelle transposition table non verranno acceduti appesantendo così la struttura dati e rendendo meno efficaci le funzioni di inserimento e ricerca.
L’impiego definitivo di tale tecnica è quindi stato escluso al fronte di non peggiorare le prestazioni medie dell’intelligenza artificiale.
5.5 Analisi robustezza algoritmi di IA
Gli algoritmi di intelligenza artificiale sono stati allenati conoscendo il tipo dei pezzi avversari. Geister si gioca senza sapere la tipologia dei pezzi dell’avversario e di
5.5. ANALISI ROBUSTEZZA ALGORITMI DI IA
conseguenza era necessario verificare cosa sarebbe successo se il tipo dei pezzi è conosciuto a priori. Sono stati quindi svolti dei test dove si voleva analizzare il comportamento dell’intelligenza artificiale senza essere associata ad un particolare algoritmo di profile learning, in modo tale da ottenere una valutazione indipendente.
Sono state condotte 10 partite per ogni numero di pezzi errati ossia 2, 4, 6 e 8 (1, 3, 5 e 7 non potevano essere testati in quanto violerebbero il vincolo di consistenza del numero di pezzi buoni e cattivi all’inizio di ogni partita). È sempre stata utilizzata la learning heuristic con profondità 8 per poter paragonare i risultati con quelli ottenuti durante i test precedenti. Di seguito vengono esposti gli esiti dei test.
Giocatore 1 Giocatore 2 N G 1 G 2
BR CR VU BR CR VU Vincitore
1 NNE Umano 4 2 no 3 0 no Umano
tabella 5.24: Esiti dei test con un numero di pezzi errati pari 2
• BR: pezzi buoni rimasti al termine della partita
• CR: pezzi cattivi rimasti al termine della partita
• VU: vittoria per un pezzo uscito da un cancello avversario
Giocatore 1 Giocatore 2 N G 1 G 2
BR CR VU BR CR VU Vincitore
1 NNE Umano 2 4 no 3 0 no Umano
5.5. ANALISI ROBUSTEZZA ALGORITMI DI IA
8 NNE Umano 4 3 no 4 0 no Umano
9 NNE Umano 4 4 no 4 0 no Umano
10 NNE Umano 4 3 no 3 0 no Umano
tabella 5.25: Esiti dei test con un numero di pezzi errati pari a 4
• BR: pezzi buoni rimasti al termine della partita
• CR: pezzi cattivi rimasti al termine della partita
• VU: vittoria per un pezzo uscito da un cancello avversario
Giocatore 1 Giocatore 2 N G 1 G 2
BR CR VU BR CR VU Vincitore
1 NNE Umano 4 4 no 4 0 no Umano
2 NNE Umano 4 4 no 4 0 no Umano
3 NNE Umano 4 4 no 4 0 no Umano
4 NNE Umano 4 4 no 4 0 no Umano
5 NNE Umano 4 4 no 4 0 no Umano
6 NNE Umano 4 4 no 4 0 no Umano
7 NNE Umano 3 4 no 3 0 no Umano
8 NNE Umano 4 4 no 4 0 no Umano
9 NNE Umano 4 4 no 3 0 no Umano
10 NNE Umano 4 4 no 4 0 no Umano
tabella 5.26: Esiti dei test con un numero di pezzi errati pari a 6
• BR: pezzi buoni rimasti al termine della partita
• CR: pezzi cattivi rimasti al termine della partita
• VU: vittoria per un pezzo uscito da un cancello avversario
Giocatore 1 Giocatore 2 N G 1 G 2
BR CR VU BR CR VU Vincitore
1 NNE Umano 4 4 no 4 0 no Umano
2 NNE Umano 4 4 no 4 0 no Umano
3 NNE Umano 4 4 no 4 0 no Umano
4 NNE Umano 4 4 no 2 0 no Umano
5 NNE Umano 4 4 no 4 0 no Umano
6 NNE Umano 4 4 no 4 0 no Umano
5.5. ANALISI ROBUSTEZZA ALGORITMI DI IA
7 NNE Umano 4 4 no 3 0 no Umano
8 NNE Umano 4 4 no 4 0 no Umano
9 NNE Umano 4 4 no 4 0 no Umano
10 NNE Umano 4 4 no 4 0 no Umano
tabella 5.27: Esiti dei test con un numero di pezzi errati pari a 8
• BR: pezzi buoni rimasti al termine della partita
• CR: pezzi cattivi rimasti al termine della partita
• VU: vittoria per un pezzo uscito da un cancello avversario
Di seguito viene presentato un grafico contente le percentuali di vittoria e sconfitta in relazione al numero pezzi valutati errati.
figura 5.11: Rapporto di vittorie sul totale in relazione al numero di pezzi valutati erroneamente
Come si può notare, gli esiti dimostrano che l’intelligenza artificiale non è più in grado di vincere alcuna partita. La valutazione erronea di anche solo due pezzi durante tutto il corso della partita ha effetti devastanti sulle possibilità di vittoria dell’intelligenza artificiale. Infatti, tutte le partite sono state vinte poiché tutti i fantasmi cattivi sono stati sacrificati. Durante le partite con 2 pezzi errati è stato semplice far catturare i primi 3 cattivi ma quello rimanente ha richiesto qualche mossa in più. Invece, le partite con 4 o più pezzi errati si sono risolte velocemente sacrificando tutti i pezzi cattivi dell’umano. Con 6 e 8 pezzi errati è semplice intuire che il computer perde a causa di un numero così elevato di pezzi valutati erroneamente in quanto è normale mangiare un pezzo cattivo avversario e di conseguenza se gli altri pezzi cattivi vengono valutati erroneamente buoni allora l’intelligenza artificiale tenterà di mangiare anche i restanti. Tuttavia, con 4 pezzi dovrebbe essere meno probabile perdere così spesso in quanto è meno naturale mangiare così tanti pezzi cattivi e ancora meno se si considerano che solamente 2 pezzi hanno la bontà invertita. L’atto di mangiare un numero così elevato di pezzi cattivi lo si può ritrovare nella tabella 5.21. Catturare un numero così elevato di pezzi comporta sicuramente che vengono mangiati anche
56
5.5. ANALISI ROBUSTEZZA ALGORITMI DI IA