diff --git a/src/main/java/edu/kit/provideq/toolbox/demonstrators/CplexMipDemonstrator.java b/src/main/java/edu/kit/provideq/toolbox/demonstrators/CplexMipDemonstrator.java index d82b539e..04e91313 100644 --- a/src/main/java/edu/kit/provideq/toolbox/demonstrators/CplexMipDemonstrator.java +++ b/src/main/java/edu/kit/provideq/toolbox/demonstrators/CplexMipDemonstrator.java @@ -38,6 +38,11 @@ public String getName() { return "Cplex MIP Demonstrator"; } + @Override + public String getDescription() { + return "Demonstrator for the Cplex MIP solver"; + } + @Override public List getSolverSettings() { return List.of( diff --git a/src/main/java/edu/kit/provideq/toolbox/featuremodel/anomaly/dead/SatBasedDeadFeatureSolver.java b/src/main/java/edu/kit/provideq/toolbox/featuremodel/anomaly/dead/SatBasedDeadFeatureSolver.java index c86eccce..7178598e 100644 --- a/src/main/java/edu/kit/provideq/toolbox/featuremodel/anomaly/dead/SatBasedDeadFeatureSolver.java +++ b/src/main/java/edu/kit/provideq/toolbox/featuremodel/anomaly/dead/SatBasedDeadFeatureSolver.java @@ -38,6 +38,12 @@ public String getName() { return "SAT-based Dead Feature Solver"; } + @Override + public String getDescription() { + return "This solver builds SAT formulae to determine dead features in a feature model." + + " It uses a SAT solver to solve each formula per feature."; + } + @Override public List> getSubRoutines() { return List.of(SAT_SUBROUTINE); diff --git a/src/main/java/edu/kit/provideq/toolbox/featuremodel/anomaly/voidmodel/SatBasedVoidFeatureSolver.java b/src/main/java/edu/kit/provideq/toolbox/featuremodel/anomaly/voidmodel/SatBasedVoidFeatureSolver.java index 00fc4140..43d748d9 100644 --- a/src/main/java/edu/kit/provideq/toolbox/featuremodel/anomaly/voidmodel/SatBasedVoidFeatureSolver.java +++ b/src/main/java/edu/kit/provideq/toolbox/featuremodel/anomaly/voidmodel/SatBasedVoidFeatureSolver.java @@ -36,6 +36,13 @@ public String getName() { return List.of(SAT_SUBROUTINE); } + @Override + public String getDescription() { + return "This solver builds SAT formulae to determine void features in a feature model." + + " It uses a SAT solver to determine if there is any valid configurations of the +" + + "feature model."; + } + @Override public Mono> solve( String input, diff --git a/src/main/java/edu/kit/provideq/toolbox/knapsack/solvers/PythonKnapsackSolver.java b/src/main/java/edu/kit/provideq/toolbox/knapsack/solvers/PythonKnapsackSolver.java index 53b0207e..27e57eff 100644 --- a/src/main/java/edu/kit/provideq/toolbox/knapsack/solvers/PythonKnapsackSolver.java +++ b/src/main/java/edu/kit/provideq/toolbox/knapsack/solvers/PythonKnapsackSolver.java @@ -33,6 +33,12 @@ public String getName() { return "Horowitz-Sahni Knapsack"; } + @Override + public String getDescription() { + return "A solver for the Knapsack problem using the Horowitz-Sahni " + + "branch and search algorithm."; + } + @Override public Mono> solve( String input, diff --git a/src/main/java/edu/kit/provideq/toolbox/knapsack/solvers/QiskitKnapsackSolver.java b/src/main/java/edu/kit/provideq/toolbox/knapsack/solvers/QiskitKnapsackSolver.java index 2c3609e7..edfb6ba1 100644 --- a/src/main/java/edu/kit/provideq/toolbox/knapsack/solvers/QiskitKnapsackSolver.java +++ b/src/main/java/edu/kit/provideq/toolbox/knapsack/solvers/QiskitKnapsackSolver.java @@ -33,6 +33,11 @@ public String getName() { return "Qiskit Knapsack"; } + @Override + public String getDescription() { + return "Solves the knapsack problem using Qiskit with QAOA."; + } + @Override public Mono> solve( String input, diff --git a/src/main/java/edu/kit/provideq/toolbox/maxcut/solvers/CirqMaxCutSolver.java b/src/main/java/edu/kit/provideq/toolbox/maxcut/solvers/CirqMaxCutSolver.java index 38843dc8..a73c0986 100644 --- a/src/main/java/edu/kit/provideq/toolbox/maxcut/solvers/CirqMaxCutSolver.java +++ b/src/main/java/edu/kit/provideq/toolbox/maxcut/solvers/CirqMaxCutSolver.java @@ -33,6 +33,11 @@ public String getName() { return "Cirq MaxCut"; } + @Override + public String getDescription() { + return "Solves the MaxCut problem using a Cirq QAOA implementation."; + } + @Override public Mono> solve( String input, diff --git a/src/main/java/edu/kit/provideq/toolbox/maxcut/solvers/GamsMaxCutSolver.java b/src/main/java/edu/kit/provideq/toolbox/maxcut/solvers/GamsMaxCutSolver.java index d090e98e..07a8e17e 100644 --- a/src/main/java/edu/kit/provideq/toolbox/maxcut/solvers/GamsMaxCutSolver.java +++ b/src/main/java/edu/kit/provideq/toolbox/maxcut/solvers/GamsMaxCutSolver.java @@ -33,6 +33,12 @@ public String getName() { return "GAMS MaxCut"; } + @Override + public String getDescription() { + return "Solves the MaxCut problem using GAMS. This starts from a SDP relaxation then used as a " + + " starting point for the QUBO algorithm."; + } + @Override public Mono> solve( String input, diff --git a/src/main/java/edu/kit/provideq/toolbox/maxcut/solvers/QiskitMaxCutSolver.java b/src/main/java/edu/kit/provideq/toolbox/maxcut/solvers/QiskitMaxCutSolver.java index d445f2bd..7734cf5f 100644 --- a/src/main/java/edu/kit/provideq/toolbox/maxcut/solvers/QiskitMaxCutSolver.java +++ b/src/main/java/edu/kit/provideq/toolbox/maxcut/solvers/QiskitMaxCutSolver.java @@ -38,6 +38,12 @@ public String getName() { return "Qiskit MaxCut"; } + @Override + public String getDescription() { + return "Solves the MaxCut problem using a Qiskit implementation with a " + + "Variational Quantum Eigensolver."; + } + @Override public Mono> solve( String input, diff --git a/src/main/java/edu/kit/provideq/toolbox/qubo/solvers/DwaveQuboSolver.java b/src/main/java/edu/kit/provideq/toolbox/qubo/solvers/DwaveQuboSolver.java index 90ee9883..d0c085ab 100644 --- a/src/main/java/edu/kit/provideq/toolbox/qubo/solvers/DwaveQuboSolver.java +++ b/src/main/java/edu/kit/provideq/toolbox/qubo/solvers/DwaveQuboSolver.java @@ -59,6 +59,11 @@ public String getName() { return "(D-Wave) Annealing QUBO Solver"; } + @Override + public String getDescription() { + return "Solves the QUBO problem using a D-Wave Quantum Annealer."; + } + @Override public List getSolverSettings() { return List.of( diff --git a/src/main/java/edu/kit/provideq/toolbox/qubo/solvers/QiskitQuboSolver.java b/src/main/java/edu/kit/provideq/toolbox/qubo/solvers/QiskitQuboSolver.java index 98ceb745..c652202b 100644 --- a/src/main/java/edu/kit/provideq/toolbox/qubo/solvers/QiskitQuboSolver.java +++ b/src/main/java/edu/kit/provideq/toolbox/qubo/solvers/QiskitQuboSolver.java @@ -33,6 +33,11 @@ public String getName() { return "(Qiskit) QAOA Solver for QUBOs"; } + @Override + public String getDescription() { + return "Solves QUBOs using the Qiskit QAOA implementation."; + } + @Override public Mono> solve( String input, diff --git a/src/main/java/edu/kit/provideq/toolbox/qubo/solvers/QrispQuboSolver.java b/src/main/java/edu/kit/provideq/toolbox/qubo/solvers/QrispQuboSolver.java index 4f7d6af5..fc9e2994 100644 --- a/src/main/java/edu/kit/provideq/toolbox/qubo/solvers/QrispQuboSolver.java +++ b/src/main/java/edu/kit/provideq/toolbox/qubo/solvers/QrispQuboSolver.java @@ -39,6 +39,11 @@ public String getName() { return "(Qrisp) QAOA Solver for QUBOs"; } + @Override + public String getDescription() { + return "A solver for QUBOs using the Qrisp QAOA implementation."; + } + @Override public List getSolverSettings() { return List.of( diff --git a/src/main/java/edu/kit/provideq/toolbox/sat/solvers/GamsSatSolver.java b/src/main/java/edu/kit/provideq/toolbox/sat/solvers/GamsSatSolver.java index 11de1b18..1da97f11 100644 --- a/src/main/java/edu/kit/provideq/toolbox/sat/solvers/GamsSatSolver.java +++ b/src/main/java/edu/kit/provideq/toolbox/sat/solvers/GamsSatSolver.java @@ -37,6 +37,11 @@ public String getName() { return "GAMS SAT"; } + @Override + public String getDescription() { + return "Solves SAT problems using GAMS as a Mixed Integer Programming problem."; + } + @Override public Mono> solve( String input, diff --git a/src/main/java/edu/kit/provideq/toolbox/tsp/solvers/LkhTspSolver.java b/src/main/java/edu/kit/provideq/toolbox/tsp/solvers/LkhTspSolver.java index d8be1621..e454ddf8 100644 --- a/src/main/java/edu/kit/provideq/toolbox/tsp/solvers/LkhTspSolver.java +++ b/src/main/java/edu/kit/provideq/toolbox/tsp/solvers/LkhTspSolver.java @@ -35,6 +35,11 @@ public String getName() { return "LKH-3 TSP Solver"; } + @Override + public String getDescription() { + return "Solver for the TSP Problem using the LKH-3 heuristics."; + } + @Override public Mono> solve( String input, diff --git a/src/main/java/edu/kit/provideq/toolbox/tsp/solvers/QuboTspSolver.java b/src/main/java/edu/kit/provideq/toolbox/tsp/solvers/QuboTspSolver.java index bcf84eac..35962bc2 100644 --- a/src/main/java/edu/kit/provideq/toolbox/tsp/solvers/QuboTspSolver.java +++ b/src/main/java/edu/kit/provideq/toolbox/tsp/solvers/QuboTspSolver.java @@ -48,6 +48,12 @@ public String getName() { return "TSP to QUBO Transformation"; } + @Override + public String getDescription() { + return "Solves TSP Problems by transforming them into QUBOs and solving them " + + "with a QUBO solver."; + } + @Override public List> getSubRoutines() { return List.of(QUBO_SUBROUTINE); diff --git a/src/main/java/edu/kit/provideq/toolbox/vrp/clusterer/KmeansClusterer.java b/src/main/java/edu/kit/provideq/toolbox/vrp/clusterer/KmeansClusterer.java index 96761eca..9b2bf28c 100644 --- a/src/main/java/edu/kit/provideq/toolbox/vrp/clusterer/KmeansClusterer.java +++ b/src/main/java/edu/kit/provideq/toolbox/vrp/clusterer/KmeansClusterer.java @@ -44,6 +44,11 @@ public String getName() { return "K-means Clustering (VRP -> Set of VRP)"; } + @Override + public String getDescription() { + return "Clusters a VRP problem into a set of VRP problems using k-means clustering."; + } + @Override public List> getSubRoutines() { return List.of(VRP_SUBROUTINE); diff --git a/src/main/java/edu/kit/provideq/toolbox/vrp/clusterer/TwoPhaseClusterer.java b/src/main/java/edu/kit/provideq/toolbox/vrp/clusterer/TwoPhaseClusterer.java index 2a173c2f..1ea89f86 100644 --- a/src/main/java/edu/kit/provideq/toolbox/vrp/clusterer/TwoPhaseClusterer.java +++ b/src/main/java/edu/kit/provideq/toolbox/vrp/clusterer/TwoPhaseClusterer.java @@ -41,6 +41,12 @@ public String getName() { return "Two Phase Clustering (VRP -> Set of TSP)"; } + @Override + public String getDescription() { + return "Solves VRP problems by clustering them into a set of TSP problems " + + "using a two-phase clustering approach."; + } + @Override public Mono> solve( String input, diff --git a/src/main/java/edu/kit/provideq/toolbox/vrp/solvers/ClusterAndSolveVrpSolver.java b/src/main/java/edu/kit/provideq/toolbox/vrp/solvers/ClusterAndSolveVrpSolver.java index 01204f09..237279e0 100644 --- a/src/main/java/edu/kit/provideq/toolbox/vrp/solvers/ClusterAndSolveVrpSolver.java +++ b/src/main/java/edu/kit/provideq/toolbox/vrp/solvers/ClusterAndSolveVrpSolver.java @@ -31,6 +31,12 @@ public String getName() { return "Cluster before Solving"; } + @Override + public String getDescription() { + return "Solves a vehicle routing problem by clustering it into multiple smaller problems " + + "first."; + } + @Override public List> getSubRoutines() { return List.of(CLUSTER_SUBROUTINE); diff --git a/src/main/java/edu/kit/provideq/toolbox/vrp/solvers/LkhVrpSolver.java b/src/main/java/edu/kit/provideq/toolbox/vrp/solvers/LkhVrpSolver.java index 25e17c66..1cc17536 100644 --- a/src/main/java/edu/kit/provideq/toolbox/vrp/solvers/LkhVrpSolver.java +++ b/src/main/java/edu/kit/provideq/toolbox/vrp/solvers/LkhVrpSolver.java @@ -36,6 +36,11 @@ public String getName() { return "LKH-3 VRP Solver"; } + @Override + public String getDescription() { + return "Solves a vehicle routing problem using the LKH-3 heuristic."; + } + @Override public Mono> solve( String input, diff --git a/src/main/java/edu/kit/provideq/toolbox/vrp/solvers/QrispVrpSolver.java b/src/main/java/edu/kit/provideq/toolbox/vrp/solvers/QrispVrpSolver.java index 2d1602cc..37d7b534 100644 --- a/src/main/java/edu/kit/provideq/toolbox/vrp/solvers/QrispVrpSolver.java +++ b/src/main/java/edu/kit/provideq/toolbox/vrp/solvers/QrispVrpSolver.java @@ -33,6 +33,11 @@ public String getName() { return "Grover-based VRP Solver (Qrisp)"; } + @Override + public String getDescription() { + return "Solves a vehicle routing problem using a Grover-based Qrisp implementation."; + } + @Override public Mono> solve( String input,