Problem
A set of 26 people (person A
, B
, ..., Z
) play pick-up soccer 100+ times. Each time they play, they divide into two teams. You're given how the teams were divided and the order each player was picked. Not all players show up to every game.
For example: for the 42nd game that was played, letters M
, N
, ..., V
(10 players) showed up to play. M and N were captains, and they picked the remaining 8 players one player at a time until no player was left.
M: picks Q
N: picks T
...
N: picks P
In the example above, Q
is picked first, then T
is picked, and player P
is picked last.
Assuming all players showed up to play, find the expected draft order and the probability of each player being selected at their draft order.
Example solution:
- From a pool of all 26 players, Q is picked 90% of the time, and T is picked 10% of the time.
- Take out Q from the pool, since he/she is the most likely first-pick.
- From a pool of 25 players (A to Z minus Q), T is picked 76% of the time, B is picked 20% of the time, and F is picked 4% of the time.
- Take out T from the pool.
- From a pool of 24 players (A to Z minus Q minus T), ...
...
- From a pool of 1 player (player P), P is picked 100% of the time.
The expected draft order is
1. player Q picked first with a probability of 90%.
2. player T picked next with a probability of 76%.
3. ...
26. ...
Attempts
I'm not sure how to tackle this solution. What I do know is that each game has multiple samples. If there are 20 players who played for the 50th game, then there are 20 samples here:
- Sample 1 is player A being picked from a pool of A...T players
- Sample 2 is player B being picked from a pool of B...T players
- ...
- Sample 20 is player T being picked from a pool of T...T players (singleton)
Directed Graph
I've tried using a directed graph for this. When player A is selected from a pool of 20 players, 19 edges are added from each of other players to player A. So B->A, C->A, etc. If an edge already existed, the weight is incremented by 1.
- Not sure how to proceed after that. Maybe find the node that has the fewest number of out-going edges. Then, remove that node and repeat the process. Idk.
Help
I'm looking for the best way of proceeding forward. I've done some initial exploration and looking for ways to bring it home and/or other ideas. Thanks!