Sei sulla pagina 1di 21

Numerical Methods for Civil Engineers

Lecture 12 Constrained Optimization

- Linear Programming - Nonlinear Constrained Optimization - MATLABs fmincon Function

Suranaree
UNIVERSITY OF TECHNOLOGY NAKORNRATCHSIMA

Mongkol JIRAVACHARADET School of Civil Engineering

LINEAR PROGRAMMING Standard Form


Objective Function: Maximize Z = c1x1+ c2x2+ . . . + cnxn where cj = payoff of jth activity xj = magnitude of jth activity Z = total payoff due to all activities Constraints: ai1x1 + ai2x2 + . . . + ainxn bi

where aij = amount of ith resource used by jth activity bi = amount of ith resource available

Example: Setting Up the Linear Programming Problem Producing product with limited resources: Gas processing plant Product Resource Raw gas Production time Storage Profit Set Regular 7 m3/ton 10 hr/ton 9 ton 150 / ton Premium 11 m3/ton 8 hr/ton 6 ton 175 / ton Resource Availability 77 m3/week 80 hr/week

x1 = amount of regular gas produced x2 = amount of premium gas produced

Total profit = 150x1 + 175x2

Maximize Z = 150x1 + 175x2 Objective function Total gas used = 7x1 + 11x2 cannot exceed 77 m3/week 7x1 + 11x2 10x1 + 8x2 x1 9 x2 0 77 80 6 Constraints

x1 , x2

Graphical Solution x2

Maximize Z = 150x1 + 175x2


7 x1 + 11x2 77 10 x1 + 8 x2 80 0 x1 9 0 x2 6 (1) (2) (3) (4)

10x1+8x2 = 80 10x1+8x2 80 7 6 7x1+11x2 = 77

7x1+11x2

77 x1 9 11

Increasing Objective Function x2

From Z = 150x1 + 175x2 For Z = 0, 150x1 + 175x2 = 0

Unique solution Z = 1400

0 Z=0 Z = 600

x1

Other Possible Outcomes x2 Objective function parallel to constraint. Alternate Solution

x1

No Feasible Solution x2

x1

Unbounded Problems x2

x1

Simplex Method Assumption: optimal solution will be an extreme point x2 Extreme points: corner points where two constraints meet Z = 1400 Objective function is LINEAR

Z=0

Z = 600

x1

Slack Variables Reformulate constraint inequalities as equalities slack variable

7 x1 + 11x2 77 7 x1 + 11x2 + S1 = 77
Resource constraint How much slack of the resource is available ?

IF . . . S1 = + Surplus resource is not fully used. S1 = - Exceeded the constraint. S1 = 0 Exactly meet the constraint. All resource is used.

Fully Augmented Version Maximize Z = 150x1 + 175x2 subject to


7 x1 + 11x2 77 10 x1 + 8 x2 80 0 x1 9 0 x2 6
7 x1 + 11x2 + S1 10 x1 + 8 x2 + S2 x1 + S3 x2 + S4 = 77 = 80 =9 =6 0

x1 , x2 , S1 , S 2 , S3 , S4

Linear algebraic equations solving 4 equations with 6 unknowns

Algebraic Solution
Underspecified : more unknowns (6) than equations (4) x2
10x1 + 8x2 = 80 S2 = 0 x1 = 9, S3 = 0 Extreme Point Zero Variables

x2 = 6, S4 = 0

E D C
7x1 + 11x2 = 77 S1 = 0

A B C D E

x1, x2 x2, S2 S1, S2 S1, S4 x1, S4

A 0

B 9 x1

@ Extreme point : 4 equations with 4 unknowns The problem can be solved.

For point E : Setting x1 = S4 = 0 The standard form reduced to


0

nonbasic variables

7 x1 + 11x2 + S1 0 10 x1 + 8 x2 + S2 0 x1 + S3 0 x2 + S4

= 77 = 80 =9 =6

11x2 + S1 8 x2 + S2 S3 x2

= 77 = 80 =9 =6

which can be solved for x1 0 x2 6 S1 11 S2 32 S3 9 S4 0 basic variables

Simplex Method Implementation Start at point A : Setting x1 = x2 = 0

S1 S2 S3 S4

= 77 = 80 = 9 = 6

Tableau: Z - 150x1 - 175x2 - 0S1 - 0S2 - 0S3 - 0S4 = 0 Basic Z S1 S2 S3 S4 Z x1 x2 S1 0 1 0 0 0 S2 0 0 1 0 0 S3 0 0 0 1 0 S4 Solution Intercept 0 0 0 0 1 0 77 80 9 6 11 8 9

1 -150 -175 0 7 11 0 10 8 0 1 0 0 0 1

Graphical Depiction of Simplex Method x2 S2 6 E D C S1 A 0 B 8 F 11 x1 S4 S3 Change x1 to basic variable (entering variable) Move from A horizontally Check intercept: Intercept = Solution (for each S) x1 coeff. S2 give min. intercept = 8

Therefore, change S2 to nonbasic(leaving) variable.

Move to point B : Setting x2 = S2 = 0

7 x1 + S1 10 x1 x1

+ S3 S4

= = = =

77 80 9 6

Pivot row S2: Dividing row by 10 and replacing S2 by x1 Basic Z S1 x1 S3 S4 Z Z x1 x2 S1 0 1 0 0 0 0 S2 0 0 0.1 0 0 S3 0 0 0 1 0 S4 Solution 0 0 0 0 1 0 0 77 8 9 6 1200 x -150 1 -150 -175 0 7 11 0 1 0.8 0 1 0 0 0 1 1 0 -55

15 0

Perform same operation on the remaining rows, Basic Z S1 x1 S3 S4 Z 1 0 0 0 0 x1 x2 S1 S2 S3 0 0 0 1 0 S4 Solution Intercept 0 0 0 0 1 1200 21 8 1 6 3.889 10 -1.25 6

0 -55 0 5.4 1 0.8 0 -0.8 0 1

0 15 1 -0.7 0 0.1 0 -0.1 0 0

- From A to B, objective function has increased to 1200 - S1 give min. positive intercept = 3.889 is entering variable - Move from B to C

Final Tableau: Basic Z S1 x1 S3 S4 Z 1 0 0 0 0 x1 0 0 1 0 0 x2 0 1 0 0 0 S1 S2 S3 0 0 0 1 0 S4 0 0 0 0 1 Solution 1414 3.89 4.89 4.11 2.11

10.19 7.87 0.19 -0.13 -0.15 0.20 0.15 -0.20 -0.19 0.13

- No negative coeff. in objective func. row, No more increasing. Final solution: x1 = 3.89, x2 = 4.89 Z = 1414

MATLABs fmincon Function


2 f ( x) = e x1 ( 4 x12 + 2 x2 + 4 x1 x2 + 2 x2 + 1)

subject to the constraints:

x1 x2 x1 x2 1.5 x1 x2 10

rewrite the constraints in the form c(x) 0 :

x1 x2 x1 x2 + 1.5 0 x1 x2 10 0

Write M-file confun.m for the constraints function [c, ceq] = confun(x) % nonlinear inequality constraints c = [1.5 + x(1)*x(2) - x(1) - x(2); -x(1)*x(2) - 10]; % nonlinear equality constraints ceq = [];
> x0 = [-1,1]; > options = optimset(LargeScale,off); > [x, fval] = . . . fmincon(objfun,x0,[],[],[],[],[],[],confun,options) x = -9.5474 fval = 0.0236

1.0474

Potrebbero piacerti anche