Возможно ли оптимизировать функцию с использованием optim(par = init)
с ограничением, что вектор параметров всегда в порядке возрастания? Например, c(1,2,8)
будет разрешено, но c(1,2,0)
не разрешено?Ограничить ряды параметров оптимизированным
ответ
Вы можете использовать constrOptim()
, который может обрабатывать линейные ограничения:
constrOptim(theta=c(..), f=.., grad=NULL,
ui=matrix(c(-1,1,0, 0,-1,1), 2, byrow=TRUE), ci=c(0, 0))
Существуют ли опасности использования Nelder-Mead, подразумеваемых 'grad = NULL', а не использования' BFGS' в 'optim', как это было бы возможно для ответа Otto_K? Кажется, что я не могу использовать BFGS без вычисления градиента с помощью 'constrOptim', но я могу под чистым' optim'. – Hatshepsut
Я полагаю, что опасность меньше, чем в ответе Отто_К (манипуляции целевой функцией с разрывом). BFGS - это метод построения прокси-сервера для гессиана из градиентов шаг за шагом. Градиент может быть аппроксимирован на конечные разности. – jogo
Вы должны включить это условие в функции оптимизации:
Если ваша функция, чтобы максимизировать это:
fn<-function(x,y,z){
-x^2-(1+y)^2-(z-y)^2
}
Вам нужно изменить его на:
fn<-function(x,y,z){
if(x<y&&y<z){
return(-x^2-(1+y)^2-(z-y)^2)
}
else{
return(-Inf)
}
}
Теперь вы можете оптимизируйте эту функцию.
Это больше не является непрерывным и дифференцируемым. Это может вызвать проблемы. –
Это всегда происходит с оптимизацией ограничений. Однако оптимизация Монте-Карло может помочь избежать этой проблемы: optim (par = init, method = "SANN") –
Это глупое утверждение. LP считается непрерывным и дифференцируемым. Цель и каждое ограничение непрерывны и дифференцируемы. –
- 1. Как ограничить ряды клонированных строк до 4?
- 2. Slick - Join Table с Ряды Ограничить
- 3. JMH: Ограничить пространство параметров
- 4. Scala: ограничить значения параметров
- 5. Как ограничить имена параметров свиных
- 6. , который является оптимизированным методом
- 7. Необходимо ограничить ряды, используемые для граней в упругом поиске
- 8. Ограничить количество параметров в пакете параметров вариационного шаблона
- 9. Ограничить количество параметров для дополнительных параметров в PHP
- 10. Как ограничить выбор параметров параметров меню в Oracle BI Publisher?
- 11. сделать процесс zip более оптимизированным
- 12. Как создать экран оптимизированным способом?
- 13. Как сделать код более оптимизированным?
- 14. Загрузка насыщенного изображения оптимизированным способом
- 15. , используя временные ряды параметров для решения ODE в R
- 16. , чтобы ограничить значения параметров строго в пределах
- 17. Настроить modsecurity, чтобы ограничить число параметров?
- 18. Ограничить количество общих параметров в .NET?
- 19. Как ограничить типы параметров в общих методах
- 20. Как ограничить набор символов для привязки параметров?
- 21. Ограничить количество параметров для каждого метода?
- 22. Является ли постоянное целочисленное деление оптимизированным компилятором?
- 23. Является ли strlen const char * оптимизированным?
- 24. «Фильтрация» DataTable с помощью столбцов не Ряды
- 25. Ограничить использование конструктора без параметров для сериализации/Активатор/новый()
- 26. Ограничить строку параметров массивом строк во время компиляции
- 27. Можно ли ограничить значения необязательных параметров в C#?
- 28. Ограничить передачу экземпляров производных классов в качестве параметров метода
- 29. Ограничить ширину EditText в AlertDialog с помощью Параметров макета?
- 30. Можно ли ограничить список параметров при использовании React Router?
Это линейные ограничения, которые могут быть обработаны в 'constrOptim()'. См. Также CRAN TaskView https://cran.r-project.org/web/views/Optimization.html – jogo
@jogo Отличный совет, спасибо! – Hatshepsut