• 大小: 2KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-04
  • 语言: Matlab
  • 标签: MATLAB  遗传算法  

资源简介

使用遗传算法,对目标函数进行全局寻优,可以得到全局最优解。

资源截图

代码片段和文件信息

%% GA
clc % 清屏
clear all; % 删除workplace变量
close all; % 关掉显示图形窗口
warning off
%% 参数初始化
popsize=100;              %种群规模
lenchrom=7;              %变量字串长度

pc=0.7;                  %设置交叉概率,本例中交叉概率是定值,若想设置变化的交叉概率可用表达式表示,或从写一个交叉概率函数,例如用神经网络训练得到的值作为交叉概率
pm=0.3;                  %设置变异概率,同理也可设置为变化的

maxgen=100;   % 进化次数  

%种群
popmax=50;
popmin=0;
bound=[popmin popmax;popmin popmax;popmin popmax;popmin popmax;popmin popmax;popmin popmax;popmin popmax];  %变量范围

%% 产生初始粒子和速度
for i=1:popsize
    %随机产生一个种群
    GApop(i:)=Code(lenchrombound);       %随机产生个体
    %计算适应度
    fitness(i)=fun(GApop(i:));            %染色体的适应度
end

%找最好的染色体
[bestfitness bestindex]=min(fitness);
zbest=GApop(bestindex:);   %全局最佳
gbest=GApop;                %个体最佳
fitnessgbest=fitness;       %个体最佳适应度值
fitnesszbest=bestfitness;   %全局最佳适应度值

%% 迭代寻优
for i=1:maxgen
        i
        %种群更新 GA选择更新
        GApop=Select2(GApopfitnesspopsize);

        % 交叉操作 GA
        GApop=Cross(pclenchromGApoppopsizebound);

    

评论

共有 条评论