# Constraints

Constraints need to be satisfied for an optimization to be acceptable. Constraints may also be associated with a DOE. While not used in the evaluation of the DOE, constraints can be useful while visualizing DOE results. Limits on displacement or stress are common examples.

## Constraint Categories

All constraints in an optimization problem can be placed into the following distinct categories:

- Inequality Constraint
- One sided condition that must be satisfied.$$\begin{array}{cc}{g}_{j}(x)\le 0& j=1,\mathrm{...},m\end{array}$$
- Equality Constraint
- Precise condition that must be satisfied.$$\begin{array}{cc}{h}_{k}(x)=0& k=1,\mathrm{...},{m}_{h}\end{array}$$
- Side Constraint
- Bounds on the input variables that limit the region of search for the
optimum.$${x}_{i}^{L}\le {x}_{i}\le {x}_{i}^{U}$$

## Constraint Types

Constraints can be defined as type Deterministic or Random (probabilistic) when
setting up an Optimization in HyperStudy, depending on the design requirements.

- Deterministic
- Deterministic constraints enable you to manually define a Bound Type, Bound Value, and evaluation source for the output response(s).
- Random
- Random problem formulations take into account the variability in the design and study the corresponding variability in the performances. This aspect is studied under reliability and robustness.

## Standard Constraint Enforcement

Constraints violations can be treated in the following ways:

- Standard Enforcement
- Constraints are considered feasible when they are within a small percentage of difference between their bounds. This type of enforcement is conventional.
- Strict Enforcement
- Constraints must be perfectly satisfied with no margin. This type of enforcement may require additional iterations from an optimizer for convergence.
- Percent of Constraint Bound
- Constraints must be violated by more than this value in the converged design. Strict enforcement only uses this tolerance for equality constraints.
- When the Constraint Bound = 0.0
- In general, constraint values are normalized to their bound value. One exception is if the absolute bound value is less than this parameter.