CONMINOptimizer Class Reference

Wrapper class for the CONMIN optimization library. More...

Inheritance diagram for CONMINOptimizer:

Optimizer Minimizer Iterator List of all members.

Public Member Functions

 CONMINOptimizer (Model &model)
 standard constructor
 CONMINOptimizer (NoDBBaseConstructor, Model &model)
 alternate constructor
 ~CONMINOptimizer ()
 destructor
void find_optimum ()
 Redefines the run virtual function for the optimizer branch.

Protected Member Functions

void derived_pre_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).
int optimizationType
 MINMAX from DOT manual (minimize or maximize).
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
SizetList constraintMappingIndices
 Response constraints used in computing the CONMIN constraints.
RealList constraintMappingMultipliers
 the CONMIN constraints.
RealList constraintMappingOffsets
 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.

Detailed Description

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.


Member Data Documentation

int conminInfo [private]

INFO from CONMIN manual.

Information requested by CONMIN: 1 = evaluate objective and constraints, 2 = evaluate gradients of objective and constraints.

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

int optimizationType [private]

MINMAX from DOT manual (minimize or maximize).

Values of 0 or -1 (minimize) or 1 (maximize).

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).

SizetList constraintMappingIndices [private]

Response constraints used in computing the CONMIN constraints.

The length of the list corresponds to the number of CONMIN constraints, and each entry in the list points to the corresponding DAKOTA constraint.

RealList constraintMappingMultipliers [private]

the CONMIN constraints.

The length of the list corresponds to the number of CONMIN constraints, and each entry in the list contains a multiplier for the DAKOTA constraint identified with constraintMappingIndices. These multipliers are currently +1 or -1.

RealList constraintMappingOffsets [private]

CONMIN constraints.

The length of the list corresponds to the number of CONMIN constraints, and each entry in the list contains an offset for the DAKOTA constraint identified with constraintMappingIndices. These offsets involve inequality bounds or equality targets, since CONMIN assumes constraint allowables = 0.

int N1 [private]

Size variable for CONMIN arrays. See CONMIN manual.

N1 = number of variables + 2

int N2 [private]

Size variable for CONMIN arrays. See CONMIN manual.

N2 = number of constraints + 2*(number of variables)

int N3 [private]

Size variable for CONMIN arrays. See CONMIN manual.

N3 = Maximum possible number of active constraints.

int N4 [private]

Size variable for CONMIN arrays. See CONMIN manual.

N4 = Maximum(N3,number of variables)

int N5 [private]

Size variable for CONMIN arrays. See CONMIN manual.

N5 = 2*(N4)

double CT [private]

Constraint thickness parameter.

The value of CT decreases in magnitude during optimization.

double* S [private]

Internal CONMIN array.

Move direction in N-dimensional space.

double* G1 [private]

Internal CONMIN array.

Temporary storage of constraint values.

double* G2 [private]

Internal CONMIN array.

Temporary storage of constraint values.

double* B [private]

Internal CONMIN array.

Temporary storage for computations involving array S.

double* C [private]

Internal CONMIN array.

Temporary storage for use with arrays B and S.

int* MS1 [private]

Internal CONMIN array.

Temporary storage for use with arrays B and S.

double* SCAL [private]

Internal CONMIN array.

Vector of scaling parameters for design parameter values.

double* DF [private]

Internal CONMIN array.

Temporary storage for analytic gradient data.

double* A [private]

Internal CONMIN array.

Temporary 2-D array for storage of constraint gradients.

int* ISC [private]

Internal CONMIN array.

Array of flags to identify linear constraints. (not used in this implementation of CONMIN)

int* IC [private]

Internal CONMIN array.

Array of flags to identify active and violated constraints


The documentation for this class was generated from the following files:
Generated on Wed Nov 5 19:54:06 2008 for DAKOTA by  doxygen 1.5.1