cx.m

来自「patten regnization source从1-14章能运行」· M 代码 · 共 44 行

M
44
字号
function [h1, h2] = CX(p1, p2, varargin)% [h1,h2] = pmx(p1, p2, crosspoint1, crosspoint2)% [h1,h2] = pmx(p1, p2)%% p1客 p2狼 林扁背硅(CX) 备泅  % 背硅痢捞 林绢瘤瘤 臼栏搁 烙狼肺 急琶% 背硅痢 crosspoint1绰 背硅痢 crosspoint2焊促 累酒具 窃.if length(varargin) >= 2  % if given, accept crosspoints  c1 = varargin{1};  c2 = varargin{2};else  % if not given, generate crosspoints  c1 = floor(rand*(length(p1)-1))+1;  c2 = floor(rand*(length(p2)-1));  if c2 >= c1    c2 = c2 + 1;  else    tmp = c1;    c1 = c2;    c2 = tmp;  endendif c2 <= c1  error('crossover points are incorrect (c2<=c1)')endh1 = p1;  % child1h2 = p2;  % child2for i=c1+1:c2  j = find(h2==p1(i));  tmp = h2(j);  h2(j) = h2(i);  h2(i) = tmp;  j = find(h1==p2(i));  tmp = h1(j);  h1(j) = h1(i);  h1(i) = tmp;end

⌨️ 快捷键说明

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