JaCoP

JaCoP / IntegerProgramming / 0.1.1

README.md
This is an algorithm for integer programming (also known as integer linear programming) built on the JaCoP Constraint Programming Solver (https://github.com/radsz/jacop). Read more about integer programming at https://en.wikipedia.org/wiki/Integer_programming. It's arguments are
  1. A String array of variable names
  2. An int vector c defining the cost of the returned solution via c^(T)x.
  3. An int array of lower bounds for the corresponding variables
  4. An int array of upper bounds for the corresponding variables
  5. An int matrix (int[][]) that defines the matrix part of the linear constraints
  6. A String array denoting the nature of each constraint, either "<",">","<=", or ">=".
  7. An int array (int[]) defining the right hand side of the linear constraints.
The output is a Map<String,Int> containing each variable name as key and its value in the found solution as value.  

Note that this implementation minimizes c^(T)x and uses branch-and-bound. To maximize, change the signs of the integers in c.  For more information consult the JaCoP documentation at http://jacopguide.osolpro.com/guideJaCoP.html#x1-510006.