swarm-modeling
[Top][All Lists]
Advanced

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

Re: Does an agent have "live" on a world???


From: Sven N. Thommesen
Subject: Re: Does an agent have "live" on a world???
Date: Thu, 09 Oct 1997 13:52:06 -0500

At 12:48 AM 10/8/97 -0400, you wrote:
>glen e. p. ropella wrote:
>> 
>> address@hidden writes:
>>  > Does an agent have to "physically" exist on a give world?  That is if a
>>  > simulation create 1000 agents in a population, but only had room for 200
>>  > at a time, could they exist in limbo, until they were called into
>>  > existence by another agent/or schedule?
>>  > Using my problem/solution simulation as an example, lets say a given
>>  > problem agent needed to carry 25 solutions, but only had space on the
>>  > display to display 8 of them, could the rest "exist" in limbo, until it
>>  > decided to drop them, display them, or whatever?
>> 
>> Not only *can* they exist; but, they will exist unless you explicitly
>> drop them.  In fact, we recommend doing something akin to this in
>> a simulation where the agent population is not constant, i.e. where
>> death occurs.  We recommend that the agents are moved from physical
>> reality to "purgatory" to await death.
>> 
>> The important distinction is whether or not your agents will be
>> static and *not* a part of the coevolutionary, larger, "world"
>> that is the process space.  In the reaperQueue example, the agents
>> are static and are no longer participating in the integration of
>> the world forward in time.  Another example of this would be an
>> Agent Cache, where when an agent either wasn't very active or was
>> scheduled for removal, is put on a list of inactive agents that
>> are available for reinstatement at a later time.  They're still
>> not participating in the world, but, could at a later date.
>> 
>> Now, the other kind would be the kind that aren't participating
>> in the "space" or the set of spaces upon which some aspect of
>> the process is shown, but are still participating in the coevolution
>> of the process as a whole.  Say you have 8 solutions actively modifying
>> the "space" while the rest aren't.  That doesn't really stop those 17
>> from talking to each other and talking to the agents who are modifying
>> the space.  They would be like a bunch of angels inspiring some
>> bible writers there on earth.  The bible writers are modifying the
>> world, but the angels are modifying the bible writers. [grin -- sorry]
>
>Well, the way I saw it was that the 8 agents are visible one the map,
>being held by the problem agent, like this:
>SSS   But, If the Problem agent wanted to hold more, and there was 
>SPS   no more room to hold them, I was wondering if they could exist
>SSS   without being visible.  the Problem would still sort them with
>the visible ones, pick up more, drop some back to the solution space
>(either the visible or the invisible) etc.
>
>Its like this, say your on camera, and your carrying cardboard boxes. 
>Now only the first 8 boxes show, since they are within the camera frame,
>but, there are 17 more boxes stacked on top of those eight.  The 17
>still exist and can be acted upon, but just aren't visible.  
>
>Thanks,
>Brad.


The question of agent "existence" is a multi-faceted one! There are several
'levels' of existence in a Swarm simulation:

0) An agent "exists" after it has been created (and before it has been told
to 'drop' itself) in that the object occupies space in memory;

1) An agent "exists" if it is ACCESSIBLE -- that is, if a pointer to it is
located in a place where other agents or swarms may access it. In
heatbug-based simulations, for example, the model Swarm owns Lists which
contain pointers to the bugs. In my own sim, I have several different types
of agents and I have chosen to have one agent Swarm for each agent type.

2) An agent "exists" in the simulation IF either

a) it has previously posted actions against it still pending in the Action
machinery;

b) it is part of a list for which a 'forEach' message is executed every
period;

c) it is accessible to, and may be accessed by, other agents or swarms in
the course of their execution of periodic code.

3) The question of VISUALIZATION of the "existing" objects/agents is a
totally separate question. As you have discovered, a simulation does not
have to get very much more complicated than Heatbugs before it becomes near
impossible to show all agents in a useful manner. I'm still looking for
solutions myself to this problem...

4) If existence on a space is part of the constraints on agent action
(movement), this is also a separate question from either visualization or
existence in the manners detailed above. It is easy to imagine a Grid2d
that is capable of holding up to 12 agents per cell (just look in the 'user
contribution' area on the web site ;-). While current Raster objects may
not be able to display more than 1 of those 12 (and so we have to figure
out how to choose what to display), there is no reason in the Swarm
machinery why the other 11 agents may not participate fully in all activity.

5) Which agents "exist" in sense (2) above depends of course on how you
choose to access them [which index you use to access your database, if you
want.] In Heatbugs, there is a list of agents in the model swarm and there
are also pointers to agents in the World grid. So in principle you could
execute a 'forEach' method against the List in the model swarm (as is done
now), *or* you could sweep the World and tell each agent found to 'step'
every time period. As long as no agents are 'lost', these access methods
are equivalent (except for the order in which agents would be told to act).

Unfortunately, in heatbugs some agents *are* lost -- if two agents end up
on the same square, one of them is lost to the World (but not to the
modelSwarm list). So there the two access methods are not equivalent.

In your case, the Problem agent may keep a list of 25 solutions and act on
(access) all of them through that list, even if only some of them can be
displayed at any one time. [By the way, how *do* you display 8 agents per
cell?] 

In the case of a sim holding lists of 'pre-birth' and 'post-death' agents,
these agents will exist in the senses (0) and (1), but they will only
"exist" in sense (2) when they are part of some list which is 'visible' to
other agents and the Action machinery.


Hope this was of help!

And forgive me if this got too didactic -- I get this urge sometimes to
cross the t's and dot the i's ...

Cheers,
Sven



                  ==================================
   Swarm-Modelling is for discussion of Simulation and Modelling techniques
   esp. using 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]