SciPy 0.6.0 API Documentation Generated by Endo, 2007-10-17
TNC: A python interface to the TNC non-linear optimizer
TNC is a non-linear optimizer. To use it, you must provide a function to minimize. The function must take one argument: the list of coordinates where to evaluate the function; and it must return either a tuple, whose first element is the value of the function, and whose second argument is the gradient of the function (as a list of values); or None, to abort the minimization.
CONSTANT = 5
FCONVERGED = 1
INFEASIBLE = -Const(1)
LOCALMINIMUM = 0
LSFAIL = 4
MAXFUN = 3
MSGS = { Name('MSG_NONE') : Const('No messages'), Name('MSG_ITER') : Const('One line per iteration'), Name('MSG_INFO') : Const('Informational messages'), Name('MSG_VERS') : Const('Version info'), Name('MSG_EXIT') : Const('Exit reasons'), Name('MSG_ALL') : Const('All messages') }
MSG_ALL = (((MSG_ITER + MSG_INFO) + MSG_VERS) + MSG_EXIT)
MSG_EXIT = 8
MSG_INFO = 2
MSG_ITER = 1
MSG_NONE = 0
MSG_VERS = 4
NOPROGRESS = 6
RCSTRINGS = { Name('INFEASIBLE') : Const('Infeasible (low > up)'), Name('LOCALMINIMUM') : Const('Local minima reach (|pg| ~= 0)'), Name('FCONVERGED') : Const('Converged (|f_n-f_(n-1)| ~= 0)'), Name('XCONVERGED') : Const('Converged (|x_n-x_(n-1)| ~= 0)'), Name('MAXFUN') : Const('Max. number of function evaluations reach'), Name('LSFAIL') : Const('Linear search failed'), Name('CONSTANT') : Const('All lower bounds are equal to the upper bounds'), Name('NOPROGRESS') : Const('Unable to progress'), Name('USERABORT') : Const('User requested end of minimization') }
USERABORT = 7
XCONVERGED = 2
approx_fprime = optimize.approx_fprime
Minimize a function with variables subject to bounds, using
gradient information.
:Parameters:
func : callable func(x, *args)
Function to minimize. Should return f and g, where f is
the value of the function and g its gradient (a list of
floats). If the function returns None, the minimization
is aborted.
x0 : list of floats
Initial estimate of minimum.
fprime : callable fprime(x, *args)
Gradient of func. If None, then func must return the
function value and the gradient (f,g = func(x, *args)).
args : tuple
Arguments to pass to function.
approx_grad : bool
If true, approximate the gradient numerically.
bounds : list
(min, max) pairs for each element in x, defining the
bounds on that parameter. Use None or +/-inf for one of
min or max when there is no bound in that direction.
scale : list of floats
Scaling factors to apply to each variable. If None, the
factors are up-low for interval bounded variables and
1+|x] fo the others. Defaults to None
offset : float
Value to substract from each variable. If None, the
offsets are (up+low)/2 for interval bounded variables
and x for the others.
messages :
Bit mask used to select messages display during
minimization values defined in the MSGS dict. Defaults to
MGS_ALL.
maxCGit : int
Maximum number of hessian*vector evaluations per main
iteration. If maxCGit == 0, the direction chosen is
-gradient if maxCGit < 0, maxCGit is set to
max(1,min(50,n/2)). Defaults to -1.
maxfun : int
Maximum number of function evaluation. if None, maxfun is
set to max(100, 10*len(x0)). Defaults to None.
eta : float
Severity of the line search. if < 0 or > 1, set to 0.25.
Defaults to -1.
stepmx : float
Maximum step for the line search. May be increased during
call. If too small, it will be set to 10.0. Defaults to 0.
accuracy : float
Relative precision for finite difference calculations. If
<= machine_precision, set to sqrt(machine_precision).
Defaults to 0.
fmin : float
Minimum function value estimate. Defaults to 0.
ftol : float
Precision goal for the value of f in the stoping criterion.
If ftol < 0.0, ftol is set to 0.0 defaults to -1.
xtol : float
Precision goal for the value of x in the stopping
criterion (after applying x scaling factors). If xtol <
0.0, xtol is set to sqrt(machine_precision). Defaults to
-1.
pgtol : float
Precision goal for the value of the projected gradient in
the stopping criterion (after applying x scaling factors).
If pgtol < 0.0, pgtol is set to 1e-2 * sqrt(accuracy).
Setting it to 0.0 is not recommended. Defaults to -1.
rescale : float
Scaling factor (in log10) used to trigger f value
rescaling. If 0, rescale at each iteration. If a large
value, never rescale. If < 0, rescale is set to 1.3.
:Returns:
x : list of floats
The solution.
nfeval : int
The number of function evaluations.
rc :
Return code as defined in the RCSTRINGS dict.
:SeeAlso:
- scikits.openopt, which offers a unified syntax to call this and other solvers
- fmin, fmin_powell, fmin_cg, fmin_bfgs, fmin_ncg :
multivariate local optimizers
- leastsq : nonlinear least squares minimizer
- fmin_l_bfgs_b, fmin_tnc, fmin_cobyla : constrained
multivariate optimizers
- anneal, brute : global optimizers
- fminbound, brent, golden, bracket : local scalar minimizers
- fsolve : n-dimenstional root-finding
- brentq, brenth, ridder, bisect, newton : one-dimensional root-finding
- fixed_point : scalar fixed-point finder
| Local name | Refers to |
|---|---|
| array | numpy.array |
| asarray | numpy.asarray |
| inf | numpy.inf |
| moduleTNC | scipy.optimize.moduleTNC |
| optimize | SciPy.optimize.optimize |