How to improve the Euroleague regular season calendar?

The Turkish Airlines Euroleague is Europe’s top basketball competition, heir to the legendary European Cup. This season 2019-20, it will unite eighteen of the best teams from all over Europe, namely Spain, Russia, France, Italy, Greece, Turkey, Lithuania, Germany, Serbia and Israel.

Euroleague teams play a round-robin regular season during which they face each other twice, not unlike traditional tournaments. However, the particularities of this competition pose unique challenges: the extensive distances to cover, the limited date availability which forces games between Tuesdays and Fridays and two games per week in five occasions during the 2018-19 season and seven during 2019-20.

Up until the 2018-19 season, teams alternated home and away games, which meant long travels distances for every game. As an example Herbalife Gran Canaria covered 111.109 km for 30 regular season games (Euroleague was limited to 16 teams that season). As a reference, the NBA leading team in miles travelled, the Portland Trail Blazers, only did 87,440 km for 82 games. The difference resides in the fact that the NBA schedule groups up the games in the farthest divisions, so the visiting teams play all those far away games in a few tours.

The impact of that demanding travel schedule was very negative on Herbalife Gran Canaria, which ended up in 14th position and struggled in the Spanish league, missing the play-offs and the Spanish Cup.

The Euroleague Player Association was not satisfied with the intense travel load so for the 2019-20 season, the Euroleague decided to include 2 weeks (4 rounds) during which all teams would play two consecutive games at home and two consecutive games away.

The table below shows the official 2019-20 Euroleague schedule for those two weeks with double rounds home or away. It is a fine job, as the away teams play those weeks in two of the cities that are farther away but yet close to each other, which spares them one the longest trips of the season. For instance, Khimki Moscow will play Real Madrid on November 19th and Valencia BC on 21st; Real Madrid will play two games in Moscow against CSKA and Khimki on January 14th and 16th.

HomeDateAwayHomeDateAway
Zalgiris Kaunas19/11Panathinaikos Zalgiris Kaunas21/11Crvena Zvezda Belgrade
Alba Berlín19/11Crvena Zvezda Belgrade Alba Berlin21/11Olympiacos Piraeus
FC Bayern Múnich19/11Olympiacos Piraeus Valencia Basket21/11Khimki Moscow
Asvel Villeurbanne19/11Anadolu Efes Istanbul FC Bayern Munich22/11Panathinaikos
Real Madrid19/11Khimki Moscow Olimpia Milan22/11Anadolu Efes Istanbul
Valencia Basket19/11Zenit St. Petersburg Asvel Villeurbanne22/11Fenerbahce Istanbul
Olimpia Milan20/11Maccabi Tel Aviv FC Barcelona22/11Maccabi Tel Aviv
FC Barcelona20/11Fenerbahce Istanbul Kirolbet Baskonia22/11Zenit St. Petersburg
Kirolbet Baskonia20/11CSKA Moscow Real Madrid22/11CSKA Moscow
HomeDateAwayHomeDateAway
CSKA Moscow14/01Real Madrid Khimki Moscow16/01Real Madrid
Khimki Moscow14/01Valencia Basket Fenerbahce Istanbul16/01FC Barcelona
Anadolu Efes Istanbul14/01Olimpia Milan Maccabi Tel Aviv16/01Olimpia Milan
Fenerbahce Istanbul14/01Asvel Villeurbanne Crvena Zvezda Belgrade17/01Alba Berlin
Olympiacos Piraeus14/01Alba Berlin CSKA Moscow17/01Kirolbet Baskonia
Maccabi Tel Aviv14/01FC Barcelona Zenit St. Petersburg17/01Valencia Basket
Crvena Zvezda Belgrade15/01Zalgiris Kaunas Anadolu Efes Istanbul17/01Asvel Villeurbanne
Zenit St. Petersburg15/01Kirolbet Baskonia Olympiacos Piraeus17/01FC Bayern Munich
Panathinaikos15/01FC Bayern Munich Panathinaikos17/01Zalgiris Kaunas

At baobab soluciones we took the challenge of improving the current solution using linear programming techniques.

But, is this the best possible schedule in terms of travelled distance and players resting time?

The answer is “it is close”, but it is not the best. If the 2019-20 season had kept the same system as the previous one, the 18 teams would have covered 534 479 km during the regular season. The new solution adopted this year has reduced the total distance in 73 775 km (13.8%), but it is not yet optimal.

Linear programming is a technique for the optimization of a linear objective function, subject to linear equality and linear inequality constraints. In the present problem, the target function was the total distance covered by all Euroleague teams during the regular season, subject to the competition restrictions.

How did it work out? We found a combination of games that would reduce the total covered distance by 77 243 km compared to the previous season (14.45%), 4% better than the Euroleague solution. 3 500 ‘free’ kilometres, without any change to the competition rules.

AwayRoundAwayAwayRoundAway
Asvel VilleurbanneR9Fenerbahce Istanbul Asvel VilleurbanneR10Efes Istanbul 
Baskonia R9Crvena Zvezda BelgradeBaskonia R10 CSKA Moscow
FC Barcelona R9 Zenit Saint PetersburgFC Barcelona R10 Khimki Moscow
Maccabi Tel Aviv R9 FC Bayern Munich Maccabi Tel Aviv R10 Alba Berlin 
Olimpia Milan R9Efes Istanbul Olimpia Milan R10Fenerbahce Istanbul 
Olympiacos PiraeusR9 Alba Berlin Olympiacos PiraeusR10Zalgiris Kaunas 
Panathinaikos R9Zalgiris Kaunas Panathinaikos R10 FC Bayern Munich 
Real Madrid R9 CSKA MoscowReal Madrid R10Crvena Zvezda Belgrade
Valencia Basket R9 Khimki MoscowValencia Basket R10 Zenit Saint Petersburg
AwayRoundAwayAwayRoundAway
Alba Berlin R19 Maccabi Tel Aviv Alba Berlin R20 Panathinaikos 
CSKA MoscowR19 Real Madrid CSKA MoscowR20Valencia Basket 
Efes Istanbul R19 Olimpia Milan Efes Istanbul R20Asvel Villeurbanne
Crvena Zvezda BelgradeR19Asvel VilleurbanneCrvena Zvezda BelgradeR20 Baskonia 
FC Bayern Munich R19 Panathinaikos FC Bayern Munich R20 Maccabi Tel Aviv 
Fenerbahce Istanbul R19 Baskonia Fenerbahce Istanbul R20 Olimpia Milan 
Khimki MoscowR19Valencia Basket Khimki MoscowR20 Real Madrid 
Zalgiris Kaunas R19 FC Barcelona Zalgiris Kaunas R20 Olympiacos Piraeus
Zenit Saint PetersburgR19 Olympiacos PiraeusZenit Saint PetersburgR20 FC Barcelona 

But we did not stop there and considered two more scenarios where we would slightly change the rules.

If we kept two double round weeks where teams play either two home or two away games, but allowed them in three different weeks instead of two (meaning not all teams would be playing simultaneously two games home or away), the distance savings would reach 83 008 km (15.5%).

However, the bigger savings would come from getting close to the NBA model and increasing the weeks with double home/away rounds. If Euroleague used 4 weeks instead of the current 2, the overall savings would be 140 389 km, 26.3% better than the 2018-19 season model.

You can find below the partial schedules.

AwayRoundAwayAwayRoundAway
Alba Berlin R9 Olympiacos PiraeusAlba Berlin R10Efes Istanbul 
Baskonia R9Efes Istanbul Baskonia R10 Panathinaikos 
CSKA MoscowR9 FC Barcelona CSKA MoscowR10 Olimpia Milan 
Crvena Zvezda BelgradeR9 Zenit Saint PetersburgCrvena Zvezda BelgradeR10Zalgiris Kaunas 
FC Bayern Munich R9 Panathinaikos FC Bayern Munich R10 Olympiacos Piraeus
Fenerbahce Istanbul R9Valencia Basket Fenerbahce Istanbul R10Asvel Villeurbanne
Khimki MoscowR9 Olimpia Milan Khimki MoscowR10 FC Barcelona 
Maccabi Tel Aviv R9Asvel VilleurbanneMaccabi Tel Aviv R10Valencia Basket 
Real Madrid R9Zalgiris Kaunas Real Madrid R10 Zenit Saint Petersburg
AwayRoundAwayAwayRoundAway
Alba Berlin R14 Maccabi Tel Aviv Alba Berlin R15Crvena Zvezda Belgrade
Asvel VilleurbanneR14 Zenit Saint PetersburgAsvel VilleurbanneR15 Maccabi Tel Aviv 
CSKA MoscowR14Valencia Basket CSKA MoscowR15 Real Madrid 
Efes Istanbul R14 FC Bayern Munich Efes Istanbul R15 FC Barcelona 
Fenerbahce Istanbul R14 FC Barcelona Fenerbahce Istanbul R15 FC Bayern Munich 
Khimki MoscowR14 Real Madrid Khimki MoscowR15Valencia Basket 
Olimpia Milan R14Crvena Zvezda BelgradeOlimpia Milan R15 Zenit Saint Petersburg
Olympiacos PiraeusR14Zalgiris Kaunas Olympiacos PiraeusR15 Baskonia 
Panathinaikos R14 Baskonia Panathinaikos R15Zalgiris Kaunas 
AwayRoundAwayAwayRoundAway
Efes Istanbul R23Asvel VilleurbanneEfes Istanbul R24 Alba Berlin 
Crvena Zvezda BelgradeR23 Baskonia Crvena Zvezda BelgradeR24Asvel Villeurbanne
FC Barcelona R23 Khimki MoscowFC Barcelona R24 CSKA Moscow
FC Bayern Munich R23Fenerbahce Istanbul FC Bayern Munich R24 Maccabi Tel Aviv 
Olympiacos PiraeusR23 Alba Berlin Olympiacos PiraeusR24 Olimpia Milan 
Real Madrid R23 CSKA MoscowReal Madrid R24Fenerbahce Istanbul 
Valencia Basket R23 Maccabi Tel Aviv Valencia Basket R24 Khimki Moscow
Zalgiris Kaunas R23 Olimpia Milan Zalgiris Kaunas R24 Panathinaikos 
Zenit Saint PetersburgR23 Panathinaikos Zenit Saint PetersburgR24 Baskonia 
AwayRoundAwayAwayRoundAway
Asvel VilleurbanneR27 Khimki MoscowAsvel VilleurbanneR28Efes Istanbul 
Baskonia R27 CSKA MoscowBaskonia R28Fenerbahce Istanbul 
FC Barcelona R27Fenerbahce Istanbul FC Barcelona R28Crvena Zvezda Belgrade
Maccabi Tel Aviv R27 Alba Berlin Maccabi Tel Aviv R28 FC Bayern Munich 
Olimpia Milan R27Efes Istanbul Olimpia Milan R28 Khimki Moscow
Panathinaikos R27 FC Bayern Munich Panathinaikos R28 Alba Berlin 
Valencia Basket R27Crvena Zvezda BelgradeValencia Basket R28 CSKA Moscow
Zalgiris Kaunas R27 Olympiacos PiraeusZalgiris Kaunas R28 Real Madrid 
Zenit Saint PetersburgR27 Real Madrid Zenit Saint PetersburgR28 Olympiacos Piraeus