0


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.

2 Answers 2

4

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.

Sign up to request clarification or add additional context in comments.

Comments

2

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); 

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.