SlideShare ist ein Scribd-Unternehmen logo
1 von 16
Downloaden Sie, um offline zu lesen
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
Sommario
●

Il Gioco

●

Analisi del Problema & Metodologia

●

Lavoro Svolto & Contributi

●

Risultati, Conclusioni
Problema
●

Realizzare un'applicazione in
grado di giocare al gioco degli
Scacchi Tridimensionali
valutando e confrontando
l'applicabilità di algoritmi di IA
standard.
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?
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
Struttura Generale
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.
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;
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
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...
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.
Funzione di Valutazione

(2 di 2)
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.
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.
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;
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

Weitere ähnliche Inhalte

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

Algoritmi ed architetture per la risoluzione di problemi di visual search
Algoritmi ed architetture per la risoluzione di problemi di visual searchAlgoritmi ed architetture per la risoluzione di problemi di visual search
Algoritmi ed architetture per la risoluzione di problemi di visual search
Alessandro D'Ambrosio
 
LabVIEW pragma engineering
LabVIEW pragma engineeringLabVIEW pragma engineering
LabVIEW pragma engineering
admin.pragmaeng
 
15 - Programmazione: Algoritmi
15 - Programmazione: Algoritmi15 - Programmazione: Algoritmi
15 - Programmazione: Algoritmi
Majong DevJfu
 
Monitoraggio di applicazioni software mediante modelli di Markov - slides
Monitoraggio di applicazioni software mediante modelli di Markov - slidesMonitoraggio di applicazioni software mediante modelli di Markov - slides
Monitoraggio di applicazioni software mediante modelli di Markov - slides
rkjp
 
PresentazioneLaureaMatteoVettosi
PresentazioneLaureaMatteoVettosiPresentazioneLaureaMatteoVettosi
PresentazioneLaureaMatteoVettosi
Matteo Vettosi
 

Ähnlich wie Progetto e Sviluppo di un Sistema per il Gioco degli Scacchi Tridimensionali (20)

Extended Summary of Optimized Design of a Human Intranet Network
Extended Summary of Optimized Design of a Human Intranet NetworkExtended Summary of Optimized Design of a Human Intranet Network
Extended Summary of Optimized Design of a Human Intranet Network
 
Thesis Magnone Slides IT
Thesis Magnone Slides ITThesis Magnone Slides IT
Thesis Magnone Slides IT
 
Identificare feature significative per l’analisi nell’informatica forense uti...
Identificare feature significative per l’analisi nell’informatica forense uti...Identificare feature significative per l’analisi nell’informatica forense uti...
Identificare feature significative per l’analisi nell’informatica forense uti...
 
3DD 1e Salomone
3DD 1e Salomone3DD 1e Salomone
3DD 1e Salomone
 
Thesis Maggioni Slide it
Thesis Maggioni Slide itThesis Maggioni Slide it
Thesis Maggioni Slide it
 
Algoritmo delle componenti connesse
Algoritmo delle componenti connesseAlgoritmo delle componenti connesse
Algoritmo delle componenti connesse
 
Algoritmi ed architetture per la risoluzione di problemi di visual search
Algoritmi ed architetture per la risoluzione di problemi di visual searchAlgoritmi ed architetture per la risoluzione di problemi di visual search
Algoritmi ed architetture per la risoluzione di problemi di visual search
 
Digital 1nn0vation saturday pn 2019 - ML.NET
Digital 1nn0vation saturday pn 2019 - ML.NETDigital 1nn0vation saturday pn 2019 - ML.NET
Digital 1nn0vation saturday pn 2019 - ML.NET
 
LabVIEW pragma engineering
LabVIEW pragma engineeringLabVIEW pragma engineering
LabVIEW pragma engineering
 
Extended Summary of “Co-Learning of Task and Sensor Placement for Soft Robotics”
Extended Summary of “Co-Learning of Task and Sensor Placement for Soft Robotics”Extended Summary of “Co-Learning of Task and Sensor Placement for Soft Robotics”
Extended Summary of “Co-Learning of Task and Sensor Placement for Soft Robotics”
 
Design Exploration: Sviluppo telaio per vettura formula sae
Design Exploration: Sviluppo telaio per vettura formula saeDesign Exploration: Sviluppo telaio per vettura formula sae
Design Exploration: Sviluppo telaio per vettura formula sae
 
EVEN Presentation - April 2009
EVEN Presentation - April 2009EVEN Presentation - April 2009
EVEN Presentation - April 2009
 
Presentazione tesi 2.0
Presentazione tesi 2.0Presentazione tesi 2.0
Presentazione tesi 2.0
 
15 - Programmazione: Algoritmi
15 - Programmazione: Algoritmi15 - Programmazione: Algoritmi
15 - Programmazione: Algoritmi
 
Thesis M. Redaelli Slides EN
Thesis M. Redaelli Slides ENThesis M. Redaelli Slides EN
Thesis M. Redaelli Slides EN
 
Monitoraggio di applicazioni software mediante modelli di Markov - slides
Monitoraggio di applicazioni software mediante modelli di Markov - slidesMonitoraggio di applicazioni software mediante modelli di Markov - slides
Monitoraggio di applicazioni software mediante modelli di Markov - slides
 
PresentazioneLaureaMatteoVettosi
PresentazioneLaureaMatteoVettosiPresentazioneLaureaMatteoVettosi
PresentazioneLaureaMatteoVettosi
 
Presentazione - Algoritmo di Dijkstra
Presentazione - Algoritmo di DijkstraPresentazione - Algoritmo di Dijkstra
Presentazione - Algoritmo di Dijkstra
 
Progetto e sviluppo di un sistema di rilevamento di anomalie su sistemi infor...
Progetto e sviluppo di un sistema di rilevamento di anomalie su sistemi infor...Progetto e sviluppo di un sistema di rilevamento di anomalie su sistemi infor...
Progetto e sviluppo di un sistema di rilevamento di anomalie su sistemi infor...
 
BanovazDiego-Slides Prelaurea
BanovazDiego-Slides PrelaureaBanovazDiego-Slides Prelaurea
BanovazDiego-Slides Prelaurea
 

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

  • 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. Sommario ● Il Gioco ● Analisi del Problema & Metodologia ● Lavoro Svolto & Contributi ● Risultati, Conclusioni
  • 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. 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. 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
  • 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. 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. 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. 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. 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.
  • 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. 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. 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. 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