运行遗传算法
从一个文件中
命令行界面使您能够运行遗传算法多次,使用不同的选项设置,使用一个文件。例如,您可以运行遗传算法不同的设置交叉部分,看看哪一个给最好的结果。下面的代码运行功能遗传算法
21次,不同options.CrossoverFraction
0.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”)
情节设置建议你得到最好的结果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”)
这张图也表明最佳选择的范围options.CrossoverFraction
是0.4到0.8。