Ikram Ullah
Ikram Ullah

Reputation: 348

Formulating Linear Programming Problem


This may be quite a basic question for someone who knows linear programming.
In most of the problems that I saw on LP has somewhat similar to following format

max            3x+4y  
subject to     4x-5y = -34
               3x-5y = 10      (and similar other constraints)

So in other words, we have same number of unknown in objective and constraint functions.

My problem is that I have one unknown variable in objective function and 3 unknowns in constraint functions.
The problem is like this

Objective function:  min w1
subject to:
w1 + 0.1676x + 0.1692y >= 0.1666 
w1 - 0.1676x - 0.1692y >= -0.1666 
w1 + 0.3039x + 0.3058y >= 0.3  
w1 - 0.3039x - 0.3058y >= -0.3  
x + y = 1
x >= 0
y >= 0

As can be seen, the objective function has only one unknown i.e. w1 and constraint functions have 3 (or lets say 2) unknown i.e w1, x and y.
Can somebody please guide me how to solve this problem, especially using R or MATLAB linear programming toolbox.

Upvotes: 0

Views: 1228

Answers (2)

codehippo
codehippo

Reputation: 1447

Prasad is correct. The number of unknowns in the objective function does not matter. You can view unknowns that are not present as having a zero coefficient.

This LP is easily solved using Matlab's linprog function. For more details on linprog see the documentation here.

% We lay out the variables as X = [w1; x; y]
c = [1; 0; 0]; % The objective is w1 = c'*X
% Construct the constraint matrix
% Inequality constraints will be written as Ain*X <= bin
%       w1      x        y
Ain = [ -1 -0.1676 -0.1692;
        -1  0.1676  0.1692;
        -1 -0.3039 -0.3058;  
        -1  0.3039  0.3058; 
      ];
bin =  [ -0.166; 0.166; -0.3; 0.3];

% Construct equality constraints Aeq*X == beq
Aeq = [ 0 1 1];
beq = 1;

%Construct lower and upper bounds l <= X <= u
l = [ -inf; 0; 0];
u = inf(3,1);

% Solve the LP using linprog
[X, optval] = linprog(c,Ain,bin,Aeq,beq,l,u);

% Extract the solution
w1 = X(1);
x  = X(2);
y  = X(3); 

Upvotes: 2

Prasad Chalasani
Prasad Chalasani

Reputation: 20282

Your objective only involves w1 but you can still view it as a function of w1,x,y, where the coefficient of w1 is 1, and the coeffs of x,y are zero:

min w1*1 + x*0 + y*0

Once you see this you can formulate it in the usual way as a "standard" LP.

Upvotes: 4

Related Questions