Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support more quadratic solvers #2574

Open
wants to merge 33 commits into
base: develop
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
6ea9578
Support multiple quadratic solvers
pet-mit Jan 13, 2025
b5e422e
UI fix + doc
pet-mit Jan 13, 2025
6511c37
updates
pet-mit Jan 16, 2025
271e62c
fix
pet-mit Jan 17, 2025
c49ca2e
fix
pet-mit Jan 17, 2025
d5d90f0
cleanup
pet-mit Jan 17, 2025
be5564e
fix UI build
pet-mit Jan 20, 2025
070ea47
revert submodule
pet-mit Jan 20, 2025
0aa9b80
Merge branch 'develop' into feature/new_quad_solvers
pet-mit Jan 20, 2025
45397d7
some sonar fixes
pet-mit Jan 21, 2025
6760369
read dual values. fix logs. add PDLP support.
pet-mit Jan 21, 2025
085f4cc
add comments
pet-mit Jan 21, 2025
5b48ed5
tests & some refactoring
pet-mit Jan 21, 2025
81b4998
update doc
pet-mit Jan 21, 2025
d9d8c42
update cucumber test steps
pet-mit Jan 21, 2025
c7ac13f
rename test suite
pet-mit Jan 21, 2025
6629576
print error message
pet-mit Jan 21, 2025
445d5ec
test new ortools release
pet-mit Jan 21, 2025
a86c962
add scip support
pet-mit Feb 13, 2025
9ff02c4
apply google's fix proposal
pet-mit Feb 13, 2025
97aadda
Merge branch 'develop' into feature/new_quad_solvers
pet-mit Feb 14, 2025
0cac24c
fix windows CI
pet-mit Feb 14, 2025
1f66833
Merge remote-tracking branch 'origin/feature/new_quad_solvers' into f…
pet-mit Feb 14, 2025
aa757e8
review1
pet-mit Feb 14, 2025
83a24e9
review2
pet-mit Feb 14, 2025
1453583
format code
pet-mit Feb 14, 2025
dc7e060
Merge branch 'develop' into feature/new_quad_solvers
pet-mit Feb 17, 2025
09e76d8
refactor options and add test
pet-mit Feb 17, 2025
b844d9b
Merge branch 'develop' into feature/new_quad_solvers
pet-mit Feb 18, 2025
4657841
format code
pet-mit Feb 18, 2025
816e1e4
Merge remote-tracking branch 'origin/feature/new_quad_solvers' into f…
pet-mit Feb 18, 2025
4227996
review
pet-mit Feb 25, 2025
42efca4
Merge branch 'develop' into feature/new_quad_solvers
pet-mit Feb 25, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
read dual values. fix logs. add PDLP support.
Signed-off-by: Peter Mitri <peter.mitri@rte-france.com>
pet-mit committed Jan 21, 2025
commit 67603694730f9f433ccdd1470d6bdd82bbcbae6a
12 changes: 8 additions & 4 deletions src/solver/utils/ortools_quadratic_wrapper.cpp
Original file line number Diff line number Diff line change
@@ -40,7 +40,6 @@ void BuildConstraints(PROBLEME_ANTARES_A_RESOUDRE* ProblemeAResoudre, Model& mod
// Probleme->UtiliserLaToleranceDAdmissibiliteParDefaut = OUI_PI;
// Probleme->UtiliserLaToleranceDeStationnariteParDefaut = OUI_PI;
// Probleme->UtiliserLaToleranceDeComplementariteParDefaut = OUI_PI;
// Probleme->CoutsMarginauxDesContraintes =ProblemeAResoudre.CoutsMarginauxDesContraintes.data()

void checkOptions(const OptimizationOptions& options)
{
@@ -73,7 +72,6 @@ void SolveQuadraticProblemWithOrtools(const OptimizationOptions& options,
BuildVariablesAndObjective(ProblemeAResoudre, model);
BuildConstraints(ProblemeAResoudre, model);
SolveArguments args;
args.parameters.enable_output = true;
if (options.solverLogs)
{
args.parameters.enable_output = true;
@@ -182,9 +180,15 @@ void ProcessSolveResult(PROBLEME_ANTARES_A_RESOUDRE* ProblemeAResoudre,
*pt = value;
}
// Reduced costs
if (result.has_dual_feasible_solution())
ProblemeAResoudre->CoutsReduits[i] = result.reduced_costs().at(var);
}
// Dual values
if (result.has_dual_feasible_solution())
{
for (int i = 0; i < ProblemeAResoudre->NombreDeContraintes; ++i)
{
ProblemeAResoudre->CoutsReduits[i] = result.reduced_costs().at(var);
auto ct = model.linear_constraint(i);
ProblemeAResoudre->CoutsMarginauxDesContraintes[i] = result.dual_values().at(ct);
}
}
}
3 changes: 2 additions & 1 deletion src/solver/utils/ortools_utils.cpp
Original file line number Diff line number Diff line change
@@ -331,7 +331,8 @@ const std::map<std::string, struct OrtoolsUtils::SolverNames> OrtoolsUtils::mpSo

// TODO: add SCIP support when fixed by google: {"scip", math_opt::SolverType::kGscip}
// TODO: add XPRESS support when added in or-tools: {"xpress", math_opt::SolverType::kXpress}
const std::map<std::string, math_opt::SolverType> OrtoolsUtils::mathoptSolverMap = {};
const std::map<std::string, math_opt::SolverType> OrtoolsUtils::mathoptSolverMap = {
{"pdlp", math_opt::SolverType::kPdlp}};

std::list<std::string> getAvailableLinearSolverNames()
{