function obj=yichuan(lb,ub,px,pm)
%lb,ub为自变量的下界与上界,px为杂交概率,pm为变异概率
popsize=40; %设定种群大小为40
maxgen=500; %设定最大遗传代数为500代
dim=20; %定义变量的维数为20
bits=20; %设定变量的二进制位数为20
duan=20;
trace=zeros(maxgen,2); %遗传算法性能跟踪
chrom=crt(popsize,dim*bits); %创建初始种群
gen=0; %代计数器
x=bs(chrom,lb,ub,dim,bits);
obj=fun(x);
figure(1)
plot(obj,'-xr');grid;
title('初始种群中个体的分布图')
xlabel('个体');
ylabel('目标函数值');
Nesl=popsize; %轮盘选择个数,设定为与种群大小相等
gen=0; %遗传代数计数器,设定初始值为0
obj=fun(x);
fitv=fel(x);
%基于适应度的轮盘选择
chrom=exrws(chrom,fitv,Nesl);
while gen%单点交叉后得到大小为popsize子代新种群,与原来的父代种群合并为大小为2*popsize的新种群
newchrom=[chrom;exxov(chrom,px)];
%最优个体保护策略