[SCIP] Get auxiliary variables from reformulated expression graph

liding xu lidingx.zz at gmail.com
Mon Jun 14 12:44:22 CEST 2021


Hi Stefan,
   Thank you for answering my questions and posting the document. It is
good news that scip will provide
   1. more control over the expression graph.
   2. more automatic reformulation.
   I want to do some experiments on the expression graph for the research
purpose, can you please send me the still-in-development version?

Best regards,
Liding

Stefan Vigerske <svigerske at gams.com> 于2021年6月14日周一 上午10:09写道:

> Hi,
>
> SCIP does this reformulation during presolve. cons_nonlinear adds new
> variables and changes constraints of the transformed problem. It doesn't
> really keep record of variables and constraints that are added during
> the reformulation, so there is no function to get these auxiliary
> variables or to get the constraints that were added. Their name
> typically starts with nlreform, though.
>
> For the signomial function, auxiliary variables are only introduced for
> the terms that aren't linear or quadratic. As said, there is no function
> that takes the parameters of the signomial and returns you some variable
> or constraint. But you could look through the constraints of the
> transformed problem which name starts with nlreform and that are of the
> form 0 <= signomial-term - nlreformxy <= 0. "signomial-term" is here an
> expression graph node of type polynomial (should probably better be
> named signomial) that has only one monomial or of type product. However,
> if the signomial term is neither convex nor concave, then it is
> reformulated further: Factors x_j^{p_{ij}} are replaced by new variables
> and products of more than two factors are split up.
>
> We have some code in development that replaces all this and would also
> make it easier to identify the signomial terms and corresponding
> auxiliary variables
> (https://www.scipopt.org/workshop2020/slides/minlp.pdf, starting with
> slide 9 or page 23). If you plan to do some work that builds on the
> handling of nonlinear constraints in SCIP and if you prefer to use this
> newer still-in-development version, then we can give you access to it.
>
> Stefan
>
> On 6/13/21 3:30 PM, liding xu wrote:
> > Dear SCIP community,
> >      I am aware that scip uses an expression graph to represent general
> > nonlinear functions and constructs its  linear under-estimators via
> > factorizable programming. Given a general nonlinear function (e.g.
> > signomial functions), scip adds auxiliary variables and constraints
> > associated with some intermediate nodes of the expression graph.
> >    I have the following common questions:
> >    1. In which phase (e.g. transformation, resolve), does scip
> reformulate
> > the expression graph to a set of auxiliary variables and constraints?
> >    2.How can get these auxiliary variables after reformulation, i.e.
> > (SCIP_VAR *) and constraints (SCIP_CONS*)?
> >    3. For example, given a signomial function f(x)  = \sum_i s_i(x),
> where
> > \sum_i s_i(x) =  c_i \prod_j x_j^{p_{ij}}.  how can I get the variable
> > associated to the signomial term s_i(x) = c_i \prod_j x_j^{p_{ij}}?
> >
> >   Best wishes,
> > Liding Xu
> >
> >
> > _______________________________________________
> > Scip mailing list
> > Scip at zib.de
> > https://listserv.zib.de/mailman/listinfo/scip
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listserv.zib.de/pipermail/scip/attachments/20210614/b13de622/attachment.html>


More information about the Scip mailing list