From 4846cc9fcf3c4ccda5df6957f7b30bcafe46bfd0 Mon Sep 17 00:00:00 2001 From: khashab2 <khashab2@illinois.edu> Date: Wed, 2 Nov 2016 20:04:34 -0500 Subject: [PATCH] change the version to 8, and minor extension to GurobiHook. --- pom.xml | 2 +- .../cs/cogcomp/infer/ilp/GurobiHook.java | 17 +++++++++++++- .../cs/cogcomp/infer/ilp/GurobiHookTest.java | 23 +++++++++++++++++++ .../cs/cogcomp/infer/ilp/OJalgoHookTest.java | 1 - 4 files changed, 40 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index 866f955..41c0844 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 89a836d..06ff5a8 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 e5caf60..f2258d9 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 efcd290..2e4e98f 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 -- GitLab