This Java software includes algorithms of combinatorical optimization for the NP-hard offline ship lock scheduling problem. Solutions and performed computations can be displayed graphically. Besides, there is a framework for generating test instances and running these in parallel, as well as R/JGR code for statistical evaluation. Some tools for estimating the quality of calculated solutions will be further improved. Initially the software was developed within a project of TU Berlin regarding the Kiel Canal. See project wiki for conditions that should be met by applications.
Features
- Problem input: Problem data will be read from XML files or generated randomly.
- Objective function: Above all, the waiting times of the ships should be minimized. There are also some other measures that can be weighted according to requirements.
- Optimization strategy: The major part is local search using several neighborhood types. Depending on the configuration, initial solutions will be improved by iteratively running hill climbing, some problem-specific postoptimization steps, and one worsening step.
- Configuration: The implemented algorithms can be selected, combined, and configured by a lot of parameters.
- Graphics: Displaying calculated solutions (screenshot 1) and calculations of algorithms (screenshot 2). These pictures can be saved as JPG.
- Flexibility: Manipulating solution data subject to restrictions.
- Analysis: Framework for analyzing the algorithms and calculated solutions: Generating test instances, parallel simulation, R/JGR code for multivariate data analysis (e.g. detemining best parameter values by statistical models).
- Analysis: Calculcating lower bounds for the cost of solutions.
- Analysis: Generating optimal solutions and comparing them with solutions found by local search.
- Analysis: Comparing solutions that have been calculated differently for the same problem instance.
License
MIT LicenseFollow Ship Lock Scheduling
You Might Also Like
Rate This Project
Login To Rate This Project
User Reviews
-
Thanks for Lockscheduling, it's perfect!