早教吧作业答案频道 -->数学-->
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);
for i=1:NP
x(i,:)=Initial(L); %总群初始化
fx(i)=fitness(Dec(a,b,x(i,:),L)); %个体适应值
end
for k=1:NG
sumfx=sum(fx); %所有个体适应值之和
Px=fx/sumfx; %所有个体适应值的平均值
PPx=0;
PPx(1)=Px(1);
for i=2:NP %根据轮盘赌策略的概率增加
PPx(i)=PPx(i-1)+Px(i);
end
for i=1:NP
sita=rand();
for n=1:NP
if sita=favg
Pc=Pc1*(fmax-Fm)/(fmax-favg);
else
Pc=Pc2;
end
r1=rand();
if r1=favg
Pm=Pm1*(fmax-fmu)/(fmax-favg);
else
Pm=Pm2;
end
r2=rand();
if r2fv
fv=fitx; %去个体中的最好值作为最终结果
xv=Dec(a,b,x(i,:),L);
end
end
function result=Initial(length) %初始化函数
for i=1:length
r=rand();
result(i)=round(r);
end
function y=Dec(a,b,x,L) %二进制编码转换为十进制编码
base=2.^((L-1):-1:0);
y=dot(base,x);
y=a+y*(b-a)/(2^L-1);
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);
for i=1:NP
x(i,:)=Initial(L); %总群初始化
fx(i)=fitness(Dec(a,b,x(i,:),L)); %个体适应值
end
for k=1:NG
sumfx=sum(fx); %所有个体适应值之和
Px=fx/sumfx; %所有个体适应值的平均值
PPx=0;
PPx(1)=Px(1);
for i=2:NP %根据轮盘赌策略的概率增加
PPx(i)=PPx(i-1)+Px(i);
end
for i=1:NP
sita=rand();
for n=1:NP
if sita=favg
Pc=Pc1*(fmax-Fm)/(fmax-favg);
else
Pc=Pc2;
end
r1=rand();
if r1=favg
Pm=Pm1*(fmax-fmu)/(fmax-favg);
else
Pm=Pm2;
end
r2=rand();
if r2fv
fv=fitx; %去个体中的最好值作为最终结果
xv=Dec(a,b,x(i,:),L);
end
end
function result=Initial(length) %初始化函数
for i=1:length
r=rand();
result(i)=round(r);
end
function y=Dec(a,b,x,L) %二进制编码转换为十进制编码
base=2.^((L-1):-1:0);
y=dot(base,x);
y=a+y*(b-a)/(2^L-1);
▼优质解答
答案和解析
P满足两个函数,则
-5=3*(-2)+b
-5=a*(-2)-3
解得b=1
a=1
则不等式为3x+1>x-3
解得x>-2
-5=3*(-2)+b
-5=a*(-2)-3
解得b=1
a=1
则不等式为3x+1>x-3
解得x>-2
看了 Dec(a,b,x(i,:)...的网友还看了以下:
波的传播过程中,正确的说法是()A.有一列横波水平向右传播,各个质点一定上下振动B.波源的振动能量 2020-05-12 …
声波的利用有两种:一传递信息,二传递能量.下列属于利用声波传递能量的是()A.利用超声波清洗B.利 2020-05-14 …
波的传播过程中,正确的说法是()A.有一列横波水平向右传播,各个质点一定上下振动B.波源的振动能量 2020-05-14 …
氧电化学传感器可用于测定O2含量,下图为某种氧电化学传感器的原理示意图,已知在测定O2含量过程中, 2020-06-30 …
按照你对以下几种传感器的理解填写下面表格中的空格中的内容.传感器名称输入(或感受)的量输出的物理量 2020-07-16 …
能量传递在能量逐级传递的时候,上一营养级的能量共有四个去路:传递给下一营养级,自身呼吸消耗,被分解者 2020-12-12 …
在生态系统中,当食物链逐级传递时,能量流动是()A.每一环节都将大部分能量向下传递,自己只将10%~ 2021-01-12 …
在生态系统中,当食物链逐级传递时,能量流动是()A.每一环节都将大部分能量向下传递,自己只将10%~ 2021-01-12 …
在生态系统中,当食物链逐级传递时,能量流动是()A.每一环节都将大部分能量向下传递,自己只将10%~ 2021-01-12 …
在生态系统中,当食物链逐级传递时,能量流动是()A.每一环节都将大部分能量向下传递,自己只将10%~ 2021-01-12 …