我想在 R 中解决一个非常简单的二次优化问题,其中一个约束是与向量之和相关的等式约束。我尝试使用 quadprog 包,但我不知道如何使它工作。帮助函数没有提供其中一个约束等于总和的示例。但也许 quadprog 不是正确使用的包......
我的问题如下。我想缩小/扩展一个值向量,使总和等于设定值,并且它们的值受 0 和最大值的约束。由于结果需要尽可能接近初始值,我想最小化残差平方和。下面我介绍一个玩具示例。很容易看出,例如(5,5,6)在解空间中,但不是最优解。
x_start <- c(4,3,7)
tot <- 16
# Objective function that needs to be minimized
obj <- function(x){return((x-x_start)^2)}
# Subject to:
# Sum constraint
con1 <- function(x) {return(sum(x)-tot)}
# Bounds 0 <= x <=6
x_max <- 6
x_min <- 0