[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug-glpk] bug in function glpk (glpkmex)
From: |
John W. Eaton |
Subject: |
[Bug-glpk] bug in function glpk (glpkmex) |
Date: |
Fri, 14 Sep 2007 04:27:37 +0400 |
On 13-Sep-2007, address@hidden wrote:
| If one of the variables in the lb and ub constraints are set to be the
| same, the calculation will be wrong or complain about unable to set
| the constraints.
| Here is an example:
| s=-1;
| c=[10,6,4]';
| a=[1,1,1;...
| 10,4,5;...
| 2,2,6];
| b=[100,600,300]';
| ctype=['U','U','U']';
| lb=[50 0,0]';
| ub=[500, 0, 300]';
| vartype=['C','C','C']';
| param.msglev=3;
| param.lpsolver=1;
| param.save=1;
| [xmin,fmin,status,extra]=glpk(c,a,b,lb,ub,ctype,vartype,s,param)
| -----------------------------------------------
|
| This bug exist in the glpkmex, where the defining type of variables did
| not considered lb[i] == ub[i].
| //-- Define type of the structural variables
| if (! freeLB[i] && ! freeUB[i])
| lpx_set_col_bnds (lp, i+1, LPX_DB, lb[i], ub[i]); // if lb[i]
| == ub[i], then status of LPX_DB, will be incorrect
|
| Change it to //-- Define type of the structural variables
| if (! freeLB[i] && ! freeUB[i])
| if (lb[i] != ub[i]) lpx_set_col_bnds (lp, i+1, LPX_DB,
| lb[i], ub[i]);
| else lpx_set_col_bnds (lp, i+1, LPX_FX,
| lb[i], ub[i]);
| will solve the problem.
I checked in the following change for Octave.
Thanks,
jwe
diffs
Description: Text document