A couple of weeks ago James Owen proposed a larger Miss Manners benchmark for rule engines on his blog.
Last weekend he posted the first dataset, so this weekend I took it upon myself to implement this “Manners 2009” as an example in drools-solver.
In Manners 2009, miss Manners is throwing a party again.
- This time she invited 144 guests and prepared 12 round tables with 12 seats each.
- Every guest should sit next to someone (left and right) of the opposite gender.
- And that neighbour should have at least one hobby in common with the guest.
- Also, this time there should be 2 politicians, 2 doctors, 2 socialites, 2 sports stars, 2 teachers and 2 programmers at each table.
- And the 2 politicians, 2 doctors, 2 sports stars and 2 programmers shouldn’t be the same kind.
Drools-solver solves this planning problem.
Here’s a screenshot of a result of a table in drools-solver:
As you can see, all constraints are met. I estimate I’ve implemented this example in roughly 14 working hours (including the GUI work). So, with drools-solver, planning problems are easy!