代码之家  ›  专栏  ›  技术社区  ›  Popeye

规划一个非凸优化(二次最大化)半定规划

  •  0
  • Popeye  · 技术社区  · 11 年前

    只是想知道是否有人能帮我解决这样的问题:(使用matlab和CVX)

    cvx_begin sdp
    
    variables x0 x1 x2 x3 y1 y2 y3 y4 y5
    
    x0==1/sqrt(3)
    
    1/3+x1^2+x2^2+x3^2+y1^2+y2^2+y3^2+y4^2+y5^2<=1
    
    x1==-x3 
    y1==y5
    y2==-y4 
    
    x0*X0+x1*X1+x2*X2+x3*X3+y1*Y1+y2*Y2+y3*Y3+y4*Y4+y5*Y5>=0
    
    maximize(x1^2+x2^2+x3^2)
    
    cvx_end
    

    X0,X1,。。。。。X3、Y1、,。。。。Y5,Z1…….Z7(大写)是矩阵(球面张量)。一个约束条件是,变量小写的乘积必须是半正定的,它还必须满足变量语句后的所有其他等式/不等式。

    好吧,这个程序不起作用,因为二次最大化不是CVX所要求的凸的,有人知道可以用另一种资源重新制定或解决这个优化问题的方法

    任何输入都是确认的,

    1 回复  |  直到 11 年前
        1
  •  2
  •   tmyklebu    11 年前

    看起来你试图最大化一个与仿射空间和丑陋的半空间相交的球上的二次方。

    球上二次方的最大化被称为“信任域子问题”。令人惊讶的是,它承认了一个有效的解决方案。我从来没有用过,但是 LSTRS Marielba Rojas等人显然实现了TRS求解器。

    不过,您需要处理不等式约束。我建议找到最小可行的拉格朗日乘子,从而使TRS的最优解实际上位于所需的半平面中。二进制搜索是一种技术含量很低的方法。