How can I evenly distribute skill among teams.

145 Views Asked by At

Suppose I have 5 groups of 5 players. Each player has a skill rating from 1 to 100.

I'd like to evenly distribute players, 1 from each group, into teams of 5.

Suppose the $i^{th}$ player in team $j$ has ranking $r_{ji}$. When I break each player into a team (one player from each group) their team's ranking is the average ranking of the comprising players

$$R_j = \dfrac{1}{5} \sum_i r_{ji} \>.$$

I would like to minimize $$\sum_j (R_j - \bar{r} ) ^2 \>. $$

Where $\bar{r}$ is the mean ranking of all players.

Is there a recommended strategy, or approach, to this kind of optimization? How can I best assign players to a teams to minimize this quantity?

1

There are 1 best solutions below

0
On

You can code this as a mixed integer linear program, with a quadratic objective function. Good quality solvers should have no problem with it. You can also apply a variety of metaheuristics to get good (but not provably optimal) solutions to it. A colleague and I published a paper on a somewhat more complex (in terms of number of attributes/metrics and side constraints) variant of this problem.