Low-discrepancy (LD) sequences have been extensively used as efficient experimental designs across many scientific disciplines. QMCPy (https://qmcsoftware.github.io/QMCSoftware/) is an accessible Python library which provides a unified implementation of randomized LD sequences, automatic variable transformations, adaptive Quasi-Monte Carlo error estimation algorithms, and fast kernel methods. This article focuses on recent updates to QMCPy which broaden support for randomized LD sequences and add new tools to enable fast kernel methods using LD sequences. Specifically, we give a unified description of the supported LD lattices, digital nets, and Halton point sets, along with randomization options including random permutations / shifts, linear matrix scrambling (LMS), and nested uniform scrambling (NUS). We also support higher-order digital nets, higher-order scrambling with LMS or NUS, and Halton scrambling with LMS or NUS. For fast kernel methods, we provide shift-invariant (SI) and digitally-shift-invariant (DSI) kernels, including a new set of higher-order smoothness DSI kernels. When SI and DSI kernels are respectively paired with n LD lattice and digital net points, the resulting Gram matrices permit multiplication and inversion at only O(n log n) cost. These fast operations utilize QMCPy's implementation of the fast Fourier transform in bit-reversed order (FFTBR), inverse FFTBR (IFFTBR), and fast Walsh--Hadamard transform (FWHT).
翻译:低差异(LD)序列作为高效的实验设计已在众多科学领域得到广泛应用。QMCPy(https://qmcsoftware.github.io/QMCSoftware/)是一个易于使用的Python库,它提供了随机化LD序列的统一实现、自动变量变换、自适应拟蒙特卡洛误差估计算法以及快速核方法。本文重点介绍QMCPy的最新更新,这些更新扩展了对随机化LD序列的支持,并增加了利用LD序列实现快速核方法的新工具。具体而言,我们对所支持的LD格点、数字网和Halton点集进行了统一描述,同时介绍了包括随机置换/平移、线性矩阵置乱(LMS)和嵌套均匀置乱(NUS)在内的随机化选项。我们还支持高阶数字网、采用LMS或NUS的高阶置乱,以及结合LMS或NUS的Halton置乱。针对快速核方法,我们提供了平移不变(SI)和数字平移不变(DSI)核,包括一组新的高阶光滑性DSI核。当SI核和DSI核分别与n个LD格点及数字网点配对时,所得的Gram矩阵仅需O(n log n)的计算成本即可完成乘法与求逆运算。这些快速运算利用了QMCPy实现的按位逆序快速傅里叶变换(FFTBR)、逆FFTBR(IFFTBR)以及快速沃尔什-哈达玛变换(FWHT)。