Welcome to the JaCoP web
Java Constraint Programming solver -
JaCoP in short.
This wiki is meant as main element to keep
JaCoP community vibrant and in-touch with each other. Feel free to use this space to advertise/share your experience/work with
JaCoP. We hope that you will help us to keep the documentation of
JaCoP up-to-date with large number of examples and wiki pages explaining how to use CP technology and
JaCoP. This is your chance to contribute back and let other people know your name and work. Great to have you here.
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 number of global constraints implemented such as among, cumulative, element, circuit, assignment, global cardinality constraint, two different versions of diffn, regular constraint, three different versions of alldifferent, and two different versions of sum constraint, both negative and positive table constraints. The positive table constraints has three most recently published different variants of this constraint. The different versions of constraint implement different consistency methods with different computational and space complexities.
Every solver is different as solver applications impose different requirements and make some optimizations not possible.
JaCoP facilitates constraint additions during search and extensive control over internal behavior of the solver. Almost every aspect of the solver can be tweaked. It is necessary if a solver is to be used in research when small things matter and can make your technique run much slower. All data structures are available for manipulation making implementing special search heuristics possible. It is also possible to implement user's own constraints with additional functions, which can be used later during search. Authors strive to achieve the right balance, between ease of use, ease of extension, and efficiency.
JaCoP also supports and extends XCSP format for saving CSP's in XML format.
JaCoP is continuously under development. It is rarely fully backward compatible, as not only new constraints are added, but also internals of the engine are being improved. Authors have concentrated on the core functionality of the constraints, therefore there is no graphical interface available yet, which would help in programs debugging. There are a lot of examples, a short guide and Java Doc documentation, but authors would like to have more time to create more elaborate documentation.
There are quite many other constraint tools which have been implemented since the inception of
JaCoP. Every system is different as they trade extendability, functionality, ease of development for efficiency in a different way. There are tools which sacrifice everything for efficiency, other tools which choose C++ over Java to avoid costs associated with executing Java programs. Our own experiments indicate that
JaCoP is a very good Java solver, but it is slower than good C++ based solver. If you are looking for easy to use, easy to maintain, easy to extend and efficient solver written in Java then
JaCoP is a must try for you. We are currently working hard to prepare version with more documentation which we will release under GNU AGPLv3! For a moment, since that version is not ready yet you need to contact
RadoslawSzymanek by email to receive a copy of
JaCoP.
As soon as you register, feel free to send an email to administrator of
JaCoP wiki so your personal wiki page is created immediately. Afterwards, please write few sentences about yourself. If there is no question mark next to your name on wikipage
TWikiUsers that means that an empty template for your personal wiki page has been created and you can edit it yourself. You will also get access to
JaCoP wiki page and can start helping us making it a better wiki for all of us. Thanks. The registration process is not automatic and requires human-to-human interaction to keep spam-bots away.
JaCoP Documentation
JaCoP Web Utilities
Congratulations, you have finished installing TWiki.
This site is running TWiki version
TWiki-4.2.0, Tue, 22 Jan 2008, build 16278, Plugin API version
1.2
To learn more about TWiki, visit the
TWiki web. Please ensure that the read/write permissions for each web on your site match your access control policies (see
SitePermissions and
TWiki.TWikiPreferences). Replace this text with a description of your new
TWiki site.
Access Control:
Feel free to comment and participate in the wiki creation. This wiki is used for maintaining documentation of
JaCoP development version (currently 2.2).
--
RadoslawSzymanek - 12 Feb 2008