Multi-agent systems - what is it

    I was very surprised to find not a word about multi-agent systems (MAS), so I decided to fill this gap.

    Let us first analyze the basic concepts, then look a little towards practice, and finally a few useful links for those interested.



    Based on my own experience, I want to start with an example.

    I assumed 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 image is input to some algorithm, which works with this image, and after that, upon completion of the work, it gives us the result. This approach is classic.

    Now let's imagine that we split the original image into several parts and launched our algorithm for each part. What did it give us? Firstly, taking into account parallel work, our processing time is reduced, and secondly, we can simplify the structure of the algorithm itself. Already not bad. What else? This 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 deal with the terminology. The basic concept underlying the multi-agent theory is the concept of an agent - in the general sense, it is any object capable of acting and perceiving. In accordance with this, each agent has its own set of sensors - something with which the agent perceives and actuators - what the agent acts with. What can an agent influence? On other agents and the environment - all that surrounds the agent.

    Any agent has the following properties:
    • activity - i.e. each agent is capable of organizing and implementing the action (in accordance with the internal functioning algorithm);
    • autonomy - relative independence from the environment;
    • purposefulness - the presence of their own sources of motivation (each agent has a certain goal for which it functions).


    As noted above, each agent has a goal, a group of agents having the same goal is combined into a class of agents.

    I think that we figured out the basic concepts (in fact, there are still many subtleties regarding the internal structure of agents, types of media, but it’s impossible to put everything in one article).

    Where multiagent systems can be used.

    Due to the fact that the structure of multiagent 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 MAC.

    Here, not everything is as good as I would like to see. There are several international standards regarding systems for the development of MAS, but some of them are outdated, some are incomplete.
    In general, there are two options for the development of MAS - either using agent platforms (APs) (read the framework), or using the development environment. With the second, everything is much worse than with the first and I have not seen anything worthy of attention.

    Regarding agent platforms, there are several fairly good solutions. I will give a small table with a comparison of existing APs:
     
    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 applications, 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
    expandable at all levels
    expandable at all levels
    not
    there is
    there is
    the presence of plugins
    a large number of
    a large number of
    not
    there is
    not
    integration
    Java EE (JMS, Web ...), CORBA,
    Java EE (JMS, Web ...), CORBA,
    Is absent
    Saci, Jade
    -
    availability of additional documentation
    +
    - +
    +
    license
    LGPL
    open-source (BSD-based) License
    CPL
    LGPL
    open source license
    methodology
    - - - - -
    visualization tools
    - - +
    - +
    developer toolkit

    main development stages supported

    main development stages supported
    minimum

    main development stages supported
    minimum


    Here, so to speak, at a gallop across Paris, the basis of a multi-agent approach.

    If anyone is interested in this topic, then here is a list of references (links are provided by as-is):
    1. Agents and multi-agent systems ( http://aivanoff.blogspot.com/2007/12/blog-post_18.html )
    2. Agent platforms: some in the forest, some for firewood ( http://aivanoff.blogspot.com/2007/12/blog-post.html )
    3. Gorodetsky, V.I. Multi agent systems
    4. Russell, S. Artificial Intelligence: A Modern Approach
    5. Tarasov, V. B. Agents, multi-agent systems, virtual communities: a strategic direction in computer science and artificial intelligence
    6. My diploma :)


    UPD.1 UFO - thanks for the invite

    Also popular now: