Performing constrained optimization

Simulation design problems tend to have conflicting goals. Usually there is a desired ideal response that cannot be obtained exactly due to either modeling or physical constraints. The system response is determined by a few variables which may in themselves be bounded. Mathematically, such a situation is represented by:

Minimize or maximize g(X) subject to

glbi gi(X) gubi              for i=1,...,m,
xlbj xj xubj                     for j=1,...,n,

X is a vector on n variables, x1 ,...,xn, and the functions g1 ,...,gm all depend on X.

The function to be minimized g(X) is called the objective (or cost) function. Constraints are given by the function gi(X). And, the decision variables x1 ,...,xn, may have bounds. The analogous data structures are represented by the following blocks:




objective or cost function


constraint functions


decision variables

Upper and lower bounds are set in the globalConstraint block for the constraint functions, and upper and lower bounds are set in the parameterUnknown block for the decision variables.

Embed uses first partial derivatives of each function gi with respect to each variable xj. These are automatically computed by finite difference approximations. After an initial data entry segment, the program operates in two phases. If the initial values of the variables you supply do not satisfy all gi constraints, a Phase I optimization is started. The Phase I objective function is the sum of the constraint violations. This optimization run terminates either with a message that the problem is infeasible or with a feasible solution. Beware that if an infeasibility message is produced, it may be because the program became stuck at a local minimum of the Phase I objective. In this case, the problem may actually have feasible solutions.

Phase II begins with a feasible solution — either found by Phase I or with you providing a starting point if it is feasible — and attempts to optimize the objective function. After Phase II, a full optimization cycle has been completed and summary output is provided.