$extrastylesheet
Dakota
Version 6.2
|
Wrapper class for the CONMIN optimization library. More...
Public Member Functions | |
CONMINOptimizer (ProblemDescDB &problem_db, Model &model) | |
standard constructor | |
CONMINOptimizer (const String &method_string, Model &model) | |
alternate constructor; construct without ProblemDescDB | |
~CONMINOptimizer () | |
destructor | |
void | find_optimum () |
Used within the optimizer branch for computing the optimal solution. Redefines the run virtual function for the optimizer branch. | |
Protected Member Functions | |
void | initialize_run () |
performs run-time set up | |
Private Member Functions | |
void | initialize () |
Shared constructor code. | |
void | allocate_workspace () |
Allocates workspace for the optimizer. | |
void | deallocate_workspace () |
Releases workspace memory. | |
void | allocate_constraints () |
Allocates constraint mappings. | |
Private Attributes | |
int | conminInfo |
INFO from CONMIN manual. | |
int | printControl |
IPRINT from CONMIN manual (controls output verbosity) | |
Real | objFnValue |
value of the objective function passed to CONMIN | |
RealVector | constraintValues |
array of nonlinear constraint values passed to CONMIN | |
int | numConminNlnConstr |
total number of nonlinear constraints seen by CONMIN | |
int | numConminLinConstr |
total number of linear constraints seen by CONMIN | |
int | numConminConstr |
total number of linear and nonlinear constraints seen by CONMIN | |
SizetArray | constraintMappingIndices |
a container of indices for referencing the corresponding Response constraints used in computing the CONMIN constraints. | |
RealArray | constraintMappingMultipliers |
a container of multipliers for mapping the Response constraints to the CONMIN constraints. | |
RealArray | constraintMappingOffsets |
a container of offsets for mapping the Response constraints to the CONMIN constraints. | |
int | N1 |
Size variable for CONMIN arrays. See CONMIN manual. | |
int | N2 |
Size variable for CONMIN arrays. See CONMIN manual. | |
int | N3 |
Size variable for CONMIN arrays. See CONMIN manual. | |
int | N4 |
Size variable for CONMIN arrays. See CONMIN manual. | |
int | N5 |
Size variable for CONMIN arrays. See CONMIN manual. | |
int | NFDG |
Finite difference flag. | |
int | IPRINT |
Flag to control amount of output data. | |
int | ITMAX |
Flag to specify the maximum number of iterations. | |
double | FDCH |
Relative finite difference step size. | |
double | FDCHM |
Absolute finite difference step size. | |
double | CT |
Constraint thickness parameter. | |
double | CTMIN |
Minimum absolute value of CT used during optimization. | |
double | CTL |
Constraint thickness parameter for linear and side constraints. | |
double | CTLMIN |
Minimum value of CTL used during optimization. | |
double | DELFUN |
Relative convergence criterion threshold. | |
double | DABFUN |
Absolute convergence criterion threshold. | |
double * | conminDesVars |
Array of design variables used by CONMIN (length N1 = numdv+2) | |
double * | conminLowerBnds |
Array of lower bounds used by CONMIN (length N1 = numdv+2) | |
double * | conminUpperBnds |
Array of upper bounds used by CONMIN (length N1 = numdv+2) | |
double * | S |
Internal CONMIN array. | |
double * | G1 |
Internal CONMIN array. | |
double * | G2 |
Internal CONMIN array. | |
double * | B |
Internal CONMIN array. | |
double * | C |
Internal CONMIN array. | |
int * | MS1 |
Internal CONMIN array. | |
double * | SCAL |
Internal CONMIN array. | |
double * | DF |
Internal CONMIN array. | |
double * | A |
Internal CONMIN array. | |
int * | ISC |
Internal CONMIN array. | |
int * | IC |
Internal CONMIN array. |
Wrapper class for the CONMIN optimization library.
The CONMINOptimizer class provides a wrapper for CONMIN, a Public-domain Fortran 77 optimization library written by Gary Vanderplaats under contract to NASA Ames Research Center. The CONMIN User's Manual is contained in NASA Technical Memorandum X-62282, 1978. CONMIN uses a reverse communication mode, which avoids the static member function issues that arise with function pointer designs (see NPSOLOptimizer and SNLLOptimizer).
The user input mappings are as follows: max_iterations
is mapped into CONMIN's ITMAX
parameter, max_function_evaluations
is implemented directly in the find_optimum() loop since there is no CONMIN parameter equivalent, convergence_tolerance
is mapped into CONMIN's DELFUN
and DABFUN
parameters, output
verbosity is mapped into CONMIN's IPRINT
parameter (verbose: IPRINT
= 4; quiet: IPRINT
= 2), gradient mode is mapped into CONMIN's NFDG
parameter, and finite difference step size is mapped into CONMIN's FDCH
and FDCHM
parameters. Refer to [Vanderplaats, 1978] for additional information on CONMIN parameters.
int conminInfo [private] |
INFO from CONMIN manual.
Information requested by CONMIN: 1 = evaluate objective and constraints, 2 = evaluate gradients of objective and constraints.
Referenced by CONMINOptimizer::find_optimum(), and CONMINOptimizer::initialize().
int printControl [private] |
IPRINT from CONMIN manual (controls output verbosity)
Values range from 0 (nothing) to 4 (most output). 0 = nothing, 1 = initial and final function information, 2 = all of #1 plus function value and design vars at each iteration, 3 = all of #2 plus constraint values and direction vectors, 4 = all of #3 plus gradients of the objective function and constraints, 5 = all of #4 plus proposed design vector, plus objective and constraint functions from the 1-D search
Referenced by CONMINOptimizer::initialize().
RealVector constraintValues [private] |
array of nonlinear constraint values passed to CONMIN
This array must be of nonzero length and must contain only one-sided inequality constraints which are <= 0 (which requires a transformation from 2-sided inequalities and equalities).
Referenced by CONMINOptimizer::allocate_workspace(), and CONMINOptimizer::find_optimum().
SizetArray constraintMappingIndices [private] |
a container of indices for referencing the corresponding Response constraints used in computing the CONMIN constraints.
The length of the container corresponds to the number of CONMIN constraints, and each entry in the container points to the corresponding DAKOTA constraint.
Referenced by CONMINOptimizer::allocate_constraints(), and CONMINOptimizer::find_optimum().
RealArray constraintMappingMultipliers [private] |
a container of multipliers for mapping the Response constraints to the CONMIN constraints.
The length of the container corresponds to the number of CONMIN constraints, and each entry in the container stores a multiplier for the DAKOTA constraint identified with constraintMappingIndices. These multipliers are currently +1 or -1.
Referenced by CONMINOptimizer::allocate_constraints(), and CONMINOptimizer::find_optimum().
RealArray constraintMappingOffsets [private] |
a container of offsets for mapping the Response constraints to the CONMIN constraints.
The length of the container corresponds to the number of CONMIN constraints, and each entry in the container stores an offset for the DAKOTA constraint identified with constraintMappingIndices. These offsets involve inequality bounds or equality targets, since CONMIN assumes constraint allowables = 0.
Referenced by CONMINOptimizer::allocate_constraints(), and CONMINOptimizer::find_optimum().
int N1 [private] |
Size variable for CONMIN arrays. See CONMIN manual.
N1 = number of variables + 2
Referenced by CONMINOptimizer::allocate_workspace(), CONMINOptimizer::find_optimum(), and CONMINOptimizer::initialize_run().
int N2 [private] |
Size variable for CONMIN arrays. See CONMIN manual.
N2 = number of constraints + 2*(number of variables)
Referenced by CONMINOptimizer::allocate_workspace(), and CONMINOptimizer::find_optimum().
int N3 [private] |
Size variable for CONMIN arrays. See CONMIN manual.
N3 = Maximum possible number of active constraints.
Referenced by CONMINOptimizer::allocate_workspace(), and CONMINOptimizer::find_optimum().
int N4 [private] |
Size variable for CONMIN arrays. See CONMIN manual.
N4 = Maximum(N3,number of variables)
Referenced by CONMINOptimizer::allocate_workspace(), and CONMINOptimizer::find_optimum().
int N5 [private] |
Size variable for CONMIN arrays. See CONMIN manual.
N5 = 2*(N4)
Referenced by CONMINOptimizer::allocate_workspace(), and CONMINOptimizer::find_optimum().
double CT [private] |
Constraint thickness parameter.
The value of CT decreases in magnitude during optimization.
Referenced by CONMINOptimizer::find_optimum(), and CONMINOptimizer::initialize().
double* S [private] |
Internal CONMIN array.
Move direction in N-dimensional space.
Referenced by CONMINOptimizer::allocate_workspace(), CONMINOptimizer::deallocate_workspace(), and CONMINOptimizer::find_optimum().
double* G1 [private] |
Internal CONMIN array.
Temporary storage of constraint values.
Referenced by CONMINOptimizer::allocate_workspace(), CONMINOptimizer::deallocate_workspace(), and CONMINOptimizer::find_optimum().
double* G2 [private] |
Internal CONMIN array.
Temporary storage of constraint values.
Referenced by CONMINOptimizer::allocate_workspace(), CONMINOptimizer::deallocate_workspace(), and CONMINOptimizer::find_optimum().
double* B [private] |
Internal CONMIN array.
Temporary storage for computations involving array S.
Referenced by CONMINOptimizer::allocate_workspace(), CONMINOptimizer::deallocate_workspace(), and CONMINOptimizer::find_optimum().
double* C [private] |
Internal CONMIN array.
Temporary storage for use with arrays B and S.
Referenced by CONMINOptimizer::allocate_workspace(), CONMINOptimizer::deallocate_workspace(), and CONMINOptimizer::find_optimum().
int* MS1 [private] |
Internal CONMIN array.
Temporary storage for use with arrays B and S.
Referenced by CONMINOptimizer::allocate_workspace(), CONMINOptimizer::deallocate_workspace(), and CONMINOptimizer::find_optimum().
double* SCAL [private] |
Internal CONMIN array.
Vector of scaling parameters for design parameter values.
Referenced by CONMINOptimizer::allocate_workspace(), CONMINOptimizer::deallocate_workspace(), and CONMINOptimizer::find_optimum().
double* DF [private] |
Internal CONMIN array.
Temporary storage for analytic gradient data.
Referenced by CONMINOptimizer::allocate_workspace(), CONMINOptimizer::deallocate_workspace(), and CONMINOptimizer::find_optimum().
double* A [private] |
Internal CONMIN array.
Temporary 2-D array for storage of constraint gradients.
Referenced by CONMINOptimizer::allocate_workspace(), CONMINOptimizer::deallocate_workspace(), and CONMINOptimizer::find_optimum().
int* ISC [private] |
Internal CONMIN array.
Array of flags to identify linear constraints. (not used in this implementation of CONMIN)
Referenced by CONMINOptimizer::allocate_workspace(), CONMINOptimizer::deallocate_workspace(), CONMINOptimizer::find_optimum(), and CONMINOptimizer::initialize_run().
int* IC [private] |
Internal CONMIN array.
Array of flags to identify active and violated constraints
Referenced by CONMINOptimizer::allocate_workspace(), CONMINOptimizer::deallocate_workspace(), CONMINOptimizer::find_optimum(), and CONMINOptimizer::initialize_run().