4 OUTPUT / RESULTS
DONLP2 computes the names of the two files for output using the first 8 characters from NAME . If NAME is shorter
than 8 characters XXX.. is appended to NAME . These files are used for the following: The NAME(1:8).PRO file contains
the results of the optimization run . Of course these results are also contained in the named common blocks described
below. In case of a failure a short protocol of the complete run is appended, which may be evaluated by a knowledgeable
person in order to locate the problem.
!!!! FORTRAN files PROU and MEU are used for output and must not be used otherwise by the user
Output can be of
various stages of volume: Normally the final results are written to the PRO- and the "special events" to the MES-file.
That means TE0=TE1=TE2=TE3=.FALSE., as given in the head of DONLP2. Then the XXXXXXXX.PRO -file holds the following:
- copyright information
- date and time of run
- name of problem as defined by the user
- parameter settings of DONLP2 for this run, as left by SETUP.
- starting value of primal variable
- termination reason (text)
- final scaling parameter of primal objective (output of other data is relative to scaling=1 ) If this is
zero, then DONLP2 failed in the infeasibility improvement phase, where it tries to reduce infeasibility below TAU0.
In that case a larger TAU0 may be tried, or otherwise a different initial guess.
- ||Ñ f||
- error in Lagrangian condition, i.e. || ÑxL||. Compare with ||Ñ f|| in order to assess accuracy. In an
unconstrained case || Ñf|| = ||ÑxL|| of course.
- primal and dual feasibility errors. For primal the unscaled l1-penalty term and for dual the most
negative multiplier, if any.
- DONLP2's cpu-time.
- optimal value of primal objective (f(x* )).
- optimal primal value x* .
- list of constraint values, max(1,gradient norms) (if evaluated at all) and multipliers. ( The norm of
a gradient of a constraint which never has been evaluated is set to one. Therefore the norms of the gradients of the active constraints are meaningful only).
- statistics concerning the evaluation of constraints
- condition number estimates for matrix of binding gradients and for quasi-Newton update for Hessian
of the augmented Lagrangian.
- run statistics.
For termination reason (variable OPTITE) see below, description of common-blocks.
If INTAKT is set to .TRUE. in SETUP, any output which appears in the PRO-file is written to std-out too.
if TE0 is set true, then a one-line-information is written to std-out for every step of iteration, giving sufficient
information on the progress of solution. This is the following:
- step number
- FX = value of primal objective
- UPSI = value of the unscaled l1-penalty
- B2N = value of l2-norm of error in Lagrange condition (projected gradient for sytem transformed by the
Cholesky-factor RT of A), i.e.
||(RT)-1ÑxL||.
- UMI = smallest negative multiplier or zero
- NR = number of binding constraints
- SI -1 = constraints satisfy the regularity condition, 1 = constraints do not satisfy it. In that case
a full regularized qp-problem is solved.
If TE1 is set true, the short protocol accumulated in the array ACCINF is printed at termination. TE1 is set to true automatically in case of unsuccessful termination. The ACCINF-array is a 32-column array, each line of which holds information on an iteration in condensed form, see below .
If TE2 is set true, intermediate results X,D, active constraint values and so on are written to the PRO-file. These are:
- iteration step number
- SCF = scaling factor of primal objective
- PSIST = scaled penalty term at x initial
- PSI = scaled penalty term (current)
- UPSI = unscaled l1-penalty term
- FXST = f at x initial (end of feasibility improvement phase)
- FX = f current
- X = current value of optimization variables (in the internal scaling).
- permutation of variables applied to make qr-decomposition of matrix of gradients of binding constraints
continuous (see Coleman and Sorensen, Math.Prog 29)
- DEL }
- B2N } see below, description of common-blocks
- B2N }
- GFN = ||Ñf(x)||.
- list of values of binding constraints and gradient norms (Euclidean norm)
- DIAG(R)= diagonal of r-part of qr-decompostion of matrix of binding gradients
- U = list of multipliers
- eventually message concerning singularity of the problem and the final result from qp
- eventually a list of constraints considered for inactivation and multipliers obtained thereafter
- condition number estimator for matrix of binding constraints and the Hessian of the augmented
Lagrangian used in the Pantoja and Mayne update
- D = direction of descent for penalty function
- information on new scaling:
(a) SCF scaling for f,
(b) CLOW : number of penalty decreases
(c) ETA: penalty decrease takes place only , if for the new tentative weights
(SCF*(FXST-FX)+PSIST-PSI) ³ CLOW*ETA.
ETA is adapted during the run.
(d) SCALRES: the penalty weights
- START UNIMIN: entry to unidimensional search (stepsize selection)
- PHI = penalty function
- DPHI = its directional derivative along D
- BOUND UPSI = TAU0/2
- PSI weighted penlty term
- UPSI unweighted penalty term
- DSCAL scaling of D. If stepsize 1 would change the current X too strong, as expressed by
||d|| > b(||x|| + 1)
with the internal parameter BETA (=4 by default), then D is shortened accordingly.
- FX f(x)
- SCF current scaling of f in the penalty function.
- SIG = stepsize tried (s)
- final accepted stepsize
- list of constraints not binding at X but hit during search
- kind of matrix updates applied
- the parameters used in the update
If TE3 is true, the values of the gradients and the approximated Hessians are printed too, provided
n £ 50
and NRES=NH+NG £ 100. The *.MES-file is of value if the optimizer ends irregularly. It contains a message
for every action which is "abnormal" in the sense of good progress for a regular and well conditioned problem.
In most cases special advice is necessary to evaluate it. However, if the user observes many restarts reported
in the *.MES file or similarly many calls to the full sqp-method, she(he) should check the problem against bad
scaling and redundant constraints!