Originally I was writing an article about several systems to keep your Makers (product, engineering, design) team happy and productive. But I ended up writing too much to fit in one article so here is the start of this new series.
Today, I want to tell you about one of my favorite fields in computer science: Multi-Agent System. I want to tell you about Emergent Behavior and how this can be used to foster a happy and productive work environment. This is also the opportunity for me to merge some of my favorite fields: multi-agent systems, emergent behavior, and enterprise architecture.
A Multi-agent system, in computer science, is a simulation where multiple “agents” are interacting with each other and with the environment. There are two kinds of agents: passive and active.
An active agent is an entity that executes code and can potentially move and interact with the environment. It can be called a “turtle” or an “actor” in some simulations. To draw a parallel with real-life: it could be an ant or a termite part of their colony, or an animal part of an ecosystem, or people part of a city. During a simulation, the status of the agents will be monitored, for instance, what is the average “hunger”, or how many are still active. The code embed in the active agents will be related to how they move, what they perceive and what resources they consume.
A passive agent is an element of the environment. It can be a source of energy that active agents will consume, for instance, “grass” that “sheep” could eat. It can also be a "wall" that will impeach the movement of the actors. Usually, the code for this agent will be related to their reproduction rate (for instance, how many blocks of "grass" appear every second).
When the simulation is running, each agent will execute its own code in parallel with the other agents, they are independent of each other. This implies a decentralized system, no entity in the system knows about the entire environment. And finally, each agent can only know about its surroundings, no agent knows about the full system.
The best simulation software, to play with multi-agent systems, is calledNetLogo. It allows you to run example models provided by the software as well as writing your own systems. Back when I was a student, I wrote a lot of models andshared a few on the community platform. You can also see on this platform that a lot of models related to Covid19 propagation have been shared. One of the most viewed models, at the time I write this article, is asimulation of the spread of the Covid19 from Nich Marting. You can go to the “Run in NetLogo Web” tab on your desktop browser to run the simulation for yourself.
On this platform, you can also find one of the most basic and famous models:Wolf Sheep Predationwhich you can run for yourself and try to findequilibrium. If you don’t tweak the parameters right, you can end up with a situation where wolves reproduce too quickly, eat all the sheep and die of hunger. When the parameters are right, the grass, sheep, and wolves population are stable over time.