mutate.m

来自「多目标遗传算法/用法不用多说、要用的赶快下载吧」· M 代码 · 共 56 行

M
56
字号
function c = mutate(chr,pmut)% MUTATE - mutates the design variables DNA%    % c=mutate(chr,pmut) returns the mutated chromosome.  The% argument prob_mutate is the probability of mutation.%% See also PROBMUTc=chr;%----------GET DATAfor i=1:length(c)    for j=1:length(pmut);    if strcmp(pmut(j).name,get(chr(i),'name'))      pm=pmut(j).pc;      break;    end  end        cdvs=get(chr(i),'cdvs');  ddvs=get(chr(i),'ddvs');      %----------MUTATE CDVS  if ~isempty(cdvs)    for k=1:length(cdvs);      dna=get(cdvs(k),'dna');      for l=1:length(dna)	if rand<=pm	dna(l)=not(dna(l));	end      end      cdvs(k)=set(cdvs(k),'dna',dna,'value',convert(cdvs(k)));    end  else     cdvs=cdv;  end  c(i)=set(c(i),'cdvs',cdvs);    if ~isempty(ddvs)    for k=1:length(ddvs);      dna=get(ddvs(k),'dna');      for l=1:length(dna)      if rand<=pm	dna(l)=not(dna(l));      end      end      ddvs(k)=set(ddvs(k),'dna',dna,'value',convert(ddvs(k)));    end  else    ddvs=ddv;    c(i)=set(c(i),'ddvs',ddvs);  endend

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?