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