User:Andrebis

Handling Multiple Constraints




The method of Lagrange multipliers can also accommodate multiple constraints. To see how this is done, we need to reexamine the problem in a slightly different manner because the concept of “crossing” discussed above becomes rapidly unclear when we consider the types of constraints that are created when we have more than one constraint acting together.

As an example, consider a paraboloid with a constraint that is a single point (as might be created if we had 2 line constraints that intersect). The level set (i.e. contour line) clearly appears to “cross” that point and its gradient is clearly not parallel to the gradients of either of the two line constraints. Yet, it is obviously a maximum *and* a minimum because there is only one point on the paraboloid that meets the constraint.

While this example seems a bit odd, it is easy to understand and is representative of the sort of “effective” constraint that appears quite often when we deal with multiple constraints intersecting. Thus, we take a slightly different approach below to explain and derive the Lagrange Multipliers method with any number of constraints.

Throughout this section, the independent variables will be denoted by $$x_{1},x_{2,}\cdots ,x_{N}$$ and, as a group, we will denote them as $$p=\left( x_{1},x_{2,}\cdots ,x_{N} \right)$$. Also, the function being analyzed will be denoted by $$f\left( p \right)$$ and the constraints will be denoted by $$g_{1}\left( p \right),g_{2}\left( p \right),\,\,\cdots ,g_{N}\left( p \right)$$.

The basic idea remains essentially the same: if we consider only the points that satisfy the constraints (i.e. are in the constraints), then a point $$\left( p,f\left( p \right) \right)$$ is a stationary point (i.e. a point in a “flat” region) of $$f$$ if and only if the constraints at that point do not allow movement in a direction where $$f$$ changes value. It is intuitive that this is true because if the constraints allowed us to travel from this point to a (infinitesimally) near point with a different value, then we would not be in a “flat” region (i.e. a stationary point).

Once we have located the stationary points, we need to do further tests to see if we have found a minimum, a maximum or just a stationary point that is neither.

We start by considering the level set of $$f$$ at $$\left( p,f\left( p \right) \right)$$. The set of vectors $$\left\{ v_{L} \right\}$$ containing the directions in which we can move and still remain in the same level set are the directions where the value of $$f$$ does not change (i.e. the change equals zero). Thus, for every vector $$v$$ in $$\left\{ v_{L} \right\}$$, the following relation must hold:

$$\Delta f=\frac{df}{dx_{1}}v_{x_{1}}+\frac{df}{dx_{2}}v_{x_{2}}+\,\,\,\cdots \,\,\,+\frac{df}{dx_{N}}v_{x_{N}}=0$$

Where the notation $$v_{x_{K}}$$ above means the $$x_{K}$$-component of the vector $$v$$. The equation above can be rewritten in a more compact geometric form that helps our intuition:

$$\begin{matrix} \underbrace{\begin{matrix} \left[ \begin{matrix} \frac{df}{dx_{1}} \\ \frac{df}{dx_{2}} \\ \vdots  \\ \frac{df}{dx_{N}} \\ \end{matrix} \right] \\ {} \\ \end{matrix}}_{\nabla f} & \centerdot  & \underbrace{\begin{matrix} \left[ \begin{matrix} v_{x_{1}} \\ v_{x_{2}} \\ \vdots  \\ v_{x_{N}} \\ \end{matrix} \right] \\ {} \\ \end{matrix}}_{v} & =\,\,0  \\ \end{matrix}\,\,\,\,\,\,\,\,\,\,\,\,\Rightarrow \,\,\,\,\,\,\,\,\nabla f\,\,\,\centerdot \,\,\,\,v\,\,=\,\,\,0$$

This makes it clear that if we are at $$p$$, then all directions from this point that do not change the value of $$f$$ must be perpendicular to $$\nabla f\left( p \right)$$ (the gradient of $$f$$ at $$p$$).

Now let us consider the effect of the constraints. Each constraint limits the directions that we can move from a particular point and still satisfy the constraint. We can use the same procedure, to look for the set of vectors $$\left\{ v_{C} \right\}$$ containing the directions in which we can move and still satisfy the constraint. As above, for every vector $$v$$ in $$\left\{ v_{C} \right\}$$, the following relation must hold:

$$\Delta g=\frac{dg}{dx_{1}}v_{x_{1}}+\frac{dg}{dx_{2}}v_{x_{2}}+\,\,\,\cdots \,\,\,+\frac{dg}{dx_{N}}v_{x_{N}}=0\,\,\,\,\,\,\,\,\,\,\,\,\,\Rightarrow \,\,\,\,\,\,\,\,\,\,\,\nabla g\,\,\centerdot \,\,\,v\,\,=\,\,\,0$$

From this, we see that at point $$p$$, all directions from this point that will still satisfy this constraint must be perpendicular to $$\nabla g\left( p \right)$$.

Now we are ready to refine our idea further and complete the method: a point on $$f$$ is a constrained stationary point if and only if the direction that changes $$f$$ violates at least one of the constraints. (We can see that this is true because if a direction that changes $$f$$ did not violate any constraints, then there would a “legal” point nearby with a higher or lower value for $$f$$ and the current point would then not be a stationary point.)

Single Constraint Revisited

For a single constraint, we use the statement above to say that at stationary points the direction that changes $$f$$ is in the same direction that violates the constraint. To determine if two vectors are in the same direction, we note that if two vectors start from the same point and are “in the same direction”, then one vector can always “reach” the other by changing its length and/or flipping to point the opposite way along the same direction line. In this way, we can succinctly state that two vectors point in the same direction if and only if one of them can be multiplied by some real number such that they become equal to the other. So, for our purposes, we require that:

$$\nabla f\left( p \right)=\lambda \nabla g\left( p \right)\,\,\,\,\,\,\,\,\,\,\,\Rightarrow \,\,\,\,\,\,\,\,\,\,\nabla f\left( p \right)-\lambda \nabla g\left( p \right)\,\,=\,\,0$$

If we now add another simultaneous equation to guarantee that we only perform this test when we are at a point that satisfies the constraint, we end up with 2 simultaneous equations that when solved, identify all constrained stationary points:

$$\begin{matrix} g\left( p \right)=0 & \,\,\,\,\,\,\,\,\,\,\,\text{:}\,\text{means}\,\text{point}\,\text{satisfies}\,\text{constraint} \\ \nabla f\left( p \right)-\lambda \nabla g\left( p \right)\,\,=\,\,0 & \,\,\,\,\,\,\,\,\,\,\,\,\,\text{:}\,\text{means}\,\text{point}\,\text{is}\,\text{a}\,\text{stationary}\,\text{point} \\ \end{matrix}$$

Note that the above is a succinct way of writing the equations. Fully expanded, there are $$\text{N}+\text{1}$$ simultaneous equations that need to be solved for the $$\text{N}+\text{1}$$ variables $$x_{1},\ x_{2},\ \cdots \ ,\ x_{N}$$ and $$\lambda $$:

$$\begin{align} & g\left( x_{1},\ x_{2},\ \cdots \ ,\ x_{N} \right)=0 \\ & \frac{df}{dx_{1}}\left( x_{1},\ x_{2},\ \cdots \ ,\ x_{N} \right)\ \ -\,\,\lambda \frac{d_{g}}{dx_{1}}\left( x_{1},\ x_{2},\ \cdots \ ,\ x_{N} \right)\,\,\,=\,\,0 \\ & \frac{df}{dx_{2}}\left( x_{1},\ x_{2},\ \cdots \ ,\ x_{N} \right)\ \ -\,\,\lambda \frac{d_{g}}{dx_{2}}\left( x_{1},\ x_{2},\ \cdots \ ,\ x_{N} \right)\,\,\,=\,\,0 \\ & \,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\vdots \\ & \frac{df}{dx_{N}}\left( x_{1},\ x_{2},\ \cdots \ ,\ x_{N} \right)\ \ -\,\,\lambda \frac{d_{g}}{dx_{N}}\left( x_{1},\ x_{2},\ \cdots \ ,\ x_{N} \right)\,\,\,=\,\,0 \\ \end{align}$$

Multiple Constraints

For more than one constraint, the same reasoning applies. If there is more than one constraint active together, each constraint contributes a direction that will violate it. Together, these “violation directions” form a “violation space”, where infinitesimal movement in any direction within the space will violate one or more constraints. Thus, to satisfy multiple constraints we can state (using this new terminology) that at the stationary points, the direction that changes $$f$$ is in the “violation space” created by the constraints acting jointly.

The “violation space” created by the constraints consists of all points that can be reached by adding any combination of scaled and/or flipped versions of the individual violation direction vectors. In other words, all the points that are “reachable” when we use the individual violation directions as the basis of the space. Thus, we can succinctly state that $$v$$ is in the space defined by $$b_{1},b_{2},\ \cdots \ ,b_{M}$$ if and only if there exists a set of “multipliers” $$\lambda _{1},\ \lambda _{2},\ \cdots \ ,\ \lambda _{M}$$ such that:

$$\sum\limits_{k=1}^{M}{\lambda _{k}b_{k}}\ \ =\ \ v$$

Which for our purposes, translates to stating that the direction that changes $$f$$ at $$p$$ is in the “violation space” defined by the constraints $$g_{1},g_{2,}\ \cdots \ ,g_{M}$$ if and only if:

$$\sum\limits_{k=1}^{M}{\lambda _{k}\nabla g_{k}\left( p \right)}\ \ =\ \ \nabla f\left( p \right)\ \ \ \ \ \ \ \ \ \ \ \Rightarrow \ \ \ \ \ \ \ \nabla f\left( p \right)\ \ -\ \ \sum\limits_{k=1}^{M}{\lambda _{k}\nabla g_{k}\left( p \right)}\ \ =\ \ 0$$

As before, we now add simultaneous equation to guarantee that we only perform this test when we are at a point that satisfies every constraint, we end up with simultaneous equations that when solved, identify all constrained stationary points:

$$\begin{matrix} \begin{align} & g_{1}\left( p \right)=0\ \\ & g_{2}\left( p \right)=0 \\ & \ \ \ \ \ \ \ \vdots \\ & g_{M}\left( p \right)=0 \\ & \\  & \nabla f\left( p \right)\ \ -\ \ \sum\limits_{k=1}^{M}{\lambda _{k}\nabla g_{k}\left( p \right)}\ \ =\ \ 0 \\ \end{align} & \begin{align} & \text{:}\ \text{these}\ \text{mean}\ \text{point}\ \text{satisfies}\ \text{all}\ \text{constraints} \\ & \\  &  \\  &  \\  &  \\  & \text{:}\ \text{this}\ \text{means}\ \text{the}\ \text{point}\ \text{is}\ \text{a}\ \text{stationary}\ \text{point} \\ \end{align} \\ \end{matrix}$$

The method is complete now (from the standpoint of solving the problem of finding stationary points) but as mathematicians delight in doing, these equations can be further condensed into an even more elegant and succinct form. Lagrange must have cleverly noticed that the equations above look like partial derivatives of some larger scalar function $$L$$ that takes all the $$x_{1},\ x_{2},\ \cdots \ ,\ x_{N}$$ and all the $$\lambda _{1},\ \lambda _{2},\ \cdots \ ,\ \lambda _{M}$$ as inputs. Next, he might then have noticed that setting every equation equal to zero is exactly what one would have to do to solve for the unconstrained stationary points of that larger function. Finally, he showed that a larger function $$L$$ with partial derivatives that are exactly the ones we require can be constructed very simply as below:

$$L\left( x_{1},\ x_{2},\ \cdots \ ,\ x_{N},\lambda _{1},\ \lambda _{2},\ \cdots \ ,\ \lambda _{M} \right)\ \ =\ \ f\left( x_{1},\ x_{2},\ \cdots \ ,\ x_{N} \right)\ \ -\ \ \sum\limits_{k=1}^{M}{\lambda _{k}g_{k}\left( x_{1},\ x_{2},\ \cdots \ ,\ x_{N} \right)}\ $$

Solving the equation above for its unconstrained stationary points generates exactly the same stationary points as solving for the constrained stationary points of $$f$$ under the constraints $$g_{1},g_{2,}\ \cdots \ ,g_{M}$$.

In Lagrange’s honor, the function above is called a Lagrangian, the scalars $$\lambda _{1},\ \lambda _{2},\ \cdots \ ,\ \lambda _{M}$$ are called Lagrange Multipliers and this optimization method itself is called The Method of Lagrange Multipliers.

The method of Lagrange multipliers is generalized by the Karush–Kuhn–Tucker conditions, which can also take into account inequality constraints of the form h(x) ≤ c.