我有五个变量。每个变量都有一些界限。我正在为每个渠道投入一些资金。现在我的问题是有没有任何优化器或逻辑来找出给定函数形式的全局最大值。组合总和不应超过我的总支出。
parameters=c(10,120,105,121,180,140) #intercept and variable coefficients
spend=c(16,120,180,170,180) # total spend
total=sum(spend)
upper_bound=c(50,200,250,220,250)
lower_bound=c(10,70,100,90,70)
var1=seq(lower_bound[1],upper_bound[1],by=1)
var2=seq(lower_bound[2],upper_bound[2],by=1)
var3=seq(lower_bound[3],upper_bound[3],by=1)
var4=seq(lower_bound[4],upper_bound[4],by=1)
var5=seq(lower_bound[5],upper_bound[5],by=1)
功能形式是:exp(BETA 0-BETA i / X i)
我使用expand.grid函数查找现有组合。但是我的组合太多了。
这是我的代码。
seq_data=expand.grid(var1=var1,var2=var2,var3=var3,var4=var4,var5=var5)
rs=rowSums(seq_data)
seq_data=seq_data[rs<=total,]
seq_data1=seq_data
for(i in 1:length(seq_data))
seq_data1[,i]=exp(parameters[1]-parameters[i+1]/seq_data1[,i])
我怎样才能克服这个问题。如果还有其他选择,请建议我。
提前致谢。