Gomocup 2019, the 20th tournament (May the 3rd-5th, 2019)

The Gomocup 2019 took place on May the 3rd-5th, sponsored by Tech Center of Lightspeed & Quantum Studios Group, Tencent.

There were 4 computers available whose configurations were as follows:

  • Windows 10, x64 Dual Intel Xeon E5-2683 v3 (2.0/3.0 GHz), 64GB RAM
  • Windows 10, x64 Dual Intel Xeon E5-2660 v3 (2.6/3.3 GHz), 256GB RAM
  • Windows 10, x64 Dual Intel Xeon E5-2660 v3 (2.6/3.3 GHz), 256GB RAM
  • Windows 10, x64 Dual Intel Xeon E5-2660 v3 (2.6/3.3 GHz), 256GB RAM

The openings for Gomocup 2019 were chosen by the following people (sorted alphabetically according to last names):

  • Alexander Bogatirev - Gomoku player, member of Gomoku Committee RIF, member of organizers committee of Russian Gomoku Championship, winner of Russian Gomoku Cup 2016.
  • Tomoharu Nakayama - Japanese renju player, 8dan. He got the 7th place in the 15th World Renju Championship, and won the Japanese Meijinsen in 2017.
  • Aivo Oll - Renju player, 7 dan, former Estonian champion, European champion, and world youth champion.
  • Zijun Shu - Gomoku player and AI researcher, contributor of several Gomoku AIs.
  • Tao Tao - Renju theory researcher, who published some researches and new designs of renju openings, participated in promotion of Renju and translated several Japanese renju books.
  • Qichao Wang - Renju expert, 4 dan, who has done a lot of researches in renju openings.

Thank you all!

Same as last year, we prepared 12 openings for every rule.

  • Openings for the freestyle league:

  • Openings for the standard league:

  • Openings for the renju league:

What is new?

  • Updates
    • AlphaGomoku (Kozarzewski) 2019 - Completely new implementation. Network was trained for much longer than the previous one. Also, now it supports standard rule on 15x15 board.
    • DeepFire 2019 - Rebuild code and improve speed. Add support for standard rule. Fix some bugs.
    • Ego 2019 - Update the function of evaluation.
    • Embryo 2019 - New support for Standard and Renju rules, new time management, fixed pattern matching and positional evaluation, fixed alpha-beta tree pruning, time-critical parts were rewritten using parallel SIMD instructions, overall speedup about 25%, some commands from Yixin GUI implemented.
    • Rapfi 2019 - Algorithm has been completely rewritten, and speed was improved. Some modifications were made on evaluation.
    • SlowRenju 2019 - Tuning the parameters with self-playing; supporting the config file.
    • Whose 2019 - Add extension to leaf. Add x64 version.
    • XoXo 2019 - Completely rewritten, optimized (more than 100x speed up), evaluation and move generation improvement.
  • New AIs
    • Monkey - a Gomoku program developed by Letian Yuan. The Monkey is a very simple C# program which is mainly based on Alpha-Beta pruning algorithm. It can calculate VCF of 100 steps accurately. Monkey supports freestyle rule.
    • PentaZen - a Gomoku program developed by Yuliang Sun. PentaZen is written in C and uses classic searching techniques. PentaZen is open source. The source code is on https://github.com/sun-yuliang/PentaZen-Gomocup. PentaZen supports freestyle, standard and renju rules.
    • StarDust - a Gomoku program developed by Debing Zhang, Ming Zhang, and Yumeng Wang. StarDust is deep Learning-based AI. StarDust supports freestyle rule.
    • Wulin - a Gomoku and Renju program developed by Chao Liu. Wulin is based on minimax search with alpha-beta pruning and a special VCF/VCT algorithm. Wulin supports freestyle, standard and renju rules.
  • Other Changes
    • Goro - We do not receive an update from Goro this year. Since a protection makes Goro2018 expired (it is sending emails), it is removed from freestyle and fastgame leagues this year.
    • XoXo - Since XoXo2018 crashed frequently in the standard league last year and XoXo2019 does not support standard rule, it is removed from the standard league this year.

There were 4 freestyle groups, 1 fastgame group, 1 standard group, and 1 renju group this year. AIs were divided into different freestyle groups according to the placement in the last tournament. For freestyle 2, 3, 4, the top 4 AIs were moved up to the next group. If the top k (k>4) places were all taken by new (or updated) AIs in a group, then all these k AIs would advance to the next group.

Memory limit/time per move/per match were determined to be same as Gomocup 2018:

Freestyle 1 league 300 1000 350 20 five or more stones
Freestyle 2 league 30 180 350 20 five or more stones
Freestyle 3 league 30 180 350 20 five or more stones
Freestyle 4 league 30 180 350 20 five or more stones
Fastgame 5 120 350 20 five or more stones
Standard 300 1000 350 15 exactly five stones
Renju 300 1000 350 15 renju rule

There were technical difficulties like every year.

  • About two days before the tournament, the whole Gomocup website was blocked by Google Safe Browsing due to antivirus false positives. Although they are false positives, we had to fix the issue by temporarily removing every link that was detected as containing harmful content by Google, to make sure the website is accessible to all.
  • At the beginning of the tournament, RenjuSolver crashed on some computers. We had no idea what caused the crash at all, but very fortunately, we happened to solve the problem by updating the Windows 10 to the latest build.
  • The connection between the computers running the tournament and the Gomocup live server was lost for several times. These issues were fixed manually.
  • We were informed by an author of StarDust that some games played by StarDust ended unexpectedly. So we paused the tournament for a while and checked the issue. The reason was that StarDust was detected "memory limit exceeded" by the official Gomocup manager GomocupJudge whose judgment was not exactly the same as that of Piskvork used by the authors of StarDust. 

The four new AIs, StarDust, Wulin, PentaZen, and Monkey, were the top 4 of the freestyle 4 league, and advanced to freestyle 3.

While Monkey stayed in freestyle 3 league, StarDust, Wulin, and PentaZen were again the top 3 of the freestyle 3 league. They and Sparkle advanced to freestyle 2.

PentaZen stayed in freestyle 2. StarDust, Wulin, and two updated AIs XoXo, DeepFire were the top 4 in freestyle 2 league and advanced to freestyle 1.

The freestyle 1 league this year was even more competitive and exciting than last year's thanks to many strong new and updated AIs. In particular, the updated Embryo, Rapfi, and AlphaGomoku (Kozarzewski) all made great progress. They, together with the new AIs StarDust and Wulin were all strong challengers to Yixin, the former winner. Finally, the winner of the freestyle league was Embryo. The second place was taken by Rapfi, and the third by Yixin. StarDust and Wulin achieved the fourth and sixth place, respectively, in their debuts. It is also worth noting that the performance of DeepFire and Whose was very close and they finally reached the same Elo, which resulted in the same ranking based on the new tournament rule introduced in 2017.

The fastgame league was as competitive as the freestyle league. Embryo and Rapfi were soon leading the leaderboard of the league with close performance and battling for the winner. Finally, the winner of the fastgame league was Embryo. The second place was taken by Rapfi, and the third by Yixin. Similar to the case of DeepFire and Whose in the freestyle league, Wulin and Hewer reached the same Elo in this league, which resulted in the same ranking. It took lots of resources to run the fastgame league this year. As the time required to run this league grows quadratically as the number of AIs grows, there might be a need for some changes in the future.

This year the standard league grows to the same size as freestyle 1. Embryo was the winner of the standard league. The second was Yixin, and the third was Wulin. We may need to divide the standard league into multiple groups as what we have done to freestyle in the future.

It was the fourth year for Gomocup to have the renju league and the league has grown to have 11 participants. The winner of the renju league was Embryo. Yixin took the second place. The third was Wulin. 

You can download complete results and openings here.