2

Can i use Rule Engines for solving a job scheduling problem (JSS)?

I want to have something like this. Is this possible with rule engines or not a good idea.

MrWoffle
  • 149
  • 2
  • 10

3 Answers3

1

Gantt chart

A gantt-chart is a wunderful idea for visualizing job schedule problem. Even the NASA uses a software called "Europa T-Rex temporal planning". On the x-axis the timescale is visable and on the other axis the tasks and subtasks are shown. The challange is to invent an algorithm which determines which task has to be done on what time. In real life, probabilistic scheduling is often used which utilizing parameters for defining problemspace and a random-number-generator for filling the plan, see Using Adaptive Priority Weighting to Direct Search in Probabilistic Scheduling The idea in short: The most simple implementation fill the schedule plan completly by random. It takes many repetitions to get a good plan. A more complex algorithm defines constraints like "no task should overlap" and the random-generator acts only in this subspace for producing plans. On a advanced level, additional rules were taken to specifiy the problem in detail. But also in this case a random-generator is used for dealing with uncertainty.

Rule engine

The most prominent example for a rule engine is the rule engine in the password-cracking tool Hashcat Rule Based Attack. The idea is to use heuristics for faster prunning. Rule engines are implemented as normal sourcecode. They are using functions, loops and if/then requests. There is no difference between a rule engine and a turing-machine.

The reason why sometimes the term rule-engine is used has content-related issues. The rule engine in Hashcat is that piece of code which deals with knowledge about breaking somebody else passwords. The rule engine in a schedular for a gantt-chart deals with planning related knowledge and so forth. In the 1980'er often so called Artificial Intelligence Languages likes CLIPS, Prolog or LISP were used to implements rules. But normal programming language are also well suited. In most cases the rule engine describes the algorithm. An algorithm is a way to solve a certain problem. For creating a solver for a job scheduling problem it is important to go into details. There are scheduling for time-table-problem, production planning or robotics.

Manuel Rodriguez
  • 734
  • 4
  • 18
  • 1
    interesting article, thank you. But it is not realy answering my question if and how i can use rule engines to solve the problem – MrWoffle Nov 03 '16 at 12:57
  • thx for your response. Can you give an example for a algorithm that i could use with lets say clipse. Do you have some further reading for me where i can inform my self how exactly to solve a JSS problem (for example 2 machines and 10 jobs). – MrWoffle Nov 08 '16 at 14:02
0

You need to look at cron scheduler or any of its competing technologies.

Alex
  • 566
  • 1
  • 6
  • 14
0

I believe so, but it looks more like a design question to me:

You can take a look at this stack overflow question, and Martin Fowler's article about Rules Engine, but at first glance this diagram looks like basic waterfall scheduling that could be easily implemented without Rules Engine.

For simplest scheduling you could take a look at my old project where scheduling was implemented simply by iterating a list.

Community
  • 1
  • 1
Konrad 'Zegis'
  • 15,101
  • 1
  • 16
  • 18
  • thx for your answer. Do you know a project / tutorial or something where planing is done with rule engines ? – MrWoffle Nov 03 '16 at 12:57
  • I know that JBoss created Drools business rule engine and derieved OptaPlanner from it, and [this](https://docs.jboss.org/drools/release/5.3.0.Final/drools-planner-docs/html/ch01.html) documentation suggest that drools can solve job scheduling problems, but I'm not sure if this one isn't too tool specific for your needs. Hope it'll help somehow. – Konrad 'Zegis' Nov 03 '16 at 14:15
  • its not exactly what i was searching for but i think it will help – MrWoffle Nov 03 '16 at 15:32