about

Rooster is a resource scheduling engine based on Genetic Algorithms. Resource scheduling engine should consider various attributes and rules like number of hours, over time, skills, and capabilities etc. to suggest the optimum schedule.

Background

Resource scheduling is a decision making process which deals with allocation of resources to tasks over predefined time periods. In early days resource scheduling was expressed as ordering the resources that are available, in such a way that the conflicts are minimized. To do so, capturing the schedule in a paper was enough. But now the context has been changed with the increase of competition among companies and as the size of the companies grow, almost all the companies look for a solution where they can reduce the time and effort taken to schedule as well as increase the efficiency of the scheduling. In today's businesses, resource scheduling has a great impact on winning the competition. The company which has the optimum and efficient resource usage will have an added advantage in the competition. Advantages of going for a optimal effective resource scheduling plan can be describe as follows. By scheduling the resources effectively, companies can reduce the idle time of the resources. In return this will result in an increase in the overall output of the companies. Proper scheduling will also result in reducing the cost for a particular task since the wastage of the resources has been minimized. In large organizations this reduction in the cost will be a significant value. Thus organizations invest time and money on resource scheduling systems, through which they can achieve above described goals. As our final year project we are planning to do a research on resource scheduling area and implement an engine where the users can get the optimal schedule for their resources. Main objective of our research would be to come up with an algorithm to support optimal scheduling as well as to a model the engine in such a way that the conflicts are minimized within the engine.

Problem Statement

Basically what the resource scheduling engine intended to do is, scheduling a set of resources for a specific workload, considering the rules like availability, skills, capabilities of the resources, etc. The optimum scheduling is achieved when the measurements like minimum idle time, minimum resource consumption and coverage of need are satisfied to a considerable level. The identifiable drawbacks in the existing systems are as follows:

Constrained resource scheduling is a generic problem spread in various domains. But the domineering rules in each domain are different from one another. Though there are various resource scheduling tools available, most of them are domain specific. So the need of this project is to come up with a generic solution for resource scheduling in all the domains.

The available AI based tools use heuristic algorithms. The main problem with heuristic based tools is lack of flexibility. The rules which dominate the scheduling are specified at the code level. When we need to do a change to a rule, it has to be done at the code level.

In heuristic based systems, when there are dependencies between rules, the changes done to one rule can cause conflicts between rules. But in genetic algorithms, those dependencies can be removed.

When historical data is unavailable, heuristic based systems are unable to provide solutions. Even when the historical data are available, those may not be relevant to present conditions. So the solutions derived by the heuristic systems are less accurate.

Objective

The objectives of this project is to come up with a design and implementation of a resource scheduling engine which can be used to schedule a given set of resources in an optimal way. One of the main research objectives is to come up an algorithm to support optimal scheduling. The objective of designing the engine is to reduce coupling between engine and the set of rules that should be considered while scheduling. The engine configuration is provided to configure the engine according to the user requirements.