Uri Wilensky of Northwestern University’s Center for Connected Learning and Computer-Based Modeling Department observed the world has a variety of natural or emergent phenomena consisting of patterns, orders, and sequences. With such emergent phenomena, patterns, trends, and behaviors can be observed and modeled for future predictions and analysis. One approach created by Wilensky to observe natural phenomena is through Agent-Based Modeling. Such a modeling method can aid in the development and analysis of complex dynamic systems such as positive charge movement of atoms through an electrical circuit or pipe fluid flow. These complex dynamic systems can be simulated and observed using an off-the-shelf software package.
A key aspect of ABM is emergent phenomena. Wilensky explained emergent phenomena as the investigation of large scale (macro) patterns that evolved from the interactions of numerous interacting micro-agents. Agents as defined by Wilensky, are beings or entities that can follow instructions. To instruct these agents to create emergent patterns or complex dynamic system behaviors, a programming language called NetLogo was created by Wilensky. NetLogo is a multi-agent modeling language that was derived from Logo. Logo was created by the late Seymour Papert of the MIT Media Lab to explore children’s learning through his Constructionism theory. With NetLogo, scientists and engineers can learn about the system behaviors of the natural and physical world through simulated emergent phenomena models.
An Agent-Based Model
An Agent-Based Model (ABM) is a category of a computational model for investigating actions and interactions of autonomous agents. The concept behind an ABM is the observation of simultaneous and multiple interactions of agents or programmed instructed entities through simulated environments. In developing these simulated environments, predictions of emergent phenomena can be evaluated. With an ABM, macro or high-level system properties can emerge from lower-level system interactions. Moreover, large scale state changes will emerge from micro-scale agent behaviors generated from system-level interactions. Such modeling techniques can be used to observe and evaluate new plant floor Machine-to-Machine (M2M) networked systems using Profibus or Modbus communication protocols. Also, thermodynamic materials properties of metals and plastics can be investigated using an ABM. In addition, NetLogo’s vast simulation library has an ABM of a Multilayer or Perceptron Artificial Neural Net that can be investigated using this emergent phenomenon software.
ABM Interaction with Physical Computing
To interact with NetLogo models, user-interface (UI) controls such as sliders and buttons are available with the software package. Although these UI controls allow a manual approach to ABM interaction, an automated method can be achieved using analog or digital sensors and a microcontroller. NetLogo has provided an Arduino Extension that allows an automated approach to interacting with the library created ABM models. The extension software establishes a serial communication protocol for passing byte code values from the Arduino to be read and responded by NetLogo’s ABM. The Arduino Extension communicates with a behavioral model embedded within the Interactive ABM. With such an internal communication scheme, Physical Computing (PC) techniques will allow ambient electronic sensors to seamlessly interact with the emergent phenomena simulated NetLogo environment.
A basic PC sensor such as a potentiometer can be wired to an Arduino Uno using a solderless breadboard. The outer pins of the potentiometer are wired to +5V and GND pins of the Arduino Uno. The center pin or wiper is wired to pin A0 of the Arduino Uno. The potentiometer wiring scheme will emulate an analog sensor. This emulated analog sensor will provide varying voltage levels from 0V to 5V into the analog A0 pin of the Arduino Uno. This varying analog signal is accomplished by adjusting the potentiometer’s shaft.
The NetLogo code is created to allow sensing of the potentiometer’s adjusted voltage levels to be read. A UI was developed using buttons and a monitor. Adjusting the potentiometer will provide the number of agents (fish) to be placed on the UI’s screen. Also, the code reads the adjusted potentiometer’s analog values to create a random movement of the agents on the UI’s screen. The UI’s A0 monitor displays the potentiometer’s adjusted analog values. Also, the extension software communicates the byte code values obtained from the potentiometer along with opening the appropriate COM port the Arduino Uno is attached to.
The getting started guide for exploring ABMs along with behavioral models, and an Interactive ABM book (IABM) comes packaged with the NetLogo software. Additional information and the free ABM software can be obtained from the NetLogo website.
Don Wilcher is an electrical engineer, technical education researcher, instructor, maker, and author. He researches machine learning and artificial intelligence applications and their impact on personalized learning, competency-based-models curriculum, and instructional development in the fields of mechatronics, automation, electronics, and industrial maintenance technologies.