• 大小: 3.95KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-03-28
  • 语言: Matlab
  • 标签: matlab  

资源简介


简单的遗传算法,计算函数最值. function ga_main() % 遗传算法程序 % n-- 种群规模% ger-- 迭代次数% pc--- 交叉概率% pm-- 变异概率 % v-- 初始种群(规模为n)% f-- 目标函数值% fit-- 适应度向量 % vx-- 最优适应度值向量% vmfit-- 平均适应度值向量 clear all; close all; clc;%清屏 tic;%计时器开始计时 n=20;ger=100;pc=0.65;pm=0.05;%初始化参数 %以上为经验值,可以更改。 % 生成初始种群 v=init_population(n,22); %得到初始种群,

资源截图

代码片段和文件信息

function ga_main()
% 遗传算法程序
% n-- 种群规模% ger-- 迭代次数% pc--- 交叉概率% pm-- 变异概率
% v-- 初始种群(规模为n)% f-- 目标函数值% fit-- 适应度向量
% vx-- 最优适应度值向量% vmfit-- 平均适应度值向量
clear all;
close all;
clc;%清屏
tic;%计时器开始计时
n=20;ger=100;pc=0.65;pm=0.05;%初始化参数
%以上为经验值,可以更改。
% 生成初始种群
v=init_population(n22); %得到初始种群,22串长,生成20*22的0-1矩阵
[NL]=size(v);           %得到初始规模行,列
disp(sprintf(‘Number of generations:%d‘ger));
disp(sprintf(‘Population size:%d‘N));
disp(sprintf(‘Crossover probability:%.3f‘pc));
disp(sprintf(‘Mutation probability:%.3f‘pm)); %sprintf可以控制输出格式
% 待优化问题
xmin=0;xmax=9;  %变量X范围
f=‘x+10*sin(x.*5)+7*cos(x.*4)‘;
% 计算适应度,并画出初始种群图形
x=decode(v(:1:22)xminxmax);%22位二进制换成十进制,%冒号表示对所有行进行操作。
fit=eval(f);%eval转化成数值型的  %计算适应度
figure(1);%打开第一个窗口
fplot(f[xminxmax]);%隐函数画图
grid on;hold on;
plot(xfit‘k*‘);%作图画初始种群的适应度图像
title(‘(a)染色体的初始位置‘);%标题
xlabel(‘x‘);ylabel(‘f(x)‘);%标记轴
% 迭代前的初始化
vmfit=[];%平均适应度
vx=[]; %最优适应度
it=1; % 迭代计数器
% 开始进化
while it<=ger %迭代次数 %100代
    %Reproduct

评论

共有 条评论