首页 > 解决方案 > 有没有办法在 parfor 循环中应用不与顺序无关的变量?

问题描述

我正在尝试在优化问题中使用并行工作者,但我无法定义 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

标签: matlaboptimizationparfor

解决方案


推荐阅读