Local Distributed Agent Matchmaking

Local Distributed Agent
Matchmaking
Elth Ogston and Stamatis Vassiliadis
Computer Engineering Laboratory
TU Delft
Our Interests
Multi Agent Systems
•Fine grain distributed computing
•Distributed control
•Cooperation without predefined structure
•Scalability
Simulation of very simple systems to look for useful
global behavior (observe vs. tell)
Matchmaking
This Presentation
•The matchmaking problem and common
solutions
•Overview of the model we simulate
•Simulation results
•Summary of further work
Matchmaking: how do agents that require an
outside service find other agents who are
willing to provide that service?
•Basic function in many multi-agent systems
•Commonly solved in a centralized manner
•A function that always doesn’t need to be done
perfectly
Common solutions
Middle agents/directories
efficient, but centralized
Broadcast requests (in general a market approach)
expensive in terms of messages, who is everyone?
often ends up with a central auctioneer
Social networks
agents end up passing on a lot of messages for their friends
messages reduced by storing neighbor’s capabilities
something needs to be done to keep messages from circling
All: agents need to be able to succinctly describe “I’m looking
looking for…”
How about a peer-to-peer method where agents exchange
unwanted neighbors instead of messages?
Our Model:
2
Components
•Agents
11
5
•Tasks
•of varying types
Actions
A
C
2
11
A
7
C
11
5
5
2
B
B
3
18
•“Shuffle”
•Links/Connections
5
11
11
7
7
3
18
11
5
18 3
5
•“Connect”
18 3
5
11
1
22
18
3
•“Break”
Parameters:
•Number of agents
•Number of task types
•Number of tasks per agent
•Probability of breaking
What can we do about this single cluster?
Adjust the rate at which clusters break up?
System sits either on the far left or far right of the curve.
Distribute cluster operation?
Rotate instead of shuffle works: but how to do connections?:
To connect ai to bj :
•Method 1 : ai-1, bj+1,…, bj-1, ai+1
•Method 2 : ai-1, ai+1 …, bj-1, bj+1
Put a cluster ID in agents, but
this must be maintained.
And then how to break
connections?
Operations are at least linear
with the size of the cluster
Limit Cluster Size?
This works fairly well, though it doesn’t support as many task types
What if we now break connections?
It works (even with limited size clusters)…. but decays eventually.
There’s a problem with the task type
distribution.
We can have agents give up on unmatched tasks replacing them
with a new task type.h
This was the form of behavior we
were looking for!
Conclusions
Matchmaking can be done in a distributed peer-to-peer manner
Tweaks: (but reasonable ones from an agent viewpoint)
•limit cluster size (agent resources)
•replace hopeless tasks (give up if you can’t do anything)
Some limits….
•the number of tasks types (see next slide)
•distribution of task types - we assume random while it is
easy to create a worst case ordered distribution, what is a real
application’s profile?
As you increase the tasks per agent you rapidly increase the
number of task types supported
With 6 tasks per agent the system supports around 2000 task types
Further Work
•Timing
•Non deterministic matching
•One-to-one markets
•Limiting cluster moves per turn
More Info….
http://ce.et.tudelft.nl/~elth/