I was interested in an optimisation strategy for a port, where containers are offloaded from a ship, picked up by a straddle" (tall vehicle that can pick up a container and move it around) and taken to a separate area to be taken away by trucks.
Given a certain scenario (number of containers, port layout) what's the optimum number of straddles ? Too few, and the containers queue up on the ship; too many, and the containers queue up in the truck park (and the straddles keep getting in each others way.
I've built a simulation where I can set up containers, ships, cranes, straddles and trucks. I lay out the port, with impassable areas to make it more interesting, and give the vehicles the ability to route find (A*). I then tinker with different set ups to find the minimum time needed to transport all containers from a ship to the truck park.
A set of classes were built to implement the model; I then wrapped different systems around it (JavaFX for desktop analysis, Android for a hand-held demo, and then an automated system to run multiple models and produce the statistics I wanted.
Result - it's complicated.
Three examples of different ports, running on an Android phone.