[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