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:

  1. copyright information

  2. date and time of run

  3. name of problem as defined by the user

  4. parameter settings of DONLP2 for this run, as left by SETUP.

  5. starting value of primal variable

  6. termination reason (text)

  7. 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.

  8. ||Ñ f||

  9. error in Lagrangian condition, i.e. || ÑxL||. Compare with ||Ñ f|| in order to assess accuracy. In an unconstrained case || Ñf|| = ||ÑxL|| of course.

  10. primal and dual feasibility errors. For primal the unscaled l1-penalty term and for dual the most negative multiplier, if any.

  11. DONLP2's cpu-time.

  12. optimal value of primal objective (f(x* )).

  13. optimal primal value x* .

  14. 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).

  15. statistics concerning the evaluation of constraints

  16. condition number estimates for matrix of binding gradients and for quasi-Newton update for Hessian of the augmented Lagrangian.

  17. 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:

  1. step number

  2. FX = value of primal objective

  3. UPSI = value of the unscaled l1-penalty

  4. 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||.

  5. UMI = smallest negative multiplier or zero

  6. NR = number of binding constraints

  7. 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:

  1. iteration step number

  2. SCF = scaling factor of primal objective

  3. PSIST = scaled penalty term at x initial

  4. PSI = scaled penalty term (current)

  5. UPSI = unscaled l1-penalty term

  6. FXST = f at x initial (end of feasibility improvement phase)

  7. FX = f current

  8. X = current value of optimization variables (in the internal scaling).

  9. permutation of variables applied to make qr-decomposition of matrix of gradients of binding constraints continuous (see Coleman and Sorensen, Math.Prog 29)

  10. DEL }

  11. B2N } see below, description of common-blocks

  12. B2N }

  13. GFN = ||Ñf(x)||.

  14. list of values of binding constraints and gradient norms (Euclidean norm)

  15. DIAG(R)= diagonal of r-part of qr-decompostion of matrix of binding gradients

  16. U = list of multipliers

  17. eventually message concerning singularity of the problem and the final result from qp

  18. eventually a list of constraints considered for inactivation and multipliers obtained thereafter

  19. condition number estimator for matrix of binding constraints and the Hessian of the augmented Lagrangian used in the Pantoja and Mayne update

  20. D = direction of descent for penalty function

  21. 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

  22. START UNIMIN: entry to unidimensional search (stepsize selection)

  23. PHI = penalty function

  24. DPHI = its directional derivative along D

  25. BOUND UPSI = TAU0/2

  26. PSI weighted penlty term

  27. UPSI unweighted penalty term

  28. 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.

  29. FX  f(x)

  30. SCF current scaling of f in the penalty function.

  31. SIG = stepsize tried (s)

  32. final accepted stepsize

  33. list of constraints not binding at X but hit during search

  34. kind of matrix updates applied

  35. 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!