Home About JaCoP
About JaCoP PDF Print E-mail
Written by Radoslaw Szymanek   
Friday, 21 November 2008 14:28

Java Constraint Programming solver, JaCoP in short, is an open-source Java library, which provides Java user with Constraint Programming technology. JaCoP is actively developed since year 2001. Krzysztof Kuchcinski and Radoslaw Szymanek are the core developers of this Java library. They are working in their free time to improve this library. They both have worked countless hours to create software which is frequently used not only in their research work.

The initial reason to write a constraint library in Java was the lack of constraint tools, which could be easily extended and manipulated. The authors of JaCoP have used commercial solvers before and struggled every day to implement additional functionality within a black box solver. We have chosen Java language for the ease of maintenance, lack of memory management issues, and ease of writing code. Java by its nature is portable and JaCoP as Java library can be run on many different machines without any hassle. We also target web applications and Java is a very popular choice in web domain. We strongly believe that constraint library in Java gives us the best chance to attract people to CP without requiring from them proficiency in programming.

The authors of JaCoP are actively seeking and implementing as many solver techniques from Constraint Programming community as possible. The newest version of JaCoP has many features, such as pruning events, multiple constraint queues, special data structures to handle efficiently backtracking, iterative constraint processing, and many more. We often have to adapt published techniques so they can be efficiently used in the context of Java (specially its garbage collection techniques) and JaCoP architecture. JaCoP has large number of global constraints implemented such as network flow, among, cumulative, element, circuit, assignment, global cardinality constraint, two different versions of diffn, regular constraint, stretch constraint, sequence constraint, three different versions of alldifferent, and two different versions of sum constraint, both negative and positive table constraints. The positive table constraint is implemented in three most recently published different variants. The different versions of constraints implement different consistency methods with different computational and space complexities.


The primary goal for JaCoP was to facilitate research applying Constraint Programming in Electronic Design Automation field. Therefore, the library contains constraints used in scheduling problems, such as cumulative or diffn. As our library matured its goals has been widen to teaching Constraint Programming. JaCoP has been used in teaching Constraint Programming in Sweden, Poland, and USA. There are number of researchers from countries like Sweden, France, Spain, Ireland, and Poland who are using JaCoP for research purposes. There is a significant number of publications which have used JaCoP for running experiments. JaCoP has been used in research within Electronic Design Automation, Software Models, Telecommunication, and Constraint Programming. The number of JaCoP users is growing steadily.

JaCoP starting from version 2.3 is available under GNU Affero GPL. We use dual license model, so we can also license it under different terms if required by commercial entities.

Last Updated on Tuesday, 31 August 2010 13:33
 
Copyright © 2010 JaCoP. All Rights Reserved.
Joomla! is Free Software released under the GNU/GPL License.