<- Editoriale - Copertina - Grace ->

Rubrica

Questo mese PlutoWare è lieto di ospitare un interessante progetto di Livio Crestini, Terra Genetica. Ecco quindi un'altra forma di questa rubrica: non solo vetrina di software già esistente, ma anche un luogo dove presentare nuovi progetti ed idee, e cercare collaborazioni; crediamo che questa sia una risorsa molto importante per ampliare il panorama del Free Software italiano, e un'occasione di confronto decisamente stimolante e, perché no, divertente. Forza, allora, c'è spazio per tutti!

--Mano :o)


PlutoWare: Terra Genetica

Il progetto che voglio descrivere si chiama: Terra Genetica.
Terra Genetica è un sistema che permette l'evoluzione di una comunità di agenti interagenti, guidati da reti neurali ed algoritmi genetici in un ambiente distribuito.
Scopo principale di questo progetto è divertire gli ideatori ;-), scopo secondario è realizzare un generatore di risolutori neurali (RN) ottimi, dove per risolutore neurale ottimo si intende la rete neurale di tipo, topologia, parametri e training set, che meglio "fitta" ovvero risolve, il problema di sopravvivere in Terra Genetica.
Terra genetica quindi è un mondo virtuale, costituito di terra, acqua, voragini ed erba.


Fig 1. Una vista dall'alto di Terra Genetica

I suoi abitanti sono i Cromosotteri, individui a sei zampe erbivori e pacifici, i cui unici nemici sono i

 

 

Fig 2. Cromosottero Maschio

Fig 3. Cromosottero Femmina

Cromopredator, esseri malvagi che divorano i Cromosotteri.
I Cromosotteri possono mangiare erba, bere, spostarsi nelle otto direzioni, emettere versi, udire suoni, vedere cosa capita di fronte a loro, e riprodursi accoppiandosi con esemplari della stessa specie; ma devono fare molta attenzione, e imparare a non morire di fame o di sete, a non affogare nell'acqua alta, ed a fuggire dai Cromopredator.


Fig 4. Cromopredator

Terra Genetica è quindi il microcosmo in cui i cromosotteri nascono, fanno esperienza, imparano, si riproducono, trasmettono parte della loro esperienza alla progenie ed in fine muoiono.
Ciascun cromosottero dispone di un Genoma, che indica il tipo, la topologia, ed i parametri della sua rete neurale, il sesso, l'età massima, ecc.
Alla nascita, ciascun individuo apprende una quota parte delle esperienze dei genitori, e durante la sua vita effettua delle esperienze e apprende da esse.
Solo la progenie degli individui con il migliore mix fra tipo di rete, topologia di rete, esperienze, parametri di apprendimento, ecc, sopravviverà alla selezione naturale indotta dalla limitatezza delle risorse e dalla presenza dei predatori.

 

 

Fig 5. il cono visivo dei cromosotteri

Fig 6. Il campo auditivo

A questo punto rimangono solo alcune domande aperte:

  1. Perché realizzare questo sistema?
  2. Come puo essere realizzato tutto ciò?
  3. Ma non è difficile?
  4. Con quale modello organizzativo?
  5. In quali tempi?
  6. Chi può partecipare?

 

  1. Beh sul perché realizzare questo sistema posso dire che programmare ed imparare è bello! oppure perché dobbiamo fare la tesina del corso di informatica!
  2. Sul come possa essere realizzato credo che data la cospicua dimensione del progetto, sia utile suddividere Terra Genetica in diversi sottoprogetti "chiusi", ciascuno con un senso compiuto se preso singolarmente. Ad esempio una suddivisione può essere la realizzazione di 8 sottosistemi:
    1. sistema di distribuzione del carico: l'idea è, di distribuire N processi (leggi cromosotteri) su M macchine scegliendo le macchine più scariche
    2. sistema di gestione del mondo: è il sistema che determina le "leggi della fisica" valide nel nostro mondo simulato. (Es lo scorrere del tempo, la "morte" di un agente per mancanza, d'erba, …)
    3. sistema di comunicazione: consiste in una serie di code di messaggi mediante le quali i diversi sottosistemi possono scambiarsi informazioni.
    4. sistema di gestione della genetica: è il sistema mediante il quale si combinano i genomi che daranno luogo ai nuovi individui, con il loro genotipo e fenotipo.
    5. sistema di gestione dell'apprendimento: è il sistema di generazione delle reti neurali, a partire dal "genoma" di ciascun agente.
    6. sistema agente: consiste nella realizzazione delle azioni (operatori) proprie di ciascun agente.
    7. sistema di visualizzazione: consiste nella realizzazione delle interfacce grafiche di tutti gli oggetti presenti in Terra Genetica
    8. sistema di gestione delle esperienze: consiste nel realizzare il sistema di valutazione delle esperienze e il DB che tenga traccia dei legami stato precedente, azione, "vantaggi ottenuti", utilizzato per effettuare il training delle reti neurali.
  3. Si. In effetti è difficile. La realizzazione completa del progetto implica l'uso di reti neurali, database, librerie grafiche, programmazione di sistema, algoritmi genetici, di un'accurata progettazione,… insomma, non è una passeggiata. Bisogna d'altra parte dire che è un progetto altamente stimolante e soprattutto si impara molto!
  4. Come modello organizzativo organizzeremo diversi gruppi di lavoro che procedano in parallelo. Scelte tecniche ed architetturali saranno discusse e votate.
  5. Per quanto riguarda i tempi … dipende dalla numerosità dei team! Ma credo che in un mesetto si potrebbe già aver concluso il punto 1.
  6. Chi può partecipare: Beh questo punto mi sta particolarmente a cuore: in linea di massima possono partecipare… Tutti! Studenti, comunità virtuali, giornalisti, haker, professori, classi intere, centri sociali, professionisti, impiegati, … e chi più ne ha più ne metta, bastano entusiasmo e familiarità con il C++!!!

Bene Gente, per cominciare utilizzeremo il sistema di distribuzione del carico come banco di prova.
Spero di avervi incuriosito e che vogliate partecipare numerosi.
Fatevi sotto!!

Per far parte del gruppo scrivete a Livio@McLink.it

Livio Crestini, già diplomato in informatica, si è laureato in Ingegneria Informatica, con una tesi sulle reti neurali.
Le sue esperienze di lavoro comprendono consulenze per diverse società, principalmente nel campo dello sviluppo Software. Attualmente si occupa di architetture modelli e metodologie nel reparto IT di una società di Telecomunicazioni.
Nel tempo libero ama fare sport, ritrovarsi con gli amici e ballare la salsa.


<- Editoriale - Copertina - Grace ->