matlab ga 函数的最好适应度是什么

matlab ga 函数的最好适应度是什么

找到一个问答
https://www.ilovematlab.cn/thread-527538-1-1.html

请问 matlab 的 ga 工具箱的 最佳个体图 要怎么画

http://muchong.com/html/201702/11032942.html

如何用matlab的文本命令如何画出目标函数的收敛曲线和优化变量的取值图

终于找到画最佳个体的了

options=gaoptimset(options,'PlotFcns',{@gaplotbestf,@gaplotbestindiv})

王万良 人工智能导论 实验6

学习一下这个文档
https://wenku.baidu.com/view/79116aea25d3240c844769eae009581b6bd9bda5.html?fr=search-1-wk_sea_esX-income8&fixfr=Q0LBWFQy7wucpnbovYBdDw%3D%3D

https://www.kdocs.cn/l/crNnLGdtQCAI
[金山文档] 遗传算法作业.docx

代码

% ga max

clear ,clc,close all
% 这是求最小值时候的函数
%  fun=@(x1,x2)6.452*(x1+0.125*x2)*(cos(x1)-cos(2*x2))*(cos(x1)-cos(2*x2))/sqrt(0.8+(x1-4.2)*(x1-4.2)+2*(x2-7)*(x2-7))+3.226*x2;
%  fun=@(x1,x2)20+x1.^2+x2.^2-10*(cos(2*pi*x1)+cos(2*pi*x2))
%  matlab pi
%  https://jingyan.baidu.com/article/6079ad0ec9a15228ff86db35.html
% 这是求最大值时候的函数
fun=@(x1,x2)-6.452*(x1+0.125*x2)*(cos(x1)-cos(2*x2))*(cos(x1)-cos(2*x2))/sqrt(0.8+(x1-4.2)*(x1-4.2)+2*(x2-7)*(x2-7))-3.226*x2;
objfun=@(x)fun(x(1),x(2));
n=2;
A=[];
b=[];
Aeq=[];
beq=[];
lb=[0 0];
% lb=[0.6 -inf];
% 说明 x>=0.6 ,y没有说明, 也要写,说明y>=-inf
ub=[10 10];

%lb=[-5 -5];
% ub=[5 5];

confun=[];
% opts=[];
% options=[];
% 20
% 100
options=gaoptimset('PopulationSize',20,'PopInitRange',[0;10])

options=gaoptimset(options,'PlotFcns',{@gaplotbestf,@gaplotbestindiv},'TolFun',1e-15)
options=gaoptimset(options,'EliteCount',1, 'CrossoverFraction',0.85)
options=gaoptimset(options,'Generation',80)


% 1
% options=gaoptimset(options,'FitnessScalingFcn',@fitscalingrank)
% options=gaoptimset(options,'SelectionFcn',@selectionroulette,'CrossoverFcn',@crossoversinglepoint)
% options=gaoptimset(options,'MutationFcn',@mutationuniform)

% 2
% options=gaoptimset(options,'FitnessScalingFcn',@fitscalingrank)
% options=gaoptimset(options,'SelectionFcn',@selectionroulette,'CrossoverFcn',@crossovertwopoint)
% options=gaoptimset(options,'MutationFcn',@mutationuniform)

% 3
% options=gaoptimset(options,'FitnessScalingFcn',@fitscalingprop)
% options=gaoptimset(options,'SelectionFcn',@selectiontournament,'CrossoverFcn',@crossovertwopoint)
% options=gaoptimset(options,'MutationFcn',@mutationuniform)

% 4
options=gaoptimset(options,'FitnessScalingFcn',@fitscalingrank)
options=gaoptimset(options,'SelectionFcn',@selectionroulette,'CrossoverFcn',@crossoversinglepoint)
options=gaoptimset(options,'MutationFcn',@mutationgaussian)

% ,'MaxTime',2
% options=gaoptimset(options,'FitnessLimit',80,'MaxTime',2)

% 'PlotFcns',{@gaplotbestf,@gaplotbestindiv}
% 'plotfcns',@gaplotbestf

% options.TolFun=1e-15
% options.plotfcns=@gaplotbestf
% https://www.ilovematlab.cn/thread-527538-1-1.html
% https://zhidao.baidu.com/question/402074868.html
% https://www.bilibili.com/video/BV1JA411T7wg?from=search&seid=13339881514253748349
% options = gaoptimset();
% options.Generations = 10000;
%最大迭代数设为2000
% https://www.cnblogs.com/xiaff/p/5345475.html
[x,fval]=ga(objfun,n,A,b,Aeq,beq,lb,ub,confun,options);
% ga 的 Initial Population
% ga options 设置
% ga 输出的适应度

ga_min

clear ,clc,close all
% 这是求最小值时候的函数
%  fun=@(x1,x2)6.452*(x1+0.125*x2)*(cos(x1)-cos(2*x2))*(cos(x1)-cos(2*x2))/sqrt(0.8+(x1-4.2)*(x1-4.2)+2*(x2-7)*(x2-7))+3.226*x2;
 fun=@(x1,x2)20+x1.^2+x2.^2-10*(cos(2*pi*x1)+cos(2*pi*x2))
%  matlab pi
%  https://jingyan.baidu.com/article/6079ad0ec9a15228ff86db35.html
% 这是求最大值时候的函数
% fun=@(x1,x2)-6.452*(x1+0.125*x2)*(cos(x1)-cos(2*x2))*(cos(x1)-cos(2*x2))/sqrt(0.8+(x1-4.2)*(x1-4.2)+2*(x2-7)*(x2-7))-3.226*x2;
objfun=@(x)fun(x(1),x(2));
n=2;
A=[];
b=[];
Aeq=[];
beq=[];
%lb=[0 0];
% lb=[0.6 -inf];
% 说明 x>=0.6 ,y没有说明, 也要写,说明y>=-inf
%ub=[10 10];

lb=[-5 -5];
ub=[5 5];

confun=[];
% opts=[];
% options=[];
% [0;10])
% 1;1.1
% [1;100]
options=gaoptimset('PopulationSize',20,'PopInitRange',[1;2])

options=gaoptimset(options,'PlotFcns',{@gaplotbestf,@gaplotdistance},'TolFun',1e-15)
options=gaoptimset(options,'EliteCount',1, 'CrossoverFraction',0.8)
% 0.85
options=gaoptimset(options,'Generation',80)
% 'Generation',  80



% https://www.bilibili.com/video/BV1JA411T7wg?from=search&seid=13339881514253748349
% options = gaoptimset();
% options.Generations = 10000;
%最大迭代数设为2000
% https://www.cnblogs.com/xiaff/p/5345475.html
[x,fval]=ga(objfun,n,A,b,Aeq,beq,lb,ub,confun,options);


以下为了搜索引擎搜索到 建议不看

实验五 遗传算法实验I 一、实验目的:
熟悉和掌握遗传算法的原理、流程和编码策略,并利用遗传求解函数优化问题,理解求解流程并测试主要参数对结果的影响。 二、实验原理:
遗传算法的基本思想正是基于模仿生物界遗传学的遗传过程。它把问题的参数用基因代表,把问题的解用染色体代表(在计算机里用二进制码表示),从而得到一个由具有不同染色体的个体组成的群体。这个群体在问题特定的环境里生存竞争,适者有最好的机会生存和产生后代。后代随机化地继承了父代的最好特征,并也在生存环境的控制支配下继续这一过程.群体的染色体都将逐渐适应环境,不断进化,最后收敛到一族最适应环境的类似个体,即得到问题最优的解。
三、实验条件: Matlab 7.X 的遗传算法工具箱。 四、实验内容: 1.用遗传算法求解下列函数的最大值,设定求解精度到15位小数。

1)给出适应度函数的M文件(Matlab中要求适应度函数最小化)。
2)设计及选择上述问题的编码、选择操作、交叉操作、变异操作以及控制参数等,填入表1,并画出最佳适应度(Best
fitness)和最佳个体(Best individual)图。 表1 遗传算法参数的选择 编码 编码方式(population
type) 种群参数 种群规模(population size) 初始种群的个体取值范围(Initial Population)
选择操作 个体选择概率分配策略(对应Fitness scaling) 个体选择方法(Selecton function)
最佳个体保存 优良个体保存数量(Elite count) 交叉操作 交叉概率(Crossover fraction) 交叉方式
变异操作 变异方式 停止参数 最大迭代步数(Generations) 停滞代数(Stall generations)

   		 3)设置不同的种群规模,例如,求得相应的最佳适应度,并给出算法的运行时间,分析种群规模对算法性能的影响。 4)选择不同的选择操作、交叉操作和变异操作,并独立运行算法10次,完成下表2,然后分析比较采用不同的选择策略、交叉策略和变异策略的算法运行结果。

表2不同的选择策略、交叉策略和变异策略的算法运行结果 选择操作 个体选择概率分配 Rank(排序) √
Proportional(比率) √ √ √ 个体选择 Roulette(轮盘赌选择) √ √ √
Tournament(竞标赛选择) √ 交叉操作 单点交叉 √ √ √ √ 两点交叉
变异操作 Uniform(均匀变异) √ √ √ Gaussian(高斯变异) √ 最好适应度 最差适应度
平均适应度 2.用遗传算法求解下面一个Rastrigin函数的最小值,设定求解精度到15位小数。

1)给出适应度函数的M文件(Matlab中要求适应度函数最小化)。
2)设计上述问题的编码、选择操作、交叉操作、变异操作以及控制参数等,填入表3,并画出最佳适应度(Best
fitness)和最佳个体(Best individual)图。 表3 遗传算法参数的选择 编码 编码方式(population
type) 种群参数 种群规模(population size) 初始种群的个体取值范围(Initial Population)
选择操作 个体选择概率分配策略(对应Fitness scaling) 个体选择方法(Selecton function)
最佳个体保存 优良个体保存数量(Elite count) 交叉操作 交叉概率(Crossover fraction) 交叉方式
变异操作 变异方式 停止参数 最大迭代步数(Generations) 停滞代数(Stall generations)

3)设置种群的不同初始范围,例如[1;1.1]、[1;100]和[1;2],画出相应的最佳适应度值(Best
fitness)和平均距离(Distance)图,比较分析初始范围及种群多样性对遗传算法性能的影响。
4)设置不同的交叉概率,画出无变异的交叉和无交叉的变异时最佳适应度值和和平均距离图,分析交叉和变异操作对算法性能的影响。 五、实验报告要求:
1.画出遗传算法的算法流程图。 2.根据实验内容,给出相应结果。
3. 总结遗传算法的特点,并说明适应度函数在遗传算法中的作用。

  • 9
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值