【OR】YALMIP 一般凸规划

    科技2022-07-10  93

    导航

    General convex programmingReferences

    General convex programming

    找到多面体(polytope) A x ≤ b Ax\leq b Axb的解析中心,解析中心的目标函数为 ∑ log ⁡ ( b − A x ) \sum \log(b-Ax) log(bAx) 定义多面体和决策变量,设置约束后求解

    n=5; m=20; A=randn(m, n); b=rand(m, 1)*m; x=sdpvar(n, 1); C=A*x<=b; % solve optimize(C, -sum(log(b-A*x)));

    但是一般情况下是得不到正确解的,因为在不可行点目标函数未定义,可以使用指数算子求解问题的逆形式,求解指数锥规划问题

    y=sdpvar(m, 1); ops = sdpsettings('solver', 'mosek'); optimize(exp(y)<=b-A*x, -sum(y), ops)

    也可以计算几何平均,转为二阶锥规划

    % SOCP optimize([], -geomean(b-A*x), ops)

    默认情况下,YALMIP可能将原问题转为非凸问题,可以显式设置禁止转化

    ops=sdpsettings('allownonconvex', 0);

    References

    General convex programming

    Processed: 0.010, SQL: 8