Я пытаюсь использовать параллельных рабочих в задаче оптимизации, но не могу определить V. Я хорошо знаю, что V не зависит от порядка, но такая переменная (как V) должна быть определена для любой совокупности. метод оптимизации на основе. Есть какие-нибудь советы или хитрости, которые вы можете придумать?
Я даже пытался сохранять X после каждой итерации и загружать его перед вычислением вектора V, но затем у меня возникает ошибка нарушения прозрачности.
clc; clear all; close all
T = 10;
Func = @sum;
Z = rand(1, 3);
X = rand(T, 3);
F=0.5;
parfor t=1:T
R=randperm(T);
R(find(R==t))=[];
V=X(R(1),:)+F*(X(R(2),:)-X(R(3),:));
TmpZ=Func(Z(1,:));TmpX=Func(X(t,:));
if TmpZ < TmpX
X(t,:)=Z(1,:); Y(t,1)=TmpZ;
else
X(t,:)=X(t,:); Y(t,1)=TmpX;
end
end