function [f,x]=myga(num,bounds,N,CP,P)
%[f,x]=ga(num,bounds,fun,N,CP,P)
%[f,x]=myga([],bounds,[],[],[])
%该遗传算法适用于:
% 目标函数为求最大值,且解非负整数解
%bounds 边界约束
%Myfun 为目标函数
%num 初始种群数
%N 最大迭代次数
%CP 交叉概率
%P 突变概率
%f 目标最优解
%x 最优解向量
% 作者:机自01-2班曾新海
% [email protected]
m=nargin;
if m<5
disp('-_- 错误!')
disp('>> 输入变量太少')
disp('>> 按回车键查看帮助')
pause
help ga
f='-_- ';
x='没有规矩不成方圆';
break;
end
if isempty(CP)
CP=0.25;
end
if isempty(P)
P=0.01;
end
if isempty(N)
N=1000;
end
if any(bounds(:,1))<0
disp('-_- 错误!')
disp('>> 按回车键查看帮助')
pause
help ga
f='-_- ';
x='没有规矩不成方圆';
break;
end
if isempty(num)
num=100;
end
pop=INTinti(num,bounds);
fmax=pop(:,end);
endpop=pop;
n=size(endpop,2);
count=0;x=[];f=zeros(1,num);
while(count<N)
pop=mutation(endpop);
[cpop ,len,v]=cross(pop,bounds,CP);
[pops]=changes(cpop,bounds,len,P);
for i=1:num
sol=pops(i,:);
[f(i)]=Myfun(sol);
%惩罚策略
for jj=1:length(sol)
if sol(jj)<bounds(jj,1)
f(i)=-inf;
end
if sol(jj)>bounds(jj,2)
f(i)=-inf;
end
end
if fmax(i)<f(i)
fmax(i)=f(i);
endpop(i,1:end-1)=pops(i,:);
end
end
endpop(:,end)=fmax(:);
count=count+1;
% [f,ii]=max(fmax);
% x=endpop(ii,1:end-1);
end
[f,ii]=max(fmax);
x=endpop(ii,1:end-1);
matlab.rar_genetic_genetic algorithm
版权申诉
136 浏览量
2022-09-19
14:56:36
上传
评论
收藏 6KB RAR 举报
四散
- 粉丝: 52
- 资源: 1万+
最新资源
- Python 程序语言设计模式思路-创建型模式:原型模式:通过复制现有对象来创建新对象,面向对象编程
- 卸载软件geek卸载软件geek
- Python 程序语言设计模式思路-创建型模式:单例模式,确保一个类的唯一实例(装饰器)面向对象编程、继承
- skywalking-plugins.jar skywalking-alarm.jar
- 独栋别墅图纸D020-两层-10.00&11.00米- 施工图.dwg
- Python 程序语言设计模式思路-创建型模式:工厂模式,创建对象的统一接口,封装对象的创建逻辑
- python自学教程-05-json数据格式的介绍.ev4.rar
- python自学教程-04-自定义JavaScript.ev4.rar
- 《淘宝后台系统...》
- skywalking-plugins.jar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈