NON LINEAR PROGRAMMING Prof. Stephen Graves Consider the example we used to introduce Lagrange multipliers: MIN s.t. 3 SD H Q f(Q , Q , Q ) = ∑ i i + i i 1 2 3 2 i=1 Q i 3 TD g(Q , Q , Q ) = ∑ i i = K 1 2 3 i=1 Q i Some definitions: Gradient of f: ⎛∂f ∂f ∂f ⎞ ∇f = ⎜ , , ⎟⎟ ⎜ ∂Q ⎝ 1 ∂Q2 ∂Q3 ⎠ ⎛ SD S3D3 H3 ⎞ H1 S2D2 H 2 1 1 ⎜ ⎟ = − + , − + , − + 2 2 2 ⎜ ⎟ 2 2 2 Q1 Q2 Q3 ⎝ ⎠ Gradient of g: ⎛ ∂g ∂g ∂g ⎞ , , ∇g = ⎜ ⎟⎟ ⎜ ∂Q ⎝ 1 ∂Q 2 ∂Q 3 ⎠ ⎛ TD T3 D 3 ⎞ T2 D 2 1 1 ⎜ ⎟ = − , − , − 2 2 2 ⎜ Q1 Q2 Q3 ⎟ ⎝ ⎠ Directional derivatives: Let x = (x1, x2, x3 ) denote a direction. The directional derivative for f and g are given by: 15.066J 96 Summer 2003 3 df = ∑ dx i=1 3 ⎛ SD ⎛∂f ⎞ Hi ⎞⎟ i i ⎜ + x ⎜⎜ ⎟⎟ xi = ∑ − 2 ⎟ i Qi2 ⎝ ∂Qi ⎠ i=1 ⎜⎝ ⎠ 3 dg = ∑ dx i=1 3 ⎛ TD ⎞ ⎛∂g⎞ ⎜⎜ ⎟⎟ xi = ∑ ⎜ − i 2i ⎟ x i Qi ⎟ ⎝ ∂Qi ⎠ i=1 ⎜⎝ ⎠ Note: the directional derivative is the "dot product" of the gradient and the direction vector. For a given point, say (Q1, Q2, Q3 ), what is the direction of steepest ascent for the objective function f? That is, what direction provides the largest value for the directional derivative? The direction of steepest ascent will be the solution to the following optimization problem: df MAX = dx s. t. ⎛ SD Hi ⎞⎟ i i ⎜ ∑ − 2 + 2 ⎟ xi Qi i=1 ⎜⎝ ⎠ 3 x12 + x 22 + x 32 = 1 By using a Lagrange multiplier to solve this problem, you can show that the direction of steepest ascent is given by x * = (x1, x 2 , x 3 ) = ∇f/ ∇f That is, the "best" direction is the (normalized) gradient; for our example, the direction of steepest ascent (not normalized) is ⎛ SD S D H ⎞ H S D H x* = ⎜ − 1 1 + 1 , − 2 2 + 2 , − 3 3 + 3 ⎟ ⎜ 2 2 2 ⎟ Q12 Q22 Q32 ⎝ ⎠ Note that since the actual problem is a minimization, we actually want the direction of steepest descent, which would just be the negative of the gradient. 15.066J 97 Summer 2003 Now suppose that the given point (Q1, Q2, Q3 ) is feasible; that is, it satisfies the constraint: g(Q1, Q2, Q3 ) = K What is the best feasible direction? The best feasible direction (for ascent) will be the solution to the following optimization problem: ⎛ SD Hi ⎞⎟ i i ⎜ ∑ − 2 + 2 ⎟ xi Q i=1 ⎜⎝ i ⎠ 3 df MAX = dx s. t.. x12 + x 22 + x 32 = 1 dg = dx ⎛ TD ⎞ ∑ ⎜⎜ − i 2i ⎟⎟ xi = 0 Qi i=1 ⎝ ⎠ 3 By using two Lagrange multipliers to solve the problem, you can find that the best feasible direction (called the reduced gradient) is given by: x* = ( x1* , x*2 , x*3 ) = ∇f - ⎛⎜⎝ ∇∇fg •• ∇∇gg ⎞⎟⎠ ∇g where ∇f • ∇g = 3 ⎛∂f ∂g⎞ , and ∇ g • ∇ g = ⎜ ⎟ ∑ ⎜ ∑ ⎟ i=1 ⎝ ∂Qi ∂Qi ⎠ i=1 3 ⎛∂g ∂g⎞ ⎜⎜ ⎟⎟ ∂ Q ∂ Q i⎠ ⎝ i The reduced gradient can then be used as a search direction to improve the current solution. To see that the reduced gradient is a feasible direction, we note that ⎛ ∇f • ∇ g ⎞ x* • ∇g = ∇f • ∇g - ⎜ ⎟ ∇g • ∇g = 0 ⎝ ∇g • ∇g ⎠ Besides determining the reduced gradient, an algorithm would also need to determine the "step size:" namely how far to move along the reduced gradient. An algorithm stops when the reduced gradient equals (approximately) the zero vector. 15.066J 98 Summer 2003