Abstract
This paper presents the overall strategy utilized by Jason-DTU to achieve a shared second place in the annual Multi-Agent Programming Contest. It provides an overview of the implementation details considering perception, task handling, agent logic and more. The paper analyzes the team’s results in each match, and is summarized by evaluating strengths and weaknesses of the proposed multi-agent system.
Article PDF
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.Avoid common mistakes on your manuscript.
References
Bordini, R.H., Hübner, J.F., Wooldridge, M.: Programming Multi-Agent Systems in AgentSpeak Using Jason. Wiley, New York (2007)
Boss, N.S., Jensen, A.S., Villadsen, J.: Building multi-agent systems using Jason. Ann. Math. Artif. Intell. 59, 373–388 (2010)
Ettienne, M.B., Vester, S., Villadsen, J.: Implementing a multi-agent system in Python with an auction-based agreement approach. Lect. Notes Comput. Sci. 7217, 185–196 (2012)
Hatteland, H., Fleckenstein, O.: Multi-Agent Systems. Bachelor thesis, Technical University of Denmark (2017)
Ricci, A., Piunti, M., Viroli, M.: Environment programming in multi-agent systems: an artifact-based perspective. Auton. Agent. Multi-Agent Syst. 23(2), 158–192 (2011)
Vester, S., Boss, N.S., Jensen, A.S., Villadsen, J.: Improving multi-agent systems using Jason. Ann. Math. Artif. Intell. 61, 297–307 (2011)
Villadsen, J., From, A.H., Jacobi, S., Larsen, N.N.: Multi-agent programming contest 2016 — the python-DTU team. Int. J. Agent-Oriented Softw. Eng. 6(1), 86–100 (2018)
Villadsen, J., Jensen, A.S., Christensen, N.C., Hess, A.V., Johnsen, J.B., Woller, Ø.G., Ørum, P.B.: Engineering a multi-agent system in GOAL. Lect. Notes Comput. Sci. 8245, 329–338 (2013)
Villadsen, J., Jensen, A.S., Ettienne, M.B., Vester, S., Andersen, K.B., Frøsig, A.: Reimplementing a multi-agent system in Python. Lect. Notes Comput. Sci. 7837, 205–216 (2013)
Acknowledgements
We are affiliated with DTU Compute, short for Department of Applied Mathematics and Computer Science, Technical University of Denmark (DTU), and located in the greater Copenhagen area. We are grateful to Innovation Fund Denmark for partially funding John Bruntse Larsen’s Industrial PhD project Hospital Planning with Multi-Agent Goals between PDC A/S and DTU Compute.
Author information
Authors and Affiliations
Corresponding author
Appendix A: Team overview: short answers
Appendix A: Team overview: short answers
1.1 A.1 Participants and their background
- ᅟ:
-
What was your motivation to participate in the contest?
We have a general interest in artificial intelligence and logic, and in particular in multi-agent systems.
- ᅟ:
-
What is the history of your group? (course project, thesis, …)
Our group consist of two master students, Helge and Oliver, who together did their bachelor thesis on multi-agent systems, using the contest as the platform for the implementation, and with Jørgen and John as supervisors.
- ᅟ:
-
What is your field of research? Which work therein is related? Helge and Oliver have taken courses in multi-agent systems theory and development as part of their bachelor degree. In his PhD, John is doing research on applying multi-agent systems theory for hospital decision support systems. Jørgen’s field of research include formal logic and multi-agent systems. He has supervised DTU’s team for the contest since 2009.
1.2 A.2 The cold hard facts
- ᅟ:
-
How much time did you invest in the contest (for programming, organizing your group, other)?
We invested about 300 man hours, including 180 hours of programming for two people.
- ᅟ:
-
How many lines of code did you produce for your final agent team?
We produced 5361 total lines of code. Of these, the project included 282 lines of Jason code, while the remaining lines were Java code.
- ᅟ:
-
How many people were involved?
Two people have been responsible for implementing the project, with guidance from their supervisors.
- ᅟ:
-
When did you start working on your agents?
Helge and Oliver started implementing the agents doing their bachelor thesis in the spring of 2017. These agents were based on the contest from 2016. Most of the work done for the agents used in the actual competition was done in August and September 2017.
1.3 A.3 Strategies and details
- ᅟ:
-
What is the main strategy of your agent team?
The main strategy is to delegate each job to a group of agents. Each agent will be responsible for collecting some of the items, go to a workshop and assemble them if necessary, and have the leader of the job deliver them.
If the job is too big to be completed by one single group, the job is split into multiple smaller jobs, which can be completed in parallel.
- ᅟ:
-
How does the team work together? (coordination, information sharing, ...)
Information about the facilities in the world are shared between all agents. This also include information about what items there are located at the different facilities, along with what items the agents are planning to buy.
When new jobs are received, the system estimates which resources (amount and type of agents, along with items) that are necessary to complete the job.
Afterwards, the job is delegated to the free agents of the required types. One agent is assigned “leader”, whom is responsible for assembling and delivering the job. All other agents on the job will assist the leader with assembling.
- ᅟ:
-
What are critical components of your team?
Some of the critical components of our team are the job delegation and synchronizing actions.
- ᅟ:
-
Can your agents change their behavior during runtime? If so, what triggers the changes?
The agents follow the same behavior throughout a simulation.
- ᅟ:
-
Did you have to make changes to the team during the contest?
We fixed a bug that caused the system to crash between simulations. During the contest we also found a bug, causing our agents to not always reuse items from failed jobs, which was fixed as well.
- ᅟ:
-
How do you organize your agents? Do you use e.g. hierarchies? Is your organization implicit or explicit?
All agents are the same at the start. We do not use hierarchies. Groups of agents are assigned to jobs, where one agent in each group is the leader and responsible for completing the job.
- ᅟ:
-
Is most of your agents’ behavior emergent on an individual or team level?
Most of the agents’ behavior is on their individual level, and only assembling items require team actions.
- ᅟ:
-
If your agents perform some planning, how many steps do they plan ahead?
Our agents use hierarchical planning, using as abstract plans as possible. As such, no concrete sequence of actions is chosen for future steps, however, the agents would be committed to their abstract plans for many steps into the future. This could wary a lot, based on the difficulty of the task, but we would assume planning for 100 or more steps would be very unlikely.
- ᅟ:
-
If you have a perceive-think-act cycle, how is it synchronized with the server?
The agents perceive the latest information from the server, and deliberate this asynchronously. Whenever the agents have finished and found the actions they want to take, this is sent to the server. As the system had trouble computing this within the time limit for each step, any further synchronization protocol was not implemented.
1.4 A.4 Scenario specifics
- ᅟ:
-
How do your agents decide which jobs to complete?
Jobs are evaluated, estimating steps and agents required to complete the job. The jobs are then sorted according to profit per step, and a delegation algorithm attempts to divide the job into tasks, assigning the tasks to the available agents.
- ᅟ:
-
Do you have different strategies for the different roles?
Jobs are delegated depending on the agents’ capacity and usable tools, hence the strategy remains the same across all roles.
- ᅟ:
-
Do your agents form ad-hoc teams for each job?
Agents solve tasks individually, although tasks involving assembly may require multiple agents, thus in a sense working as a team.
- ᅟ:
-
What do your agents do when they do not pursue any job?
Free agents charge, gather resources, and after doing so, they go to a random location within the center of the city.
- ᅟ:
-
How did you go about debugging your system?
The Java part of our system has been debugged using the standard Eclipse debugging tools, and the AgentSpeak part has been analyzed using the debugging tools provided by the Jason MAS Console.
- ᅟ:
-
What were prominent questions you would have asked your system during development? (i.e. “why did you just do X?”)
Prominent questions include: Why did agents sometimes try to complete unsolvable jobs? In what parts of the system were bottlenecks likely to occur? How much time do the agents spend on solving jobs vs waiting for other agents?
1.5 A.5 And the moral of it is …
- ᅟ:
-
What did you learn from participating in the contest?
Among other, we gained experience with working with CArtAgO and identified missing features that we found useful; gained experience with optimizing Jason programs; and learned that there is a huge difference between running simulations and competing in the actual contest.
- ᅟ:
-
What are the strong and weak points of your team?
We are able to solve multiple jobs simultaneously, utilizing all available agents and resources. Our system did not perform as well when there was a lack of jobs and not being able to utilize our full potential.
- ᅟ:
-
How viable were your chosen programming language, methodology, tools, and algorithms?
Jason was an excellent platform for developing a large-scale multi-agent system, allowing us to implement succinct agent logic in AgentSpeak. We also integrated key features of CArtAgO, although keeping the use to a minimum since the framework would quickly overcomplicate simple tasks.
- ᅟ:
-
Did you encounter new problems during the contest?
We encountered some problems with delayed perception, thus forcing us to revise the perceive-think-act cycle. We also had to shift our priorities in terms of gameplay.
- ᅟ:
-
Did playing against other agent teams bring about new insights on your own agents?
Playing against as well as watching other teams compete gave a lot of new insight, especially in terms of overall strategies.
- ᅟ:
-
What would you improve if you wanted to participate in the same contest a week from now (or next year)?
Our goal has been to develop a highly sophisticated multi-agent system, thus focusing on problem decomposition and agent coordination instead of focusing on gameplay and applying game theory.
- ᅟ:
-
Which aspect of your team cost you the most time?
The most challenging and time consuming aspect of the system has been to implement an algorithm to efficiently decompose tasks and assign them optimally.
- ᅟ:
-
What can be improved regarding the contest/scenario for next year?
We would like more emphasis on flexibility and scalability, possibly by running simulations with a varying amount of steps; utilizing the different roles for different purposes, possibly by restricting the number of partial deliveries allowed for a job; and agent coordination, possibly by limiting the amount of agents staying at the same location.
- ᅟ:
-
Why did your team perform as it did? Why did the other teams perform better/worse than you did?
We were able to perform very well due to efficient problem decomposition, using abstract plans and being able to quickly adapt to new information. This allowed our agents to dynamically work together and divide tasks between them.
We had a bug the first two days, which in turn affected our score, however our results improved significantly after resolving it.
Rights and permissions
About this article
Cite this article
Villadsen, J., Fleckenstein, O., Hatteland, H. et al. Engineering a multi-agent system in Jason and CArtAgO. Ann Math Artif Intell 84, 57–74 (2018). https://doi.org/10.1007/s10472-018-9588-8
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10472-018-9588-8