russcip
russcip copied to clipboard
Rust interface for SCIP
Build "Expressions" from variables that allow arithmetic operations, and add a range to bound them.
This should be split into multiple pull requests for each plugin.
Should return a result type wrapping the result of the underlying SCIP function `SCIPgetDualSolVal`, and should return an error for any constraint that is not linear.
The SCIP solver [supports concurrent solving](https://www.scipopt.org/doc/html/CONCSCIP.php), through the use of [SCIPsolveConcurrent()](https://www.scipopt.org/doc/html/group__PublicSolveMethods.php#ga5c91076d044744834bc75ad85d13a2f4). Note that `SCIPsolveParallel` is mentioned in the docs about how to run concurrent solving for version 4.0, but is...
As part of #151, I added a lifetime to `Solving` to prevent `clone_for_plugins` from leaking. This requires `include_branch_rule`, `include_heur` and `include_pricer` to not only accept "callbacks" of `'static` lifetimes, but...
I was wondering how this library would interact if I were to use the [exact-rational](https://github.com/scipopt/scip/tree/exact-rational) branch of the scip solver, or if it is even possible.
When inspecting `Model` and `Constraint`, I noticed that `Model::drop` frees every constraint, variable, but `Constrain::name` and `Variable::name` assume them not to be freed. ```rust use russcip::prelude::*; fn main() { //...
A more robust solution might be to add a lifetime directly to `ScipPtr`. So have `OwnedScip` and `ScipRef