Abstract

In this paper we design the algorithm aimed at fast enumeration of diagonal Latin squares of small order. This brute force based algorithm uses straightforward representation of a Latin square and greatly depends on the order in which we fill in Latin square cells. Moreover, we greatly improved its effectiveness by careful optimization using bit arithmetic. By applying this algorithm we have enumerated diagonal Latin squares of order 9. This problem was previously unsolved. In order to ensure the accuracy of the obtained result, two separate large-scale experiments were carried out. In the first one a computing cluster was employed. The second one was performed in a BOINC-based volunteer computing project. Each experiment took about 3 months. As a result we obtained two similar numbers.

Keywords

Stepan Kochemazov and Oleg Zaikin are funded by Russian Science Foundation (project No. 16-11-10046). Stepan Kochemazov and Oleg Zaikin are additionally supported by Council for Grants of the President of the Russian Federation (stipends SP-1829.2016.5 and SP-1184.2015.5 respectively). Eduard Vatutin is partially supported by Council for Grants of the President of the Russian Federation (grant MK-9445.2016.8) and by Russian Foundation for Basic Research (grant 17-07-00317-a). We thank all Gerasim@home volunteers, whose computers took part in the experiment. Authors contribution: E. Vatutin: general scheme of algorithm proposed in Sect. 2, the experiment described in Subsect. 4.2; S. Kochemazov: bit arithmetic implementation of algorithm outlined in Sect. 3; O. Zaikin: The experiment described in Subsect. 4.3.