查看: 9936|回复: 23|关注: 0

[已答复] GAOT遗传算法优化工具箱的实例解说

[复制链接]

新手

5 麦片

财富积分


050


2

主题

19

帖子

0

最佳答案
发表于 2010-6-1 15:49:21 | 显示全部楼层 |阅读模式
遗传算法优化工具箱(GAOT),由美国北卡罗来纳州立大学(North Carolina State University ,NCSU-IE )的Chris Houck, Jeff Joines, 和Mike Kay编写!
GAOT核心函数
(1)function [pop]=initializega(num,bounds,eevalFN,eevalOps,options)初始种群的生成函数

【输出参数】
pop--生成的初始种群

【输入参数】
     num--种群中的个体数目
    bounds--代表变量的上下界的矩阵
    eevalFN--适应度函数
    eevalOps--传递给适应度函数的参数
    options--选择编码形式(浮点编码或是二进制编码)[precision F_or_B],如 precision--变量进行二进制编码时指定的精度,F_or_B--为1时选择浮点编码,否则为二进制编码,由precision指定精度)

(2)function [x,endPop,bPop,traceInfo] = ga(bounds,evalFN,evalOps,startPop,opts,...
           termFN,termOps,selectFN,selectOps,xOverFNs,xOverOps,mutFNs,mutOps)遗传算法调用函数

【输出参数】
      x--求得的最优解
      endPop--最终得到的种群
      bPop--最优种群的一个搜索轨迹

【输入参数】
      bounds--代表变量上下界的矩阵
      evalFN--适应度函数
      evalOps--传递给适应度函数的参数
      startPop-初始种群
      opts[epsilon prob_ops display]--opts(1:2)等同于initializega的options参数,第三个参数控制是否输出,一般为0。如[1e-6 1 0]
      termFN--终止函数的名称,如['maxGenTerm']
      termOps--传递个终止函数的参数,如[100]
      selectFN--选择函数的名称,如['normGeomSelect']
      selectOps--传递个选择函数的参数,如[0.08]
      xOverFNs--交叉函数名称表,以空格分开,如['arithXover heuristicXover simpleXover']
      xOverOps--传递给交叉函数的参数表,如[2 0;2 3;2 0]
      mutFNs--变异函数表,如['boundaryMutation multiNonUnifMutation nonUnifMutation unifMutation']
      mutOps--传递给交叉函数的参数表,如[4 0 0;6 100 3;4 100 3;4 0 0]
    GAOT实例分析


求f(x)=x+10*sin(5x)+7*cos(4x)的最大值,其中0<=x<=9

【分析】选择二进制编码,种群中的个体数目为10,二进制编码长度为20,交叉概率为0.95,变异概率为0.08
     %编写目标函数
       function[sol,eval]=fitness(sol,options)
         x=sol(1);
         eval=x+10*sin(5*x)+7*cos(4*x);
     %把上述函数存储为fitness.m文件并放在工作目录下
   
     initPop=initializega(10,[0 9],'fitness');%生成初始种群,大小为10
     [x endPop,bPop,trace]=ga([0 9],'fitness',[],initPop,[1e-6 1 1],'maxGenTerm',25,'normGeomSelect',...
       [0.08],['arithXover'],[2],'nonUnifMutation',[2 25 3]) %25次遗传迭代
运行结果为:
x =
     7.8562 24.8553%(当x为7.8562时,f(x)取最大值24.8553)

新手

5 麦片

财富积分


050


1

主题

18

帖子

0

最佳答案
发表于 2012-4-21 19:50:54 | 显示全部楼层
楼主 有这个GAOT工具箱吗?有的话给我一个 谢谢  
邮箱 wanghuibliss@163.com

新手

7 麦片

财富积分


050


2

主题

8

帖子

0

最佳答案
发表于 2012-6-5 14:41:47 | 显示全部楼层

新手

5 麦片

财富积分


050


0

主题

1

帖子

0

最佳答案
发表于 2012-6-25 23:03:35 | 显示全部楼层
lz  我想问下  你的交叉概率0.95 在程序的哪里体现了  能指点下吗

新手

5 麦片

财富积分


050


2

主题

6

帖子

0

最佳答案
发表于 2012-8-14 16:01:28 | 显示全部楼层
请问楼主,matlab自带的优化工具箱怎么处理离散变量和整形变量的问题?另外,这个GAOT里面怎么处理呢?

新手

10 麦片

财富积分


050


1

主题

42

帖子

0

最佳答案
发表于 2012-8-15 11:49:36 | 显示全部楼层
楼主给我一份吧GAOT工具箱。邮箱1373947233@qq.com.谢谢

新手

10 麦片

财富积分


050


1

主题

28

帖子

0

最佳答案
发表于 2012-8-15 15:16:42 | 显示全部楼层
楼主给我一份吧GAOT工具箱。邮箱824019587@qq.com.谢谢

新手

5 麦片

财富积分


050


0

主题

4

帖子

0

最佳答案
发表于 2012-8-16 10:30:07 | 显示全部楼层
楼主辛苦了!

新手

5 麦片

财富积分


050


22

主题

117

帖子

0

最佳答案
发表于 2013-2-24 09:09:46 | 显示全部楼层
楼主,我想请教一下,
function[sol,eval]=fitness(sol,options)
x=sol(1);
eval=x+10*sin(5*x)+7*cos(4*x);
在这个里边运行的时候会提示出错,??? Input argument "sol" is undefined.
这个问题应该怎么解决呢?是gaot工具箱的问题还是在哪设置一下就可以的?我实在是搞不明白,请你帮忙。

新手

6 麦片

财富积分


050


2

主题

42

帖子

0

最佳答案
发表于 2013-4-11 20:32:32 | 显示全部楼层
同4楼问lz,交叉概率如何体现的啊?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

快速回复 返回顶部 返回列表