Dec(a,b,x(i,:),遗传算法源程序如下:funct-查字典问答网
分类选择

来自冯新文的问题

  Dec(a,b,x(i,:),遗传算法源程序如下:function[xv,fv]=AdapGA(fitness,a,b,NP,NG,Pc1,Pc2,Pm1,Pm2,eps)%待优化目标函数:fitness%自变量下界:a%自变量下界:b%种群个体数:NP%最大进化代数:NG%杂交常数1:Pc1%杂

  Dec(a,b,x(i,:),遗传算法源程序如下:

  function[xv,fv]=AdapGA(fitness,a,b,NP,NG,Pc1,Pc2,Pm1,Pm2,eps)

  %待优化目标函数:fitness

  %自变量下界:a

  %自变量下界:b

  %种群个体数:NP

  %最大进化代数:NG

  %杂交常数1:Pc1

  %杂交常数2:Pc2

  %变异常数1:Pm1

  %变异常数2:Pm2

  %自变量离散精度:eps

  %目标函数取最小值时的自变量值:xm

  %目标函数的最小值:fv

  L=ceil(log2((b-a)/eps+1));%根据离散精度,确定二进制编码所需的码长

  x=zeros(NP,L);

  fori=1:NP

  x(i,:)=Initial(L);%总群初始化

  fx(i)=fitness(Dec(a,b,x(i,:),L));%个体适应值

  end

  fork=1:NG

  sumfx=sum(fx);%所有个体适应值之和

  Px=fx/sumfx;%所有个体适应值的平均值

  PPx=0;

  PPx(1)=Px(1);

  fori=2:NP%根据轮盘赌策略的概率增加

  PPx(i)=PPx(i-1)+Px(i);

  end

  fori=1:NP

  sita=rand();

  forn=1:NP

  ifsita=favg

  Pc=Pc1*(fmax-Fm)/(fmax-favg);

  else

  Pc=Pc2;

  end

  r1=rand();

  ifr1=favg

  Pm=Pm1*(fmax-fmu)/(fmax-favg);

  else

  Pm=Pm2;

  end

  r2=rand();

  ifr2fv

  fv=fitx;%去个体中的最好值作为最终结果

  xv=Dec(a,b,x(i,:),L);

  end

  end

  functionresult=Initial(length)%初始化函数

  fori=1:length

  r=rand();

  result(i)=round(r);

  end

  functiony=Dec(a,b,x,L)%二进制编码转换为十进制编码

  base=2.^((L-1):-1:0);

  y=dot(base,x);

  y=a+y*(b-a)/(2^L-1);

1回答
2020-05-08 23:32
我要回答
请先登录
侯春聿

  P满足两个函数,则

  -5=3*(-2)+b

  -5=a*(-2)-3

  解得b=1

  a=1

  则不等式为3x+1>x-3

  解得x>-2

2020-05-08 23:35:25

最新问答

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  •