Jul 07, 2022
Table of contents:
Moore-Hodgson’s algorithm is an approach to scheduling work that aims to minimise the number of tasks that are late, rather than the lateness of any particular task. The algorithm was presented in 1968 by J. M. Moore, with an alternative algorithim attributed to T. E. Hodgson.
In this article we’ll look at the algorithm, its benefits, drawbacks, and when you should use it to organise the things you need to do.
Moore-Hodgson’s algorithm is an approach to scheduling work that aims to minimise the number of tasks that are late. You start by sorting your tasks by the earliest due date and working on the task that is due soonest first.
Whilst working on the earliest due date task, if it looks like you won’t get to the next before it’s due, you look at the remaining tasks and throw out the biggest. Of course, you still have to complete that task, but you have to sacrifice it becoming overdue in order to prevent other tasks from also going overdue.
You continue working through the remaining tasks in order of due date, but keep getting rid of any big tasks if you fall behind schedule.
Once you’re finished working through the tasks, you work through the tasks that were thrown out. These tasks can be done in any order because they’re all late anyway.
This process reduces the number of tasks potentially that are late, rather than the severity of any particular task.
The most obvious benefit of Moore-Hodson’s algorithm is that the number of tasks that are potentially overdue is minimised.
For example, say you had 10 tasks where your objective was to have the majority of them delivered on-time, and sacrificing one or two to being late was an acceptable compromise. If this is a characteristic that you want to optimise for, using the Moore-Hodgson’s algorithm could be a good choice.
Moore-Hodgson’s algorithm is the optimum approach when you’re working through a set of tasks on your own and this is the objective you care the most about.
The drawback to Moore-Hodgson’s is that you must sacrifice tasks and allow them to become overdue in order to minimise the lateness of other tasks. This is potentially made worse if the tasks that are most likely to be thrown out also happen to be the most important.
Whilst the Moore-Hodgson’s algorithm is fairly straightforward to implement, the simplicity ends up being another drawback of the approach. For example, the algorithm assumes that all of your tasks have a similar priority, duration, and importance.
As I mentioned above, if you are aiming to minimise the number of tasks that are overdue, and are willing to sacrifice tasks in order to achieve this goal, Moore-Hodgson’s algorithm could be a good choice.
The algorithm was also specifically conceived for “single machine processing”, or in other words if you are working on the list of tasks on your own. Once you introduce the complexity of multiple people working on a set of tasks, a relatively simple approach like Moore-Hodson’s algorithm goes out of the window.
Moore-Hodgson’s algorithm isn’t a good choice if your tasks are very different in terms of complexity, duration, or importance. If you have a wide variety of tasks on your to-do list, using a simple algorithm for scheduling your work is probably not going to work.
As Moore-Hodgson’s algorithm was intended for optimising the problem of “single machine processing”, if you regularly work synchronously or in collaboration with others it’s probably not going to be a good choice either.