apply fsqp function to a SIF problem
[xopt,inform,fopt,gopt,lambda]=siffsqp(siffile [,pars])
path of the SIF problem file
A vector of size 5.
the fsqp
tunning parameters:
pars=[modefsqp,miter,iprint,eps,epsneq]
where:
mode = CBA with the following options:
A = 0 : (P) is to be solved.
A = 1 : (PLinf) is to be solved.
B = 0 : Algorithm FSQP-AL is selected, resulting in a decrease of the (modified) objective function at each iteration.
B = 1 : Algorithm FSQP-NL is selected, resulting in a decrease of the (modified) objective function within at most four iterations.
C = 1 : For t < tk (see the end of algorithm statement) during the line search, the function that caused the previous value of t to be rejected is checked first and then all functions of the same type ("objective" or "constraint") as the latter will be checked. (Recommended for most users.)
C = 2 : Constraints will be always checked first at each trial point during the line search. If it is a constraint that caused the previous value of t to be rejected, that constraint will be checked first. (Useful when objective functions are not defined or are difficult to evaluate outside of the feasible region; not however that if gradients are evaluated by finite differences, in rare instances, objectives functions may be evaluated at infeasible "perturbed" points).
Maximum number of iterations allowed by the user before termination of execution.
Parameter indicating the desired output:
iprint = 0 : No information is displayed. This value is imposed during phase 1.
iprint = 1 : Objective and constraint values at the initial feasible point are displayed. At the end of execution, status (inform), iterate, objective values, constraint values, number of evaluations of objectives and nonlinear constraints, norm of the Kuhn- Tucker vector, sum of feasibility violation, and if appropriate, the total number of individual constraints/ objectives used from the sets of sequentially related constraints/objectives used during the final iteration are displayed.
iprint = 2 : At the end of each iteration, the same information as with iprint = 1 is displayed.
iprint = 3 : At each iteration, the same information as with iprint = 2, including detailed information on the search direction computation, on the line search, and on the update, is displayed.
iprint = 10*N +M: N any positive integer, M=2 or 3. Information corresponding to iprint=M is displayed at every (10 x N)th iteration and at the last iteration.
Final norm requirement for the Newton direction in
the algorithm description). It must be bigger than the
machine precision %eps
. (If the user
does not have a good feeling of what value should be
chosen, a very small number could be provided and
iprint
set to so that the user could
keep track of the process of optimization.)
Maximum violation of nonlinear equality
constraints allowed by the user at an optimal point. It
must be bigger than the machine precision %eps
.
The default values are:
modefsqp=110;
maxit=2000;
iprint=0;
eps=1.e-10;
epsneq=1e-8;
scalar, criterion at the found optimum
vector, Gradient at the found optimum
vector, optimum location
Information on the execution.
normal termination
no feasible point found for linear constraints
no feasible point found for nonlinear constraints
no solution has been found in miter iterations
stepsize smaller than machine precision before a successful new iterate is found
failure in attempting to construct d0
failure in attempting to construct d1
inconsistent input data
new iterate essentially identical to previous iterate, though stopping criterion not satisfied.
penalty parameter too large, unable to satisfy nonlinear equality constraint
Values of the Lagrange multipliers at
xopt
. They are stored in the same order
as specifieded in the problem formulation, with those
corresponding to simple bounds first (only nparam simple
bounds could be active, thus only nparam multipliers are
returned), next are the constraint multipliers, and finally
the objective multipliers.
The siffsqp function decodes, compile, link the given problem and then call the Scilab function fsqp in order to solve the given problem.