【问题标题】:Solve non-linear convex optimization problem with nonlinear constraints in R在 R 中求解具有非线性约束的非线性凸优化问题
【发布时间】:2019-05-23 12:44:29
【问题描述】:

我有一个简单的经济订货量 (EOQ) 优化问题,涉及许多变量和一些约束。

广义目标函数为sum(ai*x[i]+bi/[xi]),限制条件为:

  • x[i] >=1 对于所有“i”(至少 1 个订单)
  • x[i]
  • sum(x[i])
  • sum(ci/x[i])

当使用 auglag() 时,它花费的时间太长(即使是 100 个变量),所以做了一些研究,我发现问题是凸的,并试图实现一个凸求解器。

我找到了这个链接:

Error in nonlinear optimization problem : infinite or missing values in 'x'

但是,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

我希望求解器能够更快地解决这样一个“简单”的优化问题...... 我对第二个选项做错了吗? 或者对于具有非线性约束的凸非线性优化问题有更好的求解器吗?

谢谢

【问题讨论】:

  • 类似地,您如何强制“p”为整数?我试过 p%%1==0 和 (p-floor(p))==0...

标签: r convex-optimization cvxr


【解决方案1】:

试试

Minimize(sum(a*p+b*inv_pos(p)))

我没有尝试过,因为您没有提供可重现的代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-30
    • 2013-02-15
    • 2014-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多