swarm-support
[Top][All Lists]
Advanced

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

Re: Synchronization problem


From: Rob Leclerc
Subject: Re: Synchronization problem
Date: Sat, 17 Mar 2001 13:52:06 -0700

    I am not having a problem with the notion of stacking agents.  Its more
like.  Given AgentA(34,53) and he is attempting to move to (35,53); that,
what I want to happen is that if (35,53) is occupied, then I want the agent
to move on top of this agent, execute a method that will affect them both,
and by doing so, suspend AgentB(35,53) from "concurently" attempting the
same operation, given the symetry of their conditions.  What seems to be
happening is that AgentA moves to (35,53), and then AgentB(35,53), being
that his conditions match those of AgentA, and *prior* to AgentA's move,
also executes the same method; thus the method ends up being executed twice.
As I said, I attempted to have a static hashtable, so that each agent would
check to see if the other agent had already executed the method, or if it
was the first one to do so, so to speak.  Unfortunetly, although AgentA
would change the value in the hashtable, AgentB would also be doing so
"concurently" so they would both change the values in the hashtable
simultaneously.  And as I said, I even tried to keeo the method static and
synchronized between the agents, but they would still act as if they were
executing them concurrently.

Thanks,
Rob Leclerc

----- Original Message -----
From: "Marcus G. Daniels" <address@hidden>
To: <address@hidden>
Sent: Saturday, March 17, 2001 9:53 AM
Subject: Re: Synchronization problem


> >>>>> "RL" == Rob Leclerc <Rob> writes:
>
> RL> that updating those values are suppose to occur concurrently.
>
> By default, updating will happen left-to-right.
>
> RL> I am in a situation where one agent moves on top of another agent
> RL> -- although not on the grid, the agent on the bottom simply has a
> RL> reference to the agent.
>
> So you want a notion of N items being at a certain grid site, but only
> the one on top to run?  If the notion is that the environment is
> acting on the agents, e.g. sun shining, then you might want to have
> the model iterate over the cells calling a method like `getTop'.  You
> could implement that with a stack on each cell (methods like push,
> pop, getTop).  Otherwise, you could have the self-scheduled agents
> call getTop on the cell (which they would have a field for), and compare
> it with themselves (`this'), and if there was a match, do the behavior.
>
>                   ==================================
>    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.
>


                  ==================================
   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]