Subroutine Type |
Utility/Data Access |
|||||||
Definition |
SLSQP optimizer is a sequential least squares programming algorithm for nonlinear, constrained gradient-based optimization. It supports both inequality and equality constraints. Note: FMIN_SLQP is only available as a Python function. This function is also documented in Scipy at scipy.optimize.fmin_slsqp. |
|||||||
Use |
The utility can be called by any user-defined subroutine written in Python. |
|||||||
Calling Syntax |
Python fmin_slsqp(func, x0, eqcons=[], f_eqcons=None, ieqcons=[], f_ieqcons=None, bounds=[], fprime=None, fprime_eqcons=None, fprime_ieqcons=None, args=(), iter=100, acc=1e-06, iprint=1, disp=None, full_output=0, epsilon=1.4901161193847656e-08) |
|||||||
Input Arguments |
func |
A function that can be called by Python that evaluates the objective function that is to be minimized. Type: Callable function of the form f(x, *args) |
||||||
X0 |
The initial guess for the independent variables. Type: A 1-D array of floats. Denote N = len(x0) |
|||||||
eqcons |
A list of functions of length N that specify all the equality constraints that FMIN_SLSQP must maintain. In a successfully optimized problem, FMIN_SLSQP will ensure that eqcons[i](x,*args) == 0, i=1…M, where M=len(eqcons) Type: List |
|||||||
f_eqcons |
f_eqcons is a function that can be called by Python. This function returns a 1-D array of floats that must equal 0.0 in a successfully optimized problem. F_eqcons has the form: f(x, *args) If eqcons is specpfied, f_eqcons is ignored. Type: Callable function of the form f(x, *args) |
|||||||
ieqcons |
A list of functions of length N that specify all the inequality constraints that FMIN_SLSQP must satisfy. In a successfully optimized problem, FMIN_SLSQP will ensure that ieqcons[i](x,*args) >= 0, i=1…M’, where M’=len(ieqcons) Type: List |
|||||||
f_ieqcons |
f_ieqcons is a function that can be called by Python. This function returns a 1-D array of floats that must be greater than or equal 0.0 in a successfully optimized problem. F_eqcons has the form: f(x, *args) If ieqcons is specified, f_ieqcons is ignored. Type: Callable function of the form f(x, *args) |
|||||||
bounds |
A list of types specifying the lower and upper bound for each independent variable. It has the form: Type: Callable function of the form f(x, *args) |
|||||||
fprime |
A function that evaluates the partial derivatives of func with respect to the independent variables. Type: Callable function of the form f(x, *args) that returns a 1-D array of length N. |
|||||||
fprime_eqcons |
A function that can be called by Python. This function returns the Jacobian matrix of the equality constraints in an M x N array of floats. If fprime_eqcons is not provided, the Jacobian matrix is obtained through finite differencing. Finite differencing can be expensive and is known to be sometimes inaccurate. Type: Callable function of the form f(x, *args) that returns an M x N array. |
|||||||
fprime_ieqcons |
A function that can be called by Python. This function returns the Jacobian matrix of the equality constraints in an M’ x N array of floats. If fprime_ieqcons is not provided, the Jacobian matrix is obtained through finite differencing. Finite differencing can be expensive and is known to be sometimes inaccurate. Type: Callable function of the form f(x, *args) that returns an M’ x N array. |
|||||||
args |
These are the additional arguments that are passed to func, fprime, fprime_eqcons and fprime_ieqcons Type: Sequence |
|||||||
iter |
This specifies the maximum number of iterations available to FMIN_SLSQP to obtain a minimum. Type: Integer |
|||||||
acc |
This is the accuracy to which a solution is desired. Type: Float |
|||||||
iprint |
This defines the verbosity of the diagnostics generated by FMIN_SLSQP.
Type = integer |
|||||||
disp |
This defines the verbosity of the diagnostics generated by FMIN_SLSQP. When specified, disp overrides the iprint interface. Type = integer |
|||||||
full_output |
If false, it returns only the minimizer of func (default). Otherwise, it returns the output final objective function and summary information. Type = bool |
|||||||
epsilon |
The step size for finite-difference derivative estimates. Type = float |
|||||||
Output Values |
out |
The final minimizer of func. Type: 1-D float array |
||||||
fx |
If full_output is true, fx will contain the final value of the objective function. Type: 1-D float array |
|||||||
its |
If full_output is true, this will contain the number of iterations taken. Type = int |
|||||||
imode |
If full_output is true, this will contain the exit mode from the optimizer. The values of imode have the following significance: -1: Gradient evaluation required 0: Optimization terminated successfully. 1: Function evaluation required 2: More equality constraints than independent variables 3: More than 3*n iterations in LSQ subproblem 4: Inequality constraints incompatible 5: Singular matrix E in LSQ subproblem 6: Singular matrix C in LSQ subproblem 7: Rank-deficient equality constraint subproblem HFTI 8: Positive directional derivative for linesearch 9: Iteration limit exceeded Type = int |
|||||||
smode |
If full_output is true, this will contain a message describing the exit mode from the optimizer. Type = string |
|||||||
Comments |
FMIN_SLSQP is the interface function for the SLSQP optimization function originally implemented by Dieter Kraft. SLSQP is a Sequential, Least SQuares Programming algorithm. Optimization can be done in MotionSolve through the use of a CONSUB user subroutine together with FMIN_SLSQP. This can be used for model identification or mechanism optimization. The CONSUB may be written in Fortran/C/C++ or Python/MATLAB scripts. |
See Also: