Logistics Optimizer
This logistics optimizer provides multiple algorithms to solve a given transportation problem. In detail those are:
- ShortestPathOptimizer uses the Dijkstra algorithm to find small tours in the graph.
- NortWestCornerKruskalOptimizer uses the NorthWestCorner method and the Kruskal algorithm to fill the table with the ways to the leaf of the minimal spanning tree.
- SavingsOptimizer uses the savings algorithm.
- PheromoneOptimizer which sets a pheromone scent to each location. The intensity of the scent depends on the remaining locations delivery amount needed. Now the trucks only have to drive towards the location with the highest scent and return to the start location.
Installation guide
git clone https://github.com/stromhalm/Logistics-Problem-Optimizer.git
cd Logistics-Problem-Optimizer
mvn clean install
Usage guide
To start the application use the following command pattern from within the project root dir.
java -jar target/optimizer-1.0.jar [algorithmID] [logisticNetworkPath] [deliveryListPath]
where the options can be left blank. Then all algorithms are executed and the default LogisticNetworkFile and DeliveryListFile are used.
The algorithm IDs are:
- PheromoneOptimizer
- NorthWestCornerKruskalOptimizer
- NorthWestCornerOwnOptimizer
- SavingsOptimizer
- ShortestPathOptimizer (Dijkstra)
- SolutionOptimizer
- Default (all but algorithm 3 and 6)
Algorithm 3 and 6 are in test mode only.
Extended Logistics Optimizer
This command starts a more complex transportation problem:
java -jar target/optimizer-1.0.jar 7 src/main/resources/LogistiknetzMoreComplex.csv src/main/resources/LieferlisteMoreComplex.csv