h1. Test Eclipse {rarr} {rrar} Open eclipse and select your workspace. If you start out with a blue screen with some circular buttons saying _Welcome_, _Tutorial_, etc., click _Go to Workbench_. Otherwise, you are already at the workbench. Go to _File -> New -> Java Project_. Name your project {{sandbox}}, then click the button {{Finish}}. You now have a new project! In the Package Explorer (left side) right click the arrow next to {{sandbox}} to expand the project. Right click on the {{src}} folder and then go to {{new -> class}}. Name the class {{TestClass}}. Under "Which method stubs would you like to create?" check the box next to {{public static void main(String[] args)}}. Hit the "Finish" button. Then replace {code}// TODO Auto-generated method stub{code} by {code}System.out.println("Hello World!"){code} Save the file {{TestClass.java}} by hitting _Ctrl+s_ or the save button (top left on the menu bar). To run your code, go to the top center of the menu bar and hit the run icon (its a green circle with a white arrow inside), or go to the menu bar and hit {{Run->Run}}. The _Console_ should pop up on the bottom with the output of your program. h1. Test Cplex from Eclipse Open Eclipse and expand the {{sandbox}} project we created previously. Create a new class called {{KnapsackSolver}}. Next we are going to connect to Cplex. Right click on {{sandbox}} in the package explorer and select {{new->folder}}. Give it the name {{lib}} and click "Finish." Find the file cplex.jar in your Cplex installation. On my installation, it was located at {{C:\Program Files\IBM\ILOG\CPLEX_Studio125\cplex\lib\cplex.jar}} Copy the file cplex.jar and paste it in the newly created {{lib}} folder in our project. Right click on {{sandbox}} in the package explorer, then select {{Build Path -> Configure Build Path...}}. Select the "Libraries" tab, then hit the "Add JARs" button (see [here|http://stackoverflow.com/questions/8486403/eclipse-ide-add-jar-add-external-jar-add-library] for an explanation of what all these buttons do). Select the file {{sandbox/lib/cplex.jar}}, then hit OK until we have exited all the menus. Open up {{KnapsackSolver}} and replace the text of the file with the following: {code} import java.util.Arrays; import ilog.concert.IloException; import ilog.concert.IloIntVar; import ilog.cplex.IloCplex; public class KnapsackSolver { public static double[] solveKnapsack(double[] values, double[] weights, double capacity){ if(weights.length != values.length){ throw new RuntimeException("values.length was " + values.length + " and weights.length was" + weights.length + " but they must be the same"); } try { IloCplex cplex = new IloCplex(); IloIntVar[] x = cplex.boolVarArray(values.length); cplex.addLe(cplex.scalProd(x, weights), capacity); cplex.addMaximize(cplex.scalProd(x, values)); cplex.solve(); return cplex.getValues(x); } catch (IloException e) { throw new RuntimeException(); } } public static void main(String[] args){ double[] values = new double[]{2,4,5,6}; double[] weights= new double[]{2,3,4,7}; double capacity = 8; double[] solution = solveKnapsack(values,weights,capacity); System.out.println(Arrays.toString(solution)); } } {code} Run the code. The final line of output should of course be {{\[0.0, 1.0, 1.0, 0.0\]}}, up to some precision. |