swarm-support
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Detectors and Effectors


From: Darold Higa
Subject: Detectors and Effectors
Date: Sat, 22 Apr 2000 14:48:23 -0700

Since I've gotten a couple of emails asking about using John Holland's
effectors and detectors, I will write it up in summary form and post it
on my website in a few days. My model is a Swarm-Style adaptation of
Homer-Dixon's Environmental Scarcity System (from the International
Relations literature).  The learning system is not fully developed yet,
but it is an early implementation of the system described in "Hidden
Order".  My toughest stumbling block was keeping memory usage down with a
large number of agents being born and dying, as well as attempting to
make simulation run times reasonable on a home computer.  Code-wise it
ended up being much simpler than I had thought it was going to be, so I
suspect there are quite a few people with more complex systems.  I like
this one because it is very simple to understand and explain, two things
I am looking for so that I can get this dissertation done.

In brief, agents take a snapshot of their environment, recording
information in binary form (detector).  An exmaple would be, "if hungry,
set hungry bit on" or "if there is food in the pot, set food in pot bit
on".  The agents then compares the detector with pre-stored strategies
which correspond to a set of presupposed conditions and a predetermined
response (effector).  An exmaple would be, "if hungry, and if food is in
the pot, then eat food from pot".  Each strategy bids to have its
effector activated, and based on results, the strategies are rewarded
when the agent is rewarded.

The tricky thing is that I sometimes have several thousand agents running
around.  The trick I ended up using was a ModelSwarm level List that
contained all possible strategies as objects.  Each agent merely holds an
array of a few thousand strategies, and every time it needs one of the
strategies it references the required information from one of the
strategy objects.  This is where I had a lot of technical problems, since
I was dropping references to objects at the wrong time, even with a
reaperQueue.  Now that I've handled the destruction of dead agents
references to the master strategy list, the program has been running fine
for almost a day now, and I haven't eaten up very much memory.  I was
constantly getting seg faults before because of runaway memory
consumption.  The end result is that I am now convinced it is possible to
develop pretty complex agent strategies without eating up tons of
memory.  I will write this up more, including some of my modeling
rational, post it on my website, and welcome input from the Swarm
community, particularly those involved in political/social modeling like
myself.

Darold Higa
University of Southern California School of International Relations

VTechSoft, Inc.


                  ==================================
   Swarm-Support is for discussion of the technical details of the day
   to day usage of Swarm.  For list administration needs (esp.
   [un]subscribing), please send a message to <address@hidden>
   with "help" in the body of the message.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]