[SCIP] SCIP and Ipopt

Gregor Hendel hendel at zib.de
Wed Feb 21 23:14:05 CET 2018


Hi Vincent,

the question you are asking is covered in our interactive shell 
tutorial, which I highly recommend for all new users:

http://scip.zib.de/doc-5.0.1/html/SHELL.php

Also, our FAQ has a section on how to change the behavior of SCIP.

Cheers,
Gregor

Am 21.02.2018 um 22:43 schrieb Vincent Mirian:
> Thank you for your responses Stefan and Ambros.
>
> I changed the script to:
> read SCIPConstraint.lp display problem
> set constraints quadratic replacebinaryprod 0
> set presolving inttobinary maxrounds 12
> set limits solutions 4
> set limits time 4194
> set limits nodes 4
> optimize
> display solution
> write solution  scriptOutput
> quit
>
> I would like to constraint the solver further to produce a solution as 
> early as possible. I am looking into the heuristics and presolving. Is 
> there documentation that can guide this process? Or does anyone have 
> any suggestions?
>
> Thank you.
>
>
> On Wed, Feb 21, 2018 at 2:25 PM, Ambros Gleixner <gleixner at zib.de 
> <mailto:gleixner at zib.de>> wrote:
>
>     >> Also, I would like to know if it is possible to pause SCIP and
>     >> retrieve its
>     >> state and, then, continue from the saved state from the
>     >> interactive/batch(script) mode. If so, how?
>     >
>     > No.
>
>     Well, I would say you can do that to some extent by setting any
>     parameter that limits the effort spent for solving, e.g.,
>     limits/nodes, limits/solutions, limits/time, ...
>
>     For continuing after SCIP stopped, simply increase the limit and
>     type optimize again.
>
>     Best,
>     Ambros
>
>
>
>     Am 21.02.2018 um 11:41 schrieb Stefan Vigerske:
>
>         Hi,
>
>         On 02/21/2018 12:16 AM, Vincent Mirian wrote:
>
>             Hi Ambros.
>
>             Thank you for your response. Your explanation was aligned
>             with my
>             assumption... Thank you for clarifying.
>
>             SCIP searches for an optimal solution. For some MINLP
>             problem, I would like
>             SCIP to return a solution (the first solution it may find
>             is sufficient). I
>             was reading that IPOPT is integrated within SCIP, however
>             I was unable to
>             trigger ipopt for these problem. Any help would be
>             appreciated.
>
>
>         There are a few primal heuristics in SCIP that may call out to
>         Ipopt. One that runs rather frequently is the "subNLP"
>         heuristic, but it will not run when there are no continuous
>         variables in the nonlinear part of your problem. Otherwise,
>         you may change its parameters to make it run more often.
>         However, with the information given, it's hard to say why SCIP
>         didn't call Ipopt.
>
>             For reference, I am using SCIP from
>             interactive/batch(script) mode. I
>             installed SCIP using the binaries posted on the website.
>
>             Also, I would like to know if it is possible to pause SCIP
>             and retrieve its
>             state and, then, continue from the saved state from the
>             interactive/batch(script) mode. If so, how?
>
>
>         No.
>
>         Stefan
>
>
>             Thank you in advance.
>
>             On Tue, Feb 20, 2018 at 1:49 AM, Ambros Gleixner
>             <gleixner at zib.de <mailto:gleixner at zib.de>> wrote:
>
>                 Hi Vincent,
>
>                 SCIP (like virtually all solvers based on
>                 floating-point arithmetics) uses
>                 tolerances to check feasibility and integrality.
>                 Anything with a
>                 fractionality below 1e-9 (parameter numerics/epsilon)
>                 is consider integral,
>                 so also the value 0.999999999999998 that you saw in
>                 your solution.  You can
>                 use SCIPisIntegral() to check or SCIPround() to round
>                 solution values in
>                 the C API.
>
>                 Best,
>                 Ambros
>
>
>                 Am 20.02.2018 um 03:40 schrieb Vincent Mirian:
>
>                     Hi Benny.
>
>                     Thank you for your response. Currently, I am using
>                     the LP format with
>                     SCIP.
>
>                     I create a problem (attached). In the problem I
>                     defined a
>                     variable AssignC4BLK0 and AssignC10BLK1 as
>                     binaries. However, the output
>                     assigns a non-binary to these variables. Is there
>                     something that I am doing
>                     incorrectly? Or is this natural behavior from SCIP?
>
>                     Regards.
>
>                     On Wed, Feb 14, 2018 at 1:55 AM, Benjamin Müller
>                     <benjamin.mueller at zib.de
>                     <mailto:benjamin.mueller at zib.de>
>                     <mailto:benjamin.mueller at zib.de
>                     <mailto:benjamin.mueller at zib.de>>> wrote:
>
>                          Hi Vincent,
>
>                          you did two mistakes:
>
>                          1. <y#0> should have a coefficient of 1 in
>                     the objective.
>
>                          2. You declared your quadratic constraint to
>                     be linear and there
>                          were also some semantic problems.
>
>                          Your model should actually look like:
>
>                          STATISTICS
>                             Problem name     : test.cip
>                             Variables        : 5 (0 binary, 5 integer,
>                     0 implicit integer, 0
>                          continuous)
>                             Constraints      : 0 initial, 5 maximal
>                          OBJECTIVE
>                             Sense            : minimize
>                          VARIABLES
>                             [integer] <c#0b#0>: obj=0, original
>                     bounds=[0,1]
>                             [integer] <c#1b#0>: obj=0, original
>                     bounds=[0,1]
>                             [integer] <c#0b#1>: obj=0, original
>                     bounds=[0,1]
>                             [integer] <c#1b#1>: obj=0, original
>                     bounds=[0,1]
>                             [integer] <y#0>: obj=1, global
>                     bounds=[0,4], local bounds=[0,4]
>                          CONSTRAINTS
>                             [linear] <pack_1>: <c#0b#0>[I]
>                     +<c#0b#1>[I] == 1;
>                             [linear] <pack_2>: <c#1b#0>[I]
>                     +<c#1b#1>[I] == 1;
>                             [linear] <cap_0>: <c#0b#0>[I] +<c#1b#0>[I]
>                     <= 1;
>                             [linear] <cap_1>: <c#0b#1>[I] +<c#1b#1>[I]
>                     <= 1;
>                             [quadratic] <obj_0>: -<c#0b#1>[C]
>                     <c#1b#1>[C] -<c#0b#0>[I]
>                          <c#1b#0>[I] -<y#0>[C] == -4;
>                          END
>
>                          Please read your instance with SCIP display
>                     the problem in order to
>                          see how SCIP parsed it.
>
>                                   ./bin/scip -c "read test.cip display
>                     problem"
>
>                          Anyway, I think that you might want to use a
>                     modelling language
>                          instead of dealing with our .cip format. You
>                     could, e.g., use ZIMPL,
>                          AMPL, GAMS, ...
>
>                          Best,
>                          Benny
>
>                          PS: Please don't include the Ipopt mailing
>                     any more. Your problems
>                          are not related to Ipopt.
>
>
>
>                          On 02/14/2018 07:01 AM, Vincent Mirian wrote:
>
>                              Hi all.
>
>                              Thanks for the reply Benny.
>
>                              I created the following input file to the
>                     framework.
>                              STATISTICS
>                                  Problem name     : test.cip
>                                  Variables        : 5 (0 binary, 5
>                     integer, 0 implicit
>                              integer, 0 continuous)
>                                  Constraints      : 0 initial, 5 maximal
>                              OBJECTIVE
>                                  Sense            : minimize
>                              VARIABLES
>                                  [integer] <c#0b#0>: obj=0, original
>                     bounds=[0,1]
>                                  [integer] <c#1b#0>: obj=0, original
>                     bounds=[0,1]
>                                  [integer] <c#0b#1>: obj=0, original
>                     bounds=[0,1]
>                                  [integer] <c#1b#1>: obj=0, original
>                     bounds=[0,1]
>                                  [integer] <y#0>: obj=0, global
>                     bounds=[0,4], local
>                     bounds=[0,4]
>                              CONSTRAINTS
>                                  [linear] <pack_1>: <c#0b#0>[I]
>                     +<c#0b#1>[I] == 1;
>                                  [linear] <pack_2>: <c#1b#0>[I]
>                     +<c#1b#1>[I] == 1;
>                                  [linear] <cap_0>: <c#0b#0>[I]
>                     +<c#1b#0>[I] <= 1;
>                                  [linear] <cap_1>: <c#0b#1>[I]
>                     +<c#1b#1>[I] <= 1;
>                                  [linear] <obj_0>:
>                     -<c#0b#1>[I]*<c#1b#1>[I]*1
>                              -<c#0b#0>[I]*<c#1b#0>[I]*1 +4 -<y#0> == 0;
>                              END
>
>                              The results should assign y#0 to 4.
>                     However, I get the following
>                              output (snippet of output to reduce length):
>
>                              presolving (1 rounds: 1 fast, 1 medium, 1
>                     exhaustive):
>                                 5 deleted vars, 5 deleted constraints,
>                     0 added constraints, 1
>                              tightened bounds, 0 added holes, 0
>                     changed sides, 0 changed
>                              coefficients
>                                 0 implications, 0 cliques
>                              presolved problem has 0 variables (0 bin,
>                     0 int, 0 impl, 0 cont)
>                              and 0 constraints
>                              transformed objective value is always
>                     integral (scale: 1)
>                              Presolving Time: 0.00
>
>                              objective value:             0
>                              c#0b#0 1 (obj:0)
>                              c#1b#1 1 (obj:0)
>
>                              The assignment of c#0b#0 and c#1b#1 are
>                     valid solutions. I am
>                              confused on the reason that the objective
>                     value is 0. I am
>                              assume that the objective value is y#0,
>                     since it is the only
>                              variable not stated. The value of y#0
>                     should be 4.
>
>                              Some guidance would be appreciated. Note
>                     that I searched the
>                              SCIP mailing list archive but I did not
>                     find any references for
>                              the input format and description of the
>                     output.
>
>                              Any help would be appreciated. Thank you.
>
>
>
>                              On Tue, Feb 13, 2018 at 11:38 PM,
>                     Benjamin Müller
>                              <benjamin.mueller at zib.de
>                     <mailto:benjamin.mueller at zib.de>
>                     <mailto:benjamin.mueller at zib.de
>                     <mailto:benjamin.mueller at zib.de>>
>                              <mailto:benjamin.mueller at zib.de
>                     <mailto:benjamin.mueller at zib.de>
>
>                              <mailto:benjamin.mueller at zib.de
>                     <mailto:benjamin.mueller at zib.de>>>> wrote:
>
>                                   Hi Vincent,
>
>                                   I would recommend using JSCIPOpt,
>                     which is our SCIP-Java
>                              interface
>                                   that can be found here:
>
>                     https://github.com/SCIP-Interfaces/JSCIPOpt
>                     <https://github.com/SCIP-Interfaces/JSCIPOpt>
>                             
>                     <https://github.com/SCIP-Interfaces/JSCIPOpt
>                     <https://github.com/SCIP-Interfaces/JSCIPOpt>>
>                                  
>                     <https://github.com/SCIP-Interfaces/JSCIPOpt
>                     <https://github.com/SCIP-Interfaces/JSCIPOpt>
>                             
>                     <https://github.com/SCIP-Interfaces/JSCIPOpt
>                     <https://github.com/SCIP-Interfaces/JSCIPOpt>>>
>
>                                   All relevant steps for building the
>                     interface are listed in
>                     the
>                                   INSTALL.md, but basically, you will
>                     need to download the
>                              latest SCIP
>                                   Optimization Suite and compile it
>                     with Ipopt. You might
>                              want to have
>                                   a look at the
>                     JSCIPOpt/examples/Quadratic, which shows how
>                              to model
>                                   a problem with simple quadratic
>                     constraints.
>
>                                   Please note that SCIP can't handle a
>                     nonlinear objective
>                              function.
>                                   For this reason, you need to add an
>                     auxiliary variable z
>                              and then
>                                   model your problem as
>
>                                        min z
>                                        z >= sum_{ij} X_{ij} Y_{ij}
>                                        ...
>
>                                   Best,
>                                   Benny
>
>                                   On 02/13/2018 07:05 PM, Vincent
>                     Mirian wrote:
>
>                                       HI all.
>
>                                       I am new to the SCIP community.
>
>                                       I am looking for a non-linear
>                     solver to solve:
>                                       - an objective function similar
>                     to 0 <= sum over i and
>                              j of X_ij
>                                       * Y_ij * Constant < max
>                                       - with constraints similar
>                     tosum(X_ij) = 1 and
>                              sum(Y_ij) = 1
>                                       (forcing the values of X_ij and
>                     Y_ij to zero or one). A
>                              solution
>                                       would be sufficient (it can be
>                     local or global optimal).
>
>                                       I would need to interface the
>                     solver with Java. I found
>                              Google
>                                       Optimization Tools (OR-Tools) to
>                     interface SCIP with
>                              java. Note
>                                       that this work is for academic
>                     research.
>
>                                       - Would SCIP or Ipopt be
>                     suitable for my task? Would
>                              anyone have
>                                       experience integrating SCIP or
>                     Ipopt into Java?
>                                       - I'm using a machine with
>                     ubuntu 64-bit. Are there any
>                              issues
>                                       with installing these tools in
>                     this machine environment?
>                                       - What is the manner to describe
>                     the constraints and
>                              objective
>                                       function using these tools?
>
>                                       Thank you.
>                                       --         Vincent Mirian
>
>
>                                      
>                     _______________________________________________
>                                       Scip mailing list
>                     Scip at zib.de <mailto:Scip at zib.de>
>                     <mailto:Scip at zib.de <mailto:Scip at zib.de>>
>                     <mailto:Scip at zib.de <mailto:Scip at zib.de>
>                              <mailto:Scip at zib.de <mailto:Scip at zib.de>>>
>                     https://listserv.zib.de/mailman/listinfo/scip
>                     <https://listserv.zib.de/mailman/listinfo/scip>
>                             
>                     <https://listserv.zib.de/mailman/listinfo/scip
>                     <https://listserv.zib.de/mailman/listinfo/scip>>
>                                      
>                     <https://listserv.zib.de/mailman/listinfo/scip
>                     <https://listserv.zib.de/mailman/listinfo/scip>
>                             
>                     <https://listserv.zib.de/mailman/listinfo/scip
>                     <https://listserv.zib.de/mailman/listinfo/scip>>>
>
>
>                                   -- ______________________________
>                                   Benjamin Müller
>                                   Zuse Institute Berlin
>                                   Takustr. 7, 14195 Berlin
>                     benjamin.mueller at zib.de
>                     <mailto:benjamin.mueller at zib.de>
>                     <mailto:benjamin.mueller at zib.de
>                     <mailto:benjamin.mueller at zib.de>>
>                              <mailto:benjamin.mueller at zib.de
>                     <mailto:benjamin.mueller at zib.de>
>                     <mailto:benjamin.mueller at zib.de
>                     <mailto:benjamin.mueller at zib.de>>>
>                     +49 30 841 85-195 <tel:%2B49%2030%20841%2085-195>
>                     <tel:%2B49%2030%20841%2085-195>
>                              <tel:%2B49%2030%20841%2085-195>
>
>
>
>
>                              --         Vincent Mirian
>
>
>                          --     ______________________________
>                          Benjamin Müller
>                          Zuse Institute Berlin
>                          Takustr. 7, 14195 Berlin
>                     benjamin.mueller at zib.de
>                     <mailto:benjamin.mueller at zib.de>
>                     <mailto:benjamin.mueller at zib.de
>                     <mailto:benjamin.mueller at zib.de>>
>                     +49 30 841 85-195 <tel:%2B49%2030%20841%2085-195>
>                     <tel:%2B49%2030%20841%2085-195>
>
>
>
>
>                     -- 
>                     Vincent Mirian
>
>
>                     _______________________________________________
>                     Scip mailing list
>                     Scip at zib.de <mailto:Scip at zib.de>
>                     https://listserv.zib.de/mailman/listinfo/scip
>                     <https://listserv.zib.de/mailman/listinfo/scip>
>
>
>                 -- 
>                 Ambros Gleixner, Research Group Mathematical
>                 Optimization Methods at Zuse
>                 Institute Berlin, http://www.zib.de/gleixner
>                 _______________________________________________
>                 Scip mailing list
>                 Scip at zib.de <mailto:Scip at zib.de>
>                 https://listserv.zib.de/mailman/listinfo/scip
>                 <https://listserv.zib.de/mailman/listinfo/scip>
>
>
>
>
>
>
>             _______________________________________________
>             Scip mailing list
>             Scip at zib.de <mailto:Scip at zib.de>
>             https://listserv.zib.de/mailman/listinfo/scip
>             <https://listserv.zib.de/mailman/listinfo/scip>
>
>
>         _______________________________________________
>         Scip mailing list
>         Scip at zib.de <mailto:Scip at zib.de>
>         https://listserv.zib.de/mailman/listinfo/scip
>         <https://listserv.zib.de/mailman/listinfo/scip>
>
>
>     -- 
>     Ambros Gleixner, Research Group Mathematical Optimization Methods
>     at Zuse Institute Berlin, http://www.zib.de/gleixner
>     _______________________________________________
>     Scip mailing list
>     Scip at zib.de <mailto:Scip at zib.de>
>     https://listserv.zib.de/mailman/listinfo/scip
>     <https://listserv.zib.de/mailman/listinfo/scip>
>
>
>
>
> -- 
> Vincent Mirian
>
>
> _______________________________________________
> 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/20180221/c510b547/attachment.html>


More information about the Scip mailing list