【发布时间】:2021-12-11 17:21:02
【问题描述】:
我在下面写了一个我想优化的函数
my_function = function(param, q, m){
out = sum(-param*q + param*m)
return(-out)
}
我能够运行该函数并获得优化的结果
> init = c(0,0,0)
> q = c(0.6, 0.14, 0.18)
> m = c(0, 2.5 , 4.2)
>
> nlminb(init, my_function, q=q, m=m, lower=c(0,0,0), upper=c(3,3,3))
$par
[1] 0 3 3
$objective
[1] -19.14
$convergence
[1] 0
$iterations
[1] 3
$evaluations
function gradient
4 9
$message
[1] "both X-convergence and relative convergence (5)"
我想介绍以下约束,但我不知道该怎么做
- 输出参数应为非负整数
- 参数的总和应该是某个值k
有人可以告诉我如何实现这一目标吗?
【问题讨论】:
-
做不到,
nlminb用于Unconstrained and box-constrained optimization using PORT routines.,你需要一个不同的模型。 -
这是线性的吧?对线性模型使用线性求解器要好得多。
标签: r optimization mathematical-optimization discrete-optimization