R二次规划

R二次规划,r,quadratic,nonlinear-optimization,quadprog,R,Quadratic,Nonlinear Optimization,Quadprog,我有一个问题,我想在R解决 我发现我可以使用包limSolve中的函数lsei来最小化矩阵形式的线性方程组Ax=b,受等式约束Ex=f和不等式约束Gx>=h的约束 然而,我现在有一个二次方程组,可以写成t(x)Ax=b,而不是线性方程组 我看到有一个用于二次型的包quadprog,但它似乎不允许一组二次型方程,只有一个方程 有人知道我可以用什么来最小化等式和不等式约束下的二次方程组吗 这是我的例子。我试图结合3个概率P(A),P(B),P(C)-这将创建7个段v1到v7,其中v1是P(A sol

我有一个问题,我想在R解决

我发现我可以使用包
limSolve
中的函数
lsei
来最小化矩阵形式的线性方程组Ax=b,受等式约束Ex=f和不等式约束Gx>=h的约束

然而,我现在有一个二次方程组,可以写成t(x)Ax=b,而不是线性方程组

我看到有一个用于二次型的包
quadprog
,但它似乎不允许一组二次型方程,只有一个方程

有人知道我可以用什么来最小化等式和不等式约束下的二次方程组吗

这是我的例子。我试图结合3个概率P(A),P(B),P(C)-这将创建7个段v1到v7,其中v1是P(A solus)等等。。。v4是P((A和B)而不是C)等。。v7是P(A、B和C)

我试图最小化的功能是:

obj.fc<-function(x){
  f<-rep(NA,4)
  v1<-x[1]
  v2<-x[2]
  v3<-x[3]
  v4<-x[4]
  v5<-x[5]
  v6<-x[6]
  v7<-x[7]
  f[1]<-(v4+v7)*(1-(v1+v2+v4+v5+v6+v7))-2*(v1+v6)*(v2+v5)
  f[2]<-(v5+v7)*(1-(v2+v3+v4+v5+v6+v7))-13*(v2+v4)*(v3+v6)
  f[3]<-(v6+v7)*(1-(v1+v3+v4+v5+v6+v7))-11*(v1+v4)*(v3+v5)
  f[4]<-(v4+v5+v6)*(1-(v1+v2+v3+v4+v5+v6+v7))-4*(v1+v2+v3)*v7
  return(f)
}

我的不等式约束是Vi必须介于0和1之间,并且它们的总和不能超过1。

您可以将每个等式约束表示为两个不等式约束,例如

Ax = b <=> Ax <= b, and
           Ax >= b
Ax=b Ax=b
然而,请注意,仅允许求解具有线性约束的二次目标函数意义上的“二次规划”。从
quadprog
文档:

该例程实现了Goldfarb和Idnani(1982, 1983)用于求解形式为min的二次规划问题(−dT b +1/2bT Db),约束条件为b>=b0

因此,在您的情况下,您可能应该查看另一个包。我建议,例如,
[NlcOptim][2]
,或者,从这里找到最适合您的解决方案:


来自
quadprog
包的函数
solve.QP
通常用于解决具有线性和非线性约束的二次规划问题。搜索SO上的
solve.QP
将返回许多示例。为了解决您的具体问题,您需要先使用等式约束,然后使用不等式约束构造约束矩阵
A
。参数
meq
用于告诉
solve.QP
A
中有多少个方程是等式约束。谢谢。不幸的是,它似乎解决了。QP不能处理一个二次方程组,只有一个二次方程。。。我在BB软件包中尝试了各种函数,但似乎我可以优化一组没有约束的二次方程,或者一个有约束的二次方程。。。仍然在努力寻找同时兼顾这两个方面的东西……如果你能用一个小问题来更新你的帖子,帮助我们更好地理解你的问题,那将是很有帮助的。是的,对不起,我现在已经包括了我的例子。我现在也尝试了包BB,但没有添加约束,NlcOptim,但似乎无法正确指定它(同样,问题包括约束…)。目标应该是使用标准优化工具的标量。如果目标是一个向量,我们真的有一个多目标优化问题,这是一个非常专门的领域。我正在尝试使用NlcOptim,但我无法让它工作。。。我怀疑我没有在NlcOptim中正确地指定我的问题,不幸的是,文档没有太大帮助,因为它只显示了目标函数返回标量的示例…@chrisjacques,正如埃尔文在上面所写的那样;对于非标量目标函数返回,我们本质上考虑的是多目标优化,在这种情况下,对什么是“最优解”没有统一的解释。我建议你把你的问题简化为一个目标。问题,以及附加的目标函数作为函数中的约束。假设你有两个你想学习的客观价值观。在您的程序中将其中一个作为约束:从相当松弛的约束开始,并使其变得越来越严格(直到程序变得不可行)@克里斯雅克。。。这将产生一个有价值的方法来研究两个目标函数优化问题的帕累托最优性。。。在这种情况下,我可能过于复杂化了,我可能会更好地通过使用我创建的四维目标函数的范数,返回到给定标量的目标函数。所以我的函数应该是f[i]的平方和。谢谢你的帮助@克里斯雅克很乐意帮忙。
Ax = b <=> Ax <= b, and
           Ax >= b