SNOPT Singular Basis

358 views
Skip to first unread message

bonn...@gmail.com

unread,
Dec 9, 2014, 2:56:55 PM12/9/14
to am...@googlegroups.com
Dear all,

I am using AMPL together with SNOPT in order to compute a nonlinear sparse optimization problem. I am pretty satisfied with results overall except that sometimes SNOPT ends with a "Singular Basis" issue. The corresponding report of such a case follows thereafter:

XXX Singular basis after    40 factorization attempts
 
 SNOPTB EXIT  40 -- terminated after numerical difficulties
 SNOPTB INFO  42 -- singular basis
 
 Problem name                 at5736
 No. of iterations              250846    Objective value      1.5825679272E+01
 No. of major iterations          1107   Linear objective     0.0000000000E+00
 Penalty parameter           0.000E+00   Nonlinear objective  1.5825679272E+01
 No. of calls to funobj           5560   No. of calls to funcon           5560
 No. of superbasics                 28   No. of basic nonlinears           121
 No. of degenerate steps          4073   Percentage                       1.62
 Max x       (scaled)      571 4.3E+03   Max pi      (scaled)      195 3.0E+02
 Max x                     571 4.3E+03   Max pi                    195 3.0E+02
 Max Prim inf(scaled)        0 0.0E+00   Max Dual inf(scaled)     1045 3.1E+01
 Max Primal infeas           0 0.0E+00   Max Dual infeas          1045 3.1E+01
 Nonlinear constraint violn    4.0E-05
 
 Solution not printed
 
 Time for MPS input                              .00 seconds
 Time for solving problem                     162.85 seconds
 Time for solution output                        .00 seconds
 Time for constraint functions                 33.47 seconds
 Time for objective function                     .03 seconds
 SNOPT times:
 read:       0.03
 solve:    156.89
 write:      0.00
 total:    156.92
SNOPT 7.2-8 : Singular basis.
250846 iterations, objective 15.82567927
Nonlin evals: obj = 5560, grad = 5559, constrs = 5560, Jac = 5559.
 
Presolve eliminates 571 constraints and 3 variables.
Substitution eliminates 4181 variables.
Adjusted problem:
808 variables:
    571 nonlinear variables
    237 linear variables
1126 constraints; 11922 nonzeros
    1118 nonlinear constraints
    8 linear constraints
    568 equality constraints
    558 inequality constraints
1 nonlinear objective; 3 nonzeros.

My problem is rather large and I make an extensive use of substitution variables in order to structure the mod file step by step.

Do you see any shocking/unexpected values ?
Is that issue linked with the solver or with the formulation of the problem?
Do you have any suggestions to improve this?


For the same mod file, this problem can happen for some parameter values and not for others.

Best Regards
Vincent

Robert Fourer

unread,
Dec 20, 2014, 10:11:13 AM12/20/14
to am...@googlegroups.com
This appears to be an issue with SNOPT rather than with AMPL. It is not unusual that a solver will encounter errors with some runs but not others, due to differences in the data and/or settings. In your situation the bases may be very near to singular, so that the singular basis error occurs only in some cases. To contact the developers of SNOPT directly for more help, see http://ccom.ucsd.edu/~optimizers/.

Also you might want to experiment with other solvers. While all nonlinear solvers use AMPL's routines to compute derivatives, they implement quite different methods for iterating to an optimum. Each has its strengths for different kinds of problems, but as it is hard to predict which solver will be best for any particular problem class, some experimentation is advisable.

Bob Fourer
am...@googlegroups.com

=======

Michael Saunders

unread,
Dec 20, 2014, 1:42:17 PM12/20/14
to am...@googlegroups.com
Dear Vincent,

The snopt exit message doesn't give much clue about why the singular basis difficulty
arose.  But 250,000 iterations is rather many for a moderate-sized problem.  Could you
look into initializing your variables carefully?

It's often helpful to restart a solve by saying solve again.
For the second solve you could turn on some output options
such as
    Print file 50
    Major print level 10
and send us the resulting file (probably named fort.50).

Best wishes
Michael
    
and

--
You received this message because you are subscribed to the Google Groups "AMPL Modeling Language" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ampl+uns...@googlegroups.com.
To post to this group, send email to am...@googlegroups.com.
Visit this group at http://groups.google.com/group/ampl.
For more options, visit https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages