Equal time for players, Part One
Tuesday, May 26, 2009
I'm coaching my son's U-9 (under 9) soccer team. We have 11 players, and I need to have 7 players on the field at all times: we have a goalie and 6 in-field players.
In the division Gabriel is playing, we are not looking for position specialization yet. The main goal of the program is to get all the players interested in soccer and to help them learn a bit about the game. Therefore, everyone playing equal amounts of time is advisable and preferred. (The club does have a rep league that kids can try out for, though; at that level, I think they have them playing specific positions.)
Having to spread equal time among 11 players is tricky. It's a combinatorial problem that is not hard, but it's not trivial if you don't think about it first. The issue is that I have a large number of combinations: 7 players in the field out of 11--that's a lot of combinations.
To get all the players playing all positions, I have a 1-3-3 lineup (a goalie, 3 defenders, 3 forwards). This means that I now have 2 sub-problems: 3 out of 5 players for the defenders, and 3 out of 5 players for the forwards (the goalie is not a problem because one he's is in that position, I can't sub him for the rest of the half).
In the first 2 games, I thought I wing it and do subs every 5 minutes by rotating the players around. It worked all right, but I had to do too many calculations in my head figuring out who had been on the field the longest and who hadn't. This, of course, was error prone and I think I got a couple of players playing too long, because they asked to be substituted.
This is the kind of problem I like to solve, and the kind of problems, I guess, I paid so much money to learn how to solve. I sat down for 5 minutes and I have a solution that equally divides playing time among the kids. I should say, more or less equally, as some players will always play a bit more because of the rotations. Nevertheless, my head calculation time has now shrunk to 0, because I have everything automated.
Actually, I have the algorithm worked out. I will code it over the next couple of days and post it here. Check back for my next entry Equal time for players, Part Two