3

I am using SCIP solver (with AMPL executable file) in PYOMO for an optimization problem. Unfortunately the output file in .sol format doesn't contain the iterations data. The information available in the solution file is shown below.

SCIP version 6.0.0 [precision: 8 byte] [memory: block] [mode: optimized] [LP solver: SoPlex 4.0.0] [GitHash: 77d3bc8]
Copyright (C) 2002-2018 Konrad-Zuse-Zentrum fuer Informationstechnik Berlin (ZIB)

External codes: 
  SoPlex 4.0.0         Linear Programming Solver developed at Zuse Institute Berlin (soplex.zib.de) [GitHash: 82cab95]
  CppAD 20180000.0     Algorithmic Differentiation of C++ algorithms developed by B. Bell (www.coin-or.org/CppAD)
  Ipopt 3.12.12        Interior Point Optimizer developed by A. Waechter et.al. (www.coin-or.org/Ipopt)
  ASL                  AMPL Solver Library developed by D. Gay (www.netlib.com/ampl)

RNING: unknown parameter <output_file>

number of parameters = 2428
non-default parameter settings:


read problem <C:\Users\Wilson\AppData\Local\Temp\tmp1sfv6ovn.pyomo.nl>
============

original problem has 5 variables (0 bin, 0 int, 0 impl, 5 cont) and 3 constraints

solution violates original bounds of variable <_svar[1]> [1,3] solution value <0>
all 1 solutions given by solution candidate storage are infeasible

presolving:
(round 1, fast)       0 del vars, 0 del conss, 0 add conss, 5 chg bounds, 0 chg sides, 0 chg coeffs, 0 upgd conss, 0 impls, 0 clqs
(round 2, fast)       0 del vars, 0 del conss, 2 add conss, 5 chg bounds, 0 chg sides, 0 chg coeffs, 0 upgd conss, 0 impls, 0 clqs
(round 3, fast)       0 del vars, 0 del conss, 2 add conss, 5 chg bounds, 0 chg sides, 0 chg coeffs, 4 upgd conss, 0 impls, 0 clqs
(round 4, fast)       1 del vars, 1 del conss, 2 add conss, 9 chg bounds, 0 chg sides, 0 chg coeffs, 4 upgd conss, 0 impls, 0 clqs
presolving (5 rounds: 5 fast, 1 medium, 1 exhaustive):
 1 deleted vars, 1 deleted constraints, 2 added constraints, 9 tightened bounds, 0 added holes, 0 changed sides, 0 changed coefficients
 0 implications, 0 cliques
presolved problem has 6 variables (0 bin, 0 int, 0 impl, 6 cont) and 4 constraints
      1 constraints of type <abspower>
      3 constraints of type <quadratic>
Presolving Time: 0.00

 time | node  | left  |LP iter|LP it/n| mem |mdpt |frac |vars |cons |cols |rows |cuts |confs|strbr|  dualbound   | primalbound  |  gap   
* 0.0s|     1 |     0 |     9 |     - | 587k|   0 |   - |   6 |   4 |   6 |  13 |   0 |   0 |   0 | 2.000000e+00 | 2.000000e+00 |   0.00%
  0.0s|     1 |     0 |     9 |     - | 587k|   0 |   - |   6 |   4 |   6 |  13 |   0 |   0 |   0 | 2.000000e+00 | 2.000000e+00 |   0.00%

SCIP Status        : problem is solved [optimal solution found]
Solving Time (sec) : 0.01
Solving Nodes      : 1
Primal Bound       : +1.99999999998750e+00 (1 solutions)
Dual Bound         : +1.99999999998750e+00
Gap                : 0.00 %

optimal solution found

However this output does not contain iterations data. An example of iteration data using IPOPT solver is shown below.

iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
   0 2.5371030e+001 1.20e+002 1.11e+001  -1.0 0.00e+000    -  0.00e+000 0.00e+000   0
   1 2.5059090e+001 1.09e+002 1.36e+001  -1.0 1.38e+002    -  9.86e-001 9.10e-002h  1
   2 2.5312561e+001 9.68e-003 4.92e-001  -1.0 1.11e+002    -  1.00e+000 1.00e+000h  1
   3 2.5056729e+001 1.15e-002 4.98e-002  -1.7 2.90e+000    -  1.00e+000 1.00e+000f  1
   4 2.5006568e+001 5.10e-004 2.25e-003  -2.5 7.21e-001    -  1.00e+000 1.00e+000h  1

The output displayed above is only a part of the solution file.

Is there any way that I can get this kind of data with SCIP solver? Please let me know if someone has an idea. Thanks.

  • 1
    could you clarify what information you are after, exactly? I feel like you want to have some information at each (LP?)-iteration? What iteration exactly? You are solving a pure NLP with no integer variables, correct? – Leon Jun 30 '21 at 15:07
  • @Leon Thank you for the comment. Iteration data in the sense the objective function evaluation value at each iterations. I want to plot a convergence curve (Obj fun value Vs iteration no.) to visualize the path followed by the solver. I used an IPOPT solver to solve an NLP problem, and I was able to get this information. But currently I am solving an MINLP problem using SCIP. – Wilson Mendes Jun 30 '21 at 21:49
  • So you want the information at every node of the branch and bound tree? Then you can simply change the setting `display/freq` to 1. If you want the objective value at every LP iteration, it is not clear to me how much sense that makes, since the dual simplex ist not feasible at every iteration. – Leon Jul 01 '21 at 08:01
  • @Leon Yes, the iteration number and the corresponding objective function value as shown in the last part of the post. NLP solvers gives this info. But not sure how it exactly works in MINLP. – Wilson Mendes Jul 01 '21 at 12:19
  • I refer you to this already answered question: https://stackoverflow.com/questions/60603894/how-to-increase-the-verbosity-level-of-scip-solver-log – EJay Jul 12 '21 at 21:21

0 Answers0