The Strength Factor:

How to force inter-division games.

The Problem

The current algorithm for scheduling games does an excellent job of scheduling the games within a division. Even in the case of 2 divisions, it does a fine job of scheduling intra-divisional games. The problem is that because of the distances involved with travel to the other division, those games get put off until the end of the season. In other words, most teams only go to the other division when all other options have been used up.

The problem with this waiting is that at the end of the season, all of the Eastern division teams are trying to schedule games in the west and all of the Western division teams are trying to schedule games in the east. Because each team is scheduling games in the other division, then all of the teams are being forced home between games to meet their interdivisional rivals who are also on the road. This "thrashing" causes BOTH teams in a game to travel from one side of the league to the other for 1 game and then back again, on many occasions.

The intial solution: The Strength Factor

Currently, the actual distance between cities is multiplied by a "demand" factor that is related to how many remaining games are left to play between two teams in that location. In most of the current situations, this demand is 7 or less for intra-divisional games and 1 for inter-divisional games. With the distances involved, these divisional factors do now have enough power to force divisional changes.

To increase the effectiveness of the demand factor, I have introduced a "Strength" factor. At first I was multiplying the demand array by the strength factor. This had the desired effect of "increasing" the demand, but it increased ALL of the demands, and thus decreased ALL of the "theoretical distances" in the distance array.

Initial tests of the strength factor were showing promise. Of course a Strength Factor of 1 is the same as the algorithm prior to inserting the strength factor. I have also tested strength factors of 5 and 10. At this point it became obvious that the improvements in the total distance was not a trend. Also the "thrashing" was not disappearing. This multiplication was not working as planned.

Analysis of the Strength Factor

After testing out the "Strength Factor" concept it is becoming clear that there is no easy and efficient way to force a team to go to the opposite division and STAY there with simple arithmetic. Multiplication, division, addition, or subtraction done on all of the items the same way only magnified the demand of members. Since teams in the same division have a much higher demand value than teams outside of the division, this magnification only mangified the difference between the 2 levels of demand.

As an example, a city could have a demand of 1 for an opponent outside its division and 5 for a city in its division. There is no single simple mathematical operation that will cause the 1 value to be greater than the five, without both values becoming meaningless. Addition and Subtraction do not change the difference, and multiplication and division only increase or decrease the difference (but do no invert it).

Conclusions on the Strength Factor

The thrashing at the end of the season is caused by the intra-divisonal demand dropping to very near the extra-divisional demand. In the current league, after 5 or 6 games are played within the division against all of the opponents of the same division, then their demand has dropped to 1 or 2, and close enough to the inter-divisional demand of 1 that a team could switch divisions. However, because all teams were reaching that same point at the same time, teams kept being dragged back to their home arenas to host teams from the other division.

The solution is to make the intra-divisional demand get close to the inter-divisional demand earlier in the season. Instead of simply dividing by the declining demand, I needed the divisor to decline for part of the season and then increase, or "bounce" off of zero and back up. This operation if of course the absolute value function.

Instead of working directly with the demand, I instead subtract a constant value from the demand and then take the absolute value. I then take this result as the divisor of the distance array. Of course there are a few extra things to take care of including adding 1 after the absolute value to insure there is no division by zero error. The next problem was deciding what value to subtract.

The value to be subtracted, theoretically, is the number of intra-divisional games remaining with an opponent before you start to look at inter-divisional opponents. As the demand decreases and approaches that constant value, the divisor come closer to zero, causing the total cost to increase greatly. This makes inter-divisional rivals more "appealing."

This special number to be subtracted is very important as it determines when teams will start looking to take their long road trip to the other division. Of course if it is 0, we will have thrashing as before. Also if the value is very large, interestingly the thrashing happens early in the season. I ran tests using the values of 3, 4, and 5. I chose these because they are numbers near half the value of the highest demand. As expected, the higher the number, the earlier in the season a team will begin a western swing. The values 3 and 4 appear to be the best "mix" of games. Inter-divisional game start very early in both cases, but with 4, they end just slightly past the half way point of the season. With 3 they extend the fulle season.

I will need to analyse these two schedules individually. With tightly packed games such as that created using the factor of 4, the long road trips tend to be very efficient with all of the inter-divisional travel packed into 1 long trip. However, this also tends to be a big cause of the "thrashing" as opponents must rush home to host an inter-divisional rival.

The factor 3 schedule has inter-divisional games scattered throughout the entire season starting 9 "days" in and ending only 5 dayd before the end of the season. This distribution of games is nice, but I makes me worry about long and inefficient road trips to play 1 inter-divisional game. Inter-division road trips should try and include as many games as possible in one trip.

I should have this data analysed very soon as to the quality of the schedule. The total distance is relatively unaffected with only 133 miles difference over 290 games. The teans' individual distances vary greatly, as much as 40% (the lowest team became the 2nd highest). Interestingly the 3 and 5 sets are very similar in total distances, but since these are really "mirrors" of each other caused by the absolute value function, it is to be expected.

Review of the schedules

I have taken the 3 schedules using the 3,4 and 5 values and the absolute value method from above and put them into a spreadsheet here. A quick review shows that all of the schedules work fairly well. I had to come up with a numeric representation of the "thrashing" concept and it is this: take the distance to be traveled and divide it by the number of days between the games. This gives an effective "rate" of travel required. I have on file an actual "rate" the CHL made in the 96-97 season that was just over 900 miles, the distance from Macon to Memphis. If I count any rate over 900 as a "thrash" then count those up, I find the following:


It is interesting to note that half of the "thrashes" in the 3 Subtractor schedule are back to back. A simple exchange of games could probably remove these. In the 3 and 5 subtractors, no team has more than 2 thrashes in a season. On the 4 subtractor, San Antonio has 3 thrashes. The 3 subtractor schedule was missing 1 game (Memphis and Nachville) because of the limited list of home dates. If more home dates were available, the number of thrashes for all teams might be reduced as the algorithm searches out shorter distances among all the possible home dates. The more home cities to choose from the better the decisions.

More to come...

The excel file with my current analysis is here. The first chart and the last 3 schedules on Sheet1 are the important data.

Back to the Thesis home page