Decision Modeling: Declarative vs Procedural

The ultimate objective of Business Decision Modeling:

A business analyst (subject matter expert) defines a business problem, and a smart decision engine solves the problem by finding the best possible decision.

Declarative decision modeling assumes that a business user specifies WHAT TO DO and a decision engine figures out HOW TO DO it. This is quite opposite to the Procedural approach frequently used in traditional programming.

Continue reading

Incorporating Optimization Engines in Business Decision Models

On June 30 I will present “Developing Decision Optimization Microservices for Real-World Decision-Making Applications” at DecisionCAMP-2020. Preparing my presentation, I thought about the major points I want to make. Of course, first of all, I want to demonstrate how to develop optimization services, but I also want to stress how the proposed approach helps to bring already great optimization tools into the everyday reality of business application development. Continue reading

Inside/Outside Production Planner

Last week I created a “Worker Planner” that has a nice GUI deployed on Apache Tomcat and it works in sync with a remote Scheduling Decision Service deployed as AWS Lambda.  The scheduling service was implemented with JavaSolver and a constraint solver included into JSR331. My objective was to demonstrate that these days with cloud-based deployment it is not so difficult to create an end-to-end full-scale decision optimization service. I also wanted to show how to apply powerful Linear Solvers to crack traditionally complex production scheduling problems. So, two days ago I took a well-known problem that is described in this example: Continue reading

Building a Live Worker Scheduler

There are already several good responses to the DMCommunity’s April-2020 Challenge “Doctor Planning”. Below I am describing how I tried to use this challenge to create a complete decision optimization service. I ended up with a working Worker Scheduler that shows a solution for this particular challenge in Fig. 1 (click to open):

Continue reading

Deploying Decision Optimization Models as AWS Lambda Microservices

OpenRules offers two open source products to support an integrated use of “Business Decision Modeling with Rule Engines and CP/LP Solvers“:

In this post I will describe how you can deploy decision optimization models as AWS Decision Microservices without programming or complex configuration. Continue reading

Immediate Assistance with Your Decision Services

In these uncertain times, to do our part we want to help US businesses, especially health organizations to quickly make important operational decisions. OpenRules offers immediate assistance in creation and deployment of your decisions services on-cloud or on-premise.

  • If you need a quick implementation of optimization decision services, we will help you to define and resolve your problem with the freely available Java Solver.
  • If you need to quickly create a rules-based decision service and deploy it to AWS cloud, we will give you 3 months free access to our SaaS Rule Engine.

Contact us at support@openrules.com and we will setup a call to discuss how we can be in help. As the CTO at OpenRules, I’d allocate my personal time to help you with your urgent decision automation problems for free – email me directly at jacobfeldman@openrules.com

Solving the DMC Challenge “CrackTheCode” with JavaSolver

The Sep-2019 DMC Challenge “CrackTheCode” is a simple puzzle. We need to crack a 3 digit code based on these hints:

682 – one number is correct and in the correct position
645 – one number is correct but in the wrong position
206 – two numbers are correct but in the wrong positions
738 – nothing is correct
780 – one number is correct but in the wrong position. Continue reading

Building Decision Models for DMCommunity.org Challenge “Balanced Assignment”

DMCommunity Sep-2018 Challenge “Balanced Assignment” gives an example of a complex business problem with a serious optimization component. This problem deals with the assignment of people to different project groups. Usually, such problems require deep knowledge of optimization techniques. My interest was to build a decision model for this problem and to investigate what can be done by business people and where the involvement of optimization experts is necessary. So, I attempted to use a business-friendly approach to represent and to solve this complex problem. It was not a simple journey, and this article describes what I did successfully and where I failed. Link

Model-based Solutions for Advanced Vacation Days Challenge

I provided two solutions for DMCommunity.org Challenge “Vacation Days Advanced”. So far, all decision models submitted as solutions for the old Jan-2016 Challenge and the new challenge were “method-based” meaning they describe exactly how to assign extra days while avoiding possible conflicts. I tried to apply a new “model-based” approach that concentrates on “what” instead of “how” and finds not just one of many possible solutions but the optimal one.  The first decision model consists of clearly separated two parts: 1) Business Part presented in Excel decision tables; 2) Technical Part presented in Java using the JSR-331 standard. The second decision model is an attempt to present both parts completely in DMN-like decision tables using Excel only (the supporting Java code is hidden in new Excel templates). You may analyze both solutions here. I’d appreciate comments and suggestions for improvement.

“Model-based” vs. “Method-based” Approaches to Decision Modeling

In Aug-2018 Prof. Robert Fourer gave a tutorial “Model-based Optimization“, in which he compares two essentially different approaches to modeling optimization problem: “model-based” vs. “method-based”. He is using a relatively complex “Balanced Assignment” problem to demonstrate his points. While Fourer’s tutorial deals with optimization, I believe the same arguments are directly related to Decision Modeling that so far mainly remains method-based. During DecisionCAMP-2018 we had interesting (and sometimes hot) discussions about these two approaches and in my closing remarks I described the major differences between them as follows: Continue reading

DMCommunity Challenge July-2018 “Zoo, Buses, and Kids”

The July’s challenge “Zoo, Buses, and Kids” deals with a very simple optimization problem:
“300 kids need to travel to the London zoo. The school may rent 40 seats and 30 seats buses for 500£ and 400£. How many buses of each to minimize cost?”
Naturally, a constraint solver nicely and easily solves this and more complex constraint satisfaction problems as shown in Philippe Laborie’s solution. When today I saw  a pure SQL solution provided by Damir Sudarevic, I thought that it’s time to model this problem as a business decision model. It would not be as compact as provided solutions, but it should be oriented to business users.  Continue reading

Raymond Smullyan’s Retro-Analysis and Decision Modeling

When I learned that the famous Prof. Raymond Smullyan passed away this February at the age of 97, I felt grateful to the man whose books and puzzles my friends and I enjoyed reading as young programmers many years ago. Later on we shared them with our children. I wanted somehow to mark this event and decided to buy his book “The Chess Mysteries of Sherlock Holmes” to read on vacation. Ten days ago I started to read the book during my flight from Newark to Jamaica and… haven’t even noticed as we landed. Continue reading

Building a Custom Scheduler with OpenRules and JSR-331

One of the largest Japanese telecom company is successfully using OpenRules being integrated with a BPM product produced by our partner Intra-Mart. Last month this customer asked us to help with development of a custom scheduler capable to schedule thousands of cable construction operations subject to various precedence and exclusivity constraints. Continue reading

Decision Models: Finding Alternative and Optimal Decisions

People frequently assume that a good, consistent decision model should produce one and only one decision (solution) for any valid input. However, in real-world applications we frequently deal with situations when a decision model may produce multiple feasible solutions for the same input. And it does not mean that the decision model is incomplete – simply a user may choose the most appropriate solution among all produced decisions. It can be done interactively or by adding more rules. I’ve already provided an example “Monkey Business Analyzed” that describes how to deal with multiple decisions using OpenRules What-If Analyzer.  In this post I will describe another  decision model that also shows how to choose an optimal decision among multiple feasible decisions. Continue reading

Solving Rule Conflicts – Part 2

“The Sleep of Reason Produces Monsters”, Francisco Goya

 Defeasible Logic and Business Rules with Probabilities

Modern rules and decisions management systems provide effective mechanisms for development of good decision models. However, building real-world decision models people always face complex issues related to diagnostic and resolution of rule conflicts. Some systems can effectively verify decision model consistency and diagnose rule conflicts. But there are no practically used Business Rules (BR) products that claim that they may automatically resolve rule conflicts.

In the Part 1 of this series I described how end users can represent their rules in single-hit and multi-hit decision tables while avoiding rule conflicts. But is it possible to automatically resolve rule conflicts? I will discuss this problem below. Continue reading

Combining Constraint Solving with Business Rules and Machine Learning – CoCoMiLe 2013

The integration of different decision making techniques finally is finding its home under the roof of the Decision Management movement. I am glad that an integrated Constraint Programming (CP), Business Rules (BR), and Machine Learning (ML) approach is gaining in popularity as well. An interesting workshop “CoCoMiLe 2013 – Continue reading

Fischer vs. Kasparov vs. Karpov

On a long flight back to the US I had a few hours to kill. So, I decided to implement one of my favorite modeling tests that I used to give to my students and they always enjoyed it. This time I wanted to try it myself with the newest OpenRules Decision Modeling facilities (see Rule Solver).

Virtual Chess Tournament
Three world champions Fischer, Kasparov, and Karpov played in a virtual chess tournament. Each player played 7 games against two other opponents. Each player received 2 points for a victory, 1 for a draw, and 0 for a loss. We know that Kasparov, known as the most aggressive player, won the most games. Karpov, known as the best defensive player, lost the least games. And Fischer, of course, won the tournament. Continue reading

Rule Engines: RETE and Alternatives

The famous RETE algorithm was invented by Dr. Charles Forgy more than 30 years ago and it still remains the foundation for most implementations of inferential rule engines.  Recently Carole-Ann asked the question: why after all these years there were no practical alternatives to RETE? Continue reading

Modeling Decisions for Scheduling and Resource Allocation Problems

“Reality is built in wonderful simplicity”, Eliyahu Goldratt “The Choice

Scheduling and Resource Allocation are traditionally considered as very complex business problems. They are usually out of reach for the most rule engines.  I personally learned how to deal with these complex problems during my real-world consulting practice by applying a great product called “ILOG Scheduler” written by Claude LePape and Jean-Francois Puget 20 years ago. I’ve just googled the product name and got this User Manual that has over 600 pages with a lot of C++ code. I used to teach ILOG Solver/Scheduler courses and will reuse some examples borrowed from them. Continue reading

Representing and Solving Rule-Based Decision Models with Constraint Solvers

The latest rules conferences RulesFest-2011, BBC-2011, and RuleML-2011 were really great events in general and for OpenRules in particular. We announced a new constraint-based Rule Engine that is the first alternative to Rete-based implementations of a real inferencial rule engine. Continue reading

Rule Solver is now JSR-331 Compliant

OpenRules has announced that its redesigned Rule Solver™ is now JSR-331 compliant. Rule Solver™ is a long time available optimization component of OpenRules® BRMS that allows users to define and solve constraint satisfaction and optimization problems within a business rules environment. Continue reading