Appunti su Starlogo & Netlogo Michele Sonnessa ([email protected]) Torino, 7 febbraio 2004 Note storiche Dylan LISP By John McCarthy 1958 Smalltalk Logo By Seymour Papert 1983 Starlogo by Mitchell Resnick http://education.mit.edu/starlogo Netlogo by The Center for Connected Learning and Computer-Based Modeling http://ccl.sesp.northwestern.edu/netlogo Gli strumenti… Observer: insieme di funzioni che hanno accesso a tutti gli oggetti Screen: classica matrice toroidale che può essere disegata e può speciali oggetti detti turtles Patch: casella della griglia spaziale che può contenere n turtles e variabli di stato Turtle: agente, che è capace di movimento e può contenere variabili e funzioni Breed: variabile di stato delle turtle che consente la differenziazione tra tipologia di ruoli per ciascun agente Plot: strumento grafico capace di disegnare serie storiche Output window: terminale su cui gli oggetti possono scrivere Aspetti tecnici Starlogo Implementazione Java Multithreading ibrido Codice (logo), interfaccia grafica e stato della simulazione salvati in un unico file Codice interpretato Ambiente chiuso: non è possibile richiamare funzioni dall’esterno, nonché importare o esportare dati Sorgente non distribuito Netlogo Implementazione Java Multithreading ibrido Codice (logo), interfaccia grafica e stato della simulazione salvati in un unico file Codice interpretato** Ambiente e sorgenti chiusi File I/O minimale (supporta il formato testo) ** Più veloce di Starlogo (?) L’ambiente Alcuni comandi crt ask-turtles ask-patches globals patches-own Esempio di codice: globals [cnt] to setupModel ca crt 10 ask turtles [setxy random 10 0] set cnt 0 end Le turtles Alcuni comandi fd heading setxy setcolor turtles-own Esempio di codice: turtles-own [status] to go if (status = 0) [ set heading random 360 fd 1 ] if (xcor > 10) [ set status 1 set color blue ] end Netlogo = Starlogo++; Shapes BehaviuorSpace <<>> Multi-run Net>>logo Principi di scrittura dei modelli Interazione orientata allo spazio Comunicazione mediata dall’ambiente (patch) Ridotto utilizzo delle strutture dati Uso di poche tipologie di comportamenti e di agenti Utilizzo del parallelismo Esempi Ants Ant optimisation Turing machine Cooperation