我有一點編程經驗,所以我很確定我沒有以最佳方式編碼問題,所以我很樂意聽到任何提示。MATLAB:特定線性程序的快速高效內存解決方案
我有兩個參數:問題n
的尺寸和約束B
其中N = 2n
的N x N
矩陣。在我的情況下,B
是對稱的,只有正值。我需要解決以下問題
這就是我需要最大限度地受到由B(i,j)
給出成對的距離約束的距離有一定的平均值。
他們辦法,我現在做的是一個linprog(-f,A,b)
實施,其中
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
需要相當長的時間,而不是說線性程序的解決方案需要多長時間。任何提示都非常感謝,請隨時重新標記。
它看起來像您的解決方案的維度是* 2n *。 – Jacob
@Jacob:你是對的,修正了 – Ilya