Multi-agent path finding (part C)

Multi-agent path-finding is about the development and evaluation of algorithms and techniques to find high-quality collision-free paths for teams of agents to reach their target locations in real-time with consideration of various types of constraints. In order to ease the formulation of the path-f...

Full description

Saved in:
Bibliographic Details
Main Author: Chua, Wen Kai
Other Authors: Tang Xueyan
Format: Final Year Project
Language:English
Published: Nanyang Technological University 2020
Subjects:
Online Access:https://hdl.handle.net/10356/137985
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Nanyang Technological University
Language: English
Description
Summary:Multi-agent path-finding is about the development and evaluation of algorithms and techniques to find high-quality collision-free paths for teams of agents to reach their target locations in real-time with consideration of various types of constraints. In order to ease the formulation of the path-finding problem at hand and present its solution calculated, the scope of this project focuses on the development of an application that allows the users to have a graphical user interface to mimic the different path-finding problems and have the in-built algorithms to calculate the solutions. The application is written in Java and uses the Java Agent DEvelopment (JADE) framework to support the management of agents. Next, the graphical user interface uses JavaFX to present the user with a unique and simple look and feel that cannot be achieved with Java Swing. JavaScript Object Notation (JSON) is the chosen format for data exchanges between the internal files and the server which hosts the various algorithms. The application primarily uses the Model-View-Controller (MVC) design pattern for its architectural design as recommended by Oracle when integrating JavaFX into applications. Additionally, the software lifecycle follows the Agile methodology as it allows the constant delivery of the application in small amounts and any changes that may arise to be made. The result is a simple and functional graphical application that performs the intended purpose written in its functional requirements and can be scaled to include more complex scenarios and path-finding algorithms in the future.