Rule Based Job Batching

Jim - sounds very useful. Unfortunately I don't really have any suitable data but am interested to see how you go!

Robert McMahon

General Manager


EL ES DE Engineering Pty Ltd

Building C, 283-291 Treasure Rd, WELSHPOOL

Perth , Western Australia, 6106

Direct: +618 6336 9641

Ph: +618 6336 9640

Fax: WI +618 9258 5238

Mob: +61407 382 623

Email: rob.mcmahon@...<mailto:rob.mcmahon@...>

[Non-text portions of this message have been removed]
This is not an offer for a service or selling anything, it is a side personal project.  I will share the data results with the group and any company that I work with will get my code (it will be messy as it will be only done to a level that gives me results). 

I have been dabbling with use of a Rule Engine to optimize batching of jobs.  When batching jobs you try to group jobs together to maximize productivity.  A simple rule might be to group everything getting painted the same color together.  This rule can be done using a simple sort breaking on color.

But other jobs get tricky.  For example if you produce plastic film and slit it into tapes of varying widths you want to group jobs so that the jobs finish about the same time to minimize over producing some jobs and that as much of the full width of the plastic is consumed to reduce waste.  This isn't something that can be solved by sorting jobs, the jobs need to be grouped together balancing their run time with the number of tapes along with their width.  You basically need to play musical chairs to rearrange the jobs, check how close they come to an optimal solution (breaking the least number of rules), remember the best result so far and rearrange again to see if you can get a better result.  (You even get to use some of that math you learned in school using Diophantine Equations, solving for more that one variable, 2x + 3y + 4z = 100)

A rule engine looks to be a good fit for this, it has sophisticated algorithms to handle the musical chairs process while applying rules.  Using a rule engine you create the rules for which job characteristics can be put together (temperature, tape width, paint color, dates, etc) and then let the rule engine figure out a solution.  (for more details on Rule Engines a quick Google will yield a ton of information)

The benefit of a rule engine is the mechanics/coding of moving jobs into different groupings is setup once but you vary the rules as needed.  For most rule engines the rules tend to be human readable helping to bridge the gap between programmer and business users.  Many rule engines have front ends that business users use to adjust the rules.  So if you wanted to optimize the jobs finishing at the same time over waste you would just adjust the rules, no coding changes.

Up to now my data has been made up and I am looking for some real world data to experiment with.  The problem needs to be one that isn't easily solved by sorting and grouping.  If you have jobs that fit this model and you would be willing to share real world data with me it would be greatly appreciated.  Happy to sign a nondisclosure if needed, but hopefully you will allow at least summary data to be shared with the group.

If anyone has done any work with using a Rule Engine would like to discuss that too.

Again not selling anything, not promising this will work either.
Jim Kinneman