我有一个函数,我希望优化哪些参数。作为一个简化的例子,该函数看起来像这样:
F <- function (d)
{
num_iterations <- 10
function_data <- c(1,3,5,7,9,11)
rslt <- 0
di_1 <- 1
di_2 <- length(function_data)
for (i in 1:num_iterations)
{
di <- d [di_1:di_2]
rslti <- function_data - di
rslt <- rslt + sum(rslti)
function_data <- rslti
di_1 <- di_1 + length(function_data)
di_2 <- di_2 + length(function_data)
}
return (rslt)
}
其中d是长度等于:num_iteration * length(function_data)
的向量。
所以我希望最大化函数F并优化d
的值,由每次迭代的d
值组成。问题是我必须以某种方式限制优化过程,特别是在函数内部迭代di
必须小于或等于function_data
(di <= function_data
)。此外,函数的标量结果应为正数。
由于di <= function_data
每次迭代都会更改,因此我很难指定条件function_data
。我在R中玩过 optim 和 constrOptim ,但我认为不可能在 constrOptim 中设置这样的约束。
所以我想问一下如何(或者是否)可以在R中设置这个约束优化问题。我将非常感谢任何帮助,评论,代码片段或优化包建议。请耐心等待我,我是新手。
谢谢。