swarm-modeling
[Top][All Lists]
Advanced

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

Re: [Swarm-Modelling] Re: [Swarm-Support] Re: Agent communication and gr


From: Darren Schreiber
Subject: Re: [Swarm-Modelling] Re: [Swarm-Support] Re: Agent communication and grid models
Date: Mon, 26 May 2003 15:48:31 -0700

I'm following this up on the modelling list only, so reply there. My code is in the Objective-C version of Swarm, but let me know if you'd like to look at it.

What I am reading from your description of the society you want to model indicates that you really aren't looking for a "topological" solution. Rather, I would guess that you are wanting what is sometimes called a "soup" model, where all agents are capable of interaction with any other agent.

What I would do is this:

Creation Phase:
1. As all traderAgents are created, you place them onto a traderAllList.

        2.  All buyerAgents are put onto a buyerAllList

3. Each buyerAgent will be created with its own traderList of known other traders (initially empty) and its own friendsList of other agents that it trusts (also empty.)

4, Each traderAgent is created with its own buyerList and its own friendsList (both empty.)

Simulation Phase:

1. As each buyerAgent is called, it either randomly sorts its traderList or it sorts the list by trust rating. Then the buyer iterates through the traderList to see if it can trade with each agent.

2. If unsuccessful with its traderList, it sorts its friendsList (either randomly or according to trust) and iterates through the friendsList, asking each friendAgent to recommend a traderAgent. If I were designing it, I would make the askAFriend method recursive, so that I can ask a friend to ask his friends to ask his friends (etc.). You may initially only want to ask your close friends, but I could imagine it would be worth parameterizing the friendsDepth option (0: my friends, 1: friends of my friends, 2: friends of my friends' friends, etc) to explore the importance of the social network depth.

3. If unable to find a suitable trading partner from either my traderList or the lists of my friends, then my buyerAgent would randomly sample from the traderAllList.

So, since you not really using any physical construct of distance, I would definitely avoid using a grid. In fact, you will probably want to visualize the model with just a series of graphs and maybe a probeable display of agents (so you can study the performance of a particular agent.)

        Darren


On Monday, May 26, 2003, at 11:16 AM, Kanagaraj Krishna wrote:

Hi,
Thanks for the input. Are you're simulation codes available for me to have a look at. I prefer refering to java examples of SWARM, so that it would be easier for me to integate into my work.

Regarding how my model works. This models will simulate the management of trust among agents in a multi agent trading environment (more applicable to internet.....e-commerce etc). I'll play around with the parameters to study the behaviour of my new model.

I'll give a brief outline of how the agents in the society works.

-buyer agents gives priority to known trader agents first, when sending slave agents to do trading. (experience based trust ratings) -next if there hasn't been any experience with a trader agent before........the buyer agents will ask its trusted friends for support. (trust based on reputation/recommendation) -and the last choice is to explore and take risk with the unknown trader agent.
-the same vice versa for the trader agents in choosing a buyer.

Any comments.

Thanks again,
Kana
--

--------- Original Message ---------

DATE: Mon, 26 May 2003 00:57:15
From: Darren Schreiber <address@hidden>
To: address@hidden, address@hidden
Cc:

(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




____________________________________________________________
Get advanced SPAM filtering on Webmail or POP Mail ... Get Lycos Mail!
http://login.mail.lycos.com/r/referral?aid=27005
_______________________________________________
Modelling mailing list
address@hidden
http://www.swarm.org/mailman/listinfo/modelling




reply via email to

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