我有一个简单的经济订货量 (EOQ) 优化问题,涉及许多变量和一些约束。
广义目标函数为 sum(ai*x[i]+bi/[xi]),限制条件为:
- x[i] >=1 对于所有“i”(至少 1 个订单)
- x[i] <=24 对于所有“i”(最多 24 个订单)
- sum(x[i]) <= 2000(最多合并 2000 个订单)
- sum(ci/x[i]) <= 2000(循环库存最多 2000 个单位)
使用 auglag() 需要很长时间(即使是 100 个变量),所以做了一些研究,我发现问题是凸的,并试图实现一个凸求解器。
我找到了这个链接:
但是,CVXR 似乎不允许分母中包含“x”,因为它会提示以下错误消息:
as.Constant(e1)/e2 中的错误:只能除以标量常数
ans2 <- auglag(par=rep(2,1000), fn=objfun, hin=confun) ##takes too long
p <- Variable(1000)
obj <- Minimize(sum(a*p+b/p)) ##prompts error
我希望求解器能够更快地解决这样一个“简单”的优化问题......我对第二个选项做错了吗?或者对于具有非线性约束的凸非线性优化问题是否有更好的求解器?
谢谢