主要内容

运行遗传算法从一个文件中

命令行界面使您能够运行遗传算法多次,使用不同的选项设置,使用一个文件。例如,您可以运行遗传算法不同的设置交叉部分,看看哪一个给最好的结果。下面的代码运行功能遗传算法21次,不同options.CrossoverFraction0.05从0到1的增量,并记录结果。

选择= optimoptions (“遗传算法”,“MaxGenerations”,300,“显示”,“没有”);rng默认的%的再现性记录= [];n = 0:。05:1选项= optimoptions(选项,“CrossoverFraction”n);[x, fval] = ga (@rastriginsfcn 2[]、[][],[],[],[],[],选项);记录=[记录;fval];结束

情节的值fval对交叉分数。

情节(0:。05:1、记录);包含(的交叉部分);ylabel (“fval”)

图包含一个坐标轴对象。坐标轴对象包含交叉分数,ylabel fval包含一个类型的对象。

情节设置建议你得到最好的结果options.CrossoverFraction一个值介于0.4和0.8之间。

你可以得到一个平滑的情节fval作为交叉部分的运行函数遗传算法20倍,平均每个交叉fval分数的值。

选择= optimoptions (“遗传算法”,“MaxGenerations”,300,“显示”,“没有”);rng默认的%的再现性记录= [];fval = 0(20日1);n = 0:。05:1选项= optimoptions(选项,“CrossoverFraction”n);我= 1:20 [x, fval (i)) = ga (@rastriginsfcn 2[]、[][],[],[],[],[],选项);结束meanf =意味着(fval);记录=[记录;meanf];结束情节(0:。05:1、记录);包含(的交叉部分);ylabel (“fval”)

图包含一个坐标轴对象。坐标轴对象包含交叉分数,ylabel fval包含一个类型的对象。

这张图也表明最佳选择的范围options.CrossoverFraction是0.4到0.8。

另请参阅

相关的话题