Most practical optimization problems involve constraints of some kind – real-life limitations such as budget ceilings, schedules, or resource availability. These are called constrained optimization models. Sometimes, however, unconstrained optimization techniques arise, especially as a way to revisit a constrained model. Often, a constrained optimization analysis may not produce results that are good enough, and so the “ideal” constraints must be removed or relaxed, and the model reconsidered. When this happens, constraints can be replaced by penalty functions which allow the formerly “illegal” values to be considered, but apply some kind of “penalty,” such as an additional cost, when they occur. In this way, more realistic situations and options can be modeled.