Task Allocation Algorithms

Direct allocation and automatic pooled allocation work somewhat differently. See:

Direct Allocation Algorithm

The Direct Allocation algorithm is based on the capacities you define for each worker and each dictionary. The algorithm allocates tasks one task at a time as it loops through the set of available workers. During a given loop, the algorithm determines which workers should receive tasks and which should not, based on the workers' capacities.

For example, given the following worker capacities for the same dictionary:

  • Worker A capacity: 10
  • Worker B capacity: 20
  • Worker C capacity: 40

The algorithm works out the relative capacities of the three workers available to work on the relevant dictionary and assigns Worker C twice as many tasks as Worker B and four times as many as Worker A.

The algorithm does not give the first 10 to Worker A, the next 20 to Worker B, and the next 40 to Worker C, for example. Instead, it does something like: 2 to Worker C, 1 to Worker B, 2 to Worker C, 1 to Worker B, 1 to Worker A until all the tasks are allocated.

Direct Allocation does not take current workload into account when assigning tasks.

Automatic Pooled Allocation Algorithm

When you invoke automatic allocation from the Task Allocation by Quantity window, you can select one of two algorithms:

Pooled

The Pooled algorithm works the same way as the Direct Allocation algorithm (see Direct Allocation Algorithm) except that it performs all the allocations at one time (rather than as they are created in TMS) and allocates only the number of tasks you specify to only the users you specify. (In addition, you can allocate only one type of task at a time.)

Pooled by Workload

The Pooled by Workload algorithm also works the same way except that it also considers the current workload of each user (in the current dictionary and for the current task type) so that even if a particular user has a higher capacity for the relevant dictionary, if that user has a larger current workload (number of tasks currently in his or her own pool) then the user receives fewer tasks than another user with a lower workload.