Skip to content

KingZee/shop-solver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Shop Solver

An application to solve scheduling problems written in Java.

Demo Animation

This library can solve all three types of scheduling problems (Flow-Shop, Job-Shop, and Open-Shop).

Problem and solution space encoding schemes are optimized across all three types with a permutation schedule definition.

It is extremely easy to implement any "Solver" for any of these types by inheriting from the base abstract Solver class and overriding corresponding methods.

Dependencies :

This project is built with JDK11 & Maven. It uses JavaFX 11 with some JFoenix 9 components for UI. JMH toolkit is included for micro-benchmarks. JDK 11 can be downloaded from the OpenJDK archive here : https://jdk.java.net/archive/.

Installation :

After automatically installing dependencies through Maven, the project can be run through the javafx-maven-plugin :

mvn clean
mvn javafx:compile
mvn javafx:run

If you would like to run using IntelliJ's built in runtime, you will need to have JavaFX 11 installed, and include the VM directives :

--module-path $PATH_TO_JAVAFX --add-modules javafx.controls,javafx.fxml

Testing :

To run the test suite :

mvn clean
mvn surefire:test

The tests are done through the TestFX package. As it tests every UI use-case, kindly do not move the mouse while the tests are running. It takes one minute on average.

Roadmap

  • Build initial framework.
  • Add benchmarking tools for algorithm comparison.
  • Add test suite.
  • Add example(s) of local search algorithm(s).
  • Add example(s) of genetic algorithm(s).
  • Add integrations for GPU computation (CUDA).

License

Distributed under the Apache license. See LICENSE for more information.