Ringraziamo il pubblico numeroso che ha partecipato alla presentazione FoxGame: Introduzione all’Apprendimento Automatico a Pycon4! Come promesso si apre il FoxGame Contest, una sfida rivolta a tutti: vogliamo vedervi sviluppare Brain nuovi per volpi e lepri o provare a migliorare quelli esistenti (qualcuno ha parlato di reinforcement learning?). Ecco quindi come partecipare!
Per cominciare a giocare procuratevi FoxGame 1.0 da Google Code con Mercurial:
~$ hg clone -u v1.0 https://foxlearner.googlecode.com/hg/ foxlearner
Non serve saper usare Mercurial (consiglio comunque un buon tutorial); questo comando serve a ottenere una copia locale del repository di codice di FoxGame e metterla nella directory indicata, foxlearner in questo caso.
A questo punto potrebbe sorgere il disappunto per la documentazione incompleta: vi indirizzo su foxgame/controllers/examples.py e foxgame/controllers/traditional.py e raccomando di controllare commenti e docstring per dubbi, ma cominciare a scrivere un Brain è questione di secondi. Per eseguire il gioco basta lanciare main indicando il Brain che si vuole usare:
~/foxlearner/FoxGame/$ ./main --hare-brain=modulo_del_brain
In questo modo FoxGame carica dal modulo indicato la classe FoxBrain o HareBrain, a seconda di quale animale vogliate controllare.
Per partecipare al FoxGame Contest dovete solo inviare un brain funzionante entro il 24 luglio 2010 e tenere conto di qualche regola:
- si può sviluppare un Brain per volpe o per lepre o entrambi, scelta libera;
- gli autori che invieranno un Brain operativo e in grado di fare il suo mestiere riceveranno una copia di Python Pocket (Apogeo) autografata dall’autore Marco Beri;
- ogni autore che partecipa si candida inoltre per vincere una copia di Ray Kurzweil, La singolarità è vicina (Apogeo) assegnata al migliore Brain che vedremo inviato. Per stabilire quale sarà il migliore applicheremo sia dei criteri oggettivi, sia altri che saranno oggetto di discussione aperta:
- benchmarking delle prestazioni in simulazioni contro altri Brain (compresi quelli del contest!) e contro giocatori umani volontari: per le volpi conta in quanto tempo riescono ad afferrare la lepre, per le lepri è importante sia il tempo di sopravvivenza sia il numero di carote che riescono a prendere e quanto velocemente,
- capacità di apprendimento, sia che si tratti di controllo (imparare a fare le mosse ideali per diversi contesti) o di predizione (prevedere lo stato del gioco, ad esempio la posizione dell’animale a distanza di tempo, e decidere le mosse in base alla predizione) è importante che sia il Brain a imparare dall’ambiente e dalle partite,
- potenzialità didattiche della propria implementazione, sia con il codice stesso che con commenti e documentazione, al fine di poter prendere il Brain come esempio didattico;
- l’implementazione deve essere compatibile con Python 2.5 e 2.6, oltre che con le versioni future, e particolarmente apprezzata sarà la compatibilità con PyPy 1.2 e la possibilità di porting a Python 3;
- si possono usare librerie di terze parti con licenza open a patto che siano anche loro compatibili con Python 2.5 e 2.6;
- non è obbligatorio ma vi invitiamo a segnalare l’intenzione (anche se non definitiva) di partecipare al contest prima del 24 luglio, in modo da consentire sia a noi che agli altri partecipanti di sapere con chi si gioca e su che terreno!
La mailing list foxgame-users@googlegroups.com è aperta a tutti, partecipanti del contest, utenti e giocatori, passanti curiosi. L’iscrizione è obbligatoria solo per gli autori che vogliono partecipare alla sfida. È anche il luogo adatto per chiedere chiarimenti, darci consigli e discutere insieme sullo sviluppo di FoxGame stesso.
Speriamo partecipiate tanto quanto avete fatto a PyCon, ora si dia inizio alle danze!
Il team di Foxgame
Davide, Michele, Daniele

[...] This post was mentioned on Twitter by Maker aka Michele, Maker aka Michele. Maker aka Michele said: http://daviderizzo.net/blog/2010/05/pycon4/foxgame-contest/ m/ [...]
Non so che versione di mercurial usate, ma a me il flag -u non funziona; forse volevate scrivere -U?
Ciao Mauro, hg clone -u è stato introdotto in Mercurial 1.4, mi sarei aspettato di trovarlo ovunque, noi usiamo già 1.5.
Comunque non è un problema, puoi fare clone del repository così com’è, dalla v1.0 non ci sono stati commit distruttivi.
Grazie per la segnalazione!
[...] I talk sono stati molto interessanti. Quest’anno per la prima volta, affiancato da due miei amici (Davide e Michele) ho tenuto una parte di un talk. Il talk era su FoxGame , un gioco in python di cui ho supportato lo sviluppo. Si tratta sostanzialmente di un gioco bidimensionale in cui una lepre, ricorsa da una volpe, scappa dalla volpe e mangia delle carote. Nulla di complicato, in realtà lo scopo del gioco è stato quello di fornire un ambiente di “test” per chi vuole avvicinarsi al mondo del machine learning e sperimentare varie tecniche. Nello sviluppo del programma abbiamo tentato di “ultra-modulizzare” tutto, portando quindi infinita possibilità di espansione e semplicità di lettura. Si tratta quindi sostanzialmente di un progettino a scopo “didattico”. Tuttavia io stesso ho imparato molto lavorandoci, quindi penso sia stato un buon progetto. Oltre al talk abbiamo avviato un “contest”, cioè chiunque voglia può collaborare scrivendo un “brain”, un “cervello” per il nostro gioco, per tentare di rendere la lepre più astuta a scappare dalla volpe o viceversa. In palio ci sono dei libri di python autografati da Marco Beri e il libro “La singolarità è vicina”. Per altre informazioni visitate qui. [...]
Ciao Mauro, prova con “hg clone -r v1.0 https://foxlearner.googlecode.com/hg/ foxlearner” oppure se hai già clonato il repo “hg update v1.0″ …