Many applications require randomly sampling bipartite graphs with fixed degrees, or randomly sampling incidence matrices with fixed row and column sums. Although several sampling algorithms exist, the ``curveball'' algorithm is the most efficient with an asymptotic time complexity of O(n log n), and has been proven to sample uniformly at random. In this paper, we introduce the ``fastball'' algorithm, which adopts a similar approach but has an asymptotic time complexity of O(n). We show that a C++ implementation of fastball randomly samples large bipartite graphs with fixed degrees faster than curveball, and illustrate the value of this faster algorithm in the context of the fixed degree sequence model for backbone extraction.
翻译:许多应用都要求随机抽样使用固定度的双边图,或随机抽样使用固定行数和列数总和的两边情况矩阵。虽然存在几种抽样算法,但“curveball”的算法在O(nlognn)的零星时间复杂性方面最为有效,并且已被证明可以统一随机抽样。在本文中,我们引入了“fastball”算法,该算法采用了类似的方法,但O(n)的时数复杂性却不那么简单。我们显示,C++ 随机抽取比曲线球更快的大型双边图,并用固定度模型来说明这种更快的算法的价值。