Releases: decisionbrain/cplex-scala
Releases · decisionbrain/cplex-scala
cplex-scala-1.7.0
Here are the main changes this release:
- Port to CPLEX 12.10 and Scala 2.13
- Port to Gradle 5.6.2
- Method
getObjectiveValue
is now obsolete and replaced by methodgetObjValue
- Add API for the CPLEX annotations, see methods
newLongAnnotation
,setAnnotation
,getAnnotation
... - Add example
Benders
that applies a Benders decomposition using the CPLEX annotations - Add functional programming API for piecewise linear functions.
- Add example
SailcoPW
that uses of a piecewise linear function to create the objective. - Add example
Transport.scala
- Add optional parameter when creating a set of variables to specify a default value
- Add API for MIP start, read and write solutions to file
- Add API to redirect CPLEX info, warnings and errors to output stream
- Add API for CPLEX aborter
- Add API to get the MIP relative gap
- Add functional programming API for MIP information callbacks
cplex-scala-1.6.0
Here are the changes in this release:
- Add API for KPIs in class
CpModel
: see examplePlantLocation.scala
- Add methods
quot
in classCpModel
for division and define operators '/' in class NumExpr - Move methods
add
fromCpModel
andMpModel
to classModeler
- Add methods
remove
in classModeler
to remove object(s) from the optimization model - Add method
square
in classModeler
for quadratic programming. - Add methods to get the reduced cost(s), the dual(s) and the slack(s)
- Add an first example of quadratic programming problem, see example
IndefQPex1.scala
cplex-scala-1.5.2
This is a hotfix:
- Update Gradle file
build.gradle
: set default values for environment variables for the Nexus.
The library is the same as in release 1.5.0.
cplex-scala-1.5.1
This is a hotfix:
- Fix error in release notes for release 1.5.0
- Upate file
Jenkinsfile
for continuous build
The library is the same as in release 1.5.0.
cplex-scala-1.5.0
- Update Gradle wrapper to release 5.4
- Add API for multi-objective in MpModel: see example DietMultiObj.scala
- Define method apply in classes
NumArray
,IntArray
andIntExprArray
for element constraint: this allows to write constructs likecost = costs(supplier)
wherecosts
is an array of integer,supplier
is an integer variable andcost
is an integer expression that represents the cost of the supplier. SeeFacility.scala
for a complete example. - Add operator * on classes
NumArray
,IntArray
,NumVarArray
andIntExprArray
for scalar product. - Refactoring:
- Add class Modeler to build optimization model: CpModel and MpModel now inherits from Modeler
- Move many classes such as
NumExpr
,IntExpr
,NumVar
,IntVar
,Objective
from package com.decisoinbrain.cplex.mp and com.decisionbrain.cplex.cp to com.decisionbrain.cplex. - These entities are now shared and can be used to build either a mathematical programming model or a constraint
programming model.
- Update file
build.gradle
: replace dependency withoplall.jar
by dependencies withcplex.jar
and
ILOG.CP.jar
instead.
cplex-scala-1.4.0
README
- Port to IBM CPLEX 12.9
- Port to Scala 2.12.8
Constraint Programming
- Add two new examples
LearningCurve.scala
andLearningCurve2.scala
a scheduling problem on two alternative heterogeneous machines with sequence dependent setup times, forbidden transitions and a learning curve when changing of type. The second example is a variation where the learning curve depends not only on the current type and the previous type but also on the machine. - Fix bugs with the parameters timeLimit and solutionLimit of method solve of CpModel.
cplex-scala-1.3.0
README
- Port to IBM CPLEX 12.8
- Port to Scala 2.12.6
Constraint Programming
- Add iterators on cumul function expression, state function, step function and piecewise linear function.
- Add type
IntSet
, factory methods and iterator - Add API for inverse constraint and add example
Talent.scala
- Add new signature for alternative constraint with only two parameters
- Add API on interval sequence variable: add methods getFirst, getLast, getNext and getPrev
- Add class for IntervalSequenceVar that implements trait Iterable
- Add example
SchedState.scala
: a scheduling problem on two alternative heterogeneous machines with sequence dependent setup times and forbidden transisions
cplex-scala v1.2.0
README
- Add a link to IBM ILOG CPLEX Studio Community Edition download page in the README
Constraint Programming
- Add state function
- Add constraints alwaysIn, alwaysEqual, alwaysConstant and alwaysNoState on state functions
- Add example SchedState.scala
- Add missing precedence constraints in companion object of CpModel
- Add constraints alwaysEqual on cumul functions
- Add integer division on integer expression
cplex-scala v1.1.0
README
- Use syntax highlighting for scala code blocks
- Update README: specify version of Java JDK used for testing
Constraint Programming:
- Add constraint forbidStart, forbidEnd, forbidExtent
- Replace type NumToNumStepFunction with a class, define operators (+=, -=, *=, +, -...) and a proper toString method that prints the step function in a human readable format.
- Add example SchedCalendar.
cplex-scala v1.0.1
Update README.md with new equation and support to IBM ILOG CPLEX 12.7. Update build.gradle to optionally configure maven repository.