• 2.4 运行JSOP


    在上一节中,我们将适应度函数设定为Rastrigin函数,现在我们就通过JSOP来寻找该函数的全局最小值(JSOP默认寻找函数的最小值而非最大值)。

    打开usr.m,相关参数设置如下

    %仿真设置
    model_name='test.cst';      %CST模型路径
    result_route='1D ResultsS-Parameters';      %仿真结果在Navigation Tree中的路径
    result_name='SZmax(1),Zmax(1)';      %仿真结果的名称(参见rtdata.txt)
    plot_mode='phase';    %仿真结果的模式,包括'magnitude','magnitudedb', 'phase', 'polar',  'real', 'imaginary', 'smith', 'smithy'
    solver_type='FDSolver';    %频域求解器:FDSolver  时域求解器:Solver
    start_cst=false;    %是否调用CST
    
    %变量设置
    var_name={'d','w'};    %变量名称
    var_bound=[[-10,10];[-10,10]];    %变量变化范围 [ [变量1的下界,变量1的上界] ; [变量2的下界,变量2的上界] ; ...]
    inserts=[ ];    %插入指定个体
    var_constrain='';    %变量的限制条件,若无限制请输入''
    
    %种群设置
    MAXGEN=100;    %最大代数
    NIND=40;    %一代中个体的数量
    PRECI=20;    %单个变量的二进制位数   
    MTR=1;    %变异率(默认值的倍数)
    
    %其它设置
    plot_graph=2;    %0:不绘制进化曲线  1:每进化一代就更新进化曲线  2:完成最后一代后再绘制进化曲线
    plot_ave=false;    %是否显示种群平均值
    
    %----------------------------------------------------------------------------------------
    main_function(  model_name, result_route, result_name,  plot_mode,  solver_type,  ...  
                    var_name,  var_bound',  inserts,  var_constrain,  ...
                    MAXGEN,  NIND,  PRECI,  MTR, ...
                    plot_graph, plot_ave, start_cst);
                         
    %JSOP1.2
    

    由于不需要调用CST,因此“仿真设置”中除了start_cst,其它的变量可任意设置,只要没有语法错误即可。

    运行usr.m,几秒钟后程序即运行完毕并显示出进化曲线图,如下图所示。

    每一代的最优个体的适应度值输出在命令行窗口,可以看到,当种群进化到第40代,就基本找到了全局最小值0。

    打开JSOPinterface esult.txt,可以看到每一代的每个个体的参数和适应度值,如下图所示,图中展示了某一代的第35-40号个体的信息。在每一代信息的最下方还有每一代的最优个体和平均适应度值,在图中,最优个体为17号个体,平均适应度值为8.0588

     

    如果JSOP没有优化出期望的结果,可以重新运行JSOP进行优化,运行时JSOP会先将result.txt中的数据备份到同一文件夹下的result.old.txt中,再将result.txt清空。需要注意的是,result.old.txt只对上一次的运行结果进行备份,因此若要保留运行结果,建议对result.txt进行手动备份。

  • 相关阅读:
    Shiro框架:Failed to deserialize java.lang.Exception: Failed to deserialize问题解决
    Linux系统:CentOS防火墙的各种命令使用
    Linux系统:CentOS下vsftpd的安装配置
    Vue项目启动报错:UnhandledPromiseRejectionWarning: TypeError: loaderContext.getResolve is not a function问题解决
    Minio存储桶:部署存储服务以及设置永久下载链接
    Redis之Bitmaps
    Redis事务与Lua
    Redis Pipeline
    Redis Shell详解
    Redis慢查询
  • 原文地址:https://www.cnblogs.com/bill-h/p/13073873.html
Copyright © 2020-2023  润新知