Model-based Optimal Solutions for Flight Rebooking Challenge

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 Challenges.

So far, all decision models submitted as solutions for this challenge (including my own) were “method-based” meaning they describe a greedy algorithm that specifies how to assign passengers to possible flights. Today, I provided two new “model-based” solutions for this challenge:

  1. Using Excel to represent Business Rules and Java with JSR-331 to represent Business Constraints
  2. Using Excel only.

The second implementation is an attempt to represent complex constrained expressions  in DMN-like decision tables using Excel only. It is still work in progress as we are trying to come up with a user-friendly representation of constraint programming concepts (by hiding the supporting JSR-331code the new Excel template file called DecisionTableCSP). You may analyze both solutions by opening this PDF file. I’d appreciate constructive criticism and suggestions for improvement.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.