私はプログラミングの経験が少しあるので、問題を最適な方法でコーディングしていないと確信しているので、何かヒントをいただければ幸いです。
問題の次元と制約n
の行列の2 つのパラメーターがあります。私の場合は対称で、正の値しかありません。次の問題を解決する必要がありますN x N
B
N = 2n
B
つまり、 によって与えられるペアワイズ距離の制約を受ける距離の特定の平均を最大化する必要があり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
もかなりの時間がかかる場合、線形計画法を解くのにかかる時間は言うまでもありません。ヒントは大歓迎です。お気軽に再タグ付けしてください。