Jacob had an interesting talk on optimal decisions. Jacob has worked in this space for a long time, and has successfully pushed through JSR-331, an award winning standardization effort.
Optimal decisions leverage a variety of technologies, mostly Linear Programming (LP) and Constraint Programming (CP) to solve scheduling, resource allocation, product configuration problems. Numerous large applications embed optimal decisions. For example, allocation of crews to flights, etc.
Jacob illustrated a Constraints Satisfaction Problem (CSP) through a Java example:
x,y,z integers from 0 to 1
subjected to x < y and x+y = z
under cost 3*x*y – 4*z
Using Java JSR-331, the modeling (problem definition, variable definition, constraint definition) is simple, and executing the solver is a simple call that will return the results you can enumerate through. JSR-133 abstracts the differents in naming, API models and concrete APIs. JSR-133 supports both CP and LP techniques.
Modeling languages are an additional way of expressing the models and manage the CSP. OPL and MiniZinc are relatively well known.
Jacob described in some detail the high level view his products enable business users to directly model and execute the search for optimal solutions. They heavily leverage Excel-based table templates and tables – and enable the business user to fully model the problem in that environment. Of course, the Excel-based front-end leverages a Java-based API that can be directly used for other types of front-end if needed.
The execution in deployment can be coded through very simple Java API usage.
Jacob spent time demystifying some of the applications of optimization: in particular scheduling (JSR-331 Scheduler, not official (yet?)). For configuration, the intention is to build JSR-331 Configurator; and for routing, JSR-331 Router. This is an interesting take for standards (going from an horizontal approach to a number of vertical ones), but Jacob can make it successful.
Decision modeling considerations you need to be aware that the choice of the variables is crucial – they need to simply express the problem constraints, they need to be carefully crafted to avoid combinatorial explosion in execution. This is one of the key challenges in modeling, and one of the barriers to adoption in my opinion.
Another key challenge is simply the very hard combinatorial complexity optimization algorithms need to deal with. As Jacob described, different tools have different tweaks and parameters to handle different situations, and frequently solving a hard problem requires the combination of different technologies, a lot of experience and skills, applying a number of heuristics. It is difficult to imagine that business users provided with friendly and powerful interfaces can on their own solve this type of problems. The best results are achieved by pairing SMEs with OR specialists.
The investment in solving this type of problems, however, can have huge payoffs.
Learn more about Decision Management and Sparkling Logic’s SMARTS™ Data-Powered Decision Manager