Three of us are part of a group of friends that (attempt to) play football every week. The group is composed by more or less the same people, but the specific set of players varies each week—injuries, busy day and so on. We organized a tournament with several rankings amongst us: number of goals, number of points and alike.
Big problem: how do we generate balanced teams?
Age ranges in between 28 and 60. Some of us resemble to a midfield, some others resemble to a forward. Some of us run a lot, while others have a more contemplating attitude. Having balanced teams is essential in order to have fun. After a few weeks, our lab came up with a great idea, i.e., a computer-based procedure based on multiobjective optimization (mostly thanks to Eric, both in the design and the implementation).
After one year and a half of weekly matches, the results of the procedure have been really excellent. Nearly all matches have been very balanced, with uncertain result until the very end. Most importantly, the procedure has proven to work well because in many cases the teams appeared to be unbalanced but the match turned out to be much more uncertain than expected, often with a totally unexpected winning team.
Multiobjective optimization is a technique used in many disparate fields of engineering, economy and logistics. It is used when it is necessary to optimize several contrasting objectives. For example, the design of an engine could have 3 objectives: maximizing performance, minimizing fuel consumption, minimizing pollution. These are contrasting objectives. In practice, the designer analyzes many possible designs and chooses the resulting trade-off (compromise) that appears to be better.
Teams are generated a few hours before the match based on the available players. We proceed as follows.
Each player has several attributes. Some of them are fixed and chosen a priori: dynamic / static (i.e., it runs a lot or not...); defender / midfield / forward; age. Other vary during the competition: goals scored, points and alike.
Based on the set of available players for the current day, the system:
Of course, the procedure is not ideal. Features of a player cannot be synthesized by a few numerical quantities: how to capture creativity, genius, luck, occasional lack of sleep or excessive food? Features of a team cannot be obtained by merely assembling parameters of its players. The creativity of a set of players may be much bigger than the mere sum of its components—much like an orchestra. Similarly, two forwards with similar features, or competing among themselves, could not be a good mix.
However, after one year and a half of weekly matches, the results of the procedure have been really excellent, as pointed out above.
The only slightly weak point so far is when a new player comes in: in those cases the system has an insufficient amount of information about that player, hence his contribution to goals and points does not reflect his actual value, which may result in teams slightly more unbalanced than usual.
The figure at the beginning shows the teams generated for today...