420 likes | 637 Views
NetLogo. Uri Wilensky Tutorial by Bin-Tzong Chie AI-Econ Research Center, National Chengchi University Department of Industrial Economics, Tamkang University. Outline. Introduction Build a Model Applets HubNet. NetLogo.
E N D
NetLogo Uri Wilensky Tutorial by Bin-Tzong Chie AI-Econ Research Center, National Chengchi University Department of Industrial Economics, Tamkang University
Outline • Introduction • Build a Model • Applets • HubNet
NetLogo • NetLogo is a programmable modeling environment for simulating natural and social phenomena. It was authored by Uri Wilensky in 1999 and is in continuous development at the Center for Connected Learning and Computer-Based Modeling. • More Information • http://ccl.northwestern.edu/netlogo/docs/
Download and Install • http://ccl.northwestern.edu/netlogo/
Three Main Tabs of a Model • Interface Tab • Information Tab • Procedure Tab
Interface Tab World The Interface
How does the Model work? • Global Variables • Agent’s Variables • Defined Procedures • Linked with Interface • Sub procedure • Without return values • With return values
Global Variables globals [ attendance ;; the current attendance at the bar history ;; list of past values of attendance home-patches ;; agentset of green patches bar-patches ;; agentset of blue patches crowded-patch ;; patch where we show the "CROWDED" label ]
Agent’s Variables turtles-own [ strategies ;; list of strategies best-strategy ;; index of the current best strategy attend? ;; true if the agent currently plans to attend the bar prediction ;; current prediction of the bar attendance ]
Procedures Linked with Interface to setup ... ... end to go ... ... end Event Trigger
Procedures as Sub-Procedureswithout return values to move-to-empty-one-of ... end to update-plots ... end to update-strategies ... end
Procedures as Sub-Procedures with return values to-report predict-attendance ... report ... end to-report random-strategy ... report ... end
How to apply HubNet to startup setup hubnet-set-client-interface "COMPUTER" [] hubnet-reset end to go every 0.1 [ listen-clients display ] end
to listen-clients to listen-clients ;; as long as there are more messages from the clients ;; keep processing them. while [ hubnet-message-waiting? ] [ ;; get the first message in the queue hubnet-fetch-message ifelse hubnet-enter-message? ;; when clients enter we get a special message [ create-new-student ] [ ifelse hubnet-exit-message? ;; when clients exit we get a special message [ remove-student ] [ ask students with [user-id = hubnet-message-source] [ execute-command hubnet-message-tag ] ;; otherwise the message means that the user has ] ;; done something in the interface hubnet-message-tag ;; is the name of the widget that was changed ] ] end