This extension for NetLogo allows modellers to use Fuzzy Cognitive Maps (FCMs) in their Agent Based Models (ABM). This project is a work in progress, check back soon for more updates!
Agent Based Modelling (ABM) is used for mapping complex interactions between multiple entities known as “agents” and their environment. However, where ABMs excel in mapping entities and their interaction over time they are defined with procedural programming, which is an inadequate medium for defining how humans and in theory how AI will react to its environment.
Fuzzy Cognitive Maps (FCM) are extremely good at modelling how humans make decisions but lack the ability to be observed in a feedback loop over time. The combination of these two modelling techniques is a great fit for modelling potential sociological systems where humans, robots, and AI interact in the real world.
This NetLogo extension is intended to bridge the gap by bringing FCM to ABM through tbe very popular NetLogo platform.
This is still a work in progress, but to get started you can package this as a jar with SBT. Once you've done that put it in your NetLog extensions folder, it should look something like this: C:\Program Files\NetLogo 6.0.4\app\extensions\fcmnetlogo
In NetLogo first declare that you're using the plugin like this:
extensions [fcmnetlogo]
Then you can call it by referencing your model definition and then your inputs like this:
print "fcm1 example..."
let fcm1 fcmnetlogo:callfcm "C:\\Program Files\\NetLogo 6.0.4\\app\\extensions\\fcmnetlogo\\PredatorAndPrey.xml" (list "Food" 0.3 "Prey" 1 "Predators" 0.1)
print fcm1
This project uses JFCM for now, so FCM formats need to be in XML like these
Currently when you print your results you'll just get a list of numbers. Ideally when this is done you should get back iteration information as well as the final results in a map.
The NetLogo FCM Extension is in the public domain. To the extent possible under law, Uri Wilensky has waived all copyright and related or neighboring rights for NetLogo.