A New Business-Oriented CP Interface

OpenRules RuleSolver is an open source tool that adds the power of Constraint and Linear Programming to Business Decision Modeling. A newly introduced decision tables allow business users to express complex optimization problems using intuitive decision tables. It integrates Rule Engines and Constraint/Linear Solvers to support declarative Decision Modeling. You may find many examples here. The underlying implementation is based on JSR-331. Link

Posted in Uncategorized | Leave a comment

JavaSolver and JSR331 available from GitHub and MVN Repositories

JSR331JavaSolverI 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.
Posted in Uncategorized | Leave a comment

Java Solver

JavaSolverI’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.

Posted in Uncategorized | Leave a comment

JSR-331 Update

JSR331JSR331 “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 jacobfeldman@openrules.com.

Posted in Uncategorized | Leave a comment

After CP-2013

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

Posted in Uncategorized | Leave a comment

CPSOLVERS-2013 Workshop and Live CP/LP/MIP Catalogues: update

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 ACPContinue reading

Posted in Uncategorized | Leave a comment

JSR-331 in different JVM languages

JSR331When 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

Posted in Uncategorized | 2 Comments

Clojure and JSR-331

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.

Posted in Uncategorized | Leave a comment

Workshop “CP Solvers” at CP-2013

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

Posted in Uncategorized | Leave a comment

JSR-331 at CPAIOR 2013

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

Posted in Uncategorized | Leave a comment