I was rather surprised not to find a word about multi-agent systems (MAS), so I decided to fill this gap.
We first analyze the basic concepts, then we look a little towards the practice, and last but not least useful links for those interested.
')
Based on my own experience, I want to start with an example.
Supposed we have the task of recognizing the image in the picture. Without going into the implementation of a specific recognition mechanism, we can say that our algorithm is supplied to some algorithm, which works with this image, and then, upon completion of the work, gives us the result. This approach is classic.
And now let's imagine that we broke the original image into several parts and launched our algorithm for each part. What did it give us? First, taking into account the parallel work, the processing time is reduced, and second, we can simplify the structure of the algorithm itself. Already not bad. What else? It also requires us to introduce some entity that will act as a manager - i.e. collect data from various recognition processes, as well as create new processes. This approach is multi-agent.
Now let's look at the terminology. The basic concept underlying a multi-agent theory is that of an agent — in a general sense, any object capable of acting and perceiving. In line with this, each agent has an inherent set of sensors — that is, through which the agent perceives and the actuators, that which the agent acts on. What can an agent do? On other agents and the external environment - all that surrounds the agent.
Any agent has the following properties:
- activity - i.e. each agent is capable of organizing and implementing an action (in accordance with the internal algorithm of functioning);
- autonomy - relative independence from the environment;
- purposefulness - the presence of its own sources of motivation (each agent has a certain goal, for which he operates).
As noted above, each agent has a goal; a group of agents with the same goal is combined into a class of agents.
I think that we have dealt with the basic concepts (in fact, there are still a lot of subtleties regarding the internal structure of agents, types of environments, but it is impossible to contain everything in one article).
Where can I apply multi-agent systems.
Due to the fact that the structure of multi-agent systems is very close to the structures of the real world, the scope of the MAS is very wide:
- robotics;
- logistics;
- research of social and biological systems;
- search for information;
- ...
Now let's digress from the theory and turn to the practical aspect, namely the development of the MAS.
Here, not everything is as good as I would like to see. There are several international standards for systems for developing MAS, however, some of them are obsolete, some - not complete.
In general, there are two options for developing a MAS - either using agent platforms (AP) (read the framework) or using the development environment. With the second, everything is much worse than with the first and I did not see anything worthy of attention.
Regarding agent platforms, there are several fairly good solutions. I will give a small table with a comparison of existing AP:
| Jade
| Coguaar
| Aglobe
| Jason
| breve
|
application area
| mobile networks, web, planning and logistics, research technology agents
| mobile networks, web, industrial applications, military applications, huge distributed systems
| industrial application, engineering systems modeling
| Research projects
| Virtual worlds, artificial life
|
technology
| Java SE, Java, supports FIPA standards
| Java SE, Java ME
| Java SE
| Java SE
| |
extensibility
| possibility of expansion at all levels
| possibility of expansion at all levels
| not
| there is
| there is
|
plugins available
| a large number of
| a large number of
| not
| there is
| not
|
integration
| Java EE (JMS, Web ...), CORBA,
| Java EE (JMS, Web ...), CORBA,
| Missing
| Saci, Jade
| - |
availability of additional documentation
| +
| | - | +
| +
|
license
| LGPL
| open-source (BSD-based) License
| CPL
| LGPL
| open-source license
|
methodology
| - | - | - | - | - |
availability of visualization tools
| - | - | +
| - | +
|
developer toolkit
| are supported main stages of development
| are supported main stages of development
| minimum
| are supported main stages of development
| minimum
|
Here, so to speak, at a gallop across Paris, is the basis of a multi-agent approach.
If anyone is interested in this subject, here is the list of references (links are provided as-is):
- Agents and multi-agent systems ( http://aivanoff.blogspot.com/2007/12/blog-post_18.html )
- Agent platforms: who is in the forest, who is for firewood ( http://aivanoff.blogspot.com/2007/12/blog-post.html )
- Gorodetsky, V.I. Multi-agent systems
- Russell, S. Artificial Intelligence: A Modern Approach
- Tarasov, V. B. Agents, multi-agent systems, virtual communities: a strategic direction in computer science and artificial intelligence
- My diploma :)
UPD.1 UFO - thank you for invite