clc
clear
close all
format shortG
%% Insert Data
data=InsertData();
%% parametres setting
npop=200; % number of population
pc=0.9; % percent of crossover
ncross=2*round(npop*pc/2); % number of crossover offspring
pm=0.1; % percent of mutation
nmut=round(npop*pm); % number of mutation offspring
maxiter=1000;
data.npop=npop;
data.ncross=ncross;
data.nmut=nmut;
data.maxiter=maxiter;
%% initialization
tic
[pop,emp]=CreateInitialPopulation(data);
%% main loop
BEST=zeros(maxiter,1);
MEAN=zeros(maxiter,1);
for iter=1:maxiter
% crossover
crosspop=repmat(emp,ncross,1);
crosspop=crossover(crosspop,pop,data);
% mutation
mutpop=repmat(emp,nmut,1);
mutpop=mutation(mutpop,pop,data);
% Merged
[pop]=[pop;crosspop;mutpop];
% Sorting
[value,index]=sort([pop.fit]);
pop=pop(index);
gpop=pop(1);
% Select
pop=pop(1:npop);
BEST(iter)=gpop.fit;
MEAN(iter)=mean([pop.fit]);
disp([' Iter = ' num2str(iter) ' BEST = ' num2str(BEST(iter))])
%Plot Best Sol
PlotBestSol(gpop,data,iter)
if BEST(iter)==0
break
end
end
%% results
disp([ ' Best x = ' num2str(gpop.x)])
disp([ ' Best Fitness = ' num2str(gpop.fit)])
disp([ ' Time = ' num2str(toc)])
BEST=BEST(1:iter);
MEAN=MEAN(1:iter);
figure
semilogy(BEST,'r')
hold on
semilogy(MEAN,'b')
xlabel('Iteration')
ylabel('Fitness')
legend('BEST','MEAN')
title('GA')
% Export To Excel
ExportToExcel(gpop,data)
没有合适的资源?快使用搜索试试~ 我知道了~
Matlab Code.rar_genetic
共10个文件
m:9个
xlsx:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 131 浏览量
2022-09-23
03:42:27
上传
评论
收藏 31KB RAR 举报
温馨提示
genetic algorithm and 8queen
资源详情
资源评论
资源推荐
收起资源包目录
Matlab Code.rar (10个子文件)
fitness.m 230B
CreateInitialPopulation.m 225B
crossover.m 651B
InsertData.m 243B
Unique.m 140B
mutation.m 353B
GA.m 2KB
out.xlsx 163KB
ExportToExcel.m 165B
PlotBestSol.m 623B
共 10 条
- 1
我虽横行却不霸道
- 粉丝: 75
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0