Scheduling continuously occurring jobs for a group of different type machines is a very difficult problem. Under realistic constraints, optimal job scheduling is almost impossible with algorithmic approaches because of computational complexity and, therefore, often calls for heuristic approaches.
Production system seems a proper approach for job scheduling because of easiness in representation of scheduling heuristics and process modelling. Production system with forward-chaining is especially good because the initial state of job scheduling is well defined while its goal state is generally unknown. We chose an existing production system language with forward-chaining, OPS5, for the task because OPS5 employed an efficient match algorithm to save storage and matching time.
Although OPS5 has useful basic features, it also has some serious disadvantages and inefficiencies for the use in job scheduling. In this thesis, we describe an extended OPS5 tailored to be suitable for job scheduling application. The extension includes features for friendly user interface, hierarchical representation of object classes, unconstrained condition testing clauses, and meta-rule representation for explicit control or rule selection. An intelligent job scheduling system was built to evaluate the effectiveness of the extended OPS5. Compared with original OPS5, the extended tool demonstrated better expressibility and readability. Actually, the extended tool required a fewer number of rules, and shorter execution time than the original OPS5.