#python #optimization #random
#python #оптимизация #Случайный
Вопрос:
я использую модуль pyOpt для решения задачи выпуклой оптимизации. Оптимизация всегда дает мне результат, и значение, к которому оно сходится, выглядит так, как будто оно минимизирует мою целевую функцию, но для разных запусков моего кода я получаю разные решения. Моя проблема выпуклая, но не строго, поэтому я ожидал бы существования разных решений, но поскольку начальная точка моего алгоритма в основном одинакова для двух запусков, мне было интересно, может ли это быть связано с какой-то случайной процедурой в алгоритме, который я использую. Я использую алгоритм slsqp, кто-нибудь знает, использует ли он какую-либо случайную процедуру?
Комментарии:
1. Это не обязательно должно быть преднамеренно случайным: любое использование параллелизма также может привести к недетерминированности. Я не знаком с pyOpt, но в документах есть слово «параллельный».
2. но в нем говорится, что значение параметра parallel по умолчанию равно None, также я не очень знаком с тем, что означает термин параллелизм в алгоритмах
3. Если вы в отчаянии (потому что это всего лишь предположение), проверьте, какой сервер BLAS используется, и попробуйте установить там нулевые потоки.
4. можете ли вы подсказать мне, как это сделать? причина, по которой я, похоже, не могу найти, как это делается