Yandex Blog

Yandex’s Seventh Annual Programming Competition Yandex.Algorithm Starts This Week

Since 2011 Yandex has been running a programming competition, Yandex.Algorithm, to challenge competitive coders and advance the machine learning community. Yandex.Algorithm welcomes coding contestants from around the world to enter up to three tracks of the 2018 competition: algorithm track, optimization track, and ML track. 

Each track was designed to test contestants with a variety of problem solving tasks. Historically, Yandex.Algorithm has focused on the algorithm track but last year it included more diverse problems such as optimization tasks.  Following positive feedback from the community on these changes, we designed the Yandex.Algorithm 2018 competition to include optimization and machine learning problems within separate applied science tracks.

The algorithm track is designed to follow its traditional format in which submitted solutions are run against test cases. The optimization track was developed with the help of our search algorithm engineers and our autonomous vehicle team members to require a multitude of creative approaches rather than a single solution. The optimization track answers will be evaluated and awarded points based on the test performances of submitted solutions. The machine learning track tasks require contestants to create models, which will be evaluated based on how well specified parameters can be predicted using the models.

Yandex.Algorithm contestants are competing to advance their programming capabilities in addition to cash prizes.  The winner of the algorithmic track will take home approximately a $5000 cash prize and the second and third place winners will receive $2600 and $1600 respectively.  The winners in the other two categories will each receive approximately $1800 and runners up in these new tracks will also be awarded cash prizes as well.  Over 500 of the top performing participants will receive a Yandex.Algorithm t-shirt.

The three tracks will run consecutively in order to give all participants the opportunity to try their hand at solving every type of a problem in the Yandex.Algorithm 2018 competition. The first qualification round for the algorithmic track will take place on February 17th. The 25 best performers in the three qualifying rounds of the algorithmic track will be invited to Saint Petersburg on May 19th for the finals.  The optimization track and the machine learning track will run online competitions starting in March.

Interested programmers can register and find all relevant information for Yandex.Algorithm in both English and Russian on the competition website.  Congratulations to the 2017 winner, Gennady Korotkevich, a Belarusian information technology student from Saint Petersburg, who has won the top Yandex.Algorithm prize four times! Good luck to all of the 2018 participants!

Now We’re Looking for Lepton Flavour Violation

Wouldn’t we all like to think that the world that we’re living in is more or less stable? Isn’t there a certain pleasure to be sure that our feet will be pulled to the ground as firmly tomorrow as they are today? Isn’t it reassuring to know that the cup of tea we’ve just put on our desk won’t disappear instantly and reappear on the bottom of the sea on the other side of the planet having traveled its diameter on a straight line? In classical physics, Newton’s laws give us this reassurance. These laws bestow predictability on objects or events as they exist or happen in our reality - on a macroscopic level. On a microscopic level - in particle physics - Fermi’s interaction theory, for instance, postulates that the laws of physics remain the same even after a particle undergoes substantial transformation.

In 1964, however, it became apparent that this isn’t always the case. James Cronin and Val Fitch showed, by examining the decay of subatomic particles called kaons, that a reaction run in reverse does not necessarily retrace the path of the original reaction. This discovery opened a pathway to the theory of electroweak interaction, which in turn gave rise to the theory we all now know as the Standard Model of particle physics.

Although the Standard Model is currently the most convenient paradigm to live with, it doesn’t explain a number of problems, including gravity or dark matter. Other theories compete very actively for the leading role in describing the laws of nature in the most accurate and comprehensive way. To succeed, they have to provide evidence of something that happens outside the limitations of the Standard Model. A promising area to look for this kind of evidence is the decay of a charged lepton (tau lepton) into three lighter leptons (muons), which happen to have a certain characteristic - flavour - that is different from the same characteristic of their ‘mother’ particle. According to the Standard Model, the probability of this decay is vanishingly low, but it can be much higher in other theories.

One experiment at CERN, LHCb, aims at finding this τ → 3μ decay. How are they going to find it? By searching for statistically significant anomalies in an unthinkably large amount of data. How can they find statistically significant anomalies in an unthinkably large amount of data? By using algorithms. These can be trained to separate signal (lepton decays) from background (anything else, really) better than humans. The problem here, however, is not only to find these lepton decays, but also find them in statistically significant numbers. If the Standard Model is correct, the τ → 3μ decays are so rare that their observations are below experimental sensitivity.

To come up with a more sensitive and scale-appropriate solution that would help physicists find evidence of the tau lepton decay into three muons at a statistically significant level, Yandex and CERN’s LHCb experiment have launched a contest for a perfect algorithm. The contest, called ‘Flavours of Physics’, starts on July 20th with the deadline for code submissions on October 12th. It is co-organised with an associated member of the LHCb collaboration, the Yandex School of Data Analysis, and Yandex Data Factory - a big data analytics division of Yandex - and is hosted on a website for predictive modeling and analytics competitions, Kaggle. The winning team or participant will claim a cash prize of $7,000, with $5,000 and $3,000 awarded to the first and the second runners-up. An additional prize in the form of an opportunity to participate in an LHCb workshop at the University of Zurich and $2,000 provided by Intel will be given to the creator of an algorithm that will prove to be the most useful to the LHCb experiment. The data used in this contest will consist both of simulated and real data, acquired in 2011 and 2012, that was used for the τ → 3μ decay analysis in the LHCb experiment.

Contest participants can build on the algorithm provided by the Yandex School of Data Analysis and Yandex Data Factory to make an algorithm of their own.

The metric for evaluation of the algorithms submitted for this contest is very similar to the one used by physicists to evaluate significance of their results, but is much more simple and robust thanks to the collective effort of the Yandex School of Data Analysis and LHCb specialists who have adapted procedures routinely used in the LHCb experiment specifically for this contest. Our expectation is that this metric will help scientists choose the algorithms that they could use on data that will be collected in the LHCb experiment in 2015, and in a wide range of other experiments.

Finding the tau lepton decay might take us out of the comfort zone of the Standard Model, but it just as well may open the door to extra dimensions, shed light on dark matter, and finally explain how gravity works on a quantum level.


Collisions as seen within the LHCb experiment's detector (Image: LHCb/CERN)

Everything Is Solved – Yandex.Algorithm Programming Championship Celebrates Winners in Berlin

Yandex's annual competitive programming championship, Yandex.Algorithm, has produced its winners. The top winner is Gennady Korotkevich of Belarus (currently a student of St. Petersburg ITMO University) with four solutions out of a possible six and -66 minutes of penalty time. He received his well-deserved 300,000 rubles (about €6,000 of the total prize fund of €10,800) – this is the second time in a row that he has won the grand prix of Yandex.Algorithm.


Kazuhiro Hosaka (Tokyo University, Japan) also solved four problems but with -90 minutes of penalty time, and was awarded 150,000 rubles (about €3,000) of the prize fund and second place. And student Qinshi Wang from Tsinghua University (Beijing, China) claimed the remaining 90,000 (€1,800) by solving four problems with -125 minutes of penalty time and finishing in third place.

The final round of Yandex.Algorithm took place on August 1 at the Radisson Blu SAS Hotel in Berlin, just next door to newly opened Yandex R&D office in the capital of Germany.


Having started in 2011 with only a few programmers flexing their algorithmic muscles in a special event organised by Yandex's Summer School, this year Yandex.Algorithm saw 3,890 competitors from 72 countries vying for a place in the finals. Luck, reinforced with talent and skill, was on the side of 25 participants from Belarus, Kazakhstan, Ukraine, Russia, Poland, China, Taiwan, Japan and the United States who reached the final round.


Competition in the finals was tough, as expected, with some of the world's strongest players in competitive programming showing what they are worth against previous Yandex.Algorithm winners, as well as multiple champions of other renowned international championships, including ACM ICPC and TopCoder Open, and hands-on computer engineers working at Facebook and Google. Yandex employees are excluded from participation under the terms and conditions of the contest.


All problems in the contest, including the six algorithmic tasks in the final round, were developed by a team of professional computer engineers and active competitive programmers from Carnegie Mellon University, Moscow State University, St. Petersburg State University, Google and Yandex. You can see the problems and solutions here. In addition to having practical experience solving problems similar to those presented in the contest on a daily basis, the Yandex specialists who have contributed to the contest share their knowledge with students at the Yandex School of Data Analysis.

The Yandex School of Data Analysis is a free Master’s-level program in computer science and data analysis offered by Yandex to graduates in engineering, mathematics, computer science or related fields. Three hundred and twenty-two students have graduated from the school since it was founded in 2007. Headquartered in Moscow at Yandex, the School of Data Analysis partners with leading research centres and has branches in other cities in Russia, Ukraine and Belarus.

Yandex's Annual International Programming Contest Invites Participants to Compete in Solving Algorithmic Problems

Yandex.Algorithm 2014 will have its final round on the 1st of August on the premises of Yandex's newly opened Berlin office. In addition to showing their skills in competitive programming, those reaching the final round of the contest will have an opportunity to socialise and browse the city's famous attractions during the three days of the finals.

Last year's event gathered more than three thousand participants from 84 countries, including 16 programmers from Germany, six Swiss nationals and two Austrians. One of the German contestants qualified 20th in the final round, which was held in one of St. Petersburg's most magnificent palaces and saw a Belarusian win the competition, with a Russian national scoring second and a student from Taiwan finishing in the third place.

The Yandex.Algorithm contest is open to everyone regardless of their educational background, location or occupation. The official language of the competition is English. The total prize fund for this competition is 540,000 roubles (about €10,800), with the major portion – 300,000 roubles (about €6,000) – going to the winner. The second and third places will give their winners 150,000 roubles (about €3,000) and 90,000 roubles (€1,800) respectively.

The programming championship will consist of six rounds that will last 100 minutes each. The warm-up round will take place on May 16. Registered contestants will need to solve at least one problem to participate in the qualifying round, which will be held one week after that – on May 25. The three championship rounds will be held online from July 1 to July 15 and will determine 25 top performers who will compete in the finals in Berlin on August 1.

Tasks in the Yandex.Algorithm contest are provided by the Yandex experts, who, according to the rules of the contest, cannot compete, but can contribute to the contest as part of the international organising team, which includes experienced experts from Russia, Poland and the United States.

In contrast to other programming competitions, Yandex.Algorithm allows contestants to choose when and how their solutions are evaluated – individually and right after submission, or in total and only when all of the solutions have been submitted. The first option gives additional points to each solution, although it also removes an opportunity to correct a solution before submitting. This arrangement gives contestants more flexibility in their competitive strategy and a better chance to win.

‘High Five’ to Winners of Yandex.Algorithm 2013

Winners in our annual international open championship in competitive programming, Yandex.Algorithm, today wiped the sweat off their high brows and took home their prizes.

Yandex.Algorithm is an individual contest, open to anybody who wishes to participate, regardless of education, profession or programming style. This year’s contest involved more than 3,000 competitors from 84 countries, who showed tough competition and great sportsmanship. The top 25 proceeding to the finals included developers from Google, VKontakte, Facebook and students from Saint Petersburg National Research University of Information Technologies, Mechanics and Optics, Moscow State University, and St. Petersburg State University. Many of the finalists were multiple award-winners and champions of the world’s premier team programming championship, ACM ICPC.

The Yandex.Algorithm championship had several stages. The finals took place in the regal interiors of the Vladimir Palace in St. Petersburg. Elimination rounds were held online, on the Yandex.Contest platform – a service created especially for programming education, training and competition. In each round, participants had to solve several algorithmic problems within 100 minutes.

A winner of ACM ICPC 2013, Gennady Korotkevich of Belarus with 3 solutions and -2 minutes of penalty time showed the best result and won the contest. First runner-up, Russia's Evgeny Kapun, also scored 3 points, but his six-minute penalty time put him behind the winner. Also three solutions secured third place for Shih Pi-Hsun from Taiwan, despite his penalty time of 44 minutes. All Yandex.Algorithm champions received cash prizes – 300,000 rubles (about $9,000) for first place, 150,000 rubles (about $4,500) for second and 90,000 (about $3,000) rubles for third.

(left to right: Evgeny Kapun, Gennady Korotkevich, Shih Pi-Hsun)

Specialists from Russia, Belarus, Japan and Poland created the problems to test Yandex.Algorithm competitors. As contest organisers, Yandex staff members were ineligible to compete, but took active part in preparing the championship. Developers from our Minsk office produced problems and tested them on their colleagues in other cities. TopCoder champion Egor Kulikov, of Yandex in St. Petersburg, personally solved every single problem. You can see them here (in Russian).

Yandex.Algorithm was created to support competitive programming in Russia and the CIS, aid the development of the IT industry, and boost ties between specialists from different countries. First held in 2011 within Yandex’s summer school, the championship has now entered a new, international level – in both the number and range of competitors, and in the complexity of problems.

We are happy for the winners and proud to contribute to the thriving programming community around the world.