⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 view.htm

📁 Matlab遗传算法工具箱: Matlab遗传算法工具箱
💻 HTM
📖 第 1 页 / 共 3 页
字号:
  <TR>
    <TD colSpan=2 height=3></TD></TR></TBODY></TABLE>
<TABLE 
style="BORDER-RIGHT: #666666 1px solid; BORDER-TOP: #666666 1px solid; BORDER-LEFT: #666666 1px solid; WIDTH: 95%; BORDER-BOTTOM: #666666 1px solid" 
height=21 cellSpacing=0 cellPadding=0 width="95%" bgColor=#e3e3e3 border=0>
  <TBODY>
  <TR>
    <TD align=right><SPAN title=帮助及常见问题><A 
      href="http://bbs.matwav.com/html/help.html" target=_blank>帮助</A></SPAN> | 
      <SPAN title=全文检索><A href="http://bbs.matwav.com/post/search">搜索</A></SPAN> 
      | <SPAN title=注册新账号><A 
      href="http://bbs.matwav.com/user/register">注册</A></SPAN> | <SPAN 
      title=会员登录论坛><A href="http://bbs.matwav.com/user/login">登录</A></SPAN> | 
      <SPAN title=发帖最多的用户,回复最多的话题,人气最旺的话题><A 
      href="http://bbs.matwav.com/stat/top">排行榜</A></SPAN> | <SPAN 
      title=按每月、日、周以及小时的帖子数统计><A 
      href="http://bbs.matwav.com/stat/analysis">发帖统计</A></SPAN> 
  <BR></TD></TR></TBODY></TABLE><BR clear=all>
<SCRIPT language=javascript>
function copyText(obj) {
var rng = document.body.createTextRange();
rng.moveToElementText(obj);
rng.scrollIntoView();
rng.select();
rng.execCommand("Copy");
rng.collapse(false);
}
</SCRIPT>

<TABLE cellSpacing=0 cellPadding=2 width="95%" border=0>
  <TBODY>
  <TR>
    <TD><B><FONT face=arial size=3><B>&raquo;</B></FONT>&nbsp;<A class=nav 
      href="http://bbs.matwav.com/index.html"><B>研学论坛</B></A>&nbsp; <FONT 
      face=arial size=3><B>&raquo;</B></FONT>&nbsp;<A class=nav 
      href="http://bbs.matwav.com/post/page?bid=7&amp;sty=1&amp;age=0&amp;tpg=1"><B>遗传算法</B></A> 
      &nbsp;<BR><BR><IMG alt=按打印兼容模式打印这个话题 src="view.files/icon_print.gif" 
      align=absMiddle border=0>&nbsp;<A class=mod title=按打印兼容模式打印这个话题 
      href="http://bbs.matwav.com/post/print?bid=7&amp;id=80816"><B>打印话题</B></A> 
      &nbsp;&nbsp; <IMG alt=把这个话题寄给朋友 src="view.files/icon_friend.gif" 
      align=absMiddle border=0> <A class=mod title=把这个话题寄给朋友 
      href="http://bbs.matwav.com/post/forward?bid=7&amp;id=80816&amp;done=%2Fpost%2Fview%3Fbid%3D7%26id%3D80816%26sty%3D1%26tpg%3D1%26age%3D0"><B>寄给朋友</B></A> 
      &nbsp;&nbsp; <IMG alt=该主题的所有更新都将Email到你的邮箱 src="view.files/icon_watch.gif" 
      align=absMiddle border=0> <B><FONT color=#c0c0c0>订阅主题</FONT></B> 
  </B></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=2 width="95%" border=0>
  <TBODY>
  <TR>
    <TD align=right><A 
      href="http://bbs.matwav.com/post/reply?bid=7&amp;parent=80816&amp;done=%2Fpost%2Fview%3Fbid%3D7%26id%3D80816%26sty%3D1%26tpg%3D1%26age%3D0"><IMG 
      alt="reply to topic" src="view.files/newreply.gif" align=absMiddle 
      border=0></A><IMG alt="flat mode" src="view.files/flat_d.gif" 
      align=absMiddle border=0><A 
      href="http://bbs.matwav.com/post/view?bid=7&amp;id=80816&amp;tpg=1&amp;ppg=1&amp;sty=3&amp;age=0#80816"><IMG 
      alt="threaded mode" src="view.files/threaded.gif" align=absMiddle 
      border=0></A><A 
      href="http://bbs.matwav.com/post/view?bid=7&amp;id=80816&amp;tpg=1&amp;ppg=1&amp;sty=1&amp;age=0&amp;prev=1"><IMG 
      alt="go to previous topic" src="view.files/prev.gif" align=absMiddle 
      border=0></A><A 
      href="http://bbs.matwav.com/post/view?bid=7&amp;id=80816&amp;tpg=1&amp;ppg=1&amp;sty=1&amp;age=0&amp;next=1"><IMG 
      alt="go to next topic" src="view.files/next.gif" align=absMiddle 
      border=0></A> </TD></TR></TBODY></TABLE><A name=80816></A>
<TABLE cellSpacing=1 cellPadding=4 width="95%" bgColor=#000000 border=0>
  <TBODY>
  <TR class=head>
    <TD align=middle width=150><FONT color=#ffffff><B>作者</B></FONT></TD>
    <TD><FONT color=#ffffff><B>【共享】遗传算法的MATLAB6.5 源程序 </B></FONT></TD></TR>
  <TR class=even>
    <TD vAlign=top width=150><B>wqjk</B> <BR><IMG 
      src="view.files/face_byhtsai_amuro.gif" border=0> <BR><BR><BR>论坛游民<IMG 
      src="view.files/advu.gif" border=0> <BR><BR><B>发贴:</B> 2 <BR><B>技术分:</B> 0 
      <BR><B>积分:</B>3 <BR><IMG height=1 src="view.files/pixel.gif" width=150 
      border=0> </TD>
    <TD vAlign=top width="100%"><IMG src="view.files/post.gif" align=absMiddle 
      border=0>于 2004-08-20 15:31 <A 
      href="http://bbs.matwav.com/user/info?uid=21786"><IMG alt="user profile" 
      src="view.files/icon_profile.gif" align=absMiddle border=0></A><A 
      href="http://bbs.matwav.com/user/message?action=WriteMessage&amp;to=wqjk&amp;subject=Re%3A%A1%BE%B9%B2%CF%ED%A1%BF%D2%C5%B4%AB%CB%E3%B7%A8%B5%C4MATLAB6.5+%D4%B4%B3%CC%D0%F2" 
      target=_blank><IMG alt="send a private message to user" 
      src="view.files/icon_pm.gif" align=absMiddle border=0></A><A 
      href="http://bbs.matwav.com/post/reply?bid=7&amp;parent=80816&amp;done=%2Fpost%2Fview%3Fbid%3D7%26id%3D80816%26sty%3D1%26tpg%3D1%26age%3D0&amp;quote=1"><IMG 
      alt="reply to post" src="view.files/icon_quote.gif" align=absMiddle 
      border=0></A><A 
      href="http://bbs.matwav.com/post/search?username=wqjk&amp;action=Search"><IMG 
      alt="search all posts by" src="view.files/icon_find.gif" align=absMiddle 
      border=0></A><A href="javascript:copyText(document.all.text80816);"><IMG 
      alt="select and copy to clipboard. &#13;&#10;ie only, sorry for netscape users:-)" 
      src="view.files/icon_copy.gif" align=absMiddle border=0></A><A 
      href="http://bbs.matwav.com/user/favorite?action=Add&amp;bid=7&amp;id=80816" 
      target=_blank><IMG alt="add this post to my favorite list" 
      src="view.files/icon_favorite.gif" align=absMiddle border=0></A> 
      <HR color=#000000 noShade SIZE=1>
      <SPAN class=javascript id=text80816>function [x,endPop,bPop,traceInfo] = 
      ga(bounds,eevalFN,eevalOps,startPop,opts,...<BR>termFN,termOps,selectFN,selectOps,xOverFNs,xOverOps,mutFNs,mutOps)<BR><BR>n=nargin;<BR>if 
      n&lt;2 | n==6 | n==10 | n==12<BR>disp('Insufficient arguements') 
      <BR>end<BR>if n&lt;3 %Default eevalation 
      opts.<BR>eevalOps=[];<BR>end<BR>if n&lt;5<BR>opts = [1e-6 1 
      0];<BR>end<BR>if isempty(opts)<BR>opts = [1e-6 1 0];<BR>end<BR><BR>if 
      any(eevalFN&lt;48) %Not using a .m file<BR>if opts(2)==1 %Float 
      ga<BR>e1str=['x=c1; c1(xZomeLength)=', eevalFN ';']; <BR>e2str=['x=c2; 
      c2(xZomeLength)=', eevalFN ';']; <BR>else %Binary 
      ga<BR>e1str=['x=b2f(endPop(j,<IMG alt=Smile src="view.files/smile.gif" 
      width=15>,bounds,bits); endPop(j,xZomeLength)=',...<BR>&nbsp;&nbsp;eevalFN 
      ';'];<BR>end<BR>else %Are using a .m file<BR>if opts(2)==1 %Float 
      ga<BR>e1str=['[c1 c1(xZomeLength)]=' eevalFN '(c1,[gen eevalOps]);']; 
      <BR>e2str=['[c2 c2(xZomeLength)]=' eevalFN '(c2,[gen eevalOps]);']; 
      <BR>else %Binary ga<BR>e1str=['x=b2f(endPop(j,<IMG alt=Smile 
      src="view.files/smile.gif" width=15>,bounds,bits);[x v]=' eevalFN 
      ...<BR>&nbsp;&nbsp;'(x,[gen eevalOps]); endPop(j,<IMG alt=Smile 
      src="view.files/smile.gif" width=15>=[f2b(x,bounds,bits) v];']; 
      <BR>end<BR>end<BR><BR>if n&lt;6 %Default termination 
      information<BR>termOps=[100];<BR>termFN='maxGenTerm';<BR>end<BR>if n&lt;12 
      %Default muatation information<BR>if opts(2)==1 %Float 
      GA<BR>mutFNs=['boundaryMutation multiNonUnifMutation nonUnifMutation 
      unifMutation'];<BR>mutOps=[4 0 0;6 termOps(1) 3;4 termOps(1) 3;4 0 
      0];<BR>else %Binary 
      GA<BR>mutFNs=['binaryMutation'];<BR>mutOps=[0.05];<BR>end<BR>end<BR>if 
      n&lt;10 %默认的交叉信息<BR>if opts(2)==1 %浮点编码<BR>xOverFNs=['arithXover 
      heuristicXover simpleXover'];<BR>xOverOps=[2 0;2 3;2 0];<BR>else %Binary 
      GA<BR>xOverFNs=['simpleXover'];<BR>xOverOps=[0.6];<BR>end<BR>end<BR>if 
      n&lt;9 %Default select opts only i.e. roullete 
      wheel.<BR>selectOps=[];<BR>end<BR>if n&lt;8 %Default select 
      info<BR>selectFN=['normGeomSelect'];<BR>selectOps=[0.08];<BR>end<BR>if 
      n&lt;6 %默认的算法终止准则<BR>termOps=[100];<BR>termFN='maxGenTerm';<BR>end<BR>if 
      n&lt;4 %初始种群为空<BR>startPop=[];<BR>end<BR>if isempty(startPop) 
      %随机生成初始种群<BR>startPop=initializega(80,bounds,eevalFN,eevalOps,opts(1:2));<BR>end<BR><BR>if 
      opts(2)==0 
      %二进制编码<BR>bits=calcbits(bounds,opts(1));<BR>end<BR><BR>xOverFNs=parse(xOverFNs);<BR>mutFNs=parse(mutFNs);<BR><BR>xZomeLength 
      = size(startPop,2); &nbsp;&nbsp;%Length of the 
      xzome=numVars+fittness<BR>numVar = xZomeLength-1; %变量数目<BR>popSize = 
      size(startPop,1); %种群中个体数目<BR>endPop = zeros(popSize,xZomeLength); 
      %次种群矩阵<BR>c1 = zeros(1,xZomeLength); &nbsp;&nbsp; %个体<BR>c2 = 
      zeros(1,xZomeLength); &nbsp;&nbsp;&nbsp;&nbsp;%个体<BR>numXOvers = 
      size(xOverFNs,1); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%交叉操作次数<BR>numMuts = 
      size(mutFNs,1); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%变异操作次数<BR>epsilon = 
      opts(1); &nbsp;&nbsp;&nbsp;&nbsp;%适应度门限值<BR>oeval = 
      max(startPop(:,xZomeLength)); %初始种群中的最优值<BR>bFoundIn = 1;<BR>done = 
      0;<BR>gen = 1;<BR>collectTrace = (nargout&gt;3);<BR>floatGA = 
      opts(2)==1;<BR>display = opts(3);<BR><BR>while(~done)<BR>[beval,bindx] = 
      max(startPop(:,xZomeLength)); %当前种群的最优值<BR>best = startPop(bindx,<IMG 
      alt=Smile src="view.files/smile.gif" width=15>;<BR><BR>if 
      collectTrace<BR>traceInfo(gen,1)=gen; &nbsp;&nbsp;&nbsp;&nbsp; 
      %当前代<BR>traceInfo(gen,2)=startPop(bindx,xZomeLength); 
      %最优适应度<BR>traceInfo(gen,3)=mean(startPop(:,xZomeLength)); 
      %平均适应度<BR>traceInfo(gen,4)=std(startPop(:,xZomeLength)); <BR>end<BR><BR>if 
      ( (abs(beval - oeval)&gt;epsilon) | (gen==1)) <BR>if 
      display<BR>fprintf(1,'\n%d %f\n',gen,beval); <BR>end<BR>if 
      floatGA<BR>bPop(bFoundIn,<IMG alt=Smile src="view.files/smile.gif" 
      width=15>=[gen startPop(bindx,<IMG alt=Smile src="view.files/smile.gif" 
      width=15>]; <BR>else<BR>bPop(bFoundIn,<IMG alt=Smile 
      src="view.files/smile.gif" width=15>=[gen 
      b2f(startPop(bindx,1:numVar),bounds,bits)...<BR>&nbsp;&nbsp; 
      startPop(bindx,xZomeLength)];<BR>end<BR>bFoundIn=bFoundIn+1; 
      <BR>oeval=beval; <BR>else<BR>if display<BR>fprintf(1,'%d 
      ',gen);&nbsp;&nbsp; <BR>end<BR>end<BR><BR>endPop = 
      feeval(selectFN,startPop,[gen selectOps]); %选择操作<BR><BR>if floatGA <BR>for 
      i=1:numXOvers,<BR>for j=1:xOverOps(i,1),<BR>&nbsp;&nbsp;a = 
      round(rand*(popSize-1)+1); %一个父代个体<BR>&nbsp;&nbsp;b = 
      round(rand*(popSize-1)+1); 
      %另一个父代个体<BR>&nbsp;&nbsp;xN=deblank(xOverFNs(i,<IMG alt=Smile 
      src="view.files/smile.gif" width=15>); %交叉函数<BR>&nbsp;&nbsp;[c1 c2] = 
      feeval(xN,endPop(a,<IMG alt=Smile src="view.files/smile.gif" 
      width=15>,endPop(b,<IMG alt=Smile src="view.files/smile.gif" 
      width=15>,bounds,[gen… xOverOps(i,<IMG alt=Smile 
      src="view.files/smile.gif" width=15>]);<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;if 
      c1(1:numVar)==endPop(a,(1:numVar)) <BR>&nbsp;&nbsp; 
      c1(xZomeLength)=endPop(a,xZomeLength); <BR>&nbsp;&nbsp;elseif 
      c1(1:numVar)==endPop(b,(1:numVar))<BR>&nbsp;&nbsp; 
      c1(xZomeLength)=endPop(b,xZomeLength);<BR>&nbsp;&nbsp;else 
      <BR>&nbsp;&nbsp; eeval(e1str);<BR>&nbsp;&nbsp;end<BR>&nbsp;&nbsp;if 
      c2(1:numVar)==endPop(a,(1:numVar))<BR>&nbsp;&nbsp; 
      c2(xZomeLength)=endPop(a,xZomeLength);<BR>&nbsp;&nbsp;elseif 
      c2(1:numVar)==endPop(b,(1:numVar))<BR>&nbsp;&nbsp; 
      c2(xZomeLength)=endPop(b,xZomeLength);<BR>&nbsp;&nbsp;else 
      <BR>&nbsp;&nbsp; eeval(e2str);<BR>&nbsp;&nbsp;end 
      <BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;endPop(a,<IMG alt=Smile 
      src="view.files/smile.gif" width=15>=c1;<BR>&nbsp;&nbsp;endPop(b,<IMG 
      alt=Smile src="view.files/smile.gif" 
      width=15>=c2;<BR>end<BR>end<BR><BR>for i=1:numMuts,<BR>for 
      j=1:mutOps(i,1),<BR>&nbsp;&nbsp;a = 
      round(rand*(popSize-1)+1);<BR>&nbsp;&nbsp;c1 = 
      feeval(deblank(mutFNs(i,<IMG alt=Smile src="view.files/smile.gif" 
      width=15>),endPop(a,<IMG alt=Smile src="view.files/smile.gif" 
      width=15>,bounds,[gen mutOps(i,<IMG alt=Smile src="view.files/smile.gif" 
      width=15>]);<BR>&nbsp;&nbsp;if c1(1:numVar)==endPop(a,(1:numVar)) 
      <BR>&nbsp;&nbsp; 
      c1(xZomeLength)=endPop(a,xZomeLength);<BR>&nbsp;&nbsp;else<BR>&nbsp;&nbsp; 
      eeval(e1str);<BR>&nbsp;&nbsp;end<BR>&nbsp;&nbsp;endPop(a,<IMG alt=Smile 
      src="view.files/smile.gif" width=15>=c1;<BR>end<BR>end<BR><BR>else 
      %遗传操作的统计模型<BR>for i=1:numXOvers,<BR>xN=deblank(xOverFNs(i,<IMG alt=Smile 
      src="view.files/smile.gif" width=15>); 
      &nbsp;&nbsp;<BR>cp=find(rand(popSize,1)&lt;xOverOps(i,1)==1);<BR>if 
      rem(size(cp,1),2) cp=cp(1<IMG alt=Sad src="view.files/smile_sad.gif" 
      width=15>size(cp,1)-1)); end<BR>cp=reshape(cp,size(cp,1)/2,2);<BR>for 
      j=1:size(cp,1)<BR>&nbsp;&nbsp; a=cp(j,1); b=cp(j,2); <BR>&nbsp;&nbsp; 

⌨️ 快捷键说明

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