diff --git a/pom.xml b/pom.xml index 866f955dbedbb499933cb10f25f28dd846e0eb0b..41c0844853d70becd540dbf4303ca146a1656c08 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ <groupId>edu.illinois.cs.cogcomp</groupId> <artifactId>illinois-inference</artifactId> <packaging>jar</packaging> - <version>0.7.0</version> + <version>0.8.0</version> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> diff --git a/src/main/java/edu/illinois/cs/cogcomp/infer/ilp/GurobiHook.java b/src/main/java/edu/illinois/cs/cogcomp/infer/ilp/GurobiHook.java index 89a836d59bec439600c7702248a9bc67946bf29e..06ff5a844213a3d83f13243ffe4dc0d498e5fb4d 100644 --- a/src/main/java/edu/illinois/cs/cogcomp/infer/ilp/GurobiHook.java +++ b/src/main/java/edu/illinois/cs/cogcomp/infer/ilp/GurobiHook.java @@ -439,12 +439,27 @@ public class GurobiHook implements ILPSolver { @Override public int getIntegerValue(int index) { + if (!isSolved) + return 0; + try { + double x = ((GRBVar) variables.get(index)).get(GRB.DoubleAttr.X); + return (int)Math.round(x); + } catch (GRBException e) { + handleException(e); + } return 0; } @Override public double getRealValue(int index) { - return 0; + if (!isSolved) + return 0.0; + try { + return ((GRBVar) variables.get(index)).get(GRB.DoubleAttr.X); + } catch (GRBException e) { + handleException(e); + } + return 0.0; } diff --git a/src/test/java/edu/illinois/cs/cogcomp/infer/ilp/GurobiHookTest.java b/src/test/java/edu/illinois/cs/cogcomp/infer/ilp/GurobiHookTest.java index e5caf60a623287b8d54399ca01fbaa2fde88f8e2..f2258d9fabd48dad976b218284295f2c9253416f 100644 --- a/src/test/java/edu/illinois/cs/cogcomp/infer/ilp/GurobiHookTest.java +++ b/src/test/java/edu/illinois/cs/cogcomp/infer/ilp/GurobiHookTest.java @@ -271,7 +271,30 @@ public class GurobiHookTest { assertTrue(ojaHook.getBooleanValue(5)); } + @Test + public void testProgram10() throws Exception { + GurobiHook ojaHook = new GurobiHook(); + double[] objcoeffs = {0, 1, 2}; + int[] indices = ojaHook.addDiscreteVariable(objcoeffs); + ojaHook.setMaximize(true); + + try { + ojaHook.solve(); + } catch (Exception e) { + e.printStackTrace(); + } + + System.out.println(indices[0] + "/ " + indices[1] + " / " + indices[2]); + ojaHook.printSolution(); + ojaHook.printModelStatus(); + + assertTrue(ojaHook.objectiveValue() == 2); + assertTrue(ojaHook.getBooleanValue(indices[2])); + assertTrue(!ojaHook.getBooleanValue(indices[1])); + assertTrue(!ojaHook.getBooleanValue(indices[0])); + } + } \ No newline at end of file diff --git a/src/test/java/edu/illinois/cs/cogcomp/infer/ilp/OJalgoHookTest.java b/src/test/java/edu/illinois/cs/cogcomp/infer/ilp/OJalgoHookTest.java index efcd29034c3ed622ca1fbf12fce6718a3ba79189..2e4e98ff9e479671e41176291395695df193c4d8 100644 --- a/src/test/java/edu/illinois/cs/cogcomp/infer/ilp/OJalgoHookTest.java +++ b/src/test/java/edu/illinois/cs/cogcomp/infer/ilp/OJalgoHookTest.java @@ -287,5 +287,4 @@ public class OJalgoHookTest { assertTrue(!ojaHook.getBooleanValue(4)); assertTrue(ojaHook.getBooleanValue(5)); } - } \ No newline at end of file