[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Help-glpk] sample Java code for ILP
From: |
KAKAR, RATIKA |
Subject: |
[Help-glpk] sample Java code for ILP |
Date: |
Sun, 17 Aug 2008 21:25:15 -0400 |
Hi All,
I thought this might be useful to people who might be starting out
coding for an ILP problem in Java.
ILP problem:
Max z = 10x1 + 6x2+ 4x3
s.t
x1 + x2 + x3 <= 100
10x1 + 4x2 + 5x3 <= 600
2x1 + 2x2 + 6x3 <= 300
and x1 >= 0, x2 >= 0, x3 > = 0
Here is the Java code for this ILP problem.
import org.gnu.glpk.*;
public class Final_ILP_GlpkSolverDemo
{
public static void main(String args[])
{
//Setting the classpath
//javac -classpath .;glpk.jar GlpkSolverDemo.java
//java -classpath .;glpk.jar GlpkSolverDemo
// . refers to current directory
int[] ia = new int[1+1000];
int[] ja = new int[1+1000];
double[] ar= new double[1+1000];
double z;
double x1;
double x2;
double x3;
GlpkSolver solver = new GlpkSolver();
solver.setClss(GlpkSolver.LPX_MIP);
solver.setObjName("sample");
solver.setObjDir(GlpkSolver.LPX_MAX);
solver.addRows(3);
solver.setRowName(1,"p");
solver.setRowBnds(1,GlpkSolver.LPX_UP,0.0,100.0);
solver.setRowName(1,"q");
solver.setRowBnds(2,GlpkSolver.LPX_UP,0.0,600.0);
solver.setRowName(1,"r");
solver.setRowBnds(3,GlpkSolver.LPX_UP,0.0,300.0);
solver.addCols(3);
solver.setColName(1,"x1");
solver.setColBnds(1,GlpkSolver.LPX_LO,0.0,0.0);
solver.setObjCoef(1,10.0);
solver.setColName(2,"x2");
solver.setColBnds(2,GlpkSolver.LPX_LO,0.0,0.0);
solver.setObjCoef(2,6.0);
solver.setColName(3,"x3");
solver.setColBnds(3,GlpkSolver.LPX_LO,0.0,0.0);
solver.setObjCoef(3,4.0);
solver.setColKind(1, GlpkSolver.LPX_IV);
solver.setColKind(2, GlpkSolver.LPX_IV);
solver.setColKind(1, GlpkSolver.LPX_IV);
ia[1]=1; ja[1]=1; ar[1]=1.0;
ia[2]=1; ja[2]=2; ar[2]=1.0;
ia[3]=1; ja[3]=3; ar[3]=1.0;
ia[4]=2; ja[4]=1; ar[4]=10.0;
ia[5]=3; ja[5]=1; ar[5]=2.0;
ia[6]=2; ja[6]=2; ar[6]=4.0;
ia[7]=3; ja[7]=2; ar[7]=2.0;
ia[8]=2; ja[8]=3; ar[8]=5.0;
ia[9]=3; ja[9]=3; ar[9]=6.0;
solver.loadMatrix(9,ia,ja,ar);
solver.simplex();
// These values give LP sol. Thats why, I am not printing them.
z=solver.getObjVal();
x1=solver.getColPrim(1);
x2=solver.getColPrim(2);
x3=solver.getColPrim(3);
solver.integer();
solver.printMip("sol_ilp.txt");
solver.deleteProb();
}
}
Thanks.
Ratika
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Help-glpk] sample Java code for ILP,
KAKAR, RATIKA <=