Netlogo e' un ambiente di programmazione e modellazione ideato alla Northwestern University da Uri Wilensky. E' stato creato sia per insegnare a costruire modelli, sia per essere usato nella ricerca sui Sistemi Complessi. NetLogo si basa su 2 precedenti linguaggi di programmazione : Logo e StarLogo Questi 3 linguaggi sono stati largamente usati in ambito scolastico, dalla scuola elementare fino ai dottorati di ricerca e master In questo corso useremo NetLogo per dimostrare alcune delle idee chiave della ricerca sui Sistemi Complessi e alcuni degli strumenti usati per studiare i Sistemi Complessi. Nei vari esercizi assegnati in questo corso, userete NetLogo per modificare e sperimentare simulazioni esistenti, ma se sceglierete di svolgere gli esercizi avanzati, potrete creare le vostre simulazioni. Nel resto di questa unità coprirò le basi per scaricare e usare NetLogo. Se non avete alcuna esperienza di programmazione, niente paura! NetLogo è facile da usare per i principianti, quanto utile per gli esperti Comunque, se avete gia' programmato in NetLogo, e lo conoscete abbastanza bene, potete saltare il resto dei video in questa unità e andare direttamente agli esercizi per la unità 1. Ok, iniziamo. Prima, scarichiamo NetLogo. E' gratuito, funziona con Windows Mac OS e Linux. Apro una finestra del browser e vado al sito di download, che è: http://ccl.northwestern.edu/netlogo Questo link è anche sulla pagina "Course Material" del sito del corso. Questo porta alla pagina di download che ha alcune informazioni su NetLogo. Clicco su download. Potete scaricarlo anche voi. Potete inserire le vostre informazioni se volete, è opzionale. OK, io uso Mac OS X, quindi scarico, OK. Lo salvo sul desktop. Lo apro. OK, qui c'è una cartella chiamata "NetLogo 5.0.3". Se state scaricando quando una nuova versione è stata rilasciata, potrebbe avere numeri più alti. Trascino la cartella sul desktop ed elimino i file di installazione. Ora ho questa cartella e dentro ho NetLogo 5.0.3. Quindi voi vedrete questo o una nuova versione. Questo è il file che voglio aprire. Questa è la versione bidimensionale di NetLogo, c'è anche quella tridimensionale NetLogo 3D, che vedremo più tardi. Faccio doppio click per aprirlo. Sì, voglio aprirlo. Ci vuole un po' ad aprirlo, dipende da quanto il vostro computer è veloce. Ecco, ci siamo. Ora vi mostrerò come lanciare un modello di NetLogo già esistente. NetLogo ha una libreria di modelli esistenti. Potete arrivarci andando sul menu File e scegliendo la "Models Library". Potete cercare tra tutte le diverse materie e differenti modelli in ogni materia. Io vado su Biologia e vado sul modello "Ants". Potete leggere, in questo progetto una colonia di formiche cerca del cibo. Anche se ogni formica segue un insieme di regole semplici, l'intera colonia agisce in maniera sofisticata. Apriamo il modello. OK, la prima cosa da fare quando aprite un modello NetLogo è andare qui su alla scheda "Info". Notate che ci sono le schede "Interface", "Info" e "Code". La scheda "Info" ci dice qualcosa sul modello. OK, ci dice come funziona e come usarlo, cose da sapere sul modello, alcune idee su come potreste estenderlo, ecc... Potete guardarlo da soli. Torniamo all'interfaccia. Noterete che ci sono due pulsanti qui: "setup" e "go". Questi appaiono in molti modelli NetLogo e la prima cosa da fare è sempre cliccare su "setup". Questo imposta la simulazione. Abbiamo qui un nido di formiche, che è questa macchia viola col cerchio rosso nel mezzo, che in realtà è dove vivono tutte le formiche. Questa barra qui, "Population", ci dice che ci sono 125 formiche. Le altre tre macchie sono pile di cibo e quello che vedremo è un grafico di quanto cibo c'è in ogni pila nel tempo. Le formiche si muoveranno fuori dal nido per cercare cibo. Clicco su "go" e potete vederle muoversi. Lasciatemi fermare il modello qui, cliccando di nuovo su "go", per far notare alcune cose. Guardate le piccole formiche muoversi. Si muovono in maniera casuale finchè una di loro non trova un pezzo di cibo, che qui è un quadratino di colore blu, o una delle altre pile. Prendono il cibo e lo riportano al loro nido. Ma mentre tornano al nido, lasciano una traccia di una sostanza chimica, spesso chiamata "feromone" nel mondo reale delle formiche, così gli altri possono seguire questa traccia. Quindi, una formica lascia una traccia, come per guidare le altre formiche nel posto in cui ha trovato il cibo. Queste tracce si diffondono secondo questo tasso di diffusione, qui in questa barra, che significa che si sprigionano dal percorso originale per tutta la distanza e poi evaporano secondo questo tasso. Quando la traccia evapora, non vediamo più un percorso qui. Fatemelo rallentare, questa barra vi dà la velocità con cui il modello va avanti, fatemi cliccare ancora su "go". Sono un po' più lente qui. Potete vedere le tracce che si rinforzano, evaporano, diffondono, ma se una singola formica trova il cibo e riesce a tornare al nido, e altre formiche trovano quella traccia prima che evapori, possono seguire quel percorso. Potete vedere qui il cibo di ogni pila diminuire. Questa è l'ultima pila. Fatemelo velocizzare ancora una volta. Guardate le formiche. Velocizzo ancora un po'. Ora le formiche sono molto veloci. Ora tutto il cibo è andato, le formiche non hanno più nulla da cercare, quindi si muovono in maniera casuale. Clicco su "go" per fermare e potete vedere, secondo questo grafico, che le formiche hanno trovato tutto il cibo da circa, possiamo vedere quanto tempo è passato, circa 900 e qualcosa passi temporali. Con questa configurazione dei parametri abbiamo questi risultati. Potremmo cambiarli un po'. Cosa succede se aumentiamo la popolazione? Sposto la barra fino al massimo di 200. Clicco di nuovo su "setup" e poi su "go". Vediamo che il comportamento è cambiato. Certamente, c'è molta casualita in questo modello. Le formiche si muovono casualmente finchè non trovano cibo e seguono la traccia se la incontrano. Possiamo vedere che quando la popolazione è maggiore, almeno in questa simulazione, trovano tutto il cibo più velocemente. Ma dato che c'è molta casualità, dovreste ripetere queste simulazioni molte volte per avere qualche statistica e vedere se hanno davvero trovato il cibo più velocemente in media quando la popolazione è maggiore. Questa è una delle cose fantastiche di NetLogo: potete sviluppare questi modelli e potete farci degli esperimenti, usando i vari componenti dell'interfaccia per impostare diverse variabili. Una cosa utile che dovrei farvi notare è questa scheda "Help" nel menu, che vi permette di andare su varie risorse come guida, particolarmente, il manuale utente di NetLogo e il dizionario NetLogo. Se clicco su "User Manual", vado su una pagina web, che dà dei tutorial su come imparare a programmare in NetLogo e molti altri strumenti di riferimento. Ritorniamo a noi. Abbiamo visto la scheda "Interface" e la scheda "Info". Guardiamo ora la scheda "Code". Il codice è scritto nel linguaggio di programmazione NetLogo, che il suo linguaggio ed è molto semplice da imparare. Ne impareremo un po' in questo corso, non tutto, ovviamente, perchè ci vorrebbe un intero corso, ma imparerete come scrivere questi modelli, come farne il debug e come lanciarli. Per quelli che sono interessati, NetLogo è basato su Java. E' scritto in Java, ecco cosa c'è alla base. Ma non vi serve sapere questo per usare e programmare NetLogo.