#include <APPSPACK_Solver.hpp>
Collaboration diagram for APPSPACK::Solver:
Definition at line 54 of file APPSPACK_Solver.hpp.
Public Types | |
enum | State { Continue, StepConverged, FunctionConverged, EvaluationsExhausted } |
State of the solver. More... | |
Public Member Functions | |
Solver (const Parameter::List ¶ms_in, Executor::Interface &executor_in, const Constraints::Interface &constraints_in) | |
Constructor. | |
~Solver () | |
Destructor. | |
Accessors (for after solve() is called) | |
const Vector & | getBestX () const |
Return the x-vector corresponding to the best point. | |
bool | isBestF () const |
Retun true is there is a finite function value associated with the best point. | |
double | getBestF () const |
Return the finite function value (if any) associated with the best point. | |
Manipulators | |
APPSPACK::Solver::State | solve () |
Find the minimum of the function that was set up in the constructor. | |
APPSPACK::Solver::State | iterate () |
Do a single APPS iteration. | |
Static Public Member Functions | |
Point * | initializeBestPointPtr (Parameter::List ¶ms, const Constraints::Interface &constraints) |
Called by the Solver constructor to parse the parameter list and create the initial best point. | |
Private Member Functions | |
void | processNewBestPoint (Point *newBestPointPtr=NULL) |
void | generateTrialPoints () |
void | createTrialPoint (int idx) |
void | processEvaluatedTrialPoints () |
Print Functions | |
void | printInitializationInformation () const |
void | printBestPoint (const string label="") const |
Private Attributes | |
const Constraints::Interface & | constraints |
Constraints. | |
Parameter::List | params |
Parameters. | |
Print. | |
Point * | bestPointPtr |
Pointer to the best trial point thus far. | |
Directions | directions |
The search directions. | |
Conveyor | conveyor |
Trial Point Evaluator. | |
List | exchangeList |
List of trial points to be processed in some way. | |
State | state |
The state of the solver. | |
double | boundsTolerance |
Tolerance for saying whether or not we are on a boundary. | |
Vector | tmpVector |
A temporary vector. | |
double | epsMach |
Machine epsilon. | |
Stopping Criteria | |
bool | isFunctionTolerance |
Enforce function value tolerance. | |
Value | functionTolerance |
Function value. | |
bool | isMaxEvaluations |
Enforce function evaluation budget. | |
int | maxEvaluations |
Function evaluation budget. |
|
State of the solver.
|
|
|
Destructor. Definition at line 102 of file APPSPACK_Solver.cpp. References bestPointPtr. |
|
Called by the Solver constructor to parse the parameter list and create the initial best point. Definition at line 123 of file APPSPACK_Solver.cpp. References APPSPACK::Parameter::List::getDoubleParameter(), APPSPACK::Constraints::Interface::getIsLower(), APPSPACK::Constraints::Interface::getIsUpper(), APPSPACK::Constraints::Interface::getLower(), APPSPACK::Parameter::List::getParameter(), APPSPACK::Constraints::Interface::getScaling(), APPSPACK::Constraints::Interface::getUpper(), APPSPACK::Parameter::List::getValueParameter(), APPSPACK::Parameter::List::isParameter(), APPSPACK::Parameter::List::isParameterDouble(), APPSPACK::Parameter::List::isParameterValue(), and APPSPACK::Vector. |
|
Return the x-vector corresponding to the best point. Definition at line 107 of file APPSPACK_Solver.cpp. References bestPointPtr, APPSPACK::Point::getX(), and APPSPACK::Vector. |
|
Retun true is there is a finite function value associated with the best point. Definition at line 112 of file APPSPACK_Solver.cpp. References bestPointPtr, APPSPACK::Point::getF(), and APPSPACK::Value::getIsValue(). |
|
Return the finite function value (if any) associated with the best point. Definition at line 117 of file APPSPACK_Solver.cpp. References bestPointPtr, APPSPACK::Point::getF(), and APPSPACK::Value::getValue(). |
|
Find the minimum of the function that was set up in the constructor. Definition at line 201 of file APPSPACK_Solver.cpp. References Continue, conveyor, directions, APPSPACK::Conveyor::getCounter(), iterate(), APPSPACK::Counter::print(), APPSPACK::Directions::print(), state, and State. |
|
Do a single APPS iteration. Definition at line 220 of file APPSPACK_Solver.cpp. References conveyor, APPSPACK::Conveyor::exchange(), exchangeList, generateTrialPoints(), processEvaluatedTrialPoints(), state, and State. Referenced by solve(). |
|
Process a new best point - Delete the old point (if any) and replace it with the new. If the function tolerance convergence test is being employed, we check for convergence at this point, and return if convergence is detected. Otherwise, we generate new search directions, re-initialize the #step array, and reset various bookkeeping variables (#trueStep and #tag). All the steps start the same, and they are calculated as follows:
Definition at line 232 of file APPSPACK_Solver.cpp. References bestPointPtr, APPSPACK::Directions::computeNewDirections(), directions, FunctionConverged, functionTolerance, APPSPACK::Point::getF(), isFunctionTolerance, APPSPACK::Directions::print(), and state. Referenced by processEvaluatedTrialPoints(), and Solver(). |
|
Generate trial points for any directions that are not converged and do not already have an associated trial point. Note that a direction is considered converged if its corresponding step length is strictly smaller than #stepTolerance. Definition at line 261 of file APPSPACK_Solver.cpp. References bestPointPtr, constraints, directions, epsMach, exchangeList, APPSPACK::Directions::getDirection(), APPSPACK::Directions::getDirectionIndices(), APPSPACK::Constraints::Interface::getIsLower(), APPSPACK::Constraints::Interface::getIsUpper(), APPSPACK::Constraints::Interface::getLower(), APPSPACK::Directions::getStep(), APPSPACK::Point::getTag(), APPSPACK::Constraints::Interface::getUpper(), APPSPACK::Point::getX(), APPSPACK::List::print(), APPSPACK::Directions::print(), APPSPACK::List::push(), APPSPACK::Directions::setTrueStepAndTag(), tmpVector, and APPSPACK::Vector. Referenced by iterate(). |
|
Create a new trial point corresponding to the direction with the given index, idx. Let
If this point is infeasible, then we reset
The value of
|
|
|
Definition at line 198 of file APPSPACK_Solver.hpp. Referenced by generateTrialPoints(). |
|
Parameters. Definition at line 201 of file APPSPACK_Solver.hpp. Referenced by Solver(). |
|
Definition at line 204 of file APPSPACK_Solver.hpp. |
|
Pointer to the best trial point thus far. Definition at line 207 of file APPSPACK_Solver.hpp. Referenced by generateTrialPoints(), getBestF(), getBestX(), isBestF(), processEvaluatedTrialPoints(), processNewBestPoint(), and ~Solver(). |
|
The search directions. Definition at line 210 of file APPSPACK_Solver.hpp. Referenced by generateTrialPoints(), processEvaluatedTrialPoints(), processNewBestPoint(), and solve(). |
|
Definition at line 213 of file APPSPACK_Solver.hpp. Referenced by iterate(), processEvaluatedTrialPoints(), and solve(). |
|
List of trial points to be processed in some way. Definition at line 216 of file APPSPACK_Solver.hpp. Referenced by generateTrialPoints(), iterate(), and processEvaluatedTrialPoints(). |
|
The state of the solver. Definition at line 219 of file APPSPACK_Solver.hpp. Referenced by iterate(), processEvaluatedTrialPoints(), processNewBestPoint(), and solve(). |
|
Enforce function value tolerance. Definition at line 224 of file APPSPACK_Solver.hpp. Referenced by processNewBestPoint(), and Solver(). |
|
Function value. Definition at line 227 of file APPSPACK_Solver.hpp. Referenced by processNewBestPoint(), and Solver(). |
|
Enforce function evaluation budget. Definition at line 230 of file APPSPACK_Solver.hpp. Referenced by processEvaluatedTrialPoints(), and Solver(). |
|
Function evaluation budget. Definition at line 233 of file APPSPACK_Solver.hpp. Referenced by processEvaluatedTrialPoints(), and Solver(). |
|
Tolerance for saying whether or not we are on a boundary. Definition at line 238 of file APPSPACK_Solver.hpp. Referenced by Solver(). |
|
A temporary vector. Definition at line 241 of file APPSPACK_Solver.hpp. Referenced by generateTrialPoints(). |
|
Machine epsilon. Definition at line 244 of file APPSPACK_Solver.hpp. Referenced by generateTrialPoints(), and Solver(). |
© Sandia Corporation | Site Contact | Privacy and Security
Generated on Wed Dec 14 18:41:05 2005 for APPSPACK 4.0.2 by
1.3.8 written by Dimitri van Heesch,
© 1997-2002