Передача опций решателям из cvxr.
Я использую CVXR для решения проблемы с ограничениями. Решатель дает результат, который не удовлетворяет всем ограничениям.
result <- solve(problem, solver='ECOS', verbose=TRUE, ecos.control(maxit=2000))
Последние несколько строк подробного вывода приведены ниже:
100 + 3.405e + 04 + 3.405e + 04 + 1e-09 5e-05 5e-09 1e-03 4e-12 0,9791 9e-01 2 0 0 | 15 0 Достигнуто максимальное количество итераций, восстановление наилучшей итерации (87) и остановка.
Решатель остановился на итерации 100, что может быть причиной того, что решение не удовлетворяет ограничению; или может быть, что решение проблемы - небольшое число (1e-5), и допуск по умолчанию был достигнут. Поэтому я попытался передать дополнительный аргумент решателю в соответствии с документом пакета ECOSolveR:
ecos.control(maxit=2000)
Тем не менее, решатель по-прежнему останавливается на максимальной итерации по умолчанию 100. Что пошло не так? Как передать дополнительные элементы управления солверу?
1 ответ
Я понял. Аргументы должны быть заглавными.
result <- solve(problem, solver='ECOS', verbose=TRUE, MAXIT=as.integer(2000))
Я думаю, что это не согласуется с документом.