Hi All;
First of all, I must say I'm a newbee to linear programing and GLPK.
I want to solve a problem forcing the sctructural variables to be integer, but the result has no
integers, using simplex o interiro point. I´m using the java interface to 4.8 version.
Here's the code:
GlpkSolver solver = new GlpkSolver();
solver.setObjDir(GlpkSolver.LPX_MAX);
solver.setClss(GlpkSolver.LPX_MIP);
solver.addRows(auxVars.length);
for (int i = 1; i <= auxVars.length; i++) {
solver.setRowName(i, "p" + i);
solver.setRowBnds(i, GlpkSolver.LPX_UP, 0, auxVars[i - 1]);
}
solver.addCols(objCoefs.length);
for (int j = 1; j <= objCoefs.length; j++) {
solver.setColName(j, "x" + j);
solver.setColKind(j, GlpkSolver.LPX_IV);
solver.setColBnds(j, GlpkSolver.LPX_DB, 0, 17);
//solver.setColBnds(j, GlpkSolver.LPX_LO, 0, 0);
solver.setObjCoef(j, objCoefs[j - 1]);
}
//int n=constrCoefs.length*constrCoefs[0].length;
int nonzeroscounter=0;
for(int k=0;k<constrCoefs.length;k++){
for(int m=0;m<constrCoefs[k].length;m++){
if(constrCoefs[k][m]!=0.0) nonzeroscounter++;
}
}
System.out.println("nonzeroscounter..."+nonzeroscounter);
int ia[]= new int[nonzeroscounter+1];
int ja[] =new int[nonzeroscounter+1];
double ar[]= new double[nonzeroscounter+1];
int index=0;
for(int k=0;k<constrCoefs.length;k++){
System.out.println("k..."+k);
for(int m=0;m<constrCoefs[k].length;m++){
System.out.println("m..."+m);
if(constrCoefs[k][m]!=0.0){
ia[index+1]=k+1;
ja[index+1]=m+1;
ar[index+1]=constrCoefs[k][m];
index++;
System.out.println("index..."+index);
}
}
}
solver.loadMatrix(nonzeroscounter, ia, ja, ar);
solver.simplex()
and the solution is:
x1=3.333333333333333
x2=6.666666666666667
x3=0.0
so, not integers at all, any suggestions????
Thanks in advance
Igor
_______________________________________________ Help-glpk mailing list [email protected] http://lists.gnu.org/mailman/listinfo/help-glpk
