c++design-patternsmulti-agent

Design Pattern, Multi agent system, Robotics


A short description:

There is 5 robots, and each robot runs a program named "Planner". Each robot has a post, and they must do a task(select it from many tasks) according to that post. the main loop is (Pseudo code):

while(true)
{
   /*1*/ WorldModel::getSingelton()->update();
   /*2*/ Post post = selectAPost();
   /*3*/ Task task = selectATask(&post);
   /*4*/ task.run();
}

And, a task may runs another task. In fact inside a task there is a decision tree.

I have many components like: HardwareInterface, VisionInterface, WorldModel, Configuration, NetworkInterface, ... . They all do a part of this system.

My question is not about algorithms, it's about design-patterns for multi-agent and robotic systems in C++ (or Java).

Is there any design-pattern for these systems*(multi-agent and robotic systems)*? or my question is a mistake?

Note: My current design pattern is Singleton for managing my components


Solution

  • Yes, there is a lot! Three examples of academic works on design patterns for multiagent design:

    L. Sabatucci, M. Cossentino, S. Gaglio. A Semantic Description For Agent Design Patterns. In Proc. of the Sixth International Workshop "From Agent Theory to Agent Implementation" (AT2AI-6) at The Seventh International Joint Conference on Autonomous Agents and Multi-Agent Systems (AAMAS 2008), Estoril, Portugal. May, 2008.

    Design Patterns for Multiagent Systems Design Sylvain Sauvage MICAI 2004: ADVANCES IN ARTIFICIAL INTELLIGENCE Lecture Notes in Computer Science, 2004, Volume 2972/2004, 352-361, DOI: 10.1007/978-3-540-24694-7_36 http://www.springerlink.com/content/bc32d3lda58rfxaj

    Design patterns for self-organizing multiagent systems by Luca Gardelli , Mirko Viroli , Andrea Omicini IN: PROCEEDINGS OF EEDA http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.95.3098

    If you look at the past AAMAS proceedings you can find much more.