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.
Home | Date | Away | Home | Date | Away | |
Zalgiris Kaunas | 19/11 | Panathinaikos | Zalgiris Kaunas | 21/11 | Crvena Zvezda Belgrade | |
Alba Berlín | 19/11 | Crvena Zvezda Belgrade | Alba Berlin | 21/11 | Olympiacos Piraeus | |
FC Bayern Múnich | 19/11 | Olympiacos Piraeus | Valencia Basket | 21/11 | Khimki Moscow | |
Asvel Villeurbanne | 19/11 | Anadolu Efes Istanbul | FC Bayern Munich | 22/11 | Panathinaikos | |
Real Madrid | 19/11 | Khimki Moscow | Olimpia Milan | 22/11 | Anadolu Efes Istanbul | |
Valencia Basket | 19/11 | Zenit St. Petersburg | Asvel Villeurbanne | 22/11 | Fenerbahce Istanbul | |
Olimpia Milan | 20/11 | Maccabi Tel Aviv | FC Barcelona | 22/11 | Maccabi Tel Aviv | |
FC Barcelona | 20/11 | Fenerbahce Istanbul | Kirolbet Baskonia | 22/11 | Zenit St. Petersburg | |
Kirolbet Baskonia | 20/11 | CSKA Moscow | Real Madrid | 22/11 | CSKA Moscow |
Home | Date | Away | Home | Date | Away | |
CSKA Moscow | 14/01 | Real Madrid | Khimki Moscow | 16/01 | Real Madrid | |
Khimki Moscow | 14/01 | Valencia Basket | Fenerbahce Istanbul | 16/01 | FC Barcelona | |
Anadolu Efes Istanbul | 14/01 | Olimpia Milan | Maccabi Tel Aviv | 16/01 | Olimpia Milan | |
Fenerbahce Istanbul | 14/01 | Asvel Villeurbanne | Crvena Zvezda Belgrade | 17/01 | Alba Berlin | |
Olympiacos Piraeus | 14/01 | Alba Berlin | CSKA Moscow | 17/01 | Kirolbet Baskonia | |
Maccabi Tel Aviv | 14/01 | FC Barcelona | Zenit St. Petersburg | 17/01 | Valencia Basket | |
Crvena Zvezda Belgrade | 15/01 | Zalgiris Kaunas | Anadolu Efes Istanbul | 17/01 | Asvel Villeurbanne | |
Zenit St. Petersburg | 15/01 | Kirolbet Baskonia | Olympiacos Piraeus | 17/01 | FC Bayern Munich | |
Panathinaikos | 15/01 | FC Bayern Munich | Panathinaikos | 17/01 | Zalgiris 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.
Away | Round | Away | Away | Round | Away | |
Asvel Villeurbanne | R9 | Fenerbahce Istanbul | Asvel Villeurbanne | R10 | Efes Istanbul | |
Baskonia | R9 | Crvena Zvezda Belgrade | Baskonia | R10 | CSKA Moscow | |
FC Barcelona | R9 | Zenit Saint Petersburg | FC Barcelona | R10 | Khimki Moscow | |
Maccabi Tel Aviv | R9 | FC Bayern Munich | Maccabi Tel Aviv | R10 | Alba Berlin | |
Olimpia Milan | R9 | Efes Istanbul | Olimpia Milan | R10 | Fenerbahce Istanbul | |
Olympiacos Piraeus | R9 | Alba Berlin | Olympiacos Piraeus | R10 | Zalgiris Kaunas | |
Panathinaikos | R9 | Zalgiris Kaunas | Panathinaikos | R10 | FC Bayern Munich | |
Real Madrid | R9 | CSKA Moscow | Real Madrid | R10 | Crvena Zvezda Belgrade | |
Valencia Basket | R9 | Khimki Moscow | Valencia Basket | R10 | Zenit Saint Petersburg |
Away | Round | Away | Away | Round | Away | |
Alba Berlin | R19 | Maccabi Tel Aviv | Alba Berlin | R20 | Panathinaikos | |
CSKA Moscow | R19 | Real Madrid | CSKA Moscow | R20 | Valencia Basket | |
Efes Istanbul | R19 | Olimpia Milan | Efes Istanbul | R20 | Asvel Villeurbanne | |
Crvena Zvezda Belgrade | R19 | Asvel Villeurbanne | Crvena Zvezda Belgrade | R20 | Baskonia | |
FC Bayern Munich | R19 | Panathinaikos | FC Bayern Munich | R20 | Maccabi Tel Aviv | |
Fenerbahce Istanbul | R19 | Baskonia | Fenerbahce Istanbul | R20 | Olimpia Milan | |
Khimki Moscow | R19 | Valencia Basket | Khimki Moscow | R20 | Real Madrid | |
Zalgiris Kaunas | R19 | FC Barcelona | Zalgiris Kaunas | R20 | Olympiacos Piraeus | |
Zenit Saint Petersburg | R19 | Olympiacos Piraeus | Zenit Saint Petersburg | R20 | 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.
Away | Round | Away | Away | Round | Away | |
Alba Berlin | R9 | Olympiacos Piraeus | Alba Berlin | R10 | Efes Istanbul | |
Baskonia | R9 | Efes Istanbul | Baskonia | R10 | Panathinaikos | |
CSKA Moscow | R9 | FC Barcelona | CSKA Moscow | R10 | Olimpia Milan | |
Crvena Zvezda Belgrade | R9 | Zenit Saint Petersburg | Crvena Zvezda Belgrade | R10 | Zalgiris Kaunas | |
FC Bayern Munich | R9 | Panathinaikos | FC Bayern Munich | R10 | Olympiacos Piraeus | |
Fenerbahce Istanbul | R9 | Valencia Basket | Fenerbahce Istanbul | R10 | Asvel Villeurbanne | |
Khimki Moscow | R9 | Olimpia Milan | Khimki Moscow | R10 | FC Barcelona | |
Maccabi Tel Aviv | R9 | Asvel Villeurbanne | Maccabi Tel Aviv | R10 | Valencia Basket | |
Real Madrid | R9 | Zalgiris Kaunas | Real Madrid | R10 | Zenit Saint Petersburg |
Away | Round | Away | Away | Round | Away | |
Alba Berlin | R14 | Maccabi Tel Aviv | Alba Berlin | R15 | Crvena Zvezda Belgrade | |
Asvel Villeurbanne | R14 | Zenit Saint Petersburg | Asvel Villeurbanne | R15 | Maccabi Tel Aviv | |
CSKA Moscow | R14 | Valencia Basket | CSKA Moscow | R15 | 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 Moscow | R14 | Real Madrid | Khimki Moscow | R15 | Valencia Basket | |
Olimpia Milan | R14 | Crvena Zvezda Belgrade | Olimpia Milan | R15 | Zenit Saint Petersburg | |
Olympiacos Piraeus | R14 | Zalgiris Kaunas | Olympiacos Piraeus | R15 | Baskonia | |
Panathinaikos | R14 | Baskonia | Panathinaikos | R15 | Zalgiris Kaunas |
Away | Round | Away | Away | Round | Away | |
Efes Istanbul | R23 | Asvel Villeurbanne | Efes Istanbul | R24 | Alba Berlin | |
Crvena Zvezda Belgrade | R23 | Baskonia | Crvena Zvezda Belgrade | R24 | Asvel Villeurbanne | |
FC Barcelona | R23 | Khimki Moscow | FC Barcelona | R24 | CSKA Moscow | |
FC Bayern Munich | R23 | Fenerbahce Istanbul | FC Bayern Munich | R24 | Maccabi Tel Aviv | |
Olympiacos Piraeus | R23 | Alba Berlin | Olympiacos Piraeus | R24 | Olimpia Milan | |
Real Madrid | R23 | CSKA Moscow | Real Madrid | R24 | Fenerbahce Istanbul | |
Valencia Basket | R23 | Maccabi Tel Aviv | Valencia Basket | R24 | Khimki Moscow | |
Zalgiris Kaunas | R23 | Olimpia Milan | Zalgiris Kaunas | R24 | Panathinaikos | |
Zenit Saint Petersburg | R23 | Panathinaikos | Zenit Saint Petersburg | R24 | Baskonia |
Away | Round | Away | Away | Round | Away | |
Asvel Villeurbanne | R27 | Khimki Moscow | Asvel Villeurbanne | R28 | Efes Istanbul | |
Baskonia | R27 | CSKA Moscow | Baskonia | R28 | Fenerbahce Istanbul | |
FC Barcelona | R27 | Fenerbahce Istanbul | FC Barcelona | R28 | Crvena Zvezda Belgrade | |
Maccabi Tel Aviv | R27 | Alba Berlin | Maccabi Tel Aviv | R28 | FC Bayern Munich | |
Olimpia Milan | R27 | Efes Istanbul | Olimpia Milan | R28 | Khimki Moscow | |
Panathinaikos | R27 | FC Bayern Munich | Panathinaikos | R28 | Alba Berlin | |
Valencia Basket | R27 | Crvena Zvezda Belgrade | Valencia Basket | R28 | CSKA Moscow | |
Zalgiris Kaunas | R27 | Olympiacos Piraeus | Zalgiris Kaunas | R28 | Real Madrid | |
Zenit Saint Petersburg | R27 | Real Madrid | Zenit Saint Petersburg | R28 | Olympiacos Piraeus |