L'approccio basato sui Modelli ad Agenti è ormai parte del
quotidiano; questa
presentazione
del Prof. Michael Luck (
copia
locale) offre un'interessante panoramica di 50 utilizzi
"commerciali" dell'Agent Based Computing (ABC).
Lo strumento principe per giocare e scrivere Agent Based Models (ABM)
in questo corso è
NetLogo:
un software freeware (non open-source!), che costituisce a tutti
gli effetti un Integrated Development
Enviroments (IDE) e che permette con poche righe di un linguaggio erede
stretto del logo di scrivere ABM dal comportamento anche relativamente
complesso.
Per un primo approccio si consiglia la lettura dei seguenti
articoli/proceedings:
- Tisue, S., & Wilensky, U. (2004), "NetLogo: A simple environment for
modeling complexity", paper presented at the International
Conference on Complex Systems, Boston, May 16 - 21;
Orario delle lezioni
Il
calendario
pubblico del corso sulla piattaforma google riporta il nuovo
calendario concordato con gli studenti.
Appunti delle lezioni
Programma sintetico:
Parte prima, Multi-Agent-Systems:
Introduction,
Intelligent Agents,
Deductive Reasoning Agents,
Practical Reasoning Agents,
Reactive and Hybrid Agents,
Multi-Agent Interactions,
Reaching Agreements,
Agent Communication,
Working Together,
Introduction
to NetLogo
Parte seconda, Laboratory Activities.
Ogni elemento del programma sintetico corrisponde ad un'unità,
seguendo il link è possibile scaricare le relative slides
utilizzate per la didattica frontale; esse costituiscono il punto di
riferimento per la preparazione dell'esame.
Programma dettagliato:
versione pdf (.pdf), versione word (.doc)
Versione completa:
Per un download più rapido sono a disposizione anche le seguenti
versioni:
Unità 1-17 (.pdf) Unità 1-17 (.tar.gz,
archivio con tutte le singole unità: file apribile con winzip o
simili)
Materiale didattico
Per poter facilitare la comprensione degli appunti e dei libri citati
si consiglia di consultare le seguenti risorse online relative a
prerequistiti per questo corso o a concetti mutuati da altre discipline
nel corso delle lezioni:
Attività di laboratorio
Le attività di laboratorio si svolgono utilizzando l'IDE
NetLogo, versione 4.0.4
A seconda della piattaforma su cui volete utilizzare NetLogo potete
effettuare direttamente il
download dei
file di installazione dal sito NetLogo (da cui si può
scaricare anche una versione per MAC) o dalla repository locale:
netlogo-4.0.4.tar.gz (Linux),
NetLogo4.0.4Installer.exe
(Windows)
- versione 3D-Preview5 (una vecchia versione che però
include il rendereing 3D):
netlogo-3DPreview5.tar.gz
(Linux),
NetLogo3DPreview5Installer.exe
(Windows)
Tutte le versioni dipendono dalla presenza sulla piattaforma di
un'installazione Java funzionante.
Mentre su piattaforma Windows i file di installazione sono
autoscompattanti, su piattaforma Linux è necessario (si assume
di essere in Bourne Shell):
1) creare una directory di lavoro e scompattare l'archivio:
mkdir ~/Agenti/NetLogo
cd ~/Agenti/NetLogo
tar zxf netlogo-4.0.4.tar.gz
2) definire una variabile di ambiente che punti all'installazione e
aggiungerla al PATH:
cd netlogo-4.0.4
export NETLOGOPATH=`pwd`
export
PATH=/usr/lib/jvm/java-1.5.0-sun/bin/:${PATH}:$NETLOGOPATH
Da questo momento in poi l'IDE può essere invocato semplicemente
con il comando:
netlogo.sh
Il manuale della versione corrente si può trovare in
formato html sul sito
NetLogo o in
formato
pdf.
La risorsa in assoluto più importante è il
Dizionario
delle Primitive, con l'elenco di ciascun comando e dei suoi
utilizzi, in ordine alfabetico. Ogni installazione ne ha una copia
locale all'interno della directory docs/ nel file primindex.html
Fase preparatoria
I tre tutorials della NetLogo sono ottimi ma non semplicissimi. Per
questo suggerisco, per poter iniziare a prendere dimestichezza
con NetLogo, i
seguenti due tutorial:
Tutorial
del Complexity
Workshop (link alla copia locale).
Il tutorial pone il focus sui
primi passi in NetLogo utlizzando la User Interface dell'IDE. Per
questo lo suggerisco come primo passo; ignorate il link allo strumento
alternativo, RePast, al termine del tutorial.
Processo didattico suggerito dallo StupidModel (link alla copia locale).
Il tutorial è costituito da 16 versioni che aggiornano
progressivamente un modello originariamente scritto per una versione
più vecchia di NetLogo (NetLogo 2) utilizzando sempre il comando
più semplice possibile. Dal momento che segue un approccio molto
più sistematico del precedente lo consiglio come secondo passo.
Il tutorial è costituito dall'archivio
NetLogoStupidmodels.tgz,
che contiene tutte le versioni del modello per l'IDE NetLogo 4.0.4 e il
dat file necessario per le ultime due versioni (la
versione
originale del file contiene in alcune versioni dei comandi non
corretti per la
versione corrente di NetLogo);
Si consiglia di
estrarre i files in una directory temporanea, di eseguire la shell di
inizializzazione di NetLogo e di caricare mediante il comando
File->Open ciascun modello. Dopo
aver letto le informazioni nella Tab "Information" cercate di
comprendere il listato della versione (all'inizio molto banale, e poi
pian piano più difficile) accedendovi nella Tab "Procedures".
Quando crete di aver capito, nella Tab "Interface" eseguite dapprima il
setup cliccando sul pulsante "Setup" e dopo iniziate la procedura
principale del codice cliccando sul pulsante "Go". Se la versione del
modello è sufficientemente avanzata potete anche variare i
parametri di input.
Il modello è stato scritto in modo da poter essere utilizzato
per l'apprendimento di 5 dei più comuni IDE per ABM; per una
descrizione
delle diverse implementazioni e una comparazione dei vantaggi dei
diversi tools si legga il
documento
degli autori dello StupidModel (formato pdf).
Una volta preso dimestichezza con il
linguaggio e i tools di NetLogo, si consiglia di affrontare alcuni dei
numerosi modelli nella libreria che viene fornita con ogni versione di
NetLogo. Si può accedere alla libreria via Menu con
File->Models LIbrary.
Modello
Termites discusso durante le lezioni. In particolare nel corso
nelle lezioni frontali, nella sezione
Introduction to NetLogo,
è stato discusso una versione semplificata del modello Termites
(presente nella libreria dei modelli). Le due versioni del modello a
cui si è fatto riferimento nella sezione sono:
- Termites_Tutorial.1.nlogo,
versione senza visualizzazione a istogramma e con la funzione go di
tipo turtle;
- Termites_Tutorial.2.nlogo,
versione con visualizzazione a istogramma e con la funzione go di tipo
observer.
Attività di gruppo
L'attività da svolgere consiste nel creare un modello ad agenti con
Netlogo 4.0.4 per
modellizzare
un gas bidimensionale e le sue differenti distribuzioni di energia.
(NB: accesso
con credenziali differenti rispetto agli altri links della pagina).
Esami
L'esame è solo orale, su appuntamento; gli studenti che
intendono sostenere l'esame devono contattarmi via mail, con un
anticipo di almeno due settimane (quattro dal 15/7 al 30/9) rispetto
alla data desiderata.
Prima che il primo studente di ciascun gruppo possa sostenere l'orale
è necessario che io riceva,
esclusivamente
in modalità telematica e in formato pdf, la relazione
relativa all'Attività di Laboratorio del gruppo. Le relazioni
vanno inviate all'indirizzo e-mail:
marco.maggiora@to.infn.it
e possono essere scritte indifferentemente in inglese o in italiano.
Gli appelli concordati di volta in volta con gli studenti saranno
inseriti nel
calendario
pubblico del corso in modo che altri studenti si possano
eventualmente unire.