优化错误:约束不一致没有解决方案

时间:2018-09-28 17:21:40

标签: r mathematical-optimization

在解决R中的优化问题时,我遇到约束不一致无解决方案错误。所使用的软件包-NlcOptim。我将其范围缩小到我的目标函数,并且怀疑数值/精度问题。下面是代码:

library(NlcOptim)

objective_function1 <- function(x) {
  return((-1) * (10*x[1]*x[2]*(-300*x[2] + 400) + 10*x[3]*x[4]*(-300*x[4] + 400)))
}
objective_function2 <- function(x) {
  return((-10) * (x[1]*x[2]*(-300*x[2] + 400) + x[3]*x[4]*(-300*x[4] + 400)))
}

res1 = solnl(X=c(1, 0, 1, 0), objfun=objective_function1, 
             Aeq = matrix(c(1,0,1,0), nrow = 1), Beq=2,
             lb=c(1,0,1,0), ub=c(2,1,2,1))

res2 = solnl(X=c(1, 0, 1, 0), objfun=objective_function2, 
             Aeq = matrix(c(1,0,1,0), nrow = 1), Beq=2,
             lb=c(1,0,1,0), ub=c(2,1,2,1))

肉眼看,这两个目标函数之间没有区别。但是,objective_function1会引发以下错误:

Error in solve.QP(HESS, -ggf, -t(tgc), c, meq = eq) : 
constraints are inconsistent, no solution!

对此有什么可能的解决方法?

0 个答案:

没有答案