[SCIP] Solving a Convex MINLP
Stefan Vigerske
svigerske at gams.com
Sun Jul 13 19:02:13 CEST 2025
Hi,
constraints/nonlinear/assumeconvex only overwrites the convexity check
for nonlinear functions. So any g_i(x,y) is assumed to be convex in
(x,y) on the domain given by the variable bounds. So if this can be
assumed for y in [0,1], it will also work for y in {0,1}.
Maybe there is some bug which results in an incorrect solution for the
MINLP case.
Stefan
On 07/07/2025 13:19, Guillaume BS wrote:
> Dear SCIP team,
>
> I am trying to solve a relatively simple convex MINLP of the shape:
>
> min c^t x
> s.t.: g_i(x,y) \leq 0 i \in 1..m
> Ax + By \leq d
> x \in R^n, y \in B^n'
>
> with all functions g_i convex (cf "Convex MINLP" in https://www.scipopt.org/doc/html/WHATPROBLEMS.php ).
> I try to solve the MINLP (with variables y in {0,1}, and its convex relaxation (with variables y in [0,1] ).
>
> In the documentation, a parameter "constraints/nonlinear/assumeconvex" is described, which allows assuming that all constraint functions are convex.
>
> The convex relaxed NLP with y \in [0,1]:
>
> *
> is easily solved by SCIP when the "constraints/nonlinear/assumeconvex" parameter equals TRUE
> *
> is not easily solved by SCIP (several minutes for a toy instance with a few variables and constraints) when "constraints/nonlinear/assumeconvex" equals FALSE ; from the logs, it seems SCIP can't prove the complexity of the constraints and runs a spatial branch-and-bound (several nodes are generated, despite having only continuous variables).
>
> The MINLP with y \in {0,1}:
>
> *
> is not correctly solved when "constraints/nonlinear/assumeconvex" is true: a feasible solution, with values of the binary variable y fixed "randomly", is returned by SCIP.
> *
> is very slow when "constraints/nonlinear/assumeconvex" is false
>
> So it seems the "constraints/nonlinear/assumeconvex" parameters not only controles the convexity of the constraints in the NLP relaxation, but also the convexity of the variables' domains - which would make it improper to solve an MINLP.
>
> Is this understanding correct and, if so, is there a way to solve a MINLP when all constraints are known to be convex - but the variables domain isn't ? (for instance by stating, for each nonlinear constraint, that it should be considered as convex?)
>
> Many thanks,
> Guilaume
>
>
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> https://listserv.zib.de/mailman/listinfo/scip
More information about the Scip
mailing list