Original simulation development
During the 2015/2016 academic year, a group of 7 students, including myself, worked on a simulation software package for a multi-agent parallel processing system, under the guidance of Dr. van Moergestel. A multi-agent parallel processing system is a concept production system, where production is performed in parallel over multiple production stations, called equiplets, based on the production requirements of individual products, unlike the common sequential production techniques currently employed, which are more suited for mass production. The idea is to employ this type of production when order sizes would be too small for mass production but unsuited for production by artisans.
The idea of the simulation was to have a software platform for further studying of this concept, without the issues of working with a not fully developed hardware platform.
My contribution to the simulation mostly involved implementing multiple pathfinding algorithms for the transport modules, which are responsible for transporting the intermediate products between production stations. Complicating this was the individual nature of the transport modules, and the need to handle conflicting routes between transport modules.
Implemented pathfinding algorithms include Dijkstra, A* and fully randomized navigation. This last one sounds extremely impractical, but tended to perform comparable, if not better than, the first two algorithms due to allowing a higher grid load (the percentage of nodes filled with transport modules in the grid) than the other algorithms without a risk of creating deadlock where transport modules keep blocking each other, meaning an order can never be completed.
Eventually, we decided to add intelligence to regular nodes by building a weight map, with each node knowing what distance it is removed from each available production process type (and exits) and allowing neighbours from which they can be reached to know these distances. If this were to be implemented in a real-world system, this intelligence would probably be centralized instead of adding intelligence to the nodes.
Navigating using this weight map worked much better than the other tested algorithms, by simply having transport modules plan their next step in order of priority.
With the basics of the simulation implemented, the simulation was handed over to Dr. van Moergestel for testing. This eventually resulted in a paper.
My research semester
During the 2017/2018 academic year, I decided to enter into a research semester instead of a minor, to dive deeper into my field of study instead of doing introductory courses into another field of study.
During this research semester, I once again worked on the multi-agent parallel processing simulation, colloquially known as the TransportGrid Simulator. I worked on a few aspects of the simulator, but most of my work involved reworking the weight map pathfinding algorithm to account for production stations performing a production step and thus being unavailable for other transport modules to deliver their intermediate product to.
As a solution to this problem, instead of building the weight map once when a map is loaded (the “static” approach), the weight map is now (partially) recalculated when a production station starts producing or progresses through its current production process.