Bridging the Gap between ABM and MAS: A Disaster-Rescue Simulation Using Jason and NetLogo †
Abstract
:1. Introduction
- Reactive agents are useful due to their simplicity in construction and their flexibility to act in dynamic environments.
- Cognitive agents are based on a more complex design that achieves a more robust architecture. They can also reason about the state of the environment to reach a goal-driven behaviour helpful to model either individuals or crowds.
- The work developed on MASs offers more sophisticated agency architectures than those used in ABM.
- ABM can be benefited from the strategic selection of agent’s behaviours that MASs make available.
2. The Disaster Rescue Problem
- Mitigation: long-term risk management, sustained actions to reduce or eliminate the risks to people and properties.
- Preparedness: activities to improve the response/actions like planning and organising staff, equipping, training, exercising and evaluating.
- Response: the actual actions to tackle the emergency, like fire extinguishing, rescue of people and street clearance.
- Recovery: government authorities’ coordination, plan and program generation, and restoring environment and infrastructure.
- Planning: determining the impact of a disaster event identifying the ways to be prepared and how to respond.
- Vulnerability analysis: evaluation of the strategies of emergency response.
- Identification and detection: determining the occurrence possibility of a disaster.
- Training: training emergency services staff by simulation.
- Real-time response support: determining alternative response strategies given an emergency situation.
Given an environment that simulates a city or location under disaster conditions (earthquakes, fires, etc.), a population is represented as a set of agents, divided into victims (civilians), and rescue agents, which help the victims to evacuate and avoid risks. Rescue agents coordinate their actions to minimize the damage, casualties and keep civilians in safe conditions, possibly by joining forces, under uncertain and changing conditions where time is restricted.
3. Integrating ABM and BDI MAS: Jason and NetLogo
- Jason [25] is a full-fledged platform that enables the implementation of BDI agents with many user-customisable features including Java-based environments and legacy code. Jason is a very convenient framework given its robustness, more strict implementation of the BDI principles and the facilities of AgentSpeak as a higher level agent programming language.
- NetLogo [26] is an MAS programmable modeling platform for simulating social and natural phenomena given the facilities to represent different kinds of reactive agents and its power and easiness in defining and rendering rich environments with different features.
- Jason-into-NetLogo. Only use the Jason BDI engine. The following packages are used in doing so:
- Extend the Jason class AgArch (package jason.architecture) to create the Jason agent and manage its reasoning cycle. An additional package is also required: RunCentralisedMAS belonging to jason.infra.centralised.
- From the NetLogo side, to execute the NetLogo GUI with the model, org.nlogo.[lite,headless,api] packages and InterfaceComponent, HeadlessWorkspace and CompilerException classes are required.
- NetLogo-in-Jason. NetLogo is included as an Environment in Jason. To do so, it is required to use the following facilities:
- Perceive the environment—by extending the class Environment of the Jason architecture package jason.environment to transform the perceptions taken from NetLogo into readable literals for Jason’s agents according to the AgentSpeak semantic definition, in order to be inserted in the agents’ beliefs base.
- Act in NetLogo. The InterfaceComponent of the nlogo.lite.InterfaceComponent package allows for sending commands to the elements of the model (turtles and patches).
- Load the NetLogo model as an environment in Jason using a JFrame. Complementarily, java.awt.EventQueue.invokeAndWait and java.io.[InputStreamReader, BufferedReader, IOException] are used to perform the interface and keep both platforms running together.
- NetLogo is highlighted by the deliberation process of BDI Jason agents that enhance the capabilities of the pure reactive NetLogo turtles going beyond the pure quantitative heterogeneity (variations in the values of their parameters and variables).
- Jason can be enriched in at least two aspects:
- -
- By including a powerful environments rendering tool and the capability to easily interact with it through the avatar-like Netlogo turtles.
- -
- By inheriting the skills and functionalities already present in the turtles useful to define lower level tasks, for instance navigation and sensing.
- Both tools can be combined with other systems to manage more than one user-defined environment.
- A map of a given city is rendered using the gis extension of NetLogo that represents the pixels as patches in the model. Buildings and streets are segmented to allow the agents to move only through the latter.
- Elements of the environment are represented in NetLogo as breeds of turtles (agents). Objects: one base, obstacles, fires, blockades; people: victims (civilians) and rescue staff (ambulances, rescue-units, fire-brigades and police).
- Rescue staff is also represented as BDI agents in Jason. turtles act on behalf of Jason agents, i.e., the higher level decision-making is on the Jason side. Lower level functions (such as navigation) are managed in NetLogo. Rescue agents have a narrow sight of view of 10 pixels ahead in an angle of 90 degrees.
- Objects and civilians have behaviours not governed by Jason.
The DR BDI Simulation
- createAgNL: Create the NetLogo turtle to be used as an avatar in the NetLogo environment by Jason Agents.
- goToSector: Brigadier agent goes to its designated sector (1 of N), which is selected accordingly with the module of N of their number of agent.
- doSearch: Brigadier agents perform the searching of: civilians, obstacles and fires in their designated sector. Once an objective is found, it is added as a belief and the suitable agent is notified about it. It is divided in the following scenarios:
- -
- walk: Brigadier agents move through their designated sector.
- -
- searchForCivilian: Brigadier agents sense the environment looking for civilians.
- -
- searchForObstacles: Brigadier agents sense the environment looking for obstacles.
- -
- searchForFires: Brigadier agents sense the environment looking for fires.
- goToObjective: An agent traverses the environment looking for the objective (civilian, obstacle or fire) to perform rescue actions.
- rescueAction: Once the agents reach their current objective (within its scope given by distance and sight cone parameters in NetLogo), they perform, rescue, clear, pickup, or extinguish actions. It is divided into the following scenarios:
- -
- clearing obstacles: Agents act on a target performing clearing actions.
- -
- collecting civilian: Agents act collecting civilian actions.
- -
- extinguishing fires: Agents act extinguishing a targeted fire.
- starts
- starts
- starts
- sends start perception to
- initiate the createAgNL scenario
- acts guided by its own individual behaviour accordingly to the type defined by its , where
- stops when either the total of civilians are rescued and collected, all fires are extinguished, and the obstacles cleared, or a threshold for the number of actions is reached
4. Experiments and Results
5. Discussion
Acknowledgments
Author Contributions
Conflicts of Interest
Abbreviations
UML | Unified Modeling Language. A general-purpose, developmental, modeling language in Software Engineering. |
API | Application Programming Interface. A set of libraries that allow interoperability between different software. |
References
- Fasli, M. Agent Technology for E-Commerce; John Wiley & Sons: Chichester, UK, 2007. [Google Scholar]
- Michael Wooldridge. An Introduction to Multiagent Systems; John Wiley & Sons: New York, NY, USA, 2009. [Google Scholar]
- Russell, S.J.; Norvig, P. Inteligencia Artificial: Un Enfoque Moderno; Pearson Prentice Hall: Upper Saddle River, NJ, USA, 2004. [Google Scholar]
- Kravari, K.; Bassiliades, N. A survey of agent platforms. J. Artif. Soc. Soc. Simul. 2015, 18, 11. [Google Scholar] [CrossRef]
- Railsback, S.F.; Grimm, V. Agent-Based and Individual-Based Modeling: A Practical Introduction; Princeton University Press: Princeton, NJ, USA, 2012. [Google Scholar]
- Salgado, M.; Gilbert, N. Agent based modelling. In Handbook of Quantitative Methods for Educational Research; Timothy, T., Ed.; Sense Publishers: Rotterdam, The Netherlands, 2013; pp. 247–265. [Google Scholar]
- Brooks, R. A robust layered control system for a mobile robot. IEEE J. Robot. Autom. 1986, 2, 14–23. [Google Scholar] [CrossRef]
- Mostafa, S.A.; Ahmad, M.S.; Mustapha, A.; Mohammed, M.A. A Concise Overview of Software Agent Research, Modeling, and Development. Softw. Eng. 2017, 5, 8–25. [Google Scholar]
- Rao, A.S.; Georgeff, M.P. Bdi agents: From theory to practice. In Proceedings of the First International Conference on Multi-Agent Systems (ICMAS-95), San Francisco, CA, USA, 12–14 June 1995; pp. 312–319. [Google Scholar]
- Balke, T.; Gilbert, N. How do agents make decisions? a survey. J. Artif. Soc. Soc. Simul. 2014, 17, 13. [Google Scholar] [CrossRef]
- Dastani, M. A survey of multi-agent programming languages and frameworks. In Agent-Oriented Software Engineering; Shehory, O., Sturm, A., Eds.; Springer: Berlin/Heidelberg, Germany, 2014; pp. 213–233. [Google Scholar]
- Virginia, D.; Nigel, G.; Wellman, M.P. Introduction to the special issue on autonomous agents for agent-based modeling. Auton. Agents Multi-Agent Syst. 2016, 30, 1021–1022. [Google Scholar]
- Wellman, M.P. Putting the agent in agent-based modeling. Auton. Agents Multi-Agent Syst. 2016, 30, 1175–1189. Available online: http://dblp.uni-trier.de/db/journals/aamas/aamas30.html#Wellman16 (accessed on 23 March 2018). [CrossRef]
- Hawe, G.I.; Coates, G.; Wilson, D.T.; Crouch, R.S. Agent-based simulation for large-scale emergency response: A survey of usage and implementation. ACM Comput. Surv. 2012, 45, 8. [Google Scholar] [CrossRef] [Green Version]
- Haddow, G.D.; Bullock, J.A.; Coppola, D.P. Introduction to Emergency Management, 4th ed.; Butterworth-Heinemann: Oxford, UK, 2011. [Google Scholar]
- Basak, S.; Modanwal, N.; Mazumdar, B.D. Multi-agent based disaster management system: A review. Int. J. Comput. Sci. Technol. 2011, 2, 343–348. [Google Scholar]
- Kitano, H.; Tadokoro, S.; Noda, I.; Matsubara, H.; Takahashi, T.; Shinjou, A.; Shimada, S. Robocup rescue: Search and rescue in large-scale disasters as a domain for autonomous agents research. In Proceedings of the 1999 IEEE International Conference on Systems, Man, and Cybernetics, Tokyo, Japan, 12–15 October 1999; Volume 6, pp. 739–743. [Google Scholar]
- Singh, V.K.; Modanwal, N.; Basak, S. Mas coordination strategies and their application in disaster management domain. In Proceedings of the 2011 2nd International Conference on Intelligent Agent and Multi-Agent Systems (IAMA), Chennai, India, 7–9 September 2011; pp. 14–19. [Google Scholar]
- Singh, D.; Padgham, L.; Logan, B. Integrating BDI agents with agent-based simulation platforms. Auton. Agents Multi-Agent Syst. 2016, 30, 1050–1071. [Google Scholar] [CrossRef]
- Jennings, N.R.; Wooldridge, M. Agent-oriented software engineering. Artif. Intell. 2000, 117, 277–296. [Google Scholar] [CrossRef]
- Schumann, R. Engineering Coordination: A Methodology for the Coordination of Planning Systems. Ph.D. Thesis, University of Frankfurt, Frankfurt, Germany, 2011. [Google Scholar]
- Kleiner, A.; Farinelli, A.; Ramchurn, S.; Shi, B.; Maffioletti, F.; Reffato, R. Rmasbench: Benchmarking dynamic multi-agent coordination in urban search and rescue. In Proceedings of the 2013 International Conference on Autonomous Agents and Multi-agent Systems, St. Paul, MN, USA, 6–10 May 2013; International Foundation for Autonomous Agents and Multiagent Systems: Richland, SC, USA, 2013; pp. 1195–1196. [Google Scholar]
- Pujol-Gonzalez, M.; Cerquides, J.; Farinelli, A.; Meseguer, P.; Rodríguez-Aguilar, J.A. Binary max-sum for multi-team task allocation in robocup rescue. In Proceedings of the Optimisation in Multi-Agent Systems and Distributed Constraint Reasoning (OptMAS-DCR), Paris, France, 5–6 May 2014. [Google Scholar]
- Van Parunak, H.; Brueckner, S.A. Engineering swarming systems. In Multiagent Systems, Artificial Societies, and Simulated Organizations (International Book Series); Springer: Boston, MA, USA, 2004; Volume 11, pp. 341–376. [Google Scholar]
- A Java-based intepreter for and extended version of AgentSpeak. Available online: http://jason.sourceforge.net/wp/description/ (accessed on 20 March 2018).
- Wilensky, U. NetLogo. Available online: http://ccl.northwestern.edu/netlogo/ (accessed on 20 March 2018).
- Padgham, L.; Thangarajah, J. The Prometheus Design Tool (PDT). Available online: https://sites.google.com/site/rmitagents/software/prometheusPDT (accessed on 20 March 2018).
- Boissier, O.; Bordini, R.H.; Hubner, J.F.; Ricci, A.; Santi, A. Multi-agent oriented programming with jacamo. Sci. Comput. Program. 2013, 78, 747–761. [Google Scholar] [CrossRef]
- Traffic Model. Available online: http://modelingcommons.org/browse/one_model/3851#model_tabs_browse_info (accessed on 20 March 2018).
- Sakellariou, I.; Kefalas, P.; Stamatopoulou, I. Teaching intelligent agents using NetLogo. In Proceedings of the ACM-IFIP Informatics Education Europe III Conference, Venice, Italy, 4–5 December 2008. [Google Scholar]
- Sakellariou, I.; Kefalas, P.; Stamatopoulou, I. Enhancing NetLogo to simulate BDI communicating agents. In Proceedings of the 5th Hellenic Conference on Artificial Intelligence: Theories, Models and Applications, Syros, Greece, 2–4 October 2008; Volume 5138 of Lecture Notes in Computer Science. Darzentas, J., Vouros, G., Vosinakis, S., Arnellos, A., Eds.; Springer: Berlin/Heidelberg, Germany; pp. 263–275. [Google Scholar]
- Padgham, L.; Scerri, D.; Jayatilleke, G.; Hickmott, S. Integrating BDI reasoning into agent based modeling and simulation. In Proceedings of the 2011 Winter Simulation Conference (WSC), Phoenix, AZ, USA, 11–14 December 2011; pp. 345–356. [Google Scholar]
- Caillou, P.; Gaudou, B.; Grignard, A.; Truong, C.Q.; Taillandier, P. A simple-to-use BDI architecture for agent-based modeling and simulation. In Advances in Social Simulation 2015; Jager, W., Verbrugge, R., Flache, A., de Roo, G., Hoogduin, L., Hemelrijk, C., Eds.; Springer: Cham, Switzerland, 2017; pp. 15–28. [Google Scholar]
- Taillandier, P.; Bourgais, M.; Caillou, P.; Adam, C.; Gaudou, B. A BDI agent architecture for the GAMA modeling and simulation platform. In Proceedings of the Multi-Agent Based Simulation XVII—International Workshop, MABS 2016, Singapore, 10 May 2016; Revised Selected Papers. Springer: Cham, Switzerland, 2016; pp. 3–23. Available online: https://doi.org/10.1007/978-3-319-67477-3_1 (accessed on 23 March 2018).
System | R | C | Ex | Cn | L | S |
---|---|---|---|---|---|---|
NetLogo | ✓ | ✓ | ✓ | |||
Jason | ✓ | ✓ | ✓ | ✓ | ||
J+N | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Description | Jason Literals (AgentSpeak) | NetLogo Commands |
---|---|---|
Perceiving the environment | ||
Jason to NetLogo Detect if a fire is found in the trajectory of a given agent | Sensing request literal: sendCmdNL(AgNL,"senseFire"); | Get the report from NetLogo [detect-one-fire-cone] of turtle AgNL |
NetLogo to Jason Perceive the response from the environment about finding fires. | Translating the answer into literals: removePerceptsByUnif(agName, Literal.parseLiteral("fireFound(ID)")); and addPercept(agName,Literal.parseLiteral ("fireMarkedFnd(ID)")); | |
Acting in the environment | ||
To walk in the environment, one step forward the agent’s front | sendCmdNL(AgNL,"fd 1"); | Order a turtle to walk ask turtle AgNL [fd 1] |
Av16 | Av200 | Av500 | Av250 | |
---|---|---|---|---|
Time | 06:39 | 03:40 | 05:35 | 05:10 |
Victims in danger | 9 | 13 | 29 | 67 |
Saved | 36 | 32 | 16 | 182 |
Collected | 36 | 32 | 15 | 175 |
Cleared | 6 | 5 | 5 | 7 |
Extinguished | 3 | 6 | 4 | 6 |
Performance × 1000 | 1.62 | 1.5 | 0.8 | 7.4 |
BA | Danger | Saved | Collect |
---|---|---|---|
50 | 69 | 130 | 126 |
16 | 64.2 | 134.8 | 130.4 |
100 | 69 | 130 | 125.6 |
200 | 66.8 | 132.2 | 127 |
© 2018 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).
Share and Cite
Luna-Ramirez, W.A.; Fasli, M. Bridging the Gap between ABM and MAS: A Disaster-Rescue Simulation Using Jason and NetLogo. Computers 2018, 7, 24. https://doi.org/10.3390/computers7020024
Luna-Ramirez WA, Fasli M. Bridging the Gap between ABM and MAS: A Disaster-Rescue Simulation Using Jason and NetLogo. Computers. 2018; 7(2):24. https://doi.org/10.3390/computers7020024
Chicago/Turabian StyleLuna-Ramirez, Wulfrano Arturo, and Maria Fasli. 2018. "Bridging the Gap between ABM and MAS: A Disaster-Rescue Simulation Using Jason and NetLogo" Computers 7, no. 2: 24. https://doi.org/10.3390/computers7020024
APA StyleLuna-Ramirez, W. A., & Fasli, M. (2018). Bridging the Gap between ABM and MAS: A Disaster-Rescue Simulation Using Jason and NetLogo. Computers, 7(2), 24. https://doi.org/10.3390/computers7020024