Progetto e Sviluppo di un Sistema per il Gioco degli Scacchi Tridimensionali

669 views

Published on

Questa Tesi di Laurea presenta le modalità con cui ho progettato e realizzato un'applicazione dotata di intelligenza artificiale in grado di giocare al gioco degli Scacchi Tridimensionali, gioco noto dai telefilm e film di Star Trek (Cfr. [Star Trek]). Le regole cui ho fatto riferimento sono le Federation Standard Rules 5.0 di A. R. Bartmess (Cfr. [Bartmess, 1977], [Bartmess, 2003]).
Partendo da tali regole, ho codificato la notazione algebrica di scrittura delle mosse con una grammatica Extended Bakus-Naur Form (EBNF) e, successivamente, ho ideato un indice di classificazione (che ho chiamato Elo3D) per dare una valutazione al comportamento dei giocatori durante le partite.
La prima parte sviluppata è un'infrastruttura di rete, basata su Remote Method Invocation (RMI), che trasforma l'impalcatura client-server di questa componente del linguaggio Java in una struttura di comunicazione "quasi" punto-punto. Questa consente il gioco sia in locale sia in remoto, in modo assolutamente trasparente per l'utente, fatta salva la conoscenza dell’eventuale indirizzo di rete remoto.
Per l'impostazione di lavoro che ho scelto, l'applicazione fa uso di dati e formati aperti, con un'alta modularità e consentendo una facile espandibilità delle componenti esistenti. A questo scopo ho infatti sviluppato due linguaggi eXtensible Markup Language (XML) per definire i messaggi che le varie componenti l'applicazione si sarebbero scambiati tra loro e per definire una modalità di memorizzazione dello stato di una partita e i dati di un giocatore.
In quest'applicazione ho messo a disposizione diversi algoritmi di Intelligenza Artificiale (IA), tra i quali (e con i quali) ho eseguito numerose partite e confronti per valutarne le prestazioni. Ho sviluppato un'applicazione in grado di utilizzare anche molteplici insiemi di regole di gioco, facilmente selezionabili dall'utente senza alcuna necessità di configurazione o pre-impostazione.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
669
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Progetto e Sviluppo di un Sistema per il Gioco degli Scacchi Tridimensionali

  1. 1. Progetto e Sviluppo di un Sistema per il Gioco degli Scacchi Tridimensionali Tesi di Laurea di: Marco Bresciani matricola 619821 Relatore: Prof. Marco Colombetti Dipartimento di Elettronica e Informazione
  2. 2. Sommario ● Il Gioco ● Analisi del Problema & Metodologia ● Lavoro Svolto & Contributi ● Risultati, Conclusioni
  3. 3. Problema ● Realizzare un'applicazione in grado di giocare al gioco degli Scacchi Tridimensionali valutando e confrontando l'applicabilità di algoritmi di IA standard.
  4. 4. Analisi del Problema ● Le tecniche di IA tradizionali, valgono ancora per questo gioco? Si possono separare nettamente le regole? ● Insiemi multipli di regole, si possono adattare ad una sola tipologia di algoritmi di IA? ● L'utente vuole applicazioni semplici: come conciliare i tradizionali “motori” di IA scacchistica con questo gioco?
  5. 5. Obiettivi ● Caratteristiche e funzionalità obiettivo della Tesi: Algoritmi di IA “puri” XML Funzioni Valutazione Ad Hoc X3D Grammatica EBNF Connettività Modularità & I18N Regole di Gioco Multiple Java
  6. 6. Struttura Generale
  7. 7. Metodologia ● Ingegneria del Software e programmazione orientata agli oggetti; ● Sfruttamento di Standard Internazionali disponibili; ● Software Libero, modulare ed espandibile; ● Notazione Algebrica Standard delle Federation Standard Rules; ● Regole (generazione delle mosse) e Funzioni di Valutazione (valore dei pezzi e delle posizioni) ad hoc; ● Comparazione di Algoritmi di IA.
  8. 8. Indice di Classificazione ● ● (1 di 2) L'indice di classificazione ELO, pur essendo un buono specchio della realtà, è di uso complesso e non completamente definito. L'indice Elo3D che ho ideato: – – – – contempla l'esistenza del pareggio (patta) come risultato a sé stante; prevede un intervallo percentuale [0;1] per i risultati; evita i casi tipici da “scalata Ricca” limitando il vantaggio dei giocatori più forti; si basa solo sul risultato e sui valori dei giocatori;
  9. 9. Indice di Classificazione (2 di 2) B−N 1 R B− 2 N −B ' B =B  39 3950 ∣B '∣ B− '' B = ' =ram  B'  ∣B ' −1∣ B 1 ' B , N ∈[ 0 ; 1 ] { } 1 R B ∈ 0, ,1 ; R N =1−R B 2
  10. 10. Algoritmi di IA ● E' possibile usare gli algoritmi tradizionali? ● Ho implementato questi algoritmi: – – NegaMax Principal Variation; – NegaScout (Prof. A. Reinefeld, Zuse Institute Berlin); – ● NegaMax (con potatura AlfaBeta); MTD(n,f) (Dr. A. Plaat, Vrije Universiteit Amsterdam); Dai risultati sperimentali, il migliore risulta essere l'algoritmo NegaScout...
  11. 11. Funzione di Valutazione ● (1 di 2) Si basa sull'articolo di Shannon del 1949 (valori dei pezzi e loro differenze); ● Prevede una funzione posizionale per ciascuna coordinata, per i pedoni; ● Valuta i Livelli d'Attacco in base ai pezzi presenti su di essi; ● Usa un indice di mobilità che valuta le mosse disponibili; ● Tiene in considerazione catture e promozioni.
  12. 12. Funzione di Valutazione (2 di 2)
  13. 13. Risultati ● Per la richiesta di connettività ho generato un'infrastruttura di rete “punto–punto” a partire dalle API client–server di Java RMI: – – ● (1 di 3) struttura altamente espandibile e personalizzabile; utilizzabile per trasmettere informazioni o comandi tra le applicazioni. L'indice Elo3D che ho definito è attualmente in uso e rispecchia il comportamento dei giocatori.
  14. 14. Risultati ● (2 di 3) Risultati ottenuti dalla modularizzazione: – regole di gioco multiple, completamente scollegate dalla IA; – funzioni di valutazione ad hoc per ciascuna regola; – algoritmi di IA multipli e intercambiabili; – possibilità di espansione per i dati I18N; – interfacce di gioco per giocatori e spettatori.
  15. 15. Risultati ● (3 di 3) Il Fattore di Ramificazione degli Scacchi 3D è superiore del 10% rispetto quello tradizionale; ● Gli algoritmi di IA stile MiniMax sono adeguati anche per questo gioco; ● Le Funzioni di Valutazione degli Scacchi 3D non sono completamente comparabili con quelle tradizionali;
  16. 16. Conclusione OOP & SE Standard Internazionali Notazione di Gioco Prospettiva a Giocatori & Spettatori Infrastruttura di Rete Regole Multiple Uso di Java Algoritmi IA Multipli Indice Elo3D Novità recente

×