ProvideQ / toolbox-server

Resources for the server that hosts the toolbox (Backend)
https://provideq.kit.edu
MIT License
1 stars 1 forks source link

Vehicle Routing Meta Solvers added #70

Open LucasBerger opened 5 months ago

LucasBerger commented 5 months ago

This PR adds a few solvers in regards to a newly added vehicle routing optimization problem (VRP). The corresponding PR on web is: https://github.com/ProvideQ/toolbox-web/pull/46

It adds the following Solvers:

VRP:

CLUSTERABLE_VRP:

QUBO:

!For all the clusterers and the QuboTspSolver there needs to be a current version of the binary compiled from: https://github.com/LucasBerger/quantum-vrp copy this binary into the bin folder

For the python solver: All the new python folders in JAVA are referred to as if there is a virtual environment in the folder /venv (e.g. lkh/venv). This is needed as some python packages need lower versions of python (e.g. qrisp, dwave)

In addition to those solvers these are further features:

!THIS PR is based on the refactor/solve-get-request-to-solution branch. this branch should be added first and then this branch should be rebased with develop afterwards.

sonarcloud[bot] commented 5 months ago

Quality Gate Failed Quality Gate failed

Failed conditions
C Reliability Rating on New Code (required ≥ A)

See analysis details on SonarCloud

Catch issues before they fail your Quality Gate with our IDE extension SonarLint

koalamitice commented 3 months ago

TODOs:

How to install Rust: (1) curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh (2) rustup install nightly-2023-07-01 (3) grab specific version name on machine... (4) rustup default nightly-2023-07-01 (... specific version name on machine) (5) cargo build

pipeline will be installed in target/.. directory

Questions: We could either let the user compile the pipeline & lkh solver for themselves, or we could add default binaries that work on standard windows, linux, and mac. (1) We have to differentiate the used binary during runtime. Currently all paths are handled over the applications.properties file. We would have to implement some kind of OS-checker there. For instance, by adding multiple application.properties files. Or multiple paths to the existing files.

Elscrux commented 6 days ago

Overall the checkstyle plugin should be run in the IDE. Because this branch is on Lucas's repository, it doesn't run those workflows but once we merged this into dev it would complain at the check stage.

Elscrux commented 5 days ago

@koalamitice Thanks for the changes! I found some minor things and resolved pretty much all threads but one. Btw, my Checkstyle currently still reports Checkstyle violations in QuboSolverTest.java and VrpSolverTest.java. Could you check those out? Once all that is done this is ready to be merged!

sonarcloud[bot] commented 3 days ago

Quality Gate Passed Quality Gate passed

Issues
9 New issues
0 Accepted issues

Measures
0 Security Hotspots
0.0% Coverage on New Code
0.0% Duplication on New Code

See analysis details on SonarCloud