Initial Publication:

Modified:

In this group users can specify the response variable (or variables if performing multi-objective optimization or multi-criteria calibration) that will serve as the cost function (or functions) for the general constrained optimization platform. Each “Cost Function” identifies a single response variable or tied response variable that represents a system cost (CSYS) to be minimized by the optimizer. The overall GCOP objective function \(F_{SYS}\) is a combination of the system cost \(C_{SYS}\) and a penalty function, \(P_{TOTAL}\), which accounts for the cost of all constraint violations.

Note: To use GCOP, the model executable or script specified by the user must generate response variables that are suitable for computation of the \(C_{SYS}\) and \(P_{TOTAL}\) values. Furthermore, this executable should return a terrible \(C_{SYS}\) value or grossly infeasible \(P_{TOTAL}\) value in the event a model run fails or crashes.

The OSTRICH GCOP module offers several techniques for combining \(C_{SYS}\) and \(P_{TOTAL}\) to form the objective function; namely the additive penalty method (APM), the multiplicative penalty method (MPM), and the exponential penalty method (EPM). The mathematics of these techniques are given below and they are described in detail by Chan-Hilton and Culver (2000):

$$F_{APM}(X) = C_{SYS} + P_{TOTAL}$$

$$F_{MPM}(X) = max(C_{SYS}, P_{TOTAL})P_{TOTAL}$$

$$F_{EPM}(X) = max(C_{SYS}, P_{TOTAL})e^{P_{TOTAL}}$$

Where, \(F_{APM}\) is the objective function using APM; \(F_{MPM}\) is the objective function using MPM; \(F_{EPM}\) is the objective function using EPM; and X is a vector of design parameters. The general format and a concrete example of the GCOP section is given in Listing 60.

BeginGCOP
CostFunction  [cost_1]
CostFunction  [cost_2]
.
.
CostFunction  [cost_N]

PenaltyFunction APM|EPM|MPM
EndGCOP
BeginGCOP
CostFunction  QTOTAL
PenaltyFunction APM
EndGCOP

Figure 1: Format (left) and Example (right) of the GCOP Group

Where BeginGCOP and EndGCOP are parsing tags that wrap a list of GCOP configuration variables:

  • CostFunction: The value of this variable must be the name of a response variable (or tied response variable) and corresponds to the system cost (CSYS). For multi-objective problems, users should list one cost function entry for each objective. Only the first objective listed will appear in OSTRICH run record reports unless the additional costs are marked as augmented response variables.
  • PenaltyFunction: The three options for this variable are “APM”, “MPM” and “EPM”, corresponding to desired penalty function method. The default value is “MPM”.