The "Brute Force" method for solving LPs.

Using the fact that if an LP has an optimal solution, then it has an extreme point solution, we can use a "brute force" method to find an optimal solution by testing each extreme point to see if it is feasible and then comparing the objective function values. Recall that an extreme, or corner-point, solution is formed by the intersection of two of the constraints.

Using the LP from last time, the algorithm proceeds as follows.

 

Max x + 2 y

st

(1) x + y <= 4

(2) x - 2 y <= 2

(3) -2 x + y <= 2

(4) x >= 0

(5) y >= 0

Intersection of constraints 1 and 2:

To find the (x,y) coordinates for the intersection of these two constraints, we have to solve the following the system of equations.

x + y = 4

x – 2y = 2

Solving this system, we get x = 10/3 and y = 2/3.

Since x and y are both greater than zero, constraints 4 and 5 are satisfied. So, we just need to verify that (10/3, 2/3) satisfies constraint 3.
-2 x + y = -20/3 + 2/3 = -18/3 = -6 <= 2.
So, the point is feasible and has an objective function value of 4 and 2/3.
 
 

Intersection of constraints 1 and 4:

x + y = 4

y = 0

x = 0, y = 4

Since x and y are both nonnegative, we only have to check that (0,4) satisfies constraint 3.

-2 (0) + 4 = 4 > 2.

Infeasible. Constraint 3 is not satisfied.

 

Intersection of constraints 1 and 3:

x + y = 4

-2 x + y = 2

x = 0.666667, y = 3.333333

Feasible. Objective function value = 7.333333.

 

Intersection of constraints 1 and 5:

(1) x + (1) y = 4

(0) x + (1) y = 0

x = 4.000000, y = 0.000000

Infeasible. Constraint 2 is not satisfied.

Intersection of constraints 2 and 3:

(1) x + (-2) y = 2

(-2) x + (1) y = 2

x = -2.000000, y = -2.000000

Infeasible. x < 0

Intersection of constraints 2 and 4:

(1) x + (-2) y = 2

(1) x + (0) y = 0

x = 0.000000, y = -1.000000

Infeasible. y < 0

Intersection of constraints 2 and 5:

(1) x + (-2) y = 2

(0) x + (1) y = 0

x = 2.000000, y = 0.000000

Feasible. Objective function value = 2.000000.

 

Intersection of constraints 3 and 4:

(-2) x + (1) y = 2

(1) x + (0) y = 0

x = 0.000000, y = 2.000000

Feasible. Objective function value = 4.000000.

Intersection of constraints 3 and 5:

(-2) x + (1) y = 2

(0) x + (1) y = 0

x = -1.000000, y = 0.000000

Infeasible. x < 0

Intersection of constraints 4 and 5:

(1) x + (0) y = 0

(0) x + (1) y = 0

x = 0.000000, y = 0.000000

Feasible. Objective function value = 0.000000.

In this case there is a unique optimal solution x = 0.666667, y = 3.333333 which has objective function value = 7.333333.

 
The number of corner-point solutions for a linear program with n variables and m constraints, assuming m >= n, is give by the following formula.
Looking at the table below, we can see that even the "toy" example problems we have discussed in class may have an astronomical number of corner-point solutions. Nevertheless, CPLEX would able to solve all of those example problem in less than a minute. The last column of the table lists the average number of solutions one would have to check per second in order to solve the problem in less than one minute using the brute force method.
 

Problem

Variables

Constraints

Corner-Points

Solutions/Second

2-D Example

2

5

10

0.166666667

Challenger

16

38

22,239,974,430

370666240.5

Diet Problem

3

7

35

0.583333333

GT Railroad

12

19

50,388

839.8

BOE

65

114

5.07E+32

8.44998E+30

NSC

8

22

319,770

5329.5

 

Clearly, CPLEX is not using the brute force method. CPLEX, and almost all other LP software packages, use the simplex algorithm which, in theory, may take as long as the brute force approach, but has been shown to be very efficient in practice. Before we begin the simplex algorithm, we will first develop at so-called standard form for representing LPs. This will simplify the description of the simplex algorithm since we only need to describe how it works for LPs in the standard form. Since all LPs can be expressed in the standard form, we don't "lose" anything by doing this.