mutation.m
上传用户:qzfzqd
上传日期:2013-04-17
资源大小:7k
文件大小:1k
源码类别:

matlab例程

开发平台:

Matlab

  1. function [child]=mutation(pop)
  2. %复制函数,采取小盘轮转法
  3. %[child]=mutation(pop)
  4. %mutation    编码
  5. %pop         初始种群
  6. %child       返回复制后的种群
  7. %pop(:,end)  适值度
  8. %           作者:机自01-2班曾新海
  9. %           zxh21st@163.com
  10. [n,m]=size(pop);
  11. f=pop(:,end);
  12. value=sum(f);
  13. for i=1:n
  14.     p(i)=f(i)/value;
  15.     q(i)=sum(p(1:i));
  16. end
  17.     t=rand(1,n);
  18. for j=1:n
  19.     for k=1:n
  20.         if t(j)<q(k)
  21.             v(j)=k;
  22.             break
  23.         end
  24.     end
  25. end
  26.     i=1:n;
  27.     child(i,:)=pop(v(i),:);