Blog

The JaCoP constraint programming solver received the silver medal (second place) in the MIniZinc solver challenge in the fix search category this year. This year, the MiniZinc challenge was organized by Data61 and CSIRO and had 15 entrants (solvers). In the competition each solver was given 20 different problems, each having 5 sets of input data, all together 100 different instances to solve. For more information please check www.minizinc.org/challenge2016/results2016.html.

Maven Central

Dear all,

We have deployed JaCoP 4.4 on Maven Central.

You can find the artefact by browsing this page - http://search.maven.org/#artifactdetails%7Corg.jacop%7Cjacop%7C4.4.0%7Cjar

best regards,

Core Developers Team

JaCoP 4.4
Dear users,
 
We have just released JaCoP 4.4. Feel free to download a compiled version from http://sourceforge.net/projects/jacop-solver/ or to clone JaCoP repository from https://github.com/radsz/jacop and contribute.
 
In this release we made several performance improvements and added new constraints. For more information on new features and changes please refer to CHANGLOG file. This release fixes also few bugs (e.g. GCC constraint). 
 
Best regards,
JaCoP Core Developer Team
YourKit Java Profiler

We would like to thank YourKit supports open source projects with its full-featured Java Profiler. YourKit, LLC is the creator of YourKit Java Profiler innovative and intelligent tools for profiling Java and .NET applications. It will help us to make JaCoP even faster ;). 

Core Developer team

JaCoP 4.3
Dear users,
 
We have just released JaCoP 4.3. Feel free to download a compiled version from http://sourceforge.net/projects/jacop-solver/ or to clone JaCoP repository from https://github.com/radsz/jacop and contribute.
 
In this release we made several performance improvements, added new constraints and integrated SAT solver in JaCoP. Flatzinc interpreter can use it with option -sat. This version is fully compatible with minizinc 2.0 standard. For more information on new features and changes please refer to CHANGLOG file. This release fixes also few bugs.
 
Best regards,
JaCoP Core Developer Team
JaCoP 4.2
Dear users,
JaCoP 4.2 has been released. Feel free to download a compiled version from http://sourceforge.net/projects/jacop-solver/ or to clone JaCoP repository from https://github.com/radsz/jacop  and contribute.
This release contains several new features and improvements. First, this version is compatible with newly released minizinc 2.0. Please, use the new JaCoP minizinc library from directory src/main/minizinc/org/jacop/minizinc/ when compiling minizinc files. It offers newly introduced, in minizinc, global constraints knapsack, network_flow and geost. We have also developed a flatzinc loader that makes it possible to load flatzinc models and then use the created model in Java. 
The new search method, SGMPCS search, has been added to the solver . It is based on the original work by J. C. Beck and presented in the paper entitled "Solution-Guided Multi-Point Constructive Search for Job Shop Scheduling". 
Directory org.jacop.examples.flatzinc contains examples of applications for flatzinc loader, SGMPCS search and minimization method for floating point problems.
This release fixes also few bugs and makes improvements in several parts of the solver.
Best regards,
JaCoP Core Developer Team
JaCoP 4.1

Dear users,

We have just released JaCoP 4.1. Feel free to clone JaCoP repository - https://github.com/radsz/jacop and contribute. In this release we introduce floating-point variables (FloatVar) and constraints on these variables. The methods used in floating point domain of JaCoP are based on floating point intervals and consistency methods build around them. We provide a set of basic arithmetic constraints as well as square root, absolute value, trigonometric constraints (sin, cos,tan, asin, acos, atan), exponential constraint and natural logarithm. Moreover element constraint and equation between integer and float variables makes it possible to build models that mix different JaCoP variables. We have also included experimental implementation of several features that is not consider as final and can change in future.

The floating point domain is fully integrated with JaCoP solver. The same search methods can be used as well as floating point variables can be used as cost functions for minimization. We provide also specialized optimization methods that are specially developed for floating point variables.

The released version provides also flatzinc interpreter for floating point variables. Minizinc models containing float variables can be compiled using standard mzn2fzn compiler and used by JaCoP solver.

This release fixes also few bugs.

Best regards,
JaCoP Core Developer Team

AMPL Driver for JaCoP

Dear all, 

We are happy to announce that Victor Zverovich from AMPL has created a driver that allows to use JaCoP from AMPL. As most AMPL drivers, the jacop driver is open source. This driver is available from the AMPL repository on GitHub: https://github.com/vitaut/ampl/tree/master/solvers/jacop .

Feel free to check this driver and contribute in any manner possible. It is said to be fairly complete and implementing all of the AMPL constraint programming extensions and a set of options.

We would like to thank Victor and AMPL for their work.

best regards,

JaCoP core developer team

Dear all, 

We decided to move the source code for the newest version of JaCoP (4.0.0.RC1) to Github. We are happy users of Git and Github is an obvious choice. Feel free to clone JaCoP repository - https://github.com/radsz/jacop and contribute. The changes within the newest JaCoP 4.0.0.RC1 are published here.

best regards,

JaCoP core developer team

JaCoP 3.2

Dear users,

We have just released JaCoP 3.2. This is a release that fixes few bugs as well as provides an interface from Scala to JaCoP. Examples using Scala are provided in ExamplesScala package.

Hakan Kjellrstand at his blog discusses Scala wrapper for JaCoP as well as provides additional examples at his repository of Scala examples

best regards,

Core Developer Team

Dear all,

We are working hard in our free time. There are multiple aspects that are being currently on our agenda. First, SAT solver that cooperates internally with JaCoP so constraints can send explanation to SAT solver. Second, we are polishing a stochastic subpackage within a JaCoP so it possible to model problems with stochastic variables specified only by their distribution and without user control of their value. SAT solver is the result of the project done by Simon Cruanes, and the first version of Stochastic subpackage was the result of the work of another student Sreenivas Kartik Buddha. We would like to thank them for their help in developing JaCoP. 

We forgot to mention that JaCoP was again awarded a silver price in the fixed category among the elligible solvers for the awards in the Minizinc Challenge 2011.

We would like to thank Peter Stuckey and his team for all their work in running an interesting competition. It is gratifying to see that our focus on global constraints and modeling expressiveness is paying off. We hope that for the next year competition we will have even more problems with global constraints like network flow constraint, knapsack constraint, and geost constraint which have not been used yet in this year solver competition.

If anybody would like to have access to the upcoming version of JaCoP containing SAT and Stochastic package please contact me for details at ( radoslaw dot szymanek at gmail dot com ).

best regards,

Radoslaw Szymanek and Krzysztof Kuchcinski

Scala and JaCoP

Dear all,

Scala programming language gets more and more acceptance in the community. It compiles to Java byte code and is executed using JVM. This makes it possible to use JaCoP directly in Scala by importing its packages. However, since Scala offers a nice way to define domain specific languages (DSL), we have developed an experimental implementation of the DSL for JaCoP solver.

Our implementation uses several Scala features to define a clear way of using JaCoP solver. We overloaded operators to specify easily arithmetical, logical and set constraints. We also use the package object to gather global constraints and search methods.  This together with Scala features, such as implicit conversions, simplifies use of JaCoP and makes it easier to understand.


The implementation (available on Sourceforge)  is still experimental and we will be happy to get comments and proposals for improvements. We hope that this work will make it easier for Scala community to use JaCoP solver/CP technology.

Best regards,
Core Developer Team

JaCoP 3.1

Dear users,

We have just released JaCoP 3.1. This is a release that fixes few bugs as well as provides a new Binpacking constraint. The Binpacking constraint allows modeling of problems exhibiting bin packing problem structure. The addition of this constraint introduced changes to minizinc/fz library in JaCoP since the definitions of bin_packing.mzn, bin_packin_capa.mzn and bin_packing_load.mzn have been added. The JaCoP guide has been updated to explain how to use Binpacking constraint.


best regards,
Core Developer Team