遗传算法通常运行速度更快,如果你矢量化适应度函数。这意味着,遗传算法仅调用一次的健身功能,但预计适应度函数来计算当前群体中所有个体的健身一次。向量化的适应度函数,
编写计算功能,使得它接受与任意多行的矩阵,对应于群体中的个体文件。例如,进行向量化的功能
使用下面的代码写入文件:
Z = X(:,1)。^ 2 - 2 * X(:,1)* X(:,2)+ 6 * X(:,1)+ X(:,2)。^ 2 - 6 *X(:,2);
在第一项中的冒号X
表示所有行X
, 以便X(:,1)
是一个矢量。该。^
和*。
运营商对矢量执行的elementwise操作。
在命令行设置UseVectorized
选项真正
运用optimoptions
。
在优化应用程序,设置用户功能评价>评估健身和约束功能至矢量
。
健身功能,任何非线性约束功能,必须接受行使用任意数量的矢量化选项。GA
有时即使在矢量计算评估的单个行。
下面的比较,在命令行上运行,示出速度的提高与矢量化。
选项= optimoptions(“嘎”,“族群大小”,2000);抽动; GA(@ rastriginsfcn,20,[],[],[],[],[],[],[],选项); TOC优化终止:最大数的代超标。过去时间是12.054973秒。选项= optimoptions(选项,'UseVectorized',真正);抽动;GA(@ rastriginsfcn,20,[],[],[],[],[],[],[],选项);TOC
优化终止:几代人的最大数量超标。经过时间是1.860655秒。
如果有非线性约束,目标函数和非线性约束所有需要为了进行矢量的算法来计算在向量化方式。
矢量化目标和约束功能包含如何向量化既为求解一个例子patternsearch
。语法是几乎相同GA
。唯一的区别是,patternsearch
可以具有其图案显示为行或列向量;对应的向量GA
是人口的载体,它们总是排。