Reputation: 149
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.
Upvotes: 2
Views: 992
Reputation: 782
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.
Upvotes: 1
Reputation: 16531
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.
Upvotes: 0
Reputation: 632
You need to look at cron scheduler or any of its competing technologies.
Upvotes: 0