This project is to support a University of Waterloo PhD thesis in civil engineering. As the thesis is developed, the simulation grows to demonstrate the concepts in the thesis. The goal is to use simulations of a construction site to determine optimal placement of construction areas. The project is in two parts: NetLogo for the simulation, and Java to generate and evaluate trials and results.
NetLogo is used to create the simulation. Algorithms were created that will simulate human-like behaviour in a work site, as the workers travel between buildings. NetLogo contains simple directives for movement, but it cannot act in a particular way. The new algorithms allow "workers" to find a route to their destination, while avoiding obstacles and collisions. It includes edge cases, such as a worker becoming lost, traffic jams, and how to react when no moves are possible. NetLogo is written in Java, and has a pseudo-language for controlling activity within the simulation.
Java is used to repeatedly run the simulation, and gather results. It connects with a database, generates settings to be used in various trials (building positions, number and types of workers), runs hundreds of trials, evaluates trial results to rank the trials and select the best ones. All data is stored or read from a MySQL database.
- Programming to support a PhD research project.
- Used NetLogo to simulate the movement of workers around a building site.
- Simple directives (turn, step) used to create algorithms to find routes, avoid obstacles, and avoid collisions.
- Created Java application to generate sample settings, run trials, compare results, and save results to a database.