Создание низкочастотных квази-случайных последовательностей в python/numpy/scipy?

Существует уже вопрос, но ответ содержит неработающую ссылку, и, будучи старше двух лет, я надеюсь, что там будет лучшее решение:)

Низкие несоответствия квази-случайных последовательностей, например. Sobol, заполняют пространство более равномерно, чем однородно случайные последовательности. Есть ли хороший/простой способ сгенерировать их в python?

Ответ 1

Я думаю, что лучшей альтернативой для последовательностей Low Discrepancy в Python является библиотека анализа чувствительности (SALib):

https://github.com/SALib/SALib

Я думаю, что это активный проект, и вы можете связаться с автором, чтобы проверить, действительно ли функциональные возможности уже реализованы. Если это не решит вашу проблему, Corrado Chisari портировал версию SOBOL, сделанную в Matlab (Джоном Буркардом) на Python, вы можете получить к ней доступ:

http://people.sc.fsu.edu/~jburkardt/py_src/sobol/sobol.html

Кто-то очистил комментарии в этих источниках и разместил их в формате докстрон. Он гораздо читабельнее, и вы можете получить к нему доступ здесь:

https://github.com/naught101/sobol_seq

Ответ 2

Chaospy также является допустимым вариантом. Это позволяет выбрать несколько подходов к выборке с низким несоответствием (в том числе "Соболь", "Латинский гиперкуб" и т.д.). Более подробную информацию см. В документации.