elkjiaer is back wrote: ↑Wed Jun 12, 2024 16:18
After a lot of trials I finally managed to generate the 144 fixtures split among the 8 matchdays . In general it doesn’t seem possibile to strictly fullfill all requirements regarding calendar order . This is why Uefa in the regulations also says “ in principle “ . It looks like we can’t guarantee a maximum of 2 home or away days in a row for all teams . Beside that I now have a template where team names are replaced by a code (A1 to A9 for pot 1 teams , B1 to B9 for pot 2 etc )
Whenever I get the time I will try to play around with the draw to see how team allocation in the different “code” system can work . If anyone of you has good programming skills I can of course share the calendar template
Please share it in a Google Sheet here!
Here you are (just a bit in a hurry so writing them here instead).
The following criteria were applied (if anyone has the type you can indeed check if they were fulfilled):
a )The home and away matches for each team alternate correctly between matchdays 1 and 2, as well as between matchdays 7 and 8.
b) For each team, there is at least one and at most two home matches in the matchday range 1-3 (inclusive).
c) For each team, there is at least one and at most two home matches in the matchday range 4-6 (inclusive).
d) Matchtypes (AA, AB, BC etc, meaning for example 2 teams from pot A, or one from pot A vs one from pot B etc) maxiumum 2 fixtures per matchday involving 2 teams from the same pots (AA; BB;CC;DD) . This is not a requirement by UEFA, but i suppose they want to spread those out evenly to maximize the interest and avoiding too many big matches on the same matchday.
I managed to improve the optimal schedule, adding some extra constrains:
a )The home and away matches for each team alternate correctly between matchdays 1 and 2, as well as between matchdays 7 and 8.
b) No team plays more than 2 home/away matches in a row
d) Matchtypes (AA, AB, BC etc, meaning for example 2 teams from pot A, or one from pot A vs one from pot B etc) maxium 2 fixtures per matchday involving 2 teams from the same pots (AA; BB;CC;DD) . This is not a requirement by UEFA, but i suppose they want to spread those out evenly to maximize the interest and avoiding too many big matches on the same matchday.
elkjiaer is back wrote: ↑Tue Jun 18, 2024 12:08
I managed to improve the optimal schedule, adding some extra constrains:
a )The home and away matches for each team alternate correctly between matchdays 1 and 2, as well as between matchdays 7 and 8.
b) No team plays more than 2 home/away matches in a row
d) Matchtypes (AA, AB, BC etc, meaning for example 2 teams from pot A, or one from pot A vs one from pot B etc) maxium 2 fixtures per matchday involving 2 teams from the same pots (AA; BB;CC;DD) . This is not a requirement by UEFA, but i suppose they want to spread those out evenly to maximize the interest and avoiding too many big matches on the same matchday.
Thanks! I have added your schedule as an 'example draw' in my ClubElo spreadsheet:
Stadion wrote: ↑Fri Jun 21, 2024 07:43
For what it's worth, I asked ChatGPT to create a fixture schedule but it isn't able to when you add all the required constraints.
I also used ChatGPT but due to the complexity of the problem it took me several attempts to come up with a valid result. You also need to be very detailed with all constrains, both hard and soft ones. After trying several optimization software libraries for Python I chose Gurobi Optimizer .
if anyone has the time and the will please check (manually or by other means) if the fixtures are correct. If anyone has programming skills contact me privately and I will share the code
Stadion wrote: ↑Fri Jun 21, 2024 07:43
For what it's worth, I asked ChatGPT to create a fixture schedule but it isn't able to when you add all the required constraints.
I also used ChatGPT but due to the complexity of the problem it took me several attempts to come up with a valid result. You also need to be very detailed with all constrains, both hard and soft ones. After trying several optimization software libraries for Python I chose Gurobi Optimizer .
if anyone has the time and the will please check (manually or by other means) if the fixtures are correct. If anyone has programming skills contact me privately and I will share the code
I think we can't have a general schedule template to use every season because there are too many parameters. 2 clubs may use same stadium so at each matchday one club should play at home and the other away so in a template there should be 2 opposite spots (eg A4 D31 as you named them). But then comes the pots so in order a general schedule template to work there should be Pot1 and Pot1 opposite spots, a Pot1 and Pot2 opposite spots, a Pot1 and Pot 3 opposite spots etc. And if there are more pair of clubs that are using same stadium we should have more opposite spots. Still this is not only restriction since there are city and tv restrictions too.
In my opinion we first need to know all the fixtures of the draw and based on them to generate a schedule. You may use the draw simulator I created to generate few full schedules for testing purposes and then your program should read the fixtures and generate the schedule based on them (not based on positions). You should also not forget that matchday 1 is a kind of wildcard at schedule since it is played in 3 days so some of the conficts doesn't exist and that at last matchday all matches will be played at same date and time. This way it will be easier to you.
I wasn't able to run eye's program, since I don't have Windows.
Below is an example of a schedule that my simulator has generated. First, it creates an array of all possible matches & then randomly selects 144 matches (Lorenzo's idea). Then, it performs edge-colouring of a 8-regular graph (aka 1-factorisation), while ensuring the home-away balance imposed by UEFA. Both processes are completely random & automatic, which means that if even I managed to do it, UEFA would most likely do a far better job. This dispels the belief that predetermined schedules are necessary. But please let me know if you find any mistakes.
MD1
Bayern — PSV
Atlético — Liverpool
Feyenoord — Crvena zvezda
Monaco — Bologna
Slavia Praha — Dinamo Zagreb
Atalanta — Club Brugge
Arsenal — Barcelona
Ferencváros — Sturm
Brest — Milan
Real Madrid — Man City
Shakhtar — Rangers
Internazionale — Paris
Sporting CP — M Tel-Aviv
Stuttgart — Girona
Leipzig — PAOK
Leverkusen — Benfica
Juventus — Celtic
Aston Villa — Dortmund
MD2
Man City — Bayern
Liverpool — Atalanta
Dinamo Zagreb — Atlético
Crvena zvezda — Leipzig
PSV — Sporting CP
Sturm — Monaco
Bologna — Arsenal
Celtic — Brest
Paris — Ferencváros
Dortmund — Real Madrid
M Tel-Aviv — Slavia Praha
Rangers — Internazionale
Club Brugge — Stuttgart
Benfica — Shakhtar
Barcelona — Leverkusen
Milan — Aston Villa
PAOK — Feyenoord
Girona — Juventus
MD3
Bayern — Sturm
Liverpool — Bologna
Juventus — Atlético
Crvena zvezda — Rangers
Atalanta — PSV
Monaco — Dinamo Zagreb
Real Madrid — Arsenal
Brest — Leipzig
PAOK — Ferencváros
Slavia Praha — Internazionale
Stuttgart — Man City
M Tel-Aviv — Shakhtar
Leverkusen — Feyenoord
Sporting CP — Barcelona
Benfica — Milan
Paris — Club Brugge
Girona — Aston Villa
Dortmund — Celtic
MD4
Celtic — Bayern
Monaco — Liverpool
Atlético — Crvena zvezda
PSV — Dortmund
Dinamo Zagreb — Sturm
Arsenal — Atalanta
Brest — Ferencváros
Milan — Real Madrid
Rangers — Slavia Praha
Internazionale — M Tel-Aviv
Leverkusen — Man City
Bologna — Stuttgart
Shakhtar — Sporting CP
Leipzig — Barcelona
Aston Villa — Benfica
Club Brugge — Juventus
Girona — PAOK
Feyenoord — Paris
MD5
M Tel-Aviv — Bayern
Liverpool — Internazionale
Atlético — Arsenal
Crvena zvezda — Brest
PSV — Monaco
Man City — Dinamo Zagreb
Slavia Praha — Atalanta
Sturm — Leverkusen
Ferencváros — Rangers
Real Madrid — Stuttgart
Feyenoord — Bologna
Shakhtar — Girona
Leipzig — Aston Villa
Barcelona — Milan
Celtic — Sporting CP
Benfica — Dortmund
Club Brugge — PAOK
Juventus — Paris
MD6
Bayern — Atlético
Dinamo Zagreb — Liverpool
Stuttgart — Crvena zvezda
Ferencváros — PSV
Barcelona — Monaco
Atalanta — Real Madrid
Arsenal — Brest
Sturm — Slavia Praha
Rangers — Leverkusen
Internazionale — Benfica
Man City — Shakhtar
Bologna — M Tel-Aviv
Paris — Leipzig
Sporting CP — Girona
Milan — Club Brugge
PAOK — Juventus
Dortmund — Feyenoord
Aston Villa — Celtic
MD7
Bayern — Liverpool
Monaco — Atlético
Crvena zvezda — PSV
Dinamo Zagreb — Milan
Brest — Atalanta
Arsenal — M Tel-Aviv
Sturm — Internazionale
Benfica — Ferencváros
Real Madrid — Slavia Praha
Leipzig — Rangers
PAOK — Man City
Stuttgart — Shakhtar
Bologna — Barcelona
Sporting CP — Leverkusen
Celtic — Club Brugge
Girona — Paris
Dortmund — Juventus
Aston Villa — Feyenoord
MD8
Club Brugge — Bayern
Liverpool — Crvena zvezda
Atlético — Aston Villa
PSV — Arsenal
Atalanta — Monaco
Juventus — Dinamo Zagreb
Rangers — Sturm
Man City — Brest
Ferencváros — Real Madrid
Slavia Praha — Stuttgart
Internazionale — Girona
M Tel-Aviv — Celtic
Leverkusen — Bologna
Shakhtar — Leipzig
Barcelona — Dortmund
Paris — Sporting CP
Feyenoord — Benfica
Milan — PAOK
FEPG wrote: ↑Sun Jun 30, 2024 04:50
I wasn't able to run eye's program, since I don't have Windows.
Below is an example of a schedule that my simulator has generated. First, it creates an array of all possible matches & then randomly selects 144 matches (Lorenzo's idea). Then, it performs edge-colouring of a 8-regular graph (aka 1-factorisation), while ensuring the home-away balance imposed by UEFA. Both processes are completely random & automatic, which means that if even I managed to do it, UEFA would most likely do a far better job. This dispels the belief that predetermined schedules are necessary. But please let me know if you find any mistakes.
…
I’m not aware of anyone that said that “predetermined schedules are necessary”. The statement that was made is that UEFA is likely to choose a predetermined schedule so it will be easier to perform a live draw in which teams are manually picked (36 balls picked from 4 bowls)
FEPG wrote: ↑Sun Jun 30, 2024 04:50
Below is an example of a schedule that my simulator has generated.
...
But please let me know if you find any mistakes.
MD2
Barcelona — Leverkusen
MD4
Leipzig — Barcelona
MD8
Barcelona — Dortmund
Shouldn't you try to avoid one team playing more than 2 teams from the same country? Or it was unavoidable?
FEPG wrote: ↑Sun Jun 30, 2024 04:50
Below is an example of a schedule that my simulator has generated.
...
But please let me know if you find any mistakes.
MD2
Barcelona — Leverkusen
MD4
Leipzig — Barcelona
MD8
Barcelona — Dortmund
Shouldn't you try to avoid one team playing more than 2 teams from the same country? Or it was unavoidable?
Thank you. Man City, as well. Won't be hard to fix, since the team drawing stage is much easier than the scheduling one.
FEPG wrote: ↑Sun Jun 30, 2024 04:50
Below is an example of a schedule that my simulator has generated.
...
But please let me know if you find any mistakes.
MD2
Barcelona — Leverkusen
MD4
Leipzig — Barcelona
MD8
Barcelona — Dortmund
Shouldn't you try to avoid one team playing more than 2 teams from the same country? Or it was unavoidable?
Thank you. Man City, as well. Won't be hard to fix, since the team drawing stage is much easier than the scheduling one.
Also Milan and Inter both play at home at the same MDs.
TommyChat wrote: ↑Sun Jun 30, 2024 17:46
Also Milan and Inter both play at home at the same MDs.
Which, I believe, is fine as long as they both don't play at home on the last matchday, when all matches are played on the same day at the same time. Something my scheduler doesn't take into account yet.
TommyChat wrote: ↑Sun Jun 30, 2024 17:46
Also Milan and Inter both play at home at the same MDs.
Which, I believe, is fine as long as they both don't play at home on the last matchday, when all matches are played on the same day at the same time. Something my scheduler doesn't take into account yet.
I believe UEFA will be stricted about clubs playing on same stadium and will play only one at home every matchday so in case a Tuesday match is postponed for any reason to have the option to be played next day (don't forget there are more matches at winter).
Concerning simulator probably you may use a windows emulator to run it on your system but I haven't tried it since I have windows systems only. In case you don't want to use emulator or simulator doesn't run on it I can send you one of the spreadsheets (or more if you need) that it creates to use them to test your schedule project
eye wrote: ↑Mon Jul 01, 2024 04:53I believe UEFA will be stricted about clubs playing on same stadium and will play only one at home every matchday so in case a Tuesday match is postponed for any reason to have the option to be played next day (don't forget there are more matches at winter).
You are right. Looks like there's no issue with two matches being held in the same city, but at different stadiums, on the same matchday (e.g. Atlético & Real Madrid on MD4 this season), but I haven't found a precedent for when a stadium could be used on both days. Luckily, among the regulars, it's just Inter & Milan who share the same stadium.
eye wrote: ↑Mon Jul 01, 2024 04:53
Concerning simulator probably you may use a windows emulator to run it on your system but I haven't tried it since I have windows systems only. In case you don't want to use emulator or simulator doesn't run on it I can send you one of the spreadsheets (or more if you need) that it creates to use them to test your schedule project
eye wrote: ↑Mon Jul 01, 2024 04:53I believe UEFA will be stricted about clubs playing on same stadium and will play only one at home every matchday so in case a Tuesday match is postponed for any reason to have the option to be played next day (don't forget there are more matches at winter).
You are right. Looks like there's no issue with two matches being held in the same city, but at different stadiums, on the same matchday (e.g. Atlético & Real Madrid on MD4 this season), but I haven't found a precedent for when a stadium could be used on both days. Luckily, among the regulars, it's just Inter & Milan who share the same stadium.
eye wrote: ↑Mon Jul 01, 2024 04:53
Concerning simulator probably you may use a windows emulator to run it on your system but I haven't tried it since I have windows systems only. In case you don't want to use emulator or simulator doesn't run on it I can send you one of the spreadsheets (or more if you need) that it creates to use them to test your schedule project