资源

入门示例(ga0)

/***************************************************************//*                                                             *//*S A S S A M P L E L I B R A R Y*//*                                                             *//*名称:ga0*//*标题:入门示例(ga0)*//*产品:或*//*系统:所有*//*关键字:或*//*项目:GA*//*数据:*//**//*支持:更新:*//*参考:*//*MISC:入门部分的示例*//*局部搜索优化的GA章节*//*                                                             *//***************************************************************/proc-ga种子=12最大值=30;/*待优化的目标函数*/函数shubert(选中[*]);数组x[2]/nosym;调用ReadMember(selected,1,x);x1=x[1];x2=x[2];总和1=0;do i=1到5;sum1=sum1+i*cos((i+1)*x1+i);结束;总和2=0;do i=1到5;sum2=sum2+i*cos((i+1)*x2+i);结束;结果=sum1*sum2;返回(结果);endsub;/*设置问题编码*/调用SetEncoding(“R2”);/*设置解决方案组件的上下限*/array下界[2]/nosym(-10-10);数组上限[2]/nosym(10 10);调用SetBounds(下限,上限);/*设置目标函数*/调用SetObjFunc('shubert',0);/*设置交叉参数*/调用SetCrossProb(0.65);调用SetCross(“启发式”);/*设置变异参数*/调用SetMutProb(0.15);数组del[2]/nosym(0.2 0.2);调用SetMut('Delta','change',1,'Delta',del);/*设置选择标准*/call SetSel('tournament','size',2);致电SetElite(2);/*使用120个随机解决方案初始化第一代*/调用Initialize('DEFAULT',120);/*现在执行遗传算法*/运行;退出;