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

📄 eosga.html

📁 这是linux下的进化计算的源代码。 === === === === === === === === === === === ===== check latest news at http:
💻 HTML
字号:
<!doctype html public "-//w3c//dtd html 4.0 transitional//en"><html><head>   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">   <meta name="GENERATOR" content="Mozilla/4.75 [en] (X11; U; Linux 2.2.17-21mdk i686) [Netscape]">   <title>eoSGA.h</title></head><body text="#000000" bgcolor="#C3C2B4" link="#0000EE" vlink="#551A8B" alink="#FF0000"><a href="eoLesson1.html">Back to Lesson 1</a> - <a href="eoTutorial.html">Tutorialmain page </a>- <a href="eoTopDown.html">Algorithm-Based</a> - <a href="eoBottomUp.html">Component-Basedpage</a> - <a href="eoProgramming.html">Programming hints</a> - <font face="Arial,Helvetica"><a href="../../doc/html/index.html">EOdocumentation</a></font><br><hr WIDTH="100%"><!-- -------------- End of header ------------------ --><!-- ----------------------------------------------- --><center><h1><font color="#FF0000">eoSGA.h</font></h1></center><a NAME="start"></a><table BORDER=0 CELLSPACING=0 COLS=1 WIDTH="100%" BGCOLOR="#FFCC99" NOSAVE ><tr NOSAVE><td NOSAVE><tt><font color="#993300">//-----------------------------------------------------------------------------</font></tt><br><tt><font color="#993300">// eoSGA.h</font></tt><br><tt><font color="#993300">//-----------------------------------------------------------------------------</font></tt><br><b><tt><font color="#993300">#ifndef _eoSGA_h</font></tt></b><br><b><tt><font color="#993300">#define _eoSGA_h</font></tt></b><br><b><tt><font color="#993300">#include &lt;eoOp.h></font></tt></b><br><b><tt><font color="#993300">#include &lt;eoContinue.h></font></tt></b><br><b><tt><font color="#993300">#include &lt;eoPop.h></font></tt></b><br><b><tt><font color="#993300">#include &lt;eoSelectOne.h></font></tt></b><br><b><tt><font color="#993300">#include &lt;eoSelectPerc.h></font></tt></b><br><b><tt><font color="#993300">#include &lt;eoEvalFunc.h></font></tt></b><br><b><tt><font color="#993300">#include &lt;eoAlgo.h></font></tt></b><br><b><tt><font color="#993300">#include &lt;apply.h></font></tt></b><br><tt><font color="#993300">/** The Simple Genetic Algorithm, followingHolland and Goldberg&nbsp;</font></tt><br><tt><font color="#993300">*&nbsp; Needs a selector (class eoSelectOne)a crossover (eoQuadratic,&nbsp;</font></tt><br><tt><font color="#993300">*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i.e. a 2->2operator) and a mutation with their respective rates,&nbsp;</font></tt><br><tt><font color="#993300">*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; of coursean evaluation function (eoEvalFunc) and a continuator&nbsp;</font></tt><br><tt><font color="#993300">*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (eoContinue)which gives the stopping criterion. Performs full</font></tt><br><tt><font color="#993300">*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; generationalreplacement.</font></tt><br><tt><font color="#993300">*/&nbsp;</font></tt><br><b><tt><font color="#993300">template &lt;class EOT></font></tt></b><br><b><tt><font color="#993300">class eoSGA : public eoAlgo&lt;EOT></font></tt></b><br><b><tt><font color="#993300">{</font></tt></b><br><b><tt><font color="#993300">public :</font></tt></b><br><tt><font color="#993300"><b>&nbsp;</b>// added this second ctor asI didn't like the ordering of the parameters</font></tt><br><tt><font color="#993300"><b>&nbsp;</b>// in the one above. Any objection:-) MS</font></tt><br><a NAME="constructor"></a><b><tt><font color="#993300">eoSGA(</font></tt></b><br><b><tt><font color="#993300">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eoSelectOne&lt;EOT>&amp;_select,</font></tt></b><br><b><tt><font color="#993300">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eoQuadraticOp&lt;EOT>&amp;_cross, float _crate,</font></tt></b><br><b><tt><font color="#993300">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eoMonOp&lt;EOT>&amp;_mutate, float _mrate,</font></tt></b><br><b><tt><font color="#993300">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eoEvalFunc&lt;EOT>&amp;_eval,</font></tt></b><br><b><tt><font color="#993300">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eoContinue&lt;EOT>&amp;_cont)</font></tt></b><br><b><tt><font color="#993300">&nbsp;&nbsp;&nbsp;&nbsp; : cont(_cont),&nbsp;</font></tt></b><br><b><tt><font color="#993300">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mutate(_mutate),&nbsp;</font></tt></b><br><b><tt><font color="#993300">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mutationRate(_mrate),</font></tt></b><br><b><tt><font color="#993300">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cross(_cross),</font></tt></b><br><b><tt><font color="#993300">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; crossoverRate(_crate),</font></tt></b><br><b><tt><font color="#993300">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; select(_select),</font></tt></b><br><b><tt><font color="#993300">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eval(_eval){}</font></tt></b></td></tr></table><a NAME="generation"></a><table BORDER=0 CELLSPACING=0 COLS=1 WIDTH="100%" BGCOLOR="#FFCC99" NOSAVE ><tr><td><b><tt><font color="#FF6666">&nbsp;void operator()(eoPop&lt;EOT>&amp;_pop)</font></tt></b><br><b><tt><font color="#FF6666">&nbsp;{</font></tt></b><br><b><tt><font color="#FF6666">&nbsp;&nbsp;&nbsp; eoPop&lt;EOT> offspring;</font></tt></b><br><b><tt><font color="#FF6666">&nbsp;&nbsp;&nbsp; do {</font></tt></b><br><b><tt><font color="#FF6666">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;select(_pop, offspring);</font></tt></b><br><b><tt><font color="#FF6666">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned i;</font></tt></b><br><b><tt><font color="#FF6666">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (i=0; i&lt;_pop.size()/2; i++)&nbsp;</font></tt></b><br><tt><font color="#FF6666"><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp; </b>// generates 2 offspring from two parents</font></tt><br><b><tt><font color="#FF6666">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ( rng.flip(crossoverRate) )&nbsp;</font></tt></b><br><b><tt><font color="#FF6666">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</font></tt></b><br><b><tt><font color="#FF6666">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cross(offspring[2*i], offspring[2*i+1]);</font></tt></b><br><b><tt><font color="#FF6666">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</font></tt></b><br><b><tt><font color="#FF6666">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</font></tt></b><br><b><tt><font color="#FF6666">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (i=0; i &lt; _pop.size(); i++)&nbsp;</font></tt></b><br><b><tt><font color="#FF6666">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</font></tt></b><br><b><tt><font color="#FF6666">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (rng.flip(mutationRate) )&nbsp;</font></tt></b><br><b><tt><font color="#FF6666">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</font></tt></b><br><b><tt><font color="#FF6666">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mutate(offspring[i]);</font></tt></b><br><b><tt><font color="#FF6666">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</font></tt></b><br><b><tt><font color="#FF6666">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</font></tt></b><br><b><tt><font color="#FF6666">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_pop.swap(offspring);</font></tt></b><br><b><tt><font color="#FF6666">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;apply&lt;EOT>(eval, _pop);</font></tt></b><br><b><tt><font color="#FF6666">&nbsp;&nbsp;&nbsp;&nbsp; } while (cont(_pop));</font></tt></b><br><b><tt><font color="#FF6666">&nbsp;}</font></tt></b><br>&nbsp;</td></tr></table><a NAME="parametres"></a><table BORDER=0 CELLSPACING=0 COLS=1 WIDTH="100%" BGCOLOR="#CCFFFF" NOSAVE ><tr><td><b><tt><font color="#3366FF">private :</font></tt></b><br><b><tt><font color="#3366FF">&nbsp;eoContinue&lt;EOT>&amp; cont;</font></tt></b><br><b><tt><font color="#3366FF">&nbsp;eoMonOp&lt;EOT>&amp; mutate;</font></tt></b><br><b><tt><font color="#3366FF">&nbsp;float mutationRate;</font></tt></b><br><b><tt><font color="#3366FF">&nbsp;eoQuadraticOp&lt;EOT>&amp; cross;</font></tt></b><br><b><tt><font color="#3366FF">&nbsp;float crossoverRate;</font></tt></b><br><b><tt><font color="#3366FF">&nbsp;eoSelectPerc&lt;EOT> select;</font></tt></b><br><b><tt><font color="#3366FF">&nbsp;eoEvalFunc&lt;EOT>&amp; eval;</font></tt></b></td></tr></table><a NAME="general"></a><table BORDER=0 CELLSPACING=0 COLS=1 WIDTH="100%" BGCOLOR="#FFCC99" NOSAVE ><tr><td><b><tt><font color="#993300">};</font></tt></b><br><b><tt><font color="#993300">#endif</font></tt></b></td></tr></table><hr WIDTH="100%"><a href="eoLesson1.html">Back to Lesson 1</a> - <a href="eoTutorial.html">Tutorialmain page </a>- <a href="eoTopDown.html">Algorithm-Based</a> - <a href="eoBottomUp.html">Component-Basedpage</a> - <a href="eoProgramming.html">Programming hints</a> - <font face="Arial,Helvetica"><a href="../../doc/html/index.html">EOdocumentation</a></font><hr><address><a href="mailto:Marc.Schoenauer@inria.fr">Marc Schoenauer</a></address><br><!-- Created: Nov 2000 --><!-- hhmts start -->Last modified: Sun Nov19 19:36:21 2000<!-- hhmts end --></body></html>

⌨️ 快捷键说明

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