0

我想从以下论文Randomized Gossip Algorithms, Page 10 Eq 53中实现以下优化问题

优化问题的截图。

1- 在这个问题中,W, P, and P_{ij}n-by-n矩阵。如果您帮助我在 CVX 中实施以下约束,我将不胜感激。

W=\frac{1}{n}\sum_{i,j=1}^{n}P_{i,j}W_{i,j}

2- 同样,在这个问题中,E是一个节点的一组邻居i。约束P_{ij}=0 if {i,j}\not\in{E}意味着如果节点并且不是邻居P_{ij}则为零。有没有人可以帮助如何实施这种邻里关系?ij

对于 $n=3$,neighbors.xlsx可能如下所示:

邻居.xlsx 的屏幕截图

这意味着节点 1 与节点 2 相邻,节点 2 与节点 1 和 3 相邻,节点 3 与节点 2 相邻。

我在 Matlab 中为此编写了以下代码。

cvx_begin sdp
    agt = struct([]);
    neighbors = readcell('neighbors.xlsx');
    N = 2;
    for i = 1:N
      agt(i).neighbors = neighbors{i};
    end
    variable s
    variable P(N,N) symmetric
    variable W_ij(N,N) symmetric
    expression W
    
    minimize (s)
    
subject to     

P(:) >= 0;

    j = 1;
    for i = 1:N
        D =[i,j];
        if ~ismember(D,agt(i).neighbors)
            P(i,j)== 0;
        end
        j = j+1;
    end


    for i = 1:N
        for j = 1:N
            W = P(i,j).*W_ij;
        end    
    end
    W = (1/N).*W;
    W-(1/N)*ones(N,1)*ones(1,N) - s*eye(N) == semidefinite(N);

cvx_end

它不起作用,我收到以下错误。任何帮助是极大的赞赏。

Error using  .*  (line 262)
Disciplined convex programming error:
    Invalid quadratic form(s): not a square.


Error in lambda (line 35)
            W = P(i,j).*W_ij;
4

0 回答 0