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
UI fix + doc
Signed-off-by: Peter Mitri <peter.mitri@rte-france.com>
pet-mit committed Jan 13, 2025
commit b5e422ec969e23ee5e8a89a3015b3da3d4426223
6 changes: 4 additions & 2 deletions docs/user-guide/solver/02-command-line.md
Original file line number Diff line number Diff line change
@@ -17,7 +17,8 @@ hide:
| --adequacy | Force the simulation in [adequacy](static-modeler/04-parameters.md#mode) mode |
| --parallel | Enable [parallel](optional-features/multi-threading.md) computation of MC years |
| --force-parallel=VALUE | Override the max number of years computed [simultaneously](optional-features/multi-threading.md) |
| --solver=VALUE | The optimization solver to use. Possible values are: `sirius` (default), `coin`, `xpress`, `scip` |
| --linear-solver=VALUE | The optimization solver to use for linear problems. Possible values are: `sirius` (default), `coin`, `xpress`, `scip` |
| --quadratic-solver=VALUE | The optimization solver to use for quadratic problems. Possible values are: `sirius` (default), `scip` |

## Parameters

@@ -43,7 +44,8 @@ hide:
| -m, --mps-export | Export anonymous MPS, weekly or daily optimal UC+dispatch linear (MPS will be named if the problem is infeasible) |
| -s, --named-mps-problems | Export named MPS, weekly or daily optimal UC+dispatch linear |
| --solver-logs | Print solver logs |
| --solver-parameters | Set solver-specific parameters, for instance `--solver-parameters="THREADS 1 PRESOLVE 1"` for XPRESS or `--solver-parameters="parallel/maxnthreads 1, lp/presolving TRUE"` for SCIP. Syntax is solver-dependent, and only supported for SCIP & XPRESS. |
| --linear-solver-parameters | Set solver-specific parameters for linear problems, for instance `--solver-parameters="THREADS 1 PRESOLVE 1"` for XPRESS or `--solver-parameters="parallel/maxnthreads 1, lp/presolving TRUE"` for SCIP. Syntax is solver-dependent, and only supported for SCIP & XPRESS. |
| --quadratic-solver-parameters | Set solver-specific parameters for quadratic problems. |

## Misc.

20 changes: 13 additions & 7 deletions docs/user-guide/solver/static-modeler/04-parameters.md
Original file line number Diff line number Diff line change
@@ -483,14 +483,20 @@ _**This section is under construction**_
> _**Note:**_ You can find more information on this parameter [here](../03-appendix.md#details-on-the-include-unfeasible-problem-behavior-parameter).

---
#### solver-parameters
[//]: # (TODO: document this parameter)
_**This section is under construction**_
#### linear-solver-parameters
- **Expected value:** a string
- **Required:** **no**
- **Default value:** empty
- **Usage:** Set solver-specific parameters for linear problems, for instance `--solver-parameters="THREADS 1 PRESOLVE 1"`
for XPRESS or `--solver-parameters="parallel/maxnthreads 1, lp/presolving TRUE"` for SCIP. Syntax is solver-dependent, and only supported for SCIP & XPRESS.

- **Expected value:**
- **Required:** **yes**
- **Default value:**
- **Usage:**
---
#### quadratic-solver-parameters
- **Expected value:** a string
- **Required:** **no**
- **Default value:** empty
- **Usage:** Set solver-specific parameters for quadratic problems, for instance `--solver-parameters="THREADS 1 PRESOLVE 1"`
for XPRESS or `--solver-parameters="parallel/maxnthreads 1, lp/presolving TRUE"` for SCIP. Syntax is solver-dependent, and only supported for SCIP & XPRESS.

---
## Adequacy-patch parameters
Original file line number Diff line number Diff line change
@@ -26,9 +26,9 @@
bool OPT_PilotageOptimisationQuadratique(const OptimizationOptions& options,
PROBLEME_HEBDO* problemeHebdo)
{
if (options.linearSolver != "sirius")
if (options.quadraticSolver != "sirius")
{
const std::string notFound = "Solver " + options.linearSolver
const std::string notFound = "Solver " + options.quadraticSolver
+ " not supported for quadratic problems optimization.";
throw new std::invalid_argument(notFound);
}
2 changes: 1 addition & 1 deletion src/ui/simulator/windows/simulation/run.cpp
Original file line number Diff line number Diff line change
@@ -314,7 +314,7 @@ Run::Run(wxWindow* parent, bool preproOnly) :
= Antares::Component::CreateLabel(pBigDaddy, wxT("Ortools solver : "));

pOrtoolsSolverCombox = new wxComboBox(pBigDaddy, wxID_ANY, "sirius");
std::list<std::string> solverList = getAvailableOrtoolsSolverName();
std::list<std::string> solverList = getAvailableOrtoolsSolverNames(LINEAR);
for (const std::string& solverName : solverList)
{
pOrtoolsSolverCombox->Append(solverName);