Skip to content

Commit

Permalink
feature: add descriptions to all solvers
Browse files Browse the repository at this point in the history
to my best knowledge and understanding, feel free to fix if incorrect
  • Loading branch information
zaibod committed Dec 20, 2024
1 parent f020315 commit ae35607
Show file tree
Hide file tree
Showing 19 changed files with 104 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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<SolverSetting> getSolverSettings() {
return List.of(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<SubRoutineDefinition<?, ?>> getSubRoutines() {
return List.of(SAT_SUBROUTINE);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<Solution<String>> solve(
String input,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<Solution<String>> solve(
String input,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<Solution<String>> solve(
String input,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<Solution<String>> solve(
String input,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<Solution<String>> solve(
String input,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<Solution<String>> solve(
String input,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<SolverSetting> getSolverSettings() {
return List.of(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<Solution<String>> solve(
String input,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<SolverSetting> getSolverSettings() {
return List.of(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<Solution<DimacsCnfSolution>> solve(
String input,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<Solution<String>> solve(
String input,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<SubRoutineDefinition<?, ?>> getSubRoutines() {
return List.of(QUBO_SUBROUTINE);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<SubRoutineDefinition<?, ?>> getSubRoutines() {
return List.of(VRP_SUBROUTINE);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<Solution<String>> solve(
String input,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<SubRoutineDefinition<?, ?>> getSubRoutines() {
return List.of(CLUSTER_SUBROUTINE);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<Solution<String>> solve(
String input,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<Solution<String>> solve(
String input,
Expand Down

0 comments on commit ae35607

Please sign in to comment.