- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Hello
I am getting optimal feasible solution as 31250 with decision variable values 0, 7.5 and 20.
proc optmodel;
var x{1..3}>=0;
max z=900*x[1]+1500*x[2]+1000*x[3];
con c1: 50000*x[1]+12000*x[2]+8000*x[3]<=250000;
con c2: 1*x[1]+0*x[2]+0*x[3]<=4;
con c3: 0*x[1]+1*x[2]+0*x[3]<=15;
con c4: 0*x[1]+0*x[2]+1*x[3]<=20;
solve with milp/presolver=none;
print x[1] x[2] x[3];
quit;
x1,x3>=0 or integer
x2>=0.
But in excel it is given as 42,250 optimal feasible solution with decision variable values 4, 4.16,0. Please help if I am going wrong.
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
You have not specified any integer variables. Use the INTEGER option in the VAR statement and then the .RELAX suffix to relax x[2]. Also, you need not enter the zero coefficients explicitly. In fact, you can avoid those last three constraints by instead using the .UB variable suffix:
proc optmodel;
var x{1..3}>=0 integer;
x[2].relax = 1;
max z=900*x[1]+1500*x[2]+1000*x[3];
con c1: 50000*x[1]+12000*x[2]+8000*x[3]<=250000;
x[1].ub = 4;
x[2].ub = 15;
x[3].ub = 20;
solve with milp/presolver=none;
print x;
quit;
If you change the objective coefficient for x[1] from 900 to 9000, you do get an optimal objective value of 42,250.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
You have not specified any integer variables. Use the INTEGER option in the VAR statement and then the .RELAX suffix to relax x[2]. Also, you need not enter the zero coefficients explicitly. In fact, you can avoid those last three constraints by instead using the .UB variable suffix:
proc optmodel;
var x{1..3}>=0 integer;
x[2].relax = 1;
max z=900*x[1]+1500*x[2]+1000*x[3];
con c1: 50000*x[1]+12000*x[2]+8000*x[3]<=250000;
x[1].ub = 4;
x[2].ub = 15;
x[3].ub = 20;
solve with milp/presolver=none;
print x;
quit;
If you change the objective coefficient for x[1] from 900 to 9000, you do get an optimal objective value of 42,250.