【发布时间】:2020-04-30 12:05:56
【问题描述】:
我有以下函数,我使用 optim() 将其最大化。
Budget = 2000
X = 4
Y = 5
min_values = c(0.3,0)
start_values = c(0.3,0.5)
max_values = c(1,1)
sample_function <- function(z,Spend){
Output = (z[1]*X*Spend) + (z[2]*Y*Spend)
return(Output)
}
MaxFunction <- optim(par=start_values ,fn= sample_function, method = "L-BFGS-B", lower = min_values , upper= max_values ,control=list(maxit=100000 ,fnscale=-1), Spend= Budget)
但是我想在最大化时添加一些约束,例如:
z[1] => 1/3
和
z[1] + z[2] = 1
任何帮助都将不胜感激,因为这与我正在解决的更复杂的问题有关。 或者如果有不使用 otpim() 解决问题的不同方法,请告诉我。
【问题讨论】:
-
无法真正回答您的问题,因为我从未使用过
optim函数。但只是想说您可以通过不定义像这样的输出来简化示例函数的代码sample_function <- function(z,Spend){ (z[1]*X*Spend) + (z[2]*Y*Spend) }该函数将返回任何打印的内容。 -
嗨,Bas,它实际上不是线性规划问题,因为输出变量没有预定义
标签: r function optimization constraints maximization