The coding challenge organised by Axa from 29 Avril to 6 May, titled “Heroes and metros”, brought together over 200 participants. The programmers were tasked to minimise transport congestion in the context of the COVID-19 pandemic. Two students from ESILV have taken the challenge, and one of them won the last phase of the contest.
Axa set the goal of supporting the epidemic research by launching the Axa Coding Challenge, a code “battle” that had banked a minimum of €1 for each participant: at the end of the challenge, the total amount raised was €1950.
Lockdown challenge to minimise human interaction in buses and trains
Axa asked the programmers to find the best trip options for first-line workers trough a code battle, using algorithms to prevent onboard contamination. Their objective was to determine the required number of workers needed to commute to work to ensure the functioning of the vital sectors and to minimise the chances of crossing other essential workers during each person’s travel.
For every sector they covered, the programmers have taken into consideration the minimum quota of workers required for that specific sector. The participants associated each worker included in the code with four characteristics: name, a professional field, and two round trip lists.
Each trip option was showing a list of transports used by workers. Each time a worker was sent to work, the candidate had to update his travel options. The participants were receiving score by the number of persons that each worker crosses in each transport he would take during the day.
Each time a worker meets the same person in several modes of transport on the same day, the scores increases (lesser the score, better the performance).
Axel Thevenot and Julien Pytel, two 4-year students, majors in Computing science, connected objects and security have risen to the challenge hands down. The team called “The tourists” has been singled out for special mention by Axa Jobs France.
#AXAcodeChallenge : une mention spéciale à l’équipe LES_TOURISTES : code le plus optimisé sur la plateforme laissée en libre accès après le challenge du 29 avril ! ??
— AXA Jobs France (@AXAJobs_fr) May 11, 2020
“Les touristes”, 22nd rank out of 56 programmer-teams in the first phase’s rank list
The first phase that took place on 29 April gathered 56 participants. The programmers were relying on six data sets of variable size and they had four hours to craft an optimisation algorithm for the transport routes, based on the morning and evening trips of the workers and the number of people going to work. The objective was to equilibrate the attendance of transport stations: more the passengers are distributed equally on different lines, lesser the number of people infected.
“We told each other that we could start with a genetic algorithm, which is based on principles of natural selection. This algorithm helped us to rank among the first half of the teams, but it was still not enough to get us through the whole amount of data that we had to process in the given time”. (Julien Pytel, ESILV student)
“The tourists” – Axel and Julien – have finished 22nd among 56 teams participating in the first phase, but the contest was far from the end. Many programmers have continued to run their algorithms on the contest platform after the end of submissions. Therefore, the second phase was extended by a week and everyone had the chance to confront its final code with the winning team.
Father-son team, winner of the last phase
It was Laurent Pytel, Julien’s father, who took on the challenge throughout the final week, in replacement of Axel, who started his internship delayed by the Covid-19 lockdown.
In the second phase of the contest, the father-son team started from scratch with a complete analysis of the first round’s results, working through all the data to achieve the same final objective: reducing the transport’s rush hour problem.
“Our final algorithm is based on two entries: the first type of algorithm generated a list of all the possible trips, from which it then removed the trips with disadvantageous scores one by one. The solution allowed us to rank among the Top 5 teams, but we were striving to be first. So, we wrote a second algorithm that tested several switch configurations, following several pragmatic rules and kept switching until we attained the maximum score for this strategy, and so on, until an operation of type 1 started again. We analysed our trip options according to rush-based transport station selection and conceived our implementations of algorithms in the most optimal way”. (Julien Pytel, ESILV student)
The father-son team found the winning formula with this algorithm based on object-oriented programmation and multithreading.
” We wanted to help in our way in easing transportation congestion, as lockdown ends. So this algorithm will help limit the pandemic spreading in public transit. Maybe tomorrow it will be able to tell you whether you can go safely to work or not, who knows?”, Julien concluded his interview.