2

私はプログラミングの経験が少しあるので、問題を最適な方法でコーディングしていないと確信しているので、何かヒントをいただければ幸いです。

問題の次元と制約nの行列の2 つのパラメーターがあります。私の場合は対称で、正の値しかありません。次の問題を解決する必要がありますN x NBN = 2nB

最適化問題

つまり、 によって与えられるペアワイズ距離の制約を受ける距離の特定の平均を最大化する必要がありB(i,j)ます。

私が今やっている方法は、linprog(-f,A,b)whereの実装です

f = ones([1,n])/n;
f = [f -f]

b = reshape(B',numel(B),[])

でありA、次のように定義されます。

 A = zeros([N^2,N]);
 for i = 1:N
  for j = 1:N
    if i ~= j
      A((i-1)*N + j,i)   =  1;
      A((i-1)*N + j,j)   = -1;
   end
 end
end

しかし、n = 500単純な構成でAもかなりの時間がかかる場合、線形計画法を解くのにかかる時間は言うまでもありません。ヒントは大歓迎です。お気軽に再タグ付けしてください。

4

2 に答える 2

2

まず、次のAように構築してみてください。

AI = eye(N);
AV = ones(N, 1);
A = kron(AI, AV) - kron(AV, AI);

作成している方法よりも少なくとも1桁速く実行する必要があると思います。

于 2013-08-21T16:33:09.220 に答える