## The Allocation Assignment Problem

The allocation or assignment problem is to distribute tasks between workers in such a way that the total cost, time, waste (or some other measure) involved in doing a job which involves completing a range of tasks is minimized. In general, people are better at some things than others. In general a person more effective at doing one task than everyone else may also be more effective at other tasks. Nevertheless, an allocation of tasks is often necessary.

The allocation problem allocates each worker to a single task. This means we require the same number of workers as tasks. The cost of each worker doing each task is represented in the form of a matrix. The problem then becomes one of choosing an element in each column and row so that no two entries in a row or column are selected, and the sum of the costs associated with each worker doing their allocated task is minimized.

For example, the table below shows costs for four workers to do four tasks.

 Task A Task B Task C Task C Albert 13 24 42 17 Bob 11 31 22 27 Chris 15 18 34 54 David 56 33 43 56

We might allocated these workers to these tasks:

Albert to Task A:Cost 13

Bob to Task B:Cost 31

Chris to Task C:Cost 34

David to Task D:Cost 56

The total cost is then 13+31+34+56=134

One the other hand we could allocate

Albert to Task C:Cost 17

Bob to Task A:Cost 11

Chris to Task B:Cost 18

David to Task D:Cost 56

The total cost is then 17+11+18+56=102

The allocation problem may be solved methodically using The Hungarian Algorithm.