Automatic schedule generation for tournament

Discussion in 'Rules / Tournament Regulation / Officiating' started by SimonCarter, Sep 22, 2020.

  1. SimonCarter

    SimonCarter Regular Member

    Joined:
    Dec 30, 2018
    Messages:
    143
    Likes Received:
    77
    Location:
    France
    Hello everyone,

    I am an optimization expert and in love with badminton. I live in France and here a lot of tournament organizer have to deal with the following problem :

    How do I come from a list of signed in player to a full scheduled tournament over the week end?

    I have created a program that is able to generate a schedule automatically (getting as many people as possible in with groups followed by a bracket) based on the number of people signed in in every category. Respecting rest time between matches.

    I know this is a common issue in France but I do not know if there are solution internationally (affordable by a club, or free) and if the issue is also present everywhere.

    If you are organizing a tournament (or not) and are interested don't hesitate to post here!
     
    phihag likes this.
  2. thyrif

    thyrif Regular Member

    Joined:
    Jul 16, 2015
    Messages:
    544
    Likes Received:
    454
    Location:
    Netherlands
    In the Netherlands we use Tournament planner for most tournaments. It's 60-70 euros per year or something, but also does all the signups and publicises the results you put in the program and stuff.
    https://www.tournamentsoftware.com/product/home.aspx?s=2 (There is also a league version.)

    There are also smaller tournaments for lower levels who don't use it, but this is the big thing almost everyone uses here.

    The automatic tournament planner in there is pretty bad (doesn't account for breaks all too well with people who play multiple disciplines single/double/mix, despite having some settings for amount of breaks (we usually play everyone two rounds and then a break round)) and leaves a lot of open rounds. But it is integrated into this website where everyone has an account, and discovery and signup is really easy for everyone. So we usually end up doing the schedule manually and put that into the software (that takes a lot of hours).

    As an IT guy myself, this pisses me off to no extent. So if you have a nice solution, it'd be very welcome!
     
  3. SimonCarter

    SimonCarter Regular Member

    Joined:
    Dec 30, 2018
    Messages:
    143
    Likes Received:
    77
    Location:
    France
    As for now it is kinda handmade and not that user friendly (json input and csv output) no user interface and all.

    Inter discipline dependency is not yet taken into account (I have some free time this week therefore it very might be handled before this Friday) because in France more and more tournament are actually forbidding people to enter two discipline on the same day (mix and single on Saturday you have to chose between the two and doubles on Sunday). I did not bother including it. But adding that is a nice challenge and can be done.

    My solution is not magical as this is actually a complex mathematical problem to find the best arrangement but in a few minutes it can give you a solid base and you can toy with the number of people in every 'serie' and recompute fairly easily.

    I have a question on the organization in the Netherlands? Are each discipline divided by level in tournament? For example in France for every tournament we have MS Serie1 (where the best players are) then MS Serie2 (where people with lower ranking are) then MS Serie3. Same for Doubles and mix. Therefore for 3 disciplines there are at least 3 different draws which means there are around 9 draws in total.

    EDIT completely overlook the face that there are more than 3 disciplines (MS, WS, MD, WD, MX) : 15 draws total at least
     
    #3 SimonCarter, Sep 22, 2020
    Last edited: Sep 23, 2020
    thyrif likes this.
  4. thyrif

    thyrif Regular Member

    Joined:
    Jul 16, 2015
    Messages:
    544
    Likes Received:
    454
    Location:
    Netherlands
    No worries. I just need to find a way to ITL them easily for your tool to read. Perhaps at a later stage we can work together to make this a less hands-on step.

    Cool! That would make more sense in our type of tournaments.
    Yeah, but I'm sure its a better start than theirs! We can't work with those and need to start from scratch. (after seeding)

    Yes, we usually have different skill categories, usually 1, 4, 6 and 8 are used. Some tournaments are smaller and don't include a 1. Your national ranking determines which category you are excluded from (too high), but you can always sign on for a higher one. In some cases, some people sign up for two different skill levels, but I would worry about that later.
    Our tournaments are mixing all the disciplines on the same days. Some tournaments are bigger and take two days (you can sign up for three disciplines), some are smaller and only play one day (you can sign up for two disciplines). Also, some tournaments have a small poule-stage and then finish off with a bracket, others just have brackets, others just have a poule if there are not a lot of players. But most try to limit the amount of matches people have to play. The tournament software thingy is used to make the poules/brackets and then makes all the matches that result from it (also the ones where it is not clear who will play it yet). We export it to excel and start planning our rounds manually (usually in mostly a category round, to avoid most of the issues).
    This may be more difficult than your separation thing in your tournaments! I don't know how other countries do it. Can you tell me how many matches you play on this singles-only or doubles-only day? I'm interested to hear what those are like.

    So in total we can have 4 levels (1,4,6,8) and five disciplines (where one player can play three at the most), for 20 categories in total!

    The mixed doubles always bite us when planning, because they are the key to coupling mens and womens playtimes for the other categories.
     
    phihag and SimonCarter like this.
  5. SimonCarter

    SimonCarter Regular Member

    Joined:
    Dec 30, 2018
    Messages:
    143
    Likes Received:
    77
    Location:
    France
    Alright I have added support to add cross categories linkage.

    The tool does not schedule the matches one by one but all matches of the same stage for a given category at the same time. Rest time is computed as whole (and not match by match). We ensure that there is enough rest between last match of previous set of matches and first match of the next set of matches (if that makes sense)

    About the structure of tournament, the tool as 3 layers :
    - First it select the number of player for each category (trying to keep as many as possible) since here there are always way too many players signed in. The choice of poule then bracket, poule only or bracket only is done automatically here based on the number of player (in france it is always poule then bracket when there are more than 6 players)
    - Then based on the number of players in each category we assign category to each gymnasium applicable (only usefull when tournament are held in multiple venues)
    - Finally for each gymnasium we build the schedule based on all matches to be played inside.

    If you already know the seeding and the matches and have access to only one venue you could basically skip the two first layers.


    In France it is almost always group stage into final bracket. We usually can only enter one category per day and tournament are always on two days. There is a rule that states that a player cannot play more than 7 matches during a day.
     
    thyrif likes this.
  6. SimonCarter

    SimonCarter Regular Member

    Joined:
    Dec 30, 2018
    Messages:
    143
    Likes Received:
    77
    Location:
    France
    Here are the input and output files used and generated to give you an example :
    And an example of output :
    Forgive the french words that may be here and there.
     
    thyrif likes this.

Share This Page