paradiseo/trunk/paradiseo-peo/docs/html/classpeoAsyncIslandMig.html

300 lines
23 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>ParadisEO-PEO: peoAsyncIslandMig&lt; EOT &gt; Class Template Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li id="current"><a href="classes.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<form action="search.php" method="get">
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
<td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
</tr>
</table>
</form>
</li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul></div>
<h1>peoAsyncIslandMig&lt; EOT &gt; Class Template Reference</h1><!-- doxytag: class="peoAsyncIslandMig" --><!-- doxytag: inherits="Cooperative" -->The <a class="el" href="classpeoAsyncIslandMig.html">peoAsyncIslandMig</a> class offers the elementary basis for implementating an asynchronous island migration model - requires the specification of several basic parameters, i.e.
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="peoAsyncIslandMig_8h-source.html">peoAsyncIslandMig.h</a>&gt;</code>
<p>
<p>Inheritance diagram for peoAsyncIslandMig&lt; EOT &gt;:
<p><center><img src="classpeoAsyncIslandMig.png" usemap="#peoAsyncIslandMig< EOT >_map" border="0" alt=""></center>
<map name="peoAsyncIslandMig< EOT >_map">
<area href="classCooperative.html" alt="Cooperative" shape="rect" coords="0,56,172,80">
<area href="classCommunicable.html" alt="Communicable" shape="rect" coords="0,0,172,24">
</map>
<a href="classpeoAsyncIslandMig-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpeoAsyncIslandMig.html#e0f706cbf4148d3ca327227a5c7a9fdf">peoAsyncIslandMig</a> (eoContinue&lt; EOT &gt; &amp;__cont, eoSelect&lt; EOT &gt; &amp;__select, eoReplacement&lt; EOT &gt; &amp;__replace, <a class="el" href="classTopology.html">Topology</a> &amp;__topology, eoPop&lt; EOT &gt; &amp;__source, eoPop&lt; EOT &gt; &amp;__destination)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor for the <a class="el" href="classpeoAsyncIslandMig.html">peoAsyncIslandMig</a> class; the characteristics of the migration model are defined through the specified parameters - out of the box objects provided in EO, etc., or custom, derived objects may be passed as parameters. <a href="#e0f706cbf4148d3ca327227a5c7a9fdf"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpeoAsyncIslandMig.html#13581e54425727a7f785ca8a6df527b5">operator()</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Function operator to be called as checkpoint for performing the migration step. <a href="#13581e54425727a7f785ca8a6df527b5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6d790a5d0b6ac510cac4f61a1c0d8f16"></a><!-- doxytag: member="peoAsyncIslandMig::pack" ref="6d790a5d0b6ac510cac4f61a1c0d8f16" args="()" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpeoAsyncIslandMig.html#6d790a5d0b6ac510cac4f61a1c0d8f16">pack</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Auxiliary function dealing with sending the emigrant individuals. There is no need to explicitly call the function. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="455501aee5db2bbfbae15779c8429369"></a><!-- doxytag: member="peoAsyncIslandMig::unpack" ref="455501aee5db2bbfbae15779c8429369" args="()" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpeoAsyncIslandMig.html#455501aee5db2bbfbae15779c8429369">unpack</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Auxiliary function dealing with receiving immigrant individuals. There is no need to explicitly call the function. <br></td></tr>
<tr><td colspan="2"><br><h2>Private Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="87a4ef7d4bd30d349a801bf0f9e87c82"></a><!-- doxytag: member="peoAsyncIslandMig::emigrate" ref="87a4ef7d4bd30d349a801bf0f9e87c82" args="()" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpeoAsyncIslandMig.html#87a4ef7d4bd30d349a801bf0f9e87c82">emigrate</a> ()</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5a9a64ba51a696e45f91b362c39c9a64"></a><!-- doxytag: member="peoAsyncIslandMig::immigrate" ref="5a9a64ba51a696e45f91b362c39c9a64" args="()" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpeoAsyncIslandMig.html#5a9a64ba51a696e45f91b362c39c9a64">immigrate</a> ()</td></tr>
<tr><td colspan="2"><br><h2>Private Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2fc077d02ef9ea4595cfe883af0d4f83"></a><!-- doxytag: member="peoAsyncIslandMig::cont" ref="2fc077d02ef9ea4595cfe883af0d4f83" args="" -->
eoContinue&lt; EOT &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpeoAsyncIslandMig.html#2fc077d02ef9ea4595cfe883af0d4f83">cont</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b1fa045094c8a411323e75b5820c80c2"></a><!-- doxytag: member="peoAsyncIslandMig::select" ref="b1fa045094c8a411323e75b5820c80c2" args="" -->
eoSelect&lt; EOT &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpeoAsyncIslandMig.html#b1fa045094c8a411323e75b5820c80c2">select</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b761dbd880ee32e170741ecd78da6f48"></a><!-- doxytag: member="peoAsyncIslandMig::replace" ref="b761dbd880ee32e170741ecd78da6f48" args="" -->
eoReplacement&lt; EOT &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpeoAsyncIslandMig.html#b761dbd880ee32e170741ecd78da6f48">replace</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e45e5a808a96f0853ab6ba42339fe679"></a><!-- doxytag: member="peoAsyncIslandMig::topology" ref="e45e5a808a96f0853ab6ba42339fe679" args="" -->
<a class="el" href="classTopology.html">Topology</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpeoAsyncIslandMig.html#e45e5a808a96f0853ab6ba42339fe679">topology</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8a502d82c773033e274dca932fc2d4ee"></a><!-- doxytag: member="peoAsyncIslandMig::source" ref="8a502d82c773033e274dca932fc2d4ee" args="" -->
eoPop&lt; EOT &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpeoAsyncIslandMig.html#8a502d82c773033e274dca932fc2d4ee">source</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e407f411d08ae7d96992603c145a7e43"></a><!-- doxytag: member="peoAsyncIslandMig::destination" ref="e407f411d08ae7d96992603c145a7e43" args="" -->
eoPop&lt; EOT &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpeoAsyncIslandMig.html#e407f411d08ae7d96992603c145a7e43">destination</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b8c76d98d9ae99dd930a77c12860519a"></a><!-- doxytag: member="peoAsyncIslandMig::imm" ref="b8c76d98d9ae99dd930a77c12860519a" args="" -->
std::queue&lt; eoPop&lt; EOT &gt; &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpeoAsyncIslandMig.html#b8c76d98d9ae99dd930a77c12860519a">imm</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a9cc0e2d61cac6e11647b141962adc89"></a><!-- doxytag: member="peoAsyncIslandMig::em" ref="a9cc0e2d61cac6e11647b141962adc89" args="" -->
std::queue&lt; eoPop&lt; EOT &gt; &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpeoAsyncIslandMig.html#a9cc0e2d61cac6e11647b141962adc89">em</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1a2c0004d23bc303420af137a8c8bd27"></a><!-- doxytag: member="peoAsyncIslandMig::coop_em" ref="1a2c0004d23bc303420af137a8c8bd27" args="" -->
std::queue&lt; <a class="el" href="classCooperative.html">Cooperative</a> * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpeoAsyncIslandMig.html#1a2c0004d23bc303420af137a8c8bd27">coop_em</a></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
<h3>template&lt;class EOT&gt;<br>
class peoAsyncIslandMig&lt; EOT &gt;</h3>
The <a class="el" href="classpeoAsyncIslandMig.html">peoAsyncIslandMig</a> class offers the elementary basis for implementating an asynchronous island migration model - requires the specification of several basic parameters, i.e.
<p>
continuation criterion, selection and replacement strategies, a topological model and the source and destination population for the migrating individuals. As opposed to the synchronous migration model, in the asynchronous migration approach, there is no synchronization step between islands after performing the emigration phase.<p>
The migration operator is called at the end of each generation of an evolutionary algorithms as a checkpoint object - the following code exposes the structure of a classic evolutionary algorithm:<p>
<table style="border:none; border-spacing:0px;text-align:left; vertical-align:top; font-size:8pt;" border="0" cellspacing="3" cellpadding="3">
<tr>
<td><b>do</b> { &nbsp; </td><td>&nbsp; </td></tr>
<tr>
<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; select( population, offsprings ); &nbsp; </td><td>// select the offsprings from the current population </td></tr>
<tr>
<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; transform( offsprings ); &nbsp; </td><td>// crossover and mutation operators are applied on the selected offsprings </td></tr>
<tr>
<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; evaluate( offsprings ); &nbsp; </td><td>// evaluation step of the resulting offspring </td></tr>
<tr>
<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; replace( population, offsprings ); &nbsp; </td><td>// replace the individuals in the current population whith individuals from the offspring population, according to a specified replacement strategy </td></tr>
<tr>
<td>} <b>while</b> ( eaCheckpointContinue( population ) ); &nbsp; </td><td>// checkpoint operators are applied on the current population, including the migration operator, if any specified </td></tr>
</table>
<p>
Constructing an asynchronous island migration model requires having defined (1) a topological migration model, (2) the control parameters of the migration process, (3) a checkpoint object associated with an evolutionary algorithm, and (4) an owner object must be set. The owner object must be derived from the <b><a class="el" href="classRunner.html">Runner</a></b> class (for example a <a class="el" href="classpeoEA.html">peoEA</a> object represents a possible owner). A simple example is offered bellow:<p>
<ol>
<li>
topological model to be followed when performing migrations: <br>
<br>
<table style="border:none; border-spacing:0px;text-align:left; vertical-align:top; font-size:8pt;" border="0" cellspacing="3" cellpadding="3">
<tr>
<td><a class="el" href="classRingTopology.html">RingTopology</a> migTopology; &nbsp; </td><td>// a simple ring topological model - each island communicates with two other islands </td></tr>
</table>
<p>
</li>
<li>
the continuation criterion, selection and replacement strategy etc. are defined: <br>
<br>
<table style="border:none; border-spacing:0px; font-size:8pt;" border="0" cellspacing="3" cellpadding="3">
<tr>
<td>eoPop&lt; EOT &gt; population( POP_SIZE, popInitializer ); &nbsp; </td><td>// population of individuals to be used for the evolutionary algorithm </td></tr>
<tr>
<td>&nbsp; </td><td>&nbsp; </td></tr>
<tr>
<td>eoPeriodicContinue&lt; EOT &gt; migCont( MIG_FREQ ); &nbsp; </td><td>// migrations occur periodically at MIG_FREQ iterations </td></tr>
<tr>
<td>eoRandomSelect&lt; EOT &gt; migSelectStrategy; &nbsp; </td><td>// selection strategy - in this case a random selection is applied </td></tr>
<tr>
<td>eoSelectNumber&lt; EOT &gt; migSelect( migSelectStrategy, MIG_SIZE ); &nbsp; </td><td>// number of individuals to be selected using the specified strategy </td></tr>
<tr>
<td>eoPlusReplacement&lt; EOT &gt; migReplace; &nbsp; </td><td>// immigration strategy - the worse individuals in the destination population are replaced by the immigrant individuals </td></tr>
<tr>
<td>&nbsp; </td><td>&nbsp; </td></tr>
<tr>
<td>peoAsyncIslandMig&lt; EOT &gt; asyncMigration( <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; migCont, migSelect, migReplace, migTopology, <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; population, population <br>
); &nbsp; </td><td>// asynchronous migration object - the emigrant individuals are selected from the same from population in which the immigrant individuals are being integrated </td></tr>
</table>
<p>
</li>
<li>
creation of a checkpoint object as part of the definition of an evolutionary algoritm (details of th EA not given as being out of scope): <br>
<br>
<table style="border:none; border-spacing:0px;text-align:left; vertical-align:top; font-size:8pt;" border="0" cellspacing="3" cellpadding="3">
<tr>
<td>... &nbsp; </td><td>&nbsp; </td></tr>
<tr>
<td>eoGenContinue&lt; EOT &gt; eaCont( NUM_GEN ); &nbsp; </td><td>// the evolutionary algorithm will stop after NUM_GEN generations </td></tr>
<tr>
<td>eoCheckPoint&lt; EOT &gt; eaCheckpointContinue( eaCont ); &nbsp; </td><td>// number of individuals to be selected using the specified strategy </td></tr>
<tr>
<td>... &nbsp; </td><td>&nbsp; </td></tr>
<tr>
<td>eaCheckpointContinue.add( asyncMigration ); &nbsp; </td><td>// adding the migration operator as checkpoint element </td></tr>
<tr>
<td>... &nbsp; </td><td>&nbsp; </td></tr>
</table>
<p>
</li>
<li>
definition of an owner evolutionary algorithm (an object inheriting the <b><a class="el" href="classRunner.html">Runner</a></b> class): <br>
<br>
<table style="border:none; border-spacing:0px;text-align:left; vertical-align:top; font-size:8pt;" border="0" cellspacing="3" cellpadding="3">
<tr>
<td>peoEA&lt; EOT &gt; eaAlg( eaCheckpointContinue, eaPopEval, eaSelect, eaTransform, eaReplace); &nbsp; </td><td>// evolutionary algorithm having as checkpoint the eaCheckpointContinue object defined above </td></tr>
<tr>
<td>asyncMigration.setOwner( eaAlg ); &nbsp; </td><td>// setting the evolutionary algorithm as owner of the migration object </td></tr>
<tr>
<td>eaAlg( population ); &nbsp; </td><td>// applying the evolutionary algorithm on a given population </td></tr>
</table>
</li>
</ol>
<p>
The source and the destination population for the migration object were specified as being the same, in step no. 2, as we are usually interested in selecting the emigrants and integrating the immigrant individuals from and in, respectively, one unique population, iteratively evolved by an evolutionary algorithm. There is no restriction in having two distinct populations as source and destination for the emigrant and immigrant individuals respectively.<p>
The above steps only create an asynchronous migration object associated to an evolutionary algorithm. The creation of several islands requires the reiteration of the steps 2 through 4 for creating distinct algorithms, with distinct populations and the associated distinctly parametrized migration objects. The interconnecting element is the underlying topology, defined at step 1 (the same C++ migTopology object has to be passed as parameter for all the migration objects, in order to interconnect them).
<p>
<p>
Definition at line <a class="el" href="peoAsyncIslandMig_8h-source.html#l00127">127</a> of file <a class="el" href="peoAsyncIslandMig_8h-source.html">peoAsyncIslandMig.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="e0f706cbf4148d3ca327227a5c7a9fdf"></a><!-- doxytag: member="peoAsyncIslandMig::peoAsyncIslandMig" ref="e0f706cbf4148d3ca327227a5c7a9fdf" args="(eoContinue&lt; EOT &gt; &amp;__cont, eoSelect&lt; EOT &gt; &amp;__select, eoReplacement&lt; EOT &gt; &amp;__replace, Topology &amp;__topology, eoPop&lt; EOT &gt; &amp;__source, eoPop&lt; EOT &gt; &amp;__destination)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class EOT&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classpeoAsyncIslandMig.html">peoAsyncIslandMig</a>&lt; EOT &gt;::<a class="el" href="classpeoAsyncIslandMig.html">peoAsyncIslandMig</a> </td>
<td>(</td>
<td class="paramtype">eoContinue&lt; EOT &gt; &amp;&nbsp;</td>
<td class="paramname"> <em>__cont</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">eoSelect&lt; EOT &gt; &amp;&nbsp;</td>
<td class="paramname"> <em>__select</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">eoReplacement&lt; EOT &gt; &amp;&nbsp;</td>
<td class="paramname"> <em>__replace</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classTopology.html">Topology</a> &amp;&nbsp;</td>
<td class="paramname"> <em>__topology</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">eoPop&lt; EOT &gt; &amp;&nbsp;</td>
<td class="paramname"> <em>__source</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">eoPop&lt; EOT &gt; &amp;&nbsp;</td>
<td class="paramname"> <em>__destination</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Constructor for the <a class="el" href="classpeoAsyncIslandMig.html">peoAsyncIslandMig</a> class; the characteristics of the migration model are defined through the specified parameters - out of the box objects provided in EO, etc., or custom, derived objects may be passed as parameters.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>eoContinue&lt;</em>&nbsp;</td><td>EOT &gt;&amp; __cont - continuation criterion specifying whether the migration is performed or not; </td></tr>
<tr><td valign="top"></td><td valign="top"><em>eoSelect&lt;</em>&nbsp;</td><td>EOT &gt;&amp; __select - selection strategy to be applied for constructing a list of emigrant individuals out of the source population; </td></tr>
<tr><td valign="top"></td><td valign="top"><em>eoReplacement&lt;</em>&nbsp;</td><td>EOT &gt;&amp; __replace - replacement strategy used for integrating the immigrant individuals in the destination population; </td></tr>
<tr><td valign="top"></td><td valign="top"><em>Topology&amp;</em>&nbsp;</td><td>__topology - topological model to be followed when performing migrations; </td></tr>
<tr><td valign="top"></td><td valign="top"><em>eoPop&lt;</em>&nbsp;</td><td>EOT &gt;&amp; __source - source population from which the emigrant individuals are selected; </td></tr>
<tr><td valign="top"></td><td valign="top"><em>eoPop&lt;</em>&nbsp;</td><td>EOT &gt;&amp; __destination - destination population in which the immigrant population are integrated. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="peoAsyncIslandMig_8h-source.html#l00186">186</a> of file <a class="el" href="peoAsyncIslandMig_8h-source.html">peoAsyncIslandMig.h</a>.
<p>
References <a class="el" href="topology_8cpp-source.html#l00031">Topology::add()</a>.
</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="13581e54425727a7f785ca8a6df527b5"></a><!-- doxytag: member="peoAsyncIslandMig::operator()" ref="13581e54425727a7f785ca8a6df527b5" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class EOT&gt; </div>
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classpeoAsyncIslandMig.html">peoAsyncIslandMig</a>&lt; EOT &gt;::operator() </td>
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Function operator to be called as checkpoint for performing the migration step.
<p>
The emigrant individuals are selected from the source population and sent to the next island (defined by the topology object) while the immigrant individuals are integrated in the destination population. There is no need to explicitly call the function - the wrapper checkpoint object (please refer to the above example) will perform the call when required.
<p>
Definition at line <a class="el" href="peoAsyncIslandMig_8h-source.html#l00263">263</a> of file <a class="el" href="peoAsyncIslandMig_8h-source.html">peoAsyncIslandMig.h</a>.
<p>
References <a class="el" href="peoAsyncIslandMig_8h-source.html#l00169">peoAsyncIslandMig&lt; EOT &gt;::cont</a>, <a class="el" href="peoAsyncIslandMig_8h-source.html#l00229">peoAsyncIslandMig&lt; EOT &gt;::emigrate()</a>, <a class="el" href="peoAsyncIslandMig_8h-source.html#l00247">peoAsyncIslandMig&lt; EOT &gt;::immigrate()</a>, and <a class="el" href="peoAsyncIslandMig_8h-source.html#l00175">peoAsyncIslandMig&lt; EOT &gt;::source</a>.
</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="peoAsyncIslandMig_8h-source.html">peoAsyncIslandMig.h</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Sat Dec 30 14:55:31 2006 for ParadisEO-PEO by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>