SlideShare a Scribd company logo
1 of 9
Download to read offline
UNIVERSITÀ DEGLI STUDI DI TRIESTE
DIPARTIMENTO DI INGEGNERIA E ARCHITETTURA
Corso di Laurea in Ingegneria Elettronica e Informatica
Extended Summary of
”EvoCraft: A New Challenge for Open-Endedness”
Relatore:
Ch.mo Prof.
Andrea DE LORENZO
Candidato:
Giacomo VASSALLO
Mat. IN0500761
ANNO ACCADEMICO 2021/2022
Indice
1 Introduzione 3
2 Nozioni 3
2.1 Algoritmi Open-Ended . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 Minecraft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2.1 Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.3 API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3 Valutazione delle Prestazioni 5
3.1 Perché usare Minecraft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.2 Prestazioni del Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.2.1 Test 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.2.2 Test 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.3 Approcci Evolutivi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.3.1 Evoluzione Interattiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.3.2 Evoluzione Automatizzata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4 Conclusioni 7
2
Introduzione
L’articolo descrive i risultati raggiunti dallo sviluppo di EvoCraft, un framework che ha l’obiettivo di facili-
tare lo sviluppo e lo studio dell’intelligenza artificiale e, in particolare, degli algoritmi open-ended [4].
L’articolo propone alcuni semplici esperimenti per testare le funzionalità del framework e della relativa Ap-
plication Programming Interface (API).
Gli algoritmi open-ended formalizzano il concetto naturale di ”evoluzione”: cosı̀ come l’evoluzione naturale
ha generato una grande varietà di forme di vita, l’obiettivo delle tecniche open-ended è la creazione di
algoritmi che formino strutture complesse partendo da altre molto più semplici.
Delineare questo concetto porterebbe ad un importante passo in avanti verso la creazione della vita artificiale.
Nozioni
2.1 Algoritmi Open-Ended
Un algoritmo open-ended mira a creare autonomamente strutture sempre più complesse, senza porre vincoli
ai risultati da ottenere. Questo approccio permette di generare una grande varietà di strutture partendo da
alcune più semplici [3].
Utilizzare l’open-ended learning comporta un aumento della diversità nei punti intermedi tra la prima
generazione e quella finale, favorendo lo sviluppo autonomo di un’ampia gamma di strutture.
2.2 Minecraft
Minecraft è un famoso gioco basato sulla costruzione di strutture e sull’esplorazione di un mondo generato
casualmente.
Il giocatore può interagire con l’ambiente attraverso la manipolazione di blocchi, ossia cubi di lato 1m, di
vari materiali (es. pietra, sabbia, terra, ecc.). Un blocco può essere piazzato nel mondo di gioco oppure
distrutto. Il giocatore può inoltre interagire con le creature che popolano il mondo come animali e mostri.
Esistono anche materiali fluidi come l’acqua e la lava, i quali tendono a propagarsi verso il basso come se
affetti dalla gravità.
Minecraft presenta una feature (redstone) che permette di creare meccanismi automatizzati che emulano dei
circuiti elettrici veri e propri. Combinando alcuni blocchi, infatti, è possibile creare ad esempio porte logiche
e timer.
Questo ha permesso ai giocatori di creare strutture molto complesse, come robot che si muovono autonoma-
mente, simulatori ed editor testuali (figura 2.1)
Un esempio di struttura basata sulla redstone è la “macchina volante”, ovvero un insieme di blocchi che una
volta azionato si muove autonomamente in linea retta. In figura 2.2 è riportata la macchina volante minima,
ovvero quella realizzabile con il minor numero di blocchi possibile.
2.2.1 Server
Minecraft presenta una modalità multigiocatore, che sfrutta un processo server eseguito su un calcolatore.
Un server di Minecraft è eseguito di default a 20 tick
s . Un tick è un’iterazione del ciclo di gioco e ad ogni
3
Figura 2.1: Alcuni esempi di strutture complesse create utilizzando la redstone: robot, editor testuali,
emulatori, reti neurali
Figura 2.2: Macchina volante realizzata con il numero minimo di blocchi possibile
tick vengono controllati molti aspetti del gioco stesso come: punti vita, fame, comportamento delle creature.
Quando il server è sovraccaricato (un tick dura più di 50ms), il tick rate del server cala.
2.3 API
L’API è stata realizzata utilizzando Sponge, ovvero una piattaforma di creazione di mod per Minecraft sotto
forma di plugin per il server su cui il gioco è in esecuzione.
Sebbene gli autori abbiano realizzato un client scritto in Python che implementa l’API, è possibile utilizzare
l’interfaccia anche tramite altri linguaggi. Per rendere l’utilizzo dell’API indipendente dal linguaggio, essa
si basa sulle Remote Procedure Call (RPC) e in particolare sul framework gRPC.
Una RPC consiste nell’esecuzione di una funzione su un calcolatore diverso da quello che elabora il program-
ma, nascondendo particolari sulla comunicazione di rete [5].
Il framework gRPC si basa su due entità [1]:
• Servizi (services), ognuno dei quali espone delle RPC, ovvero delle funzioni che possono essere chiamate
dal programma.
• Messaggi (messages), che definiscono input e output del programma
La prima versione dell’API comprende un solo servizio con 3 RPC (figura 2.3)
4
Figura 2.3: Definizione delle RPC del framework. Per semplicità sono omesse le definizioni dei messaggi.
Valutazione delle Prestazioni
3.1 Perché usare Minecraft
Secondo gli autori, Minecraft rappresenta il mezzo migliore per favorire lo studio siccome fornisce un insieme
limitato di elementi base (ovvero i blocchi) per creare le strutture. Inoltre in Minecraft è possibile creare
meccanismi automatizzati (come i circuiti logici) usando la redstone.
3.2 Prestazioni del Server
L’articolo discute l’utilità del framework per evolvere strutture. Per valutarne le prestazioni quando utilizzato
su un server sono stati effettuati 2 test.
3.2.1 Test 1
Il primo test consiste nell’eliminare tutti i blocchi da un volume cubico di lato N e riempirlo nuovamente
per valori crescenti di N. Quando il tick rate scende sotto i 20 tick
s si interrompe il test. Il tick rate cala con
N = 31 (corrispondente a 29,791 blocchi piazzati simultaneamente).
3.2.2 Test 2
Vengono create N macchine volanti minime e viene considerato il numero di tick al secondo dopo 20 secondi.
Queste macchine dinamiche sono più dispendiose rispetto ai blocchi statici generati nell’esempio precedente.
Il test viene fermato quando il tick rate scende sotto i 20 tick
s ; ciò accade quando si generano circa 1200
macchine.
3.3 Approcci Evolutivi
Per testare le funzionalità del framework vengono proposti due diversi approcci di evoluzione: quella
interattiva e quella automatizzata.
3.3.1 Evoluzione Interattiva
La struttura generata automaticamente viene valutata da un umano che ha il controllo (parziale o totale)
sui risultati dell’evoluzione.
Questa tecnica è particolarmente efficace per i problemi in cui è difficile definire esplicitamente una metrica
5
Figura 3.1: Ogni riga rappresenta un diverso esperimento, mentre le colonne mostrano il risultato rispetti-
vamente alla generazione 0, 10 e 30
o quando i criteri di valutazione sono soggettivi.
I risultati cosı̀ ottenuti però possono essere poco consistenti, a causa del giudizio non sempre coerente del-
l’operatore umano.
La strategia utilizzata è quella di evolvere entità e di permettere all’umano di scegliere la sua preferita per
ogni generazione. Al risultato scelto viene fornito un indice di fitness pari a 1, a tutti gli altri pari a 0.
Dopodiché viene presentata una nuova generazione all’utente.
Nei primi 3 esempi si è chiesto all’operatore di scegliere la struttura a suo giudizio più interessante (criterio
volutamente vago e impreciso) mentre l’obiettivo dell’ultimo era la creazione di una cascata (figura 3.1).
Questo approccio rende possibile controllare l’evoluzione di alcuni tratti fenotipici rispetto ad altri, favorendo
quelle strutture che presentano determinate caratteristiche.
3.3.2 Evoluzione Automatizzata
Nell’esperimento si tenta di creare una struttura che deve raggiungere un blocco sospeso in aria.
Viene mantenuta una popolazione di 20 strutture, ognuna con il relativo target.
La metrica (fitness) utilizzata per scegliere le strutture migliori è la distanza tra il blocco più vicino al tra-
guardo e il traguardo stesso. Il blocco iniziale della torre è generato attaccato al terreno, mentre il bersaglio
è spostato 10 blocchi a nord, 10 blocchi a ovest e 10 blocchi in alto rispetto alla base.
Una volta calcolato il fitness si mantengono le due strutture migliori e si uniscono nella generazione successi-
va, creando una struttura figlia. Si taglia una delle due in un punto casuale e si sostituisce la parte superiore
6
Figura 3.2: Evoluzione delle torri (generazioni 1, 6 e 13) e grafico della distanza minima al crescere delle
generazioni
di questa con quella dell’altra struttura. La costruzione migliore è copiata nella generazione successiva.
La prima generazione è formata da torri create casualmente partendo dalla base.
Nell’esempio fornito dall’articolo, l’obiettivo è raggiunto dopo 10 generazioni, sebbene il risultato non sia
vicino all’ottimo (figura 3.2).
Per dimostrare l’opportunità di evolvere anche macchine dinamiche, nell’articolo è anche riportato un espe-
rimento di evoluzione di macchine mobili. L’indice di fitness è calcolato come il cambiamento del centro di
massa della struttura evoluta dopo 10 secondi.
L’algoritmo ha creato macchine che sono capaci di muovere leggermente il proprio centro di massa, sebbene
non siano macchine che si muovono costantemente in una direzione. La macchina volante minima muove il
proprio centro di massa di 17 blocchi in 10 secondi, mentre la struttura migliore generata dall’algoritmo lo
muove di soli 0.2 blocchi, dopodiché si ferma.
Conclusioni
Come dimostrato dagli esperimenti esposti precedentemente, il framework permette di piazzare e tracciare
programmaticamente un numero ragionevole di blocchi in un server di Minecraft.
Si è dimostrato che è possibile anche utilizzare il framework per evolvere circuiti di redstone, dando vita a
strutture dinamiche.
A questo proposito cito un altro progetto, non riportato nell’articolo, da parte di Nicholas Guttenberg [2],
premiato al GECCO 2021 (Genetic and Evolutionary Computation Conference), competizione organizzata
dagli stessi autori dell’articolo.
Il progetto riguarda la creazione di un algoritmo che utilizzi i circuiti di redstone per implementare funzioni
logiche all’interno di Minecraft. Il sistema è in grado di evolvere porte logiche e di utilizzare circuiti prece-
dentemente scoperti combinati opportunamente per creare nuove funzioni logiche.
Questo dimostra che è possibile utilizzare il framework per evolvere circuiti logici e dinamici.
L’evoluzione basata sull’indice di fitness si è dimostrata fallimentare nell’esperimento con la macchina vo-
lante. Un importante sviluppo potrebbe essere tentare approcci differenti, realizzando un maggior numero
di strutture intermedie.
L’obiettivo principale di questi esperimenti dev’essere la ricerca degli elementi che mancano ai metodi attuali
per garantire lo sviluppo autonomo di strutture complesse.
7
Riferimenti
[1] gRPC Authors. Introduction to gRPC. 2021. url: https://grpc.io/docs/what-is-grpc/introduction/
(visitato il 14/06/2022).
[2] Nicholas Guttenberg. Automated design of novel redstone circuits - Evocraft. Youtube. 2021. url: https:
//youtu.be/JJ1-jPGWoqU.
[3] Joel Lehman Kenneth O. Stanley e Lisa Soros. Open-endedness: The last grand challenge you’ve never
heard of. 2017. url: https : / / www . oreilly . com / radar / open - endedness - the - last - grand -
challenge-youve-never-heard-of/ (visitato il 14/06/2022).
[4] Djordje Grbic e Rasmus Berg Palm e Elias Najarro e Claire Glanois e Sebastian Risi. ≪EvoCraft: A
New Challenge for Open-Endedness≫. In: arXiv (2012). arXiv: 2012.04751 [cs.AI].
[5] Wikipedia. Chiamata di procedura remota. 2022. url: https://it.wikipedia.org/wiki/Chiamata_
di_procedura_remota (visitato il 14/06/2022).
8
Extended Summary of "EvoCraft: A New Challenge for Open-Endedness"

More Related Content

Similar to Extended Summary of "EvoCraft: A New Challenge for Open-Endedness"

Uno studio sull'efficacia di checker automatici per la modernizzazione di cod...
Uno studio sull'efficacia di checker automatici per la modernizzazione di cod...Uno studio sull'efficacia di checker automatici per la modernizzazione di cod...
Uno studio sull'efficacia di checker automatici per la modernizzazione di cod...Idriss Riouak
 
Software testing with mocking framework (Android App)
Software testing with mocking framework (Android App)Software testing with mocking framework (Android App)
Software testing with mocking framework (Android App)gioacchinolonardo
 
Progetto, realizzazione e caratterizzazione dell'elettronica di acquisizione ...
Progetto, realizzazione e caratterizzazione dell'elettronica di acquisizione ...Progetto, realizzazione e caratterizzazione dell'elettronica di acquisizione ...
Progetto, realizzazione e caratterizzazione dell'elettronica di acquisizione ...MarcoCautero1
 
Analisi e sviluppo di un sistema collaborativo simultaneo per la modifica di ...
Analisi e sviluppo di un sistema collaborativo simultaneo per la modifica di ...Analisi e sviluppo di un sistema collaborativo simultaneo per la modifica di ...
Analisi e sviluppo di un sistema collaborativo simultaneo per la modifica di ...Filippo Muscolino
 
Monitoraggio di mac address in lan
Monitoraggio di mac address in lanMonitoraggio di mac address in lan
Monitoraggio di mac address in lanCe.Se.N.A. Security
 
Analisi e prototipazione di un sistema di streaming per la localizzazione in ...
Analisi e prototipazione di un sistema di streaming per la localizzazione in ...Analisi e prototipazione di un sistema di streaming per la localizzazione in ...
Analisi e prototipazione di un sistema di streaming per la localizzazione in ...TiborRacman
 
Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...
Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...
Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...Davide Ciambelli
 
Relazione Modellazione e Simulazioni Numeriche: Percolazione
Relazione Modellazione e Simulazioni Numeriche: PercolazioneRelazione Modellazione e Simulazioni Numeriche: Percolazione
Relazione Modellazione e Simulazioni Numeriche: PercolazioneRiccardo Melioli
 
Sistemi domotici integrati per la gestione intelligente d’ambiente
Sistemi domotici integrati per la gestione intelligente d’ambienteSistemi domotici integrati per la gestione intelligente d’ambiente
Sistemi domotici integrati per la gestione intelligente d’ambientefreedomotic
 
Simulazione di un sistema fisico ts inginf
Simulazione di un sistema fisico ts inginfSimulazione di un sistema fisico ts inginf
Simulazione di un sistema fisico ts inginfIonutAlexandruPascar
 
Analisi di prestazione dell'interprete tuProlog su piattaforma Java - Tesi
Analisi di prestazione dell'interprete tuProlog su piattaforma Java - TesiAnalisi di prestazione dell'interprete tuProlog su piattaforma Java - Tesi
Analisi di prestazione dell'interprete tuProlog su piattaforma Java - TesiMicheleDamian
 
Progetto e implementazione di una pipeline di sviluppo software con tecnologi...
Progetto e implementazione di una pipeline di sviluppo software con tecnologi...Progetto e implementazione di una pipeline di sviluppo software con tecnologi...
Progetto e implementazione di una pipeline di sviluppo software con tecnologi...Mattia Milleri
 
Tesi De Franceschi Daniel
Tesi De Franceschi DanielTesi De Franceschi Daniel
Tesi De Franceschi Danielguest8d17469
 
Montalti - "Interactive Musical Agents" (2010, paper ITA)
Montalti - "Interactive Musical Agents" (2010, paper ITA)Montalti - "Interactive Musical Agents" (2010, paper ITA)
Montalti - "Interactive Musical Agents" (2010, paper ITA)Alessandro Montalti
 
Autenticazione Continua Durante la Navigazione Web Basata sulla Dinamica del ...
Autenticazione Continua Durante la Navigazione Web Basata sulla Dinamica del ...Autenticazione Continua Durante la Navigazione Web Basata sulla Dinamica del ...
Autenticazione Continua Durante la Navigazione Web Basata sulla Dinamica del ...danieledegan
 
Extended Summary of "Engineered Self-Organization for Resilient Robot Self-As...
Extended Summary of "Engineered Self-Organization for Resilient Robot Self-As...Extended Summary of "Engineered Self-Organization for Resilient Robot Self-As...
Extended Summary of "Engineered Self-Organization for Resilient Robot Self-As...SergioMilo1
 
Progetto e realizzazione di uno strumento per la raccolta di dipendenze archi...
Progetto e realizzazione di uno strumento per la raccolta di dipendenze archi...Progetto e realizzazione di uno strumento per la raccolta di dipendenze archi...
Progetto e realizzazione di uno strumento per la raccolta di dipendenze archi...LorenzoFabbio
 
Graph partitioning: implementazione dell'algoritmo spettrale e confronto con ...
Graph partitioning: implementazione dell'algoritmo spettrale e confronto con ...Graph partitioning: implementazione dell'algoritmo spettrale e confronto con ...
Graph partitioning: implementazione dell'algoritmo spettrale e confronto con ...KevinMarzio
 

Similar to Extended Summary of "EvoCraft: A New Challenge for Open-Endedness" (20)

Uno studio sull'efficacia di checker automatici per la modernizzazione di cod...
Uno studio sull'efficacia di checker automatici per la modernizzazione di cod...Uno studio sull'efficacia di checker automatici per la modernizzazione di cod...
Uno studio sull'efficacia di checker automatici per la modernizzazione di cod...
 
Software testing with mocking framework (Android App)
Software testing with mocking framework (Android App)Software testing with mocking framework (Android App)
Software testing with mocking framework (Android App)
 
Progetto, realizzazione e caratterizzazione dell'elettronica di acquisizione ...
Progetto, realizzazione e caratterizzazione dell'elettronica di acquisizione ...Progetto, realizzazione e caratterizzazione dell'elettronica di acquisizione ...
Progetto, realizzazione e caratterizzazione dell'elettronica di acquisizione ...
 
Analisi e sviluppo di un sistema collaborativo simultaneo per la modifica di ...
Analisi e sviluppo di un sistema collaborativo simultaneo per la modifica di ...Analisi e sviluppo di un sistema collaborativo simultaneo per la modifica di ...
Analisi e sviluppo di un sistema collaborativo simultaneo per la modifica di ...
 
Monitoraggio di mac address in lan
Monitoraggio di mac address in lanMonitoraggio di mac address in lan
Monitoraggio di mac address in lan
 
Analisi e prototipazione di un sistema di streaming per la localizzazione in ...
Analisi e prototipazione di un sistema di streaming per la localizzazione in ...Analisi e prototipazione di un sistema di streaming per la localizzazione in ...
Analisi e prototipazione di un sistema di streaming per la localizzazione in ...
 
Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...
Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...
Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...
 
Relazione Modellazione e Simulazioni Numeriche: Percolazione
Relazione Modellazione e Simulazioni Numeriche: PercolazioneRelazione Modellazione e Simulazioni Numeriche: Percolazione
Relazione Modellazione e Simulazioni Numeriche: Percolazione
 
Sistemi domotici integrati per la gestione intelligente d’ambiente
Sistemi domotici integrati per la gestione intelligente d’ambienteSistemi domotici integrati per la gestione intelligente d’ambiente
Sistemi domotici integrati per la gestione intelligente d’ambiente
 
Dynamic Scheduling
Dynamic SchedulingDynamic Scheduling
Dynamic Scheduling
 
Simulazione di un sistema fisico ts inginf
Simulazione di un sistema fisico ts inginfSimulazione di un sistema fisico ts inginf
Simulazione di un sistema fisico ts inginf
 
Analisi di prestazione dell'interprete tuProlog su piattaforma Java - Tesi
Analisi di prestazione dell'interprete tuProlog su piattaforma Java - TesiAnalisi di prestazione dell'interprete tuProlog su piattaforma Java - Tesi
Analisi di prestazione dell'interprete tuProlog su piattaforma Java - Tesi
 
Progetto e implementazione di una pipeline di sviluppo software con tecnologi...
Progetto e implementazione di una pipeline di sviluppo software con tecnologi...Progetto e implementazione di una pipeline di sviluppo software con tecnologi...
Progetto e implementazione di una pipeline di sviluppo software con tecnologi...
 
Tesi De Franceschi Daniel
Tesi De Franceschi DanielTesi De Franceschi Daniel
Tesi De Franceschi Daniel
 
Montalti - "Interactive Musical Agents" (2010, paper ITA)
Montalti - "Interactive Musical Agents" (2010, paper ITA)Montalti - "Interactive Musical Agents" (2010, paper ITA)
Montalti - "Interactive Musical Agents" (2010, paper ITA)
 
Autenticazione Continua Durante la Navigazione Web Basata sulla Dinamica del ...
Autenticazione Continua Durante la Navigazione Web Basata sulla Dinamica del ...Autenticazione Continua Durante la Navigazione Web Basata sulla Dinamica del ...
Autenticazione Continua Durante la Navigazione Web Basata sulla Dinamica del ...
 
Extended Summary of "Engineered Self-Organization for Resilient Robot Self-As...
Extended Summary of "Engineered Self-Organization for Resilient Robot Self-As...Extended Summary of "Engineered Self-Organization for Resilient Robot Self-As...
Extended Summary of "Engineered Self-Organization for Resilient Robot Self-As...
 
Progetto e realizzazione di uno strumento per la raccolta di dipendenze archi...
Progetto e realizzazione di uno strumento per la raccolta di dipendenze archi...Progetto e realizzazione di uno strumento per la raccolta di dipendenze archi...
Progetto e realizzazione di uno strumento per la raccolta di dipendenze archi...
 
Graph partitioning: implementazione dell'algoritmo spettrale e confronto con ...
Graph partitioning: implementazione dell'algoritmo spettrale e confronto con ...Graph partitioning: implementazione dell'algoritmo spettrale e confronto con ...
Graph partitioning: implementazione dell'algoritmo spettrale e confronto con ...
 
Network monitoring tramite snmp
Network monitoring tramite snmpNetwork monitoring tramite snmp
Network monitoring tramite snmp
 

Recently uploaded

GIORNATA TECNICA 18/04 | BENANTI Alessandro
GIORNATA TECNICA 18/04 | BENANTI AlessandroGIORNATA TECNICA 18/04 | BENANTI Alessandro
GIORNATA TECNICA 18/04 | BENANTI AlessandroServizi a rete
 
GIORNATA TECNICA 18/04 | DE ROSA Roberto
GIORNATA TECNICA 18/04 | DE ROSA RobertoGIORNATA TECNICA 18/04 | DE ROSA Roberto
GIORNATA TECNICA 18/04 | DE ROSA RobertoServizi a rete
 
Descrizione della struttura architettonica Eretteo.pptx
Descrizione della struttura architettonica Eretteo.pptxDescrizione della struttura architettonica Eretteo.pptx
Descrizione della struttura architettonica Eretteo.pptxtecongo2007
 
GIORNATA TECNICA 18/04 | SPIZZIRRI Massimo
GIORNATA TECNICA 18/04 | SPIZZIRRI MassimoGIORNATA TECNICA 18/04 | SPIZZIRRI Massimo
GIORNATA TECNICA 18/04 | SPIZZIRRI MassimoServizi a rete
 
GIORNATA TECNICA 18/04 | LITTERIO Raffaele
GIORNATA TECNICA 18/04 | LITTERIO RaffaeleGIORNATA TECNICA 18/04 | LITTERIO Raffaele
GIORNATA TECNICA 18/04 | LITTERIO RaffaeleServizi a rete
 
GIORNATA TECNICA DA AQP 18/04 | MOTTA Simone
GIORNATA TECNICA DA AQP 18/04 | MOTTA SimoneGIORNATA TECNICA DA AQP 18/04 | MOTTA Simone
GIORNATA TECNICA DA AQP 18/04 | MOTTA SimoneServizi a rete
 
GIORNATA TECNICA 18/04 | DE LEO Antonio
GIORNATA TECNICA 18/04  | DE LEO AntonioGIORNATA TECNICA 18/04  | DE LEO Antonio
GIORNATA TECNICA 18/04 | DE LEO AntonioServizi a rete
 
Presentzione Matematica similitudini circonferenze e omotetie.pptx
Presentzione  Matematica similitudini circonferenze e omotetie.pptxPresentzione  Matematica similitudini circonferenze e omotetie.pptx
Presentzione Matematica similitudini circonferenze e omotetie.pptxfilippoluciani9
 
GIORNATA TECNICA DA AQP 18/04 | ZONNO Serena
GIORNATA TECNICA DA AQP 18/04 | ZONNO SerenaGIORNATA TECNICA DA AQP 18/04 | ZONNO Serena
GIORNATA TECNICA DA AQP 18/04 | ZONNO SerenaServizi a rete
 

Recently uploaded (9)

GIORNATA TECNICA 18/04 | BENANTI Alessandro
GIORNATA TECNICA 18/04 | BENANTI AlessandroGIORNATA TECNICA 18/04 | BENANTI Alessandro
GIORNATA TECNICA 18/04 | BENANTI Alessandro
 
GIORNATA TECNICA 18/04 | DE ROSA Roberto
GIORNATA TECNICA 18/04 | DE ROSA RobertoGIORNATA TECNICA 18/04 | DE ROSA Roberto
GIORNATA TECNICA 18/04 | DE ROSA Roberto
 
Descrizione della struttura architettonica Eretteo.pptx
Descrizione della struttura architettonica Eretteo.pptxDescrizione della struttura architettonica Eretteo.pptx
Descrizione della struttura architettonica Eretteo.pptx
 
GIORNATA TECNICA 18/04 | SPIZZIRRI Massimo
GIORNATA TECNICA 18/04 | SPIZZIRRI MassimoGIORNATA TECNICA 18/04 | SPIZZIRRI Massimo
GIORNATA TECNICA 18/04 | SPIZZIRRI Massimo
 
GIORNATA TECNICA 18/04 | LITTERIO Raffaele
GIORNATA TECNICA 18/04 | LITTERIO RaffaeleGIORNATA TECNICA 18/04 | LITTERIO Raffaele
GIORNATA TECNICA 18/04 | LITTERIO Raffaele
 
GIORNATA TECNICA DA AQP 18/04 | MOTTA Simone
GIORNATA TECNICA DA AQP 18/04 | MOTTA SimoneGIORNATA TECNICA DA AQP 18/04 | MOTTA Simone
GIORNATA TECNICA DA AQP 18/04 | MOTTA Simone
 
GIORNATA TECNICA 18/04 | DE LEO Antonio
GIORNATA TECNICA 18/04  | DE LEO AntonioGIORNATA TECNICA 18/04  | DE LEO Antonio
GIORNATA TECNICA 18/04 | DE LEO Antonio
 
Presentzione Matematica similitudini circonferenze e omotetie.pptx
Presentzione  Matematica similitudini circonferenze e omotetie.pptxPresentzione  Matematica similitudini circonferenze e omotetie.pptx
Presentzione Matematica similitudini circonferenze e omotetie.pptx
 
GIORNATA TECNICA DA AQP 18/04 | ZONNO Serena
GIORNATA TECNICA DA AQP 18/04 | ZONNO SerenaGIORNATA TECNICA DA AQP 18/04 | ZONNO Serena
GIORNATA TECNICA DA AQP 18/04 | ZONNO Serena
 

Extended Summary of "EvoCraft: A New Challenge for Open-Endedness"

  • 1. UNIVERSITÀ DEGLI STUDI DI TRIESTE DIPARTIMENTO DI INGEGNERIA E ARCHITETTURA Corso di Laurea in Ingegneria Elettronica e Informatica Extended Summary of ”EvoCraft: A New Challenge for Open-Endedness” Relatore: Ch.mo Prof. Andrea DE LORENZO Candidato: Giacomo VASSALLO Mat. IN0500761 ANNO ACCADEMICO 2021/2022
  • 2. Indice 1 Introduzione 3 2 Nozioni 3 2.1 Algoritmi Open-Ended . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2 Minecraft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2.1 Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.3 API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3 Valutazione delle Prestazioni 5 3.1 Perché usare Minecraft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.2 Prestazioni del Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.2.1 Test 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.2.2 Test 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.3 Approcci Evolutivi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.3.1 Evoluzione Interattiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.3.2 Evoluzione Automatizzata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 4 Conclusioni 7 2
  • 3. Introduzione L’articolo descrive i risultati raggiunti dallo sviluppo di EvoCraft, un framework che ha l’obiettivo di facili- tare lo sviluppo e lo studio dell’intelligenza artificiale e, in particolare, degli algoritmi open-ended [4]. L’articolo propone alcuni semplici esperimenti per testare le funzionalità del framework e della relativa Ap- plication Programming Interface (API). Gli algoritmi open-ended formalizzano il concetto naturale di ”evoluzione”: cosı̀ come l’evoluzione naturale ha generato una grande varietà di forme di vita, l’obiettivo delle tecniche open-ended è la creazione di algoritmi che formino strutture complesse partendo da altre molto più semplici. Delineare questo concetto porterebbe ad un importante passo in avanti verso la creazione della vita artificiale. Nozioni 2.1 Algoritmi Open-Ended Un algoritmo open-ended mira a creare autonomamente strutture sempre più complesse, senza porre vincoli ai risultati da ottenere. Questo approccio permette di generare una grande varietà di strutture partendo da alcune più semplici [3]. Utilizzare l’open-ended learning comporta un aumento della diversità nei punti intermedi tra la prima generazione e quella finale, favorendo lo sviluppo autonomo di un’ampia gamma di strutture. 2.2 Minecraft Minecraft è un famoso gioco basato sulla costruzione di strutture e sull’esplorazione di un mondo generato casualmente. Il giocatore può interagire con l’ambiente attraverso la manipolazione di blocchi, ossia cubi di lato 1m, di vari materiali (es. pietra, sabbia, terra, ecc.). Un blocco può essere piazzato nel mondo di gioco oppure distrutto. Il giocatore può inoltre interagire con le creature che popolano il mondo come animali e mostri. Esistono anche materiali fluidi come l’acqua e la lava, i quali tendono a propagarsi verso il basso come se affetti dalla gravità. Minecraft presenta una feature (redstone) che permette di creare meccanismi automatizzati che emulano dei circuiti elettrici veri e propri. Combinando alcuni blocchi, infatti, è possibile creare ad esempio porte logiche e timer. Questo ha permesso ai giocatori di creare strutture molto complesse, come robot che si muovono autonoma- mente, simulatori ed editor testuali (figura 2.1) Un esempio di struttura basata sulla redstone è la “macchina volante”, ovvero un insieme di blocchi che una volta azionato si muove autonomamente in linea retta. In figura 2.2 è riportata la macchina volante minima, ovvero quella realizzabile con il minor numero di blocchi possibile. 2.2.1 Server Minecraft presenta una modalità multigiocatore, che sfrutta un processo server eseguito su un calcolatore. Un server di Minecraft è eseguito di default a 20 tick s . Un tick è un’iterazione del ciclo di gioco e ad ogni 3
  • 4. Figura 2.1: Alcuni esempi di strutture complesse create utilizzando la redstone: robot, editor testuali, emulatori, reti neurali Figura 2.2: Macchina volante realizzata con il numero minimo di blocchi possibile tick vengono controllati molti aspetti del gioco stesso come: punti vita, fame, comportamento delle creature. Quando il server è sovraccaricato (un tick dura più di 50ms), il tick rate del server cala. 2.3 API L’API è stata realizzata utilizzando Sponge, ovvero una piattaforma di creazione di mod per Minecraft sotto forma di plugin per il server su cui il gioco è in esecuzione. Sebbene gli autori abbiano realizzato un client scritto in Python che implementa l’API, è possibile utilizzare l’interfaccia anche tramite altri linguaggi. Per rendere l’utilizzo dell’API indipendente dal linguaggio, essa si basa sulle Remote Procedure Call (RPC) e in particolare sul framework gRPC. Una RPC consiste nell’esecuzione di una funzione su un calcolatore diverso da quello che elabora il program- ma, nascondendo particolari sulla comunicazione di rete [5]. Il framework gRPC si basa su due entità [1]: • Servizi (services), ognuno dei quali espone delle RPC, ovvero delle funzioni che possono essere chiamate dal programma. • Messaggi (messages), che definiscono input e output del programma La prima versione dell’API comprende un solo servizio con 3 RPC (figura 2.3) 4
  • 5. Figura 2.3: Definizione delle RPC del framework. Per semplicità sono omesse le definizioni dei messaggi. Valutazione delle Prestazioni 3.1 Perché usare Minecraft Secondo gli autori, Minecraft rappresenta il mezzo migliore per favorire lo studio siccome fornisce un insieme limitato di elementi base (ovvero i blocchi) per creare le strutture. Inoltre in Minecraft è possibile creare meccanismi automatizzati (come i circuiti logici) usando la redstone. 3.2 Prestazioni del Server L’articolo discute l’utilità del framework per evolvere strutture. Per valutarne le prestazioni quando utilizzato su un server sono stati effettuati 2 test. 3.2.1 Test 1 Il primo test consiste nell’eliminare tutti i blocchi da un volume cubico di lato N e riempirlo nuovamente per valori crescenti di N. Quando il tick rate scende sotto i 20 tick s si interrompe il test. Il tick rate cala con N = 31 (corrispondente a 29,791 blocchi piazzati simultaneamente). 3.2.2 Test 2 Vengono create N macchine volanti minime e viene considerato il numero di tick al secondo dopo 20 secondi. Queste macchine dinamiche sono più dispendiose rispetto ai blocchi statici generati nell’esempio precedente. Il test viene fermato quando il tick rate scende sotto i 20 tick s ; ciò accade quando si generano circa 1200 macchine. 3.3 Approcci Evolutivi Per testare le funzionalità del framework vengono proposti due diversi approcci di evoluzione: quella interattiva e quella automatizzata. 3.3.1 Evoluzione Interattiva La struttura generata automaticamente viene valutata da un umano che ha il controllo (parziale o totale) sui risultati dell’evoluzione. Questa tecnica è particolarmente efficace per i problemi in cui è difficile definire esplicitamente una metrica 5
  • 6. Figura 3.1: Ogni riga rappresenta un diverso esperimento, mentre le colonne mostrano il risultato rispetti- vamente alla generazione 0, 10 e 30 o quando i criteri di valutazione sono soggettivi. I risultati cosı̀ ottenuti però possono essere poco consistenti, a causa del giudizio non sempre coerente del- l’operatore umano. La strategia utilizzata è quella di evolvere entità e di permettere all’umano di scegliere la sua preferita per ogni generazione. Al risultato scelto viene fornito un indice di fitness pari a 1, a tutti gli altri pari a 0. Dopodiché viene presentata una nuova generazione all’utente. Nei primi 3 esempi si è chiesto all’operatore di scegliere la struttura a suo giudizio più interessante (criterio volutamente vago e impreciso) mentre l’obiettivo dell’ultimo era la creazione di una cascata (figura 3.1). Questo approccio rende possibile controllare l’evoluzione di alcuni tratti fenotipici rispetto ad altri, favorendo quelle strutture che presentano determinate caratteristiche. 3.3.2 Evoluzione Automatizzata Nell’esperimento si tenta di creare una struttura che deve raggiungere un blocco sospeso in aria. Viene mantenuta una popolazione di 20 strutture, ognuna con il relativo target. La metrica (fitness) utilizzata per scegliere le strutture migliori è la distanza tra il blocco più vicino al tra- guardo e il traguardo stesso. Il blocco iniziale della torre è generato attaccato al terreno, mentre il bersaglio è spostato 10 blocchi a nord, 10 blocchi a ovest e 10 blocchi in alto rispetto alla base. Una volta calcolato il fitness si mantengono le due strutture migliori e si uniscono nella generazione successi- va, creando una struttura figlia. Si taglia una delle due in un punto casuale e si sostituisce la parte superiore 6
  • 7. Figura 3.2: Evoluzione delle torri (generazioni 1, 6 e 13) e grafico della distanza minima al crescere delle generazioni di questa con quella dell’altra struttura. La costruzione migliore è copiata nella generazione successiva. La prima generazione è formata da torri create casualmente partendo dalla base. Nell’esempio fornito dall’articolo, l’obiettivo è raggiunto dopo 10 generazioni, sebbene il risultato non sia vicino all’ottimo (figura 3.2). Per dimostrare l’opportunità di evolvere anche macchine dinamiche, nell’articolo è anche riportato un espe- rimento di evoluzione di macchine mobili. L’indice di fitness è calcolato come il cambiamento del centro di massa della struttura evoluta dopo 10 secondi. L’algoritmo ha creato macchine che sono capaci di muovere leggermente il proprio centro di massa, sebbene non siano macchine che si muovono costantemente in una direzione. La macchina volante minima muove il proprio centro di massa di 17 blocchi in 10 secondi, mentre la struttura migliore generata dall’algoritmo lo muove di soli 0.2 blocchi, dopodiché si ferma. Conclusioni Come dimostrato dagli esperimenti esposti precedentemente, il framework permette di piazzare e tracciare programmaticamente un numero ragionevole di blocchi in un server di Minecraft. Si è dimostrato che è possibile anche utilizzare il framework per evolvere circuiti di redstone, dando vita a strutture dinamiche. A questo proposito cito un altro progetto, non riportato nell’articolo, da parte di Nicholas Guttenberg [2], premiato al GECCO 2021 (Genetic and Evolutionary Computation Conference), competizione organizzata dagli stessi autori dell’articolo. Il progetto riguarda la creazione di un algoritmo che utilizzi i circuiti di redstone per implementare funzioni logiche all’interno di Minecraft. Il sistema è in grado di evolvere porte logiche e di utilizzare circuiti prece- dentemente scoperti combinati opportunamente per creare nuove funzioni logiche. Questo dimostra che è possibile utilizzare il framework per evolvere circuiti logici e dinamici. L’evoluzione basata sull’indice di fitness si è dimostrata fallimentare nell’esperimento con la macchina vo- lante. Un importante sviluppo potrebbe essere tentare approcci differenti, realizzando un maggior numero di strutture intermedie. L’obiettivo principale di questi esperimenti dev’essere la ricerca degli elementi che mancano ai metodi attuali per garantire lo sviluppo autonomo di strutture complesse. 7
  • 8. Riferimenti [1] gRPC Authors. Introduction to gRPC. 2021. url: https://grpc.io/docs/what-is-grpc/introduction/ (visitato il 14/06/2022). [2] Nicholas Guttenberg. Automated design of novel redstone circuits - Evocraft. Youtube. 2021. url: https: //youtu.be/JJ1-jPGWoqU. [3] Joel Lehman Kenneth O. Stanley e Lisa Soros. Open-endedness: The last grand challenge you’ve never heard of. 2017. url: https : / / www . oreilly . com / radar / open - endedness - the - last - grand - challenge-youve-never-heard-of/ (visitato il 14/06/2022). [4] Djordje Grbic e Rasmus Berg Palm e Elias Najarro e Claire Glanois e Sebastian Risi. ≪EvoCraft: A New Challenge for Open-Endedness≫. In: arXiv (2012). arXiv: 2012.04751 [cs.AI]. [5] Wikipedia. Chiamata di procedura remota. 2022. url: https://it.wikipedia.org/wiki/Chiamata_ di_procedura_remota (visitato il 14/06/2022). 8