I finally found time to mavenize JSR-331 and JavaSolver and make them publicly available through commonly used MVN and GitHub repositories. The latest Release 2.0.1 of April 2020 comes with the following news:
- JSR-331 has been 100% mavenized and moved to the public GibHub repository. You may download all included projects with all sources right from here.
- JSR-331 has been also deployed to the public MVN Repository. It means now you can easily incorporate JSR-331 into your own Maven projects by simply adding JSR-331 dependencies.
- JavaSolver provides a good example of how it can be done – just take a look at its pom.xml file.
I’ve decided to create a very simple Java API built on the top of JSR-331 that with a minimal learning curve will allow regular Java developers to quickly represent and solve optimization problems within their business domains. If you are a Java developer, you probably don’t like to read a lengthy user manual. So, you may quickly analyze one simple example explained at one page, and right away start building their own optimization model directly in Java. You concentrate only on the problem definition by writing one method define() of their Java class inherited from JavaSolver. You may find examples of frequently used constraints here. You don’t have to worry about solving algorithms and simply rely on the standard methods minimize() or maximize() to find an optimal solution. By taking the key advantage of the underlying JSR-331, you can easily switch between different off-the-shelf CP or LP solvers. You may start using Java Solver by downloading it from JavaSolver.comwithout any license limitations.
JSR331 “Java Constraint Programming API” is a JCP Specification Standard developed under the terms of the www.JCP.org. Now it also has its own website: www.jsr331.org. You can download the latest JSR-331 version, see different milestones, and read all release notes. While the software is in a stable state and is used in production environments by various companies, we keep adding new features based on the real-world user requests. You may try JSR-331 and use it for free and without limitations. Please send your suggestions for improvement to firstname.lastname@example.org.
CP-2013 was the 19th International Conference on the Principles and Practice of Constraint Programming (http://cp2013.a4cp.org/) that took place in Uppsala, Sweden on Sep 16-20, 2013. It proved again that this is the major CP event of the year. You may read about breakthrough presentations and major mini-events during the conference in the Hakan’s blog. One of the highlights was First International Lightning Model and Solve Competition when one team “using paper and pen beat nine other teams who had the best optimizing software in the world at their fingertips”- see notes from the winner.
In this post I will concentrate on the workshop “CPSOLVERS-2013“, which I initiated and co-organized together with Hakan Kjellerstrand and Helmut Simonis. Continue reading
The workshop “CP Solvers: Modeling, Applications, Integration, and Standardization” will be held at the 19th International Conference on the Principles and Practice of Constraint Programming (http://cp2013.a4cp.org/) in Uppsala, Sweden exactly in one month on Monday September 16, 2013. The workshop schedule is already in place. It includes 12 presentations – all abstracts and presentations can be found here. At the end of the workshop we will run an Open Panel Discussion moderated by Helmut Simonis, a well-known optimization expert and the current President of ACP. Continue reading
When we initiated JSR-331 standard, the choice of Java was justified (besides other practical advantages) by the fact that users would be able to create their own friendly DSLs (domain specific languages) using different JVM languages. Probably it will be interesting to look how a notorious SEND+MORE=MONEY puzzle can be presented in different JVM languages. We will show it in basic Java, Groovy, Scala, and Closure. Continue reading
Oscar Riveros used JSR-331 to develop a Clojure-based environment for solving puzzles. You may read more in this manual “Constraint Programming with Puzzles“. All sources and examples are freely available from GitHub. I haven’t had a chance to check it myself (yet!) but any comments and suggestions are welcome. Thank you, Oscar!
This is a good trend as JSR331 allows creation of user-friendly domain specific APIs for constraint programming in different JVM languages.
This year the major annual conference “CP 2013” will include a workshop “CP Solvers: Modeling, Applications, Integration, and Standardization” that will be held in Uppsala, Sweden on September 16, 2013. Continue reading
I plan to present the latest state of the JSR-331 standard at the major CP conference CPAIOR that will be held at Yourtown Heights, NY, USA on May 18-22, 2013. Continue reading
I am presenting Constraint Programming for Java Developers at the JavaOne conference on Oct.1 at 10:00 – 11:00 am in San Francisco