Category Archives: Applications

Google vs IBM

A brief look at Google vs IBM: A Constraint Solving Challenge on the Job-Shop Scheduling Problem from ICLP 2019.

The Abstract:

“The job-shop scheduling is one of the most studied optimization problems from the dawn of computer era to the present day. Its combinatorial nature makes it easily expressible as a constraint satisfac- tion problem. In this paper, we compare the performance of two constraint solvers on the job-shop scheduling problem. The solvers in question are: OR-Tools, an open-source solver developed by Google and winner of the last MiniZinc Challenge, and CP Optimizer, a proprietary IBM constraint solver targeted at industrial scheduling problems. The comparison is based on the goodness of the solutions found and the time required to solve the problem instances. First, we target the classic benchmarks from the literature, then we carry out the comparison on a benchmark that was created with known optimal solutions, with sizes comparable to real-world industrial problems.”

From the Conclusion:

“Concluding, CP Optimizer performed slightly better than OR-Tools on the classic benchmark, but was absolutely superior on the large-scale one. In fact, CP Optimizer was able to optimally solve 66% of the large-scale instances, against 29% of OR-Tools (quad core). By exploiting multi cores, OR-Tools was also able to find optimal solutions for the large-scale instances, showing that nowadays CP solvers in general could be successfully applied to real-world industrial problems.”

Old ILOGers — full disclosure I once served on ILOG’s Technical Advisory Board 🙂 will be pleased. And we should all be pleased at the conclusion “showing that nowadays CP solvers in general could be successfully applied to real-world industrial problems”. Of course, CP has been successfully applied in many real-world domains for many years.

Comparing CP and MIP

I recently ran across a paper comparing Constraint Programming (CP) and Mixed-Integer Programming (MIP) for scheduling operating theatres (if you don’t have access, here is what appears to be an earlier version).

I went googling for some other comparisons. Here’s what I found:

Perhaps Google knows I have a CP bias. 🙂 Or perhaps someone can point to alternative results in the Comments.

Configuration

I just received a notification from Google Scholar that Automated Configuration and Selection of SAT Solvers by Holger Hoos, Frank Hutter, and Kevin Leyton-Brown provided the 100th citation of my paper with Susan Epstein, Richard Wallace, Anton Morozov, and Bruce Samuels on The Adaptive Constraint Engine. Which is cool, but the funny thing is that when I was scanning my mailbox, “configuration” caught my eye, and I thought that the citation would be to my work on configuration.

There has been a long series of configuration workshops, going back to one organized by Boi Faltings, Gerhard Friedrich and myself in 1999. To quote from the call for papers for the 2020 workshop: “Configuration is as a special type of design approach where the product being configured is composed from instances of a set of predefined component types that can be combined in ways defined by a set of constraints.”

Configuration provides a great example of the practical application of constraint satisfaction. A good place to see this is a 2016 paper in AI Magazine by Andreas Falkner, Gerhard Friedrich, Alois Haselböck, Gottfried Schenner, and Herwig Schreiner on Twenty-Five Years of Successful Application of Constraint Technologies at Siemens.