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
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
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
DMCommunity.org Challenge Nov-2019 asks us to build numerical versions of traditional Japanese haiku poems. Here is an example of a traditional Haiku poem:
(5) The sky is so blue.
(7) The sun is so warm up high.
(5) I love the summer.
A haiku poem consists of three-lines written in a 5/7/5 syllable count. Here is an example of a numerical haiku:
77 [seventy seven has 5 syllables]
+ 123 [one hundred twenty three has 6 syllables + 1 syllable for “plus”]
= 200 [two hundred has 3 syllables + 2 syllables for “equals”]
Nathan Brixius proposed a solution using the open-source constraint package written in Python. I really like this problem and decided to ponder this challenge with a free open-sourced JavaSolver. Below is my solution for numerical Haiku and Tanka. Continue reading
1. Traditional rule engines (RETE-based or Sequential).
2. Constraint-based rule engines Continue reading
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
Operational business problems can be defined by a set of decision variables and a set of rules that specify relationships between these variables – see the formal definition. This definition considers a decision as a solution of such a problem, but it doesn’t assume anything about ‘HOW’ how decisions will be produced. It means decisions can be found by applying any rule engine, a DMN engine, a constraint or MIP solver, a custom piece of software written in any programming language, a manually provided expert’s decision, or their various combinations. Continue reading
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
Dr. Bob Moore in his DMCommunity.org post “What is a ‘Decision’?” considers different definitions of a “Business Decision” and “Business Decision Logic”, which Bob, Ron Ross, and I have recently been discussing in the context of the March DMC Challenge. Below I will share my point of view.
First of all, it’s important to stress that we are talking not about any ‘decision’ but ‘Operational Business Decision’ which provides a solution for an operational business problem. The majority of such problems can be considered as a special case of the classical Constraint Satisfaction Problem (CSP) defined in the famous book by S.Russell and P.Norvig “Artificial Intelligence: a Modern Approach” . So, I simply applied the Russell/Norvig’s definition to our business problem. Continue reading
During the closing discussion at the DecisionCAMP-2018, I promoted a new “model-based” approach to decision modeling that contrary to the commonly used “method-based” approach allows a human decision modeler to concentrate on “WHAT” instead of “HOW”. This approach gives more power to decision modelers allowing a decision engine to come up not just with one of many possible decisions but to find the optimal decision. I wanted to demonstrate this power using a more complex business problem and to do it before the end of this year. So, I decided to apply the model-based approach to the problem “Rebooking Passengers from Cancelled Flights” that is the most challengeable problem among multiple DMCommunity.org Challenges. Continue reading
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.
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
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
Prof. Gene Freuder wrote a position paper “Complete Explanations” for The Second Workshop on Progress Towards the Holy Grail that will be held on Aug 27, 2018 during CP 2018 in Lille, France. Gene writes: “As AI becomes more ubiquitous there is a renewed interest in computers being able to provide explanations, and the European GPDR provides special impetus.” Geen’s paper concentrates on constraint satisfaction problems (CSPs), but, as I’d shown in my 2016 paper, we may consider a decision model as a CSP, and everything Gene is talking about directly applies to business decision modeling. Continue reading
DMCommunity.org offered a new Dec-2017 Challenge called “Reindeer Ordering“. It has a nice Christmas formulation:
Santa always leaves plans for his elves to determine the order in which the reindeer will pull his sleigh. This year, for the European leg of his journey, his elves are working to the following schedule, which will form a single line of nine reindeer. Here are the rules: Continue reading
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
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
I decided to add the decision model “Monkey Business” to our new What-If Analyzer. It brought several considerations missed by other solutions. In this post I will discuss my implementation and will show how What-If Analyzer helps to do a through analysis of usually unnoticed aspects of business decision modeling. Continue reading
“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
Representing Contradictory Rules with Single-Hit and Multi-Hit Decision Tables
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 products that claim that they may automatically resolve rule conflicts (at least I am not aware of them). As a result, it becomes a responsibility of users to represent rules in such a way that allows them to avoid conflicts. Continue reading
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
Practical people know that one of the most important property of a business rule is its ability to be violated. Here are a few examples: Continue reading
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
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
“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
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