On some randomized algorithms and their evaluation
Krasimir Yordzhev
TL;DR
This work addresses the challenge of generating random Sudoku matrices by analyzing randomized algorithms for related objects such as random permutations, Pi_n matrices, and S-permutation matrices. It develops a bijection between $\Pi_n$ and $\Sigma_{n^2}$ to enable efficient Sudoku construction, and introduces a guaranteed-success generator for $\Pi_n$ with $\tau(n)=O(n^3)$ alongside an $O(n^4)$ checker for $\Sigma_{n^2}$. The proposed Sudoku-generation approach assembles $n^2$ disjoint $\Pi_n$ matrices to form Sudoku matrices, with probabilistic counts $|\Sigma_{n^2}|=(n!)^{2n}$ and known Sudoku counts $\sigma_2=288$, $\sigma_3\approx 6.671\times10^{21}$. These results offer practical, performance-oriented methods for random Sudoku matrix generation and object-evaluation in randomized algorithms.
Abstract
The paper considers implementations of some randomized algorithms in connection with obtaining a random $n^2 \times n^2$ Sudoku matrix with programming language C++. For this purpose we describes the set $Π_n$ of all $(2n) \times n$ matrices, consisting of elements of the set $\mathbb{Z}_n =\{ 1,2,\ldots ,n\}$, such that every row is a permutation. We emphasize the relationship between these matrices and the $n^2 \times n^2$ Sudoku matrices. An algorithm to obtain random $Π_n$ matrices is presented in this paper. Several auxiliary algorithms that are related to the underlying problem have been described. We evaluated all algorithms according to two criteria - probability evaluation, and time for generation of random objects and checking of belonging to a specific set. This evaluations are interesting from both theoretical and practical point of view because they are particularly useful in the analysis of computer programs.
