Menu

Using Environment in Jadex

lopis
2013-11-07
2014-01-17
  • lopis

    lopis - 2013-11-07

    Dear devs!

    I've been reading about environments in Jadex.

    First, from your point of view, why should another developer use the EnvSupport instead of, say, Swing for displaying and interacting with a multi agent system? I'm sure
    It's very useful for large complex systems, but for projects the size of the examples provided with Jadex such as Cleaner World, it just seems so complex to think of it in term of Spaces, Percepts, Processes, Avatars, etc.

    Second, any plans for an Env Tutorial? Alternatively, which examples should I analyse to learn more about using environments? Are environments Java Classes in Jadex 2.4 or just configurations in the XML?

    To summarize, could you try to convice me to use EnvSupport?

    Thanks in advance!
    lopis

     

    Last edit: lopis 2013-11-07
  • Lars Braubach

    Lars Braubach - 2013-11-08

    Hello Lopis,

    I will not try to convince you using EnvSupport, it is of course just a matter of taste how you want to design and implement environments. EnvSupport has been conceived to speed up the development of agent based simulations with 2d/3d visualization support (cf. the agentkeeper project http://code.google.com/p/jadex-agentkeeper/ ). In your case it might be a smart solution to just implement an environment object or service (if it should be used in a dsitributed setting) and implement the getNearObjects() on your own using the kd-tree algorithm.

    Philip is working on a tutorial for 3d environments in the spirit of agentkeeper but it concentrates on 3d issues.

    Best Lars

     
    • Bloodonation

      Bloodonation - 2014-01-17

      ETA on the tutorial?

       
  • KaiJ

    KaiJ - 2013-11-08

    Hello Lopis,

    please also note that EnvSupport offers a lot of functionality to address a large variety of simulation problems, so not all the concepts like percepts and so on and always needed.

    Also, EnvSupport not only provides graphical support (though it does with optional 2D OpenGL acceleration and 3D support) but also addresses other issues with simulation. Some of the issues exist whether you use EnvSupport or not: How do you address timing? What is the relationship between software agents and the world objects? (Is it 1:1 ("Avatar")? Or 1:m? Or even m:n? (shared objects)). Should all the fine-grained logic (movement and position vector calculations) be done with the agent or can it be "outsourced" to the space object ("Tasks") and the agent only generates high-level commands ("move to position x,y")? How do I organize the communication between objects within the environment and the software agents?

    What EnvSupport does is offer a tool kit to quickly address these issues. As a result, it is fairly complex and offers a lot of options. However, like Lars pointed out, it's not necessary to use all or any of them.

    With regards
    Kai

     

Log in to post a comment.