What is resource scheduling, and why is it so difficult? This blog explores some of the complexities and approaches to solving scheduling problems

Resource scheduling is the **process** (or maybe better considered the **“art”**) used by organizations to **efficiently allocate resources** to a number of **tasks/actions**, which need to be executed **within a given time**.

When we analyse this definition, we identify 4 blocks:

**Resources**: a resource can be anything needed to execute a task and typically for a scheduling problem, there is a limited number of resources available. A resource can be an employee, but can also be a machine to produce something, a vehicle (like an aircraft, truck, train…), a meeting or classroom…**Tasks/actions:**a task/action is something that needs to be done, which is typically of value for the organisation. This can go from executing a surgery, to teaching classes or taking exams, all the way to driving a truck or flying a plane**Within a given time**: when we make a schedule, we will typically create a schedule for a specific period in time (almost always in the future). This can be for the next day, the next week, the next month, the next year…**Efficiently allocate**: this means that the resources are allocated to the tasks, in the most optimal way, i.e. typically by optimizing for a specific cost (function), while taking into account all kinds of hard and soft constraints. These constraints can be physical constraints (e.g. each room has a maximum number of places), legal and contractual constraints (like e.g. maximum number of hours you can work, work regime of employees), personal preferences (e.g. requests to have specific days-off), skills and competences (e.g. language knowledge)… Usually the hard constraints will be set as rules to be followed by the scheduler, while the soft constraints will be expressed as a cost or saving in the overall cost (function), which means they are taken into account as much as possible (but not necessarily) in the optimization.

The above shows already a **first complexity of a scheduling problem**, i.e. in order to properly schedule the resources an **adequate and detailed description of all resources, tasks and constraints is required**. As we are talking here about the future situation of those elements, this can be very complex and will require also making certain assumptions (e.g. if you have started a recruitment process, you won’t know yet when this new hire will exactly arrive). The further in the future the scheduling is done, obviously the more uncertainties.

Apart from that, there is also the **complexity of defining a good cost (function**). This function will calculate for each scheduling proposition what is the associated virtual cost. To make it tangible this cost is usually expressed in currency, but this doesn’t mean this virtual cost only contains the direct financial/operational costs (like e.g. salaries or energy costs). We can also quantify fewer tangible costs, like e.g. operational risks, ESG (Environmental-Social-Governance) branding and general branding, customer satisfaction, employee happiness… The definition of a good cost function will therefore be a very complex exercise, in which a lot of strategic decisions will be incorporated (e.g. up to the management to decide what will be the relative importance of employee happiness compared to the direct operational costs).

**enormous number of variables** (and dependencies between those variables) and **the fact that the cost function is not a simple linear function**, this problem cannot be solved in an analytical way. Instead it needs to be solved via **numerical methods**, i.e. by a process of iterations an optimal allocation is searched, but there is no mathematical guarantee there is not a more optimal solution. The more computing power and computing time is given to the problem, the more solutions can be explored and the surer the absolute optimum solution can be identified. However as computing power costs a lot of money and companies have strict deadline to have their schedule ready, this computing power and time will also be limited. This is again a strategic choice of the company to decide how much computing power and time will be given to each scheduling calculation.

The above shows that **solving large scheduling problems is really the domain of specialists**, as it requires:

**Excellent data governance**, i.e. collecting, structuring and cleaning all input data- The definition of an
**efficient and well-performing optimization model**(using modern mathematical techniques, a well-defined cost function and an optimal usage of computing resources) - A
**good interpretation**of the result, i.e. rapid evaluation the quality of the result, a decision if it’s worth to invest more computing time and potentially manual fine-tuning of the result. The scheduler should also be able to judge if an adaptation of the input data and/or parameterization of the model is opportune. - The ability to
**react rapidly to changing conditions**, in order to adapt the model and/or input data and rapidly launch a recalculation.

**Partnering with a specialist in this domain** can therefore gain you a lot of money in the long-term.

*Photo by Firmbee.com on Unsplash *