(I am cross posting this to the modeling list, since my discussion is
more on the theory than code related. If your thoughts are on the
modeling side, you'd get more interesting replies by following it up
there.)
There are a lot of possible topologies that you can use, not just
grids. If I were you, I would think more about the substantive
problem
and what kind of model topology you think would best describe the real
world problems you are interested in studying.
Grids are nice because they are easy to visualize and it is pretty
easy
to manage proximity and distance. Plus, there are pre-existing
examples you can work from. But, you might also specify a hex (six
sided) grid since you don't have the "corner" problem of square grids.
In some of my work, I have used both square grids and continuous
spaces. My political party model envisions agents with positions on
diverse number of political issues. Each issue dimension runs from 0
to 100, and since I use floating points to represent the position,
agents can be anywhere along that continuum (i.e. they are not
constrained to position 1, 5, or 10, but could be 1.20348 or
5.294842).
But, because of the nature of the political world I am interested in
modeling, I did not want to constrain my agents to a single issue
dimension. So, I set the model up to handle an arbitrary number of
issues. In later versions of this model (coming soon (like 6 months
or
so)), this model will be used to illustrate how we have one
ideological
dimension (left to right) emerge out of a space containing many issue
dimensions. Thus, the space that my agents traverse is a
multidimensional one.
Furthermore, because not all political issues are equally important, I
have altered the geometry of the space so that distance is not the
typical Euclidean measure, but is instead a weighted Euclidean
distance
where some dimensions are viewed as more important than others.
Similarly, since a bundle of political issues might be related to each
other (not independent) I allow the separability of the dimensions to
be changed. Both of these tricks are accomplished by sticking a
little
matrix of weights into the standard Euclidean distance measure. And,
since not everyone agrees about the salience or separability of
issues,
I allow every agent in my model to have its own perceptions of the
topology of the political universe. I may thus view our political
positions as very similar, but you might view them as very different.
This creates a relativistic geometry quite different than the
Cartesian
grids that we learn in high school.
Rather than starting with coding constraints, I started with the
substantive problem, worked towards a plausible model, sketched some
concepts, and then got into the coding. Because my design is heavily
parameterized, I can represent a simple two dimensional space with
integer values like a grid or a high dimensional relativistic geometry
using the same code.
To manage communication and agent interaction, I put all of the agents
onto a list as they were created. All agents have the ability to send
and get messages. To find nearby agents, they look through the list
of
all agents and calculate the distance to each agent. My agents also
have the ability to form hierarchical networks, so they have a list of
agents below them and above them in the hierarchy.
Now, the method of searching a list of all agents is not optimized in
terms of coding, but I am willing to sacrifice that for the
flexibility
that my model has in representing my substantive beliefs.
Furthermore,
it isn't hard to think of some ways of creating subdivided the agent
lists to make it faster to find adjacent agents.
So, what I would do is think about the substantive problem you are
representing. When your buyer sends out his representatives, is he
asking them to walk down the street to talk to other traders? Are
they
getting in planes and flying to another city or country? Or, are they
staying behind the desk and working the phone lines cold calling
perspective traders? Or, perhaps the representatives exist in a
social
network of other agents who know other agents?
In my view, the programming issues here are much simpler than than
modeling issues. And, you are more likely to useful help on the
programming once you know what you want. As far as Swarm is
concerned,
it is incredibly flexible (good enough to handle my relativistic
hyper-dimensional hierarchically networked topology).
Darren
On Sunday, May 25, 2003, at 10:57 PM, Kanagaraj Krishna wrote:
Hi,
-Are there any SWARM examples that involves interaction between
agents
(commuication) that can help me in designing my model (java ones).
Example: one buyer agent release few slave agents to interact with
few
trader agents to do business and then come back to report.
-Most of the examples used the grid/lattice way of designing
models......are this the only way?
-Are there any specific functions for an agent to look for another
specific agent in a world? how can this be done?
I was looking into the CharlesJavaTutorial examples on bugs looking
for food. It is more straight forward and there is no interaction
between agents.Thanks.
Regards,
Kana
____________________________________________________________
Get advanced SPAM filtering on Webmail or POP Mail ... Get Lycos
Mail!
http://login.mail.lycos.com/r/referral?aid=27005
_______________________________________________
Support mailing list
address@hidden
http://www.swarm.org/mailman/listinfo/support
_______________________________________________
Support mailing list
address@hidden
http://www.swarm.org/mailman/listinfo/support