itpp::Line_Search Class Reference

Line Search. More...

`#include <itpp/optim/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)

## Detailed Description

Line Search.

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.

Definition at line 223 of file newton_search.h.

## Constructor & Destructor Documentation

## Line_Search()

itpp::Line_Search::Line_Search | ( |  | ) |

Default constructor.

Definition at line 329 of file newton_search.cpp.

## ~Line_Search()

itpp::Line_Search::~Line_Search | ( |  | ) |

inline

Destructor.

Definition at line 229 of file newton_search.h.

## Member Function Documentation

## set_function()

void itpp::Line_Search::set_function | ( | double(*)(const vec &) | function | ) |

Set function pointer.

Definition at line 349 of file newton_search.cpp.

## set_gradient()

void itpp::Line_Search::set_gradient | ( | vec(*)(const vec &) | gradient | ) |

Set gradient function pointer.

Definition at line 355 of file newton_search.cpp.

## set_functions()

void itpp::Line_Search::set_functions | ( | double(*)(const vec &) | function,
|  | vec(*)(const vec &) | gradient
| ) |  |

inline

Set both function and gradient function pointers.

Definition at line 236 of file newton_search.h.

## set_start_point()

void itpp::Line_Search::set_start_point | ( | const vec & | x,
|  | double | F,
|  | const vec & | g,
|  | const vec & | h
| ) |  |

Set start point for search.

Definition at line 370 of file newton_search.cpp.

References itpp::Array< T >::size().

Referenced by search().

## get_solution()

void itpp::Line_Search::get_solution | ( | vec & | xn,
|  | double & | Fn,
|  | vec & | gn
| ) |  |

Get solution, function value and gradient at solution point.

Definition at line 383 of file newton_search.cpp.

References it_assert.

Referenced by search(), and search().

## search() [1/3]

bool itpp::Line_Search::search | ( |  | ) |

Do the line search.

Definition at line 392 of file newton_search.cpp.

References itpp::dot(), itpp::eps, it_assert, itpp::norm(), and itpp::sqr().

Referenced by search(), and search().

## search() [2/3]

bool itpp::Line_Search::search | ( | vec & | xn,
|  | double & | Fn,
|  | vec & | gn
| ) |  |

Do the line search and return solution.

Definition at line 599 of file newton_search.cpp.

References get_solution(), and search().

## search() [3/3]

bool itpp::Line_Search::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.

Definition at line 606 of file newton_search.cpp.

References get_solution(), search(), and set_start_point().

## get_alpha()

double itpp::Line_Search::get_alpha | ( |  | ) |

return alpha at solution point, xn = x + alpha h

Definition at line 616 of file newton_search.cpp.

References it_warning.

## get_slope_ratio()

double itpp::Line_Search::get_slope_ratio | ( |  | ) |

return the slope ratio at solution poin, xn

Definition at line 626 of file newton_search.cpp.

References it_warning.

## get_no_function_evaluations()

int itpp::Line_Search::get_no_function_evaluations | ( |  | ) |

return number of function evaluations used in search

Definition at line 636 of file newton_search.cpp.

References it_warning.

## set_stop_values()

void itpp::Line_Search::set_stop_values | ( | double | rho,
|  | double | beta
| ) |  |

Set stop criterion values.

Definition at line 362 of file newton_search.cpp.

## get_rho()

double itpp::Line_Search::get_rho | ( |  | ) |

inline

Return stop value rho.

Definition at line 264 of file newton_search.h.

## get_beta()

double itpp::Line_Search::get_beta | ( |  | ) |

inline

Return stop value beta.

Definition at line 266 of file newton_search.h.

## set_max_iterations()

void itpp::Line_Search::set_max_iterations | ( | int | value | ) |

Set max number of iterations.

Definition at line 647 of file newton_search.cpp.

References it_assert.

## get_max_iterations()

int itpp::Line_Search::get_max_iterations | ( |  | ) |

inline

Return max number of iterations.

Definition at line 271 of file newton_search.h.

## set_max_stepsize()

void itpp::Line_Search::set_max_stepsize | ( | double | value | ) |

Set max stepsize.

Definition at line 653 of file newton_search.cpp.

References it_assert.

## get_max_stepsize()

double itpp::Line_Search::get_max_stepsize | ( |  | ) |

inline

Return max number of iterations.

Definition at line 276 of file newton_search.h.

## set_method()

void itpp::Line_Search::set_method | ( | const Line_Search_Method & | method | ) |

Set Line search method.

Definition at line 659 of file newton_search.cpp.

## enable_trace()

void itpp::Line_Search::enable_trace | ( |  | ) |

inline

enable trace mode

Definition at line 282 of file newton_search.h.

References itpp::trace().

## disable_trace()

void itpp::Line_Search::disable_trace | ( |  | ) |

inline

disable trace

Definition at line 284 of file newton_search.h.

References itpp::trace().

## get_trace()

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`

Definition at line 675 of file newton_search.cpp.

References it_warning.

The documentation for this class was generated from the following files:

- itpp/optim/newton_search.h
- itpp/optim/newton_search.cpp

Generated on Mon Apr 22 2024 09:45:27 for IT++ by Doxygen 1.9.8