47 coaches online • Server time: 17:37
* * * Did you know? The oldest player is debog with 649 games played.
Log in
Recent Forum Topics goto Post Gnomes are trashgoto Post ramchop takes on the...goto Post Chaos Draft League R...
Blackbox division details
Overview
The blackbox division is designed for coaches who wants to play in an environment where they can choose when to play, but not their opponent. This is achieved by an automated system which, every 15 minutes, generates a schedule for coaches who chose to participate for that particular round.

Five minutes before a round is drawn, activation is enabled and coaches can choose which teams they want to enter into the blackbox scheduler. The scheduler is designed around a concept called suitability, which tries to measure how good a particular matchup would be. While this concept has gone through a few changes, the current system works as follows.

Scheduling
To find the "best" schedule, the scheduler uses the following method:

1. Identify participating coaches and generate a graph of all potential matches.
For example, if four coaches (A, B, C, and D) have activated for the round, the following list is generated:

A vs B
A vs C
A vs D
B vs C
B vs D
C vs D

2. Identify the best match for each potential match
A list of all possible matches is generated for all the teams activated by every pair of coaches. Determining if a match is allowed involves looking at the TV difference and the number of games played by the teams. The following method is used:

Below 3 games played, max TV difference allowed is within 10%
For 3 to 9 games played, max TV difference allowed is within 15%
For 10 to 29 games played, max TV difference allowed is (15 + (games - 10) * 2)%
For 30 or more games, any opponent is allowed

For a match to be allowed, both teams must be within the limit of the opponent.

For each possible match, the suitability score (explained in detail below) is calculated. As an example, if coach A has 3 teams (A1, A2, and A3) and coach B has 2 teams (B1, and B2), the list of all possible matches could look like this, where ";@NNN" is the suitability score):

A1 vs B1 @950
A1 vs B2 @799
A2 vs B1 @893
A2 vs B2 @912
A3 vs B1 Not allowed due to too high TV difference
A3 vs B2 @635

With this lineup, the scheduler would pick A1 vs B1 as the match for the pair of coaches and skip the rest of the possible matches.

3. Generate the schedule
Since this task is non-trivial (See "Stable Roommates Problem" on Wikipedia for further information on how complex this is), a "best effort" method is used:

There are two separate methods used which are run in a few different variations:

A. Looking "per match".
In this method, all the possible matches are put into a big list. The scheduler takes the match at the top of the list, and schedules it. Then it goes down to the next match, and checks if either of the coaches involved are already scheduled. If not, the match is scheduled. This is repeated through the list until all coaches are scheduled, or the list ends. There are three variations of this method, based on the sort order of the initial list:
a) Highest suitability first
b) Lowest suitability first
c) Random

B. Looking "per coach"
This method works in a similar manner as the above, but instead of making a big list of matches it makes a list of coaches. The scheduler then takes the top coach and picks the highest suitability score of the matces against the currently unscheduled opponents. Naturally, this is the highest one when it looks at the first coach. The process is then repeated down the list of coaches until all participants have been considered.

As with method 1 above, the variations of this method come from different ways to sort the initial list. The variations used now are:
a) Lowest "top" suitability (suitability of the best possible match)
b) Highest "top" suitability
c) Lowest total suitability (sum of all suitabilities)
d) Highest total suitability
e) Least number of possible opponents
f) Most number of possible opponents
g) Random

4. Select the schedule
To finally select which schedule to use from the ones generated in the previous step, the sum of the suitability score for each scheduled match is compared. The schedule with the greatest suitability score is picked.

A view of the different schedules considered can be seen on the Blackbox Scheduler History page.

Suitability
Suitability is calculated on a potential match (i.e., with two teams as input). To calculate the suitability score, the following method is used:

1. Calculate normalised TV difference:
TV_min = Min(TV_1, TV_2)
TV_max = Max(TV_1, TV_2)
dTV_0 = 1000 * (TV_max / TV_min - 1)

2. A TV difference amplification is applied:
dTV = dTV_0 * 3 - 100, if dTV_0 > 50
dTV = dTV_0, if dTV <= 50

3. Calculate win probability:

3a. The win probability is calculated by using an ELO-derived formula:
p_0 = 1 / ( Pow(10, dTV / 700) + 1 )

3b. A racial factor is applied to the win probability
This is a bit tricky to describe with a formula. Essentially, each race vs race matchup is tracked by the site for different TV levels and a ranking (calculated similarly to the win probability above) is tracked. This factor is applied to calculate the true win probability:
p = Pow(p_0, Pow(5, 1 - 2 * factor) )

4. Calculate the "distance" between the teams:
d_0 = 0.5 - p

5. Apply a small random factor, and normalise:
d = ( d_0 + rand(0, 0.02) ) / 0.52

6. Re-scale to get the base suitability:
S_0 = 1000 * d

7. Calculate repeat-opponent factor:
(i.e., if either of the teams' last match was against the coach of the opponent):
r_opp = 0.9, if either team played against the other coach in their last match
r_opp = 1, otherwise

8. Calculate rookie protection factor:
r_games = ( Min(games_1, games_2) + 1 ) / 15, if either team has less than 15 games and the opponent 15 or more
r_games = 1, otherwise

9. Calculate final suitability:
S = S_0 * r_opp * r_games

The following chart shows the suitability score as a function of normalised TV difference. This is assumes no effect from the racial, random, repeat-opponent or rookie protection factors. The green dotted line shows the formula without the TV difference amplification step (2 above) applied.