#include <newton_search.h>
Public Member Functions | |
Line_Search () | |
Default constructor. | |
~Line_Search () | |
Destructor. | |
void | set_function (double(*function)(const vec &)) |
Set function pointer. | |
void | set_gradient (vec(*gradient)(const vec &)) |
Set gradient function pointer. | |
void | set_functions (double(*function)(const vec &), vec(*gradient)(const vec &)) |
Set both function and gradient function pointers. | |
void | set_start_point (const vec &x, double F, const vec &g, const vec &h) |
Set start point for search. | |
void | get_solution (vec &xn, double &Fn, vec &gn) |
Get solution, function value and gradient at solution point. | |
bool | search () |
Do the line search. | |
bool | search (vec &xn, double &Fn, vec &gn) |
Do the line search and return solution. | |
bool | search (const vec &x, double F, const vec &g, const vec &h, vec &xn, double &Fn, vec &gn) |
Set starting point, do the line search, and return the solution. | |
double | get_alpha () |
return alpha at solution point, xn = x + alpha h | |
double | get_slope_ratio () |
return the slope ratio at solution poin, xn | |
int | get_no_function_evaluations () |
return number of function evaluations used in search | |
void | set_stop_values (double rho, double beta) |
Set stop criterion values. | |
double | get_rho () |
Return stop value rho. | |
double | get_beta () |
Return stop value beta. | |
void | set_max_iterations (int value) |
Set max number of iterations. | |
int | get_max_iterations () |
Return max number of iterations. | |
void | set_max_stepsize (double value) |
Set max stepsize. | |
double | get_max_stepsize () |
Return max number of iterations. | |
void | set_method (const Line_Search_Method &method) |
Set Line search method. | |
void | enable_trace () |
enable trace mode | |
void | disable_trace () |
disable trace | |
void | get_trace (vec &alphavalues, vec &Fvalues, vec &dFvalues) |
The line search try to minimize the objective function along the direction from the current position .
Hence we look at
and try to find an that minimizes .
Two variants are used. Either the soft line search (default) or the exact line search.
The soft line search stops when a point in the acceptable region is found, i.e.
and
Default vales are and .
The exact line search
and
where is the current interval for . Default vales are and .
The exact line search can at least in theory give the exact resutl, but it may require many extra function evaluations compared to soft line search.
void itpp::Line_Search::get_trace | ( | vec & | alphavalues, | |
vec & | Fvalues, | |||
vec & | dFvalues | |||
) |
get trace outputs alphavalues
are the solutions of every iteration Fvalues
are the function values dFvalues
References it_warning.