paradiseo/trunk/paradiseo-moeo/doc/html/moeoIBMOLS_8h-source.html
liefooga 320c6b06ff update doc with new stuffs
git-svn-id: svn://scm.gforge.inria.fr/svnroot/paradiseo@497 331e1502-861f-0410-8da2-ba01fb791d7f
2007-07-02 14:05:51 +00:00

270 lines
24 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-MOEO: moeoIBMOLS.h Source File</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="classes.html"><span>Classes</span></a></li>
<li id="current"><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>
<h1>moeoIBMOLS.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-</span>
<a name="l00002"></a>00002
<a name="l00003"></a>00003 <span class="comment">//-----------------------------------------------------------------------------</span>
<a name="l00004"></a>00004 <span class="comment">// moeoIBMOLS.h</span>
<a name="l00005"></a>00005 <span class="comment">// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007</span>
<a name="l00006"></a>00006 <span class="comment">/*</span>
<a name="l00007"></a>00007 <span class="comment"> This library...</span>
<a name="l00008"></a>00008 <span class="comment"></span>
<a name="l00009"></a>00009 <span class="comment"> Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr</span>
<a name="l00010"></a>00010 <span class="comment"> */</span>
<a name="l00011"></a>00011 <span class="comment">//-----------------------------------------------------------------------------</span>
<a name="l00012"></a>00012
<a name="l00013"></a>00013 <span class="preprocessor">#ifndef MOEOIBMOLS_H_</span>
<a name="l00014"></a>00014 <span class="preprocessor"></span><span class="preprocessor">#define MOEOIBMOLS_H_</span>
<a name="l00015"></a>00015 <span class="preprocessor"></span>
<a name="l00016"></a>00016 <span class="preprocessor">#include &lt;eoContinue.h&gt;</span>
<a name="l00017"></a>00017 <span class="preprocessor">#include &lt;eoEvalFunc.h&gt;</span>
<a name="l00018"></a>00018 <span class="preprocessor">#include &lt;eoPop.h&gt;</span>
<a name="l00019"></a>00019 <span class="preprocessor">#include &lt;moMove.h&gt;</span>
<a name="l00020"></a>00020 <span class="preprocessor">#include &lt;moMoveInit.h&gt;</span>
<a name="l00021"></a>00021 <span class="preprocessor">#include &lt;moNextMove.h&gt;</span>
<a name="l00022"></a>00022 <span class="preprocessor">#include &lt;algo/moeoLS.h&gt;</span>
<a name="l00023"></a>00023 <span class="preprocessor">#include &lt;archive/moeoArchive.h&gt;</span>
<a name="l00024"></a>00024 <span class="preprocessor">#include &lt;fitness/moeoIndicatorBasedFitnessAssignment.h&gt;</span>
<a name="l00025"></a>00025 <span class="preprocessor">#include &lt;move/moeoMoveIncrEval.h&gt;</span>
<a name="l00026"></a>00026
<a name="l00031"></a>00031 <span class="keyword">template</span> &lt; <span class="keyword">class</span> MOEOT, <span class="keyword">class</span> Move &gt;
<a name="l00032"></a><a class="code" href="classmoeoIBMOLS.html">00032</a> <span class="keyword">class </span><a class="code" href="classmoeoIBMOLS.html">moeoIBMOLS</a> : <span class="keyword">public</span> <a class="code" href="classmoeoLS.html">moeoLS</a> &lt; MOEOT, eoPop &lt; MOEOT &gt; &amp; &gt;
<a name="l00033"></a>00033 {
<a name="l00034"></a>00034 <span class="keyword">public</span>:
<a name="l00035"></a>00035
<a name="l00037"></a><a class="code" href="classmoeoIBMOLS.html#d3433001dcc9a6e2a967aa5d64163935">00037</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> MOEOT::ObjectiveVector <a class="code" href="classmoeoIBMOLS.html#d3433001dcc9a6e2a967aa5d64163935">ObjectiveVector</a>;
<a name="l00038"></a>00038
<a name="l00039"></a>00039
<a name="l00049"></a><a class="code" href="classmoeoIBMOLS.html#04a4c1b453fe5ba2e3d44572196161fb">00049</a> <a class="code" href="classmoeoIBMOLS.html#04a4c1b453fe5ba2e3d44572196161fb">moeoIBMOLS</a>(
<a name="l00050"></a>00050 moMoveInit &lt; Move &gt; &amp; _moveInit,
<a name="l00051"></a>00051 moNextMove &lt; Move &gt; &amp; _nextMove,
<a name="l00052"></a>00052 eoEvalFunc &lt; MOEOT &gt; &amp; _eval,
<a name="l00053"></a>00053 moeoMoveIncrEval &lt; Move &gt; &amp; _moveIncrEval,
<a name="l00054"></a>00054 moeoIndicatorBasedFitnessAssignment &lt; MOEOT &gt; &amp; _fitnessAssignment,
<a name="l00055"></a>00055 eoContinue &lt; MOEOT &gt; &amp; _continuator
<a name="l00056"></a>00056 ) :
<a name="l00057"></a>00057 <a class="code" href="classmoeoIBMOLS.html#b4b4908b893edd52d6fa24085d2a89e5">moveInit</a>(_moveInit),
<a name="l00058"></a>00058 <a class="code" href="classmoeoIBMOLS.html#8b8ebbd6eb6c82caa796160b4be2a86b">nextMove</a>(_nextMove),
<a name="l00059"></a>00059 <a class="code" href="classmoeoIBMOLS.html#e9acda4b2f61f8960109a8c6fd52551e">eval</a>(_eval),
<a name="l00060"></a>00060 <a class="code" href="classmoeoIBMOLS.html#6c38636061bd03c4be809277e2dc257a">moveIncrEval</a>(_moveIncrEval),
<a name="l00061"></a>00061 <a class="code" href="classmoeoIBMOLS.html#f48840d7af306db440e74028ed736a95">fitnessAssignment</a> (_fitnessAssignment),
<a name="l00062"></a>00062 <a class="code" href="classmoeoIBMOLS.html#c15985c0bb5d9ba835f35d99d7c42b14">continuator</a> (_continuator)
<a name="l00063"></a>00063 {}
<a name="l00064"></a>00064
<a name="l00065"></a>00065
<a name="l00072"></a><a class="code" href="classmoeoIBMOLS.html#fd788bbc4f956dec932dba2a4d4479b6">00072</a> <span class="keywordtype">void</span> <a class="code" href="classmoeoIBMOLS.html#fd788bbc4f956dec932dba2a4d4479b6">operator() </a>(eoPop &lt; MOEOT &gt; &amp; _pop, moeoArchive &lt; MOEOT &gt; &amp; _arch)
<a name="l00073"></a>00073 {
<a name="l00074"></a>00074 <span class="comment">// evaluation of the objective values</span>
<a name="l00075"></a>00075 <span class="comment">/*</span>
<a name="l00076"></a>00076 <span class="comment"> for (unsigned int i=0; i&lt;_pop.size(); i++)</span>
<a name="l00077"></a>00077 <span class="comment"> {</span>
<a name="l00078"></a>00078 <span class="comment"> eval(_pop[i]);</span>
<a name="l00079"></a>00079 <span class="comment"> }</span>
<a name="l00080"></a>00080 <span class="comment"> */</span>
<a name="l00081"></a>00081 <span class="comment">// fitness assignment for the whole population</span>
<a name="l00082"></a>00082 <a class="code" href="classmoeoIBMOLS.html#f48840d7af306db440e74028ed736a95">fitnessAssignment</a>(_pop);
<a name="l00083"></a>00083 <span class="comment">// creation of a local archive</span>
<a name="l00084"></a>00084 moeoArchive &lt; MOEOT &gt; archive;
<a name="l00085"></a>00085 <span class="comment">// creation of another local archive (for the stopping criteria)</span>
<a name="l00086"></a>00086 moeoArchive &lt; MOEOT &gt; previousArchive;
<a name="l00087"></a>00087 <span class="comment">// update the archive with the initial population</span>
<a name="l00088"></a>00088 archive.<a class="code" href="classmoeoArchive.html#6df0acd84cab4cb53682f2e6ca850e9a">update</a>(_pop);
<a name="l00089"></a>00089 <span class="keywordflow">do</span>
<a name="l00090"></a>00090 {
<a name="l00091"></a>00091 previousArchive.<a class="code" href="classmoeoArchive.html#6df0acd84cab4cb53682f2e6ca850e9a">update</a>(archive);
<a name="l00092"></a>00092 <a class="code" href="classmoeoIBMOLS.html#fce770398602972b5d67c52638687d43">oneStep</a>(_pop);
<a name="l00093"></a>00093 archive.<a class="code" href="classmoeoArchive.html#6df0acd84cab4cb53682f2e6ca850e9a">update</a>(_pop);
<a name="l00094"></a>00094 } <span class="keywordflow">while</span> ( (! archive.<a class="code" href="classmoeoArchive.html#937088a6054ba1b50db651f50dda3a72">equals</a>(previousArchive)) &amp;&amp; (<a class="code" href="classmoeoIBMOLS.html#c15985c0bb5d9ba835f35d99d7c42b14">continuator</a>(_arch)) );
<a name="l00095"></a>00095 _arch.<a class="code" href="classmoeoArchive.html#6df0acd84cab4cb53682f2e6ca850e9a">update</a>(archive);
<a name="l00096"></a>00096 }
<a name="l00097"></a>00097
<a name="l00098"></a>00098
<a name="l00099"></a>00099 <span class="keyword">private</span>:
<a name="l00100"></a>00100
<a name="l00102"></a><a class="code" href="classmoeoIBMOLS.html#b4b4908b893edd52d6fa24085d2a89e5">00102</a> moMoveInit &lt; Move &gt; &amp; <a class="code" href="classmoeoIBMOLS.html#b4b4908b893edd52d6fa24085d2a89e5">moveInit</a>;
<a name="l00104"></a><a class="code" href="classmoeoIBMOLS.html#8b8ebbd6eb6c82caa796160b4be2a86b">00104</a> moNextMove &lt; Move &gt; &amp; <a class="code" href="classmoeoIBMOLS.html#8b8ebbd6eb6c82caa796160b4be2a86b">nextMove</a>;
<a name="l00106"></a><a class="code" href="classmoeoIBMOLS.html#e9acda4b2f61f8960109a8c6fd52551e">00106</a> eoEvalFunc &lt; MOEOT &gt; &amp; <a class="code" href="classmoeoIBMOLS.html#e9acda4b2f61f8960109a8c6fd52551e">eval</a>;
<a name="l00108"></a><a class="code" href="classmoeoIBMOLS.html#6c38636061bd03c4be809277e2dc257a">00108</a> moeoMoveIncrEval &lt; Move &gt; &amp; <a class="code" href="classmoeoIBMOLS.html#6c38636061bd03c4be809277e2dc257a">moveIncrEval</a>;
<a name="l00110"></a><a class="code" href="classmoeoIBMOLS.html#f48840d7af306db440e74028ed736a95">00110</a> moeoIndicatorBasedFitnessAssignment &lt; MOEOT &gt; &amp; <a class="code" href="classmoeoIBMOLS.html#f48840d7af306db440e74028ed736a95">fitnessAssignment</a>;
<a name="l00112"></a><a class="code" href="classmoeoIBMOLS.html#c15985c0bb5d9ba835f35d99d7c42b14">00112</a> eoContinue &lt; MOEOT &gt; &amp; <a class="code" href="classmoeoIBMOLS.html#c15985c0bb5d9ba835f35d99d7c42b14">continuator</a>;
<a name="l00113"></a>00113
<a name="l00114"></a>00114
<a name="l00119"></a><a class="code" href="classmoeoIBMOLS.html#fce770398602972b5d67c52638687d43">00119</a> <span class="keywordtype">void</span> <a class="code" href="classmoeoIBMOLS.html#fce770398602972b5d67c52638687d43">oneStep</a> (eoPop &lt; MOEOT &gt; &amp; _pop)
<a name="l00120"></a>00120 {
<a name="l00122"></a>00122 <span class="keywordtype">int</span> ext_0_idx, ext_1_idx;
<a name="l00123"></a>00123 <a class="code" href="classmoeoIBMOLS.html#d3433001dcc9a6e2a967aa5d64163935">ObjectiveVector</a> ext_0_objVec, ext_1_objVec;
<a name="l00125"></a>00125 <span class="comment">// the move</span>
<a name="l00126"></a>00126 Move move;
<a name="l00127"></a>00127 <span class="comment">// the objective vector and the fitness of the current solution</span>
<a name="l00128"></a>00128 <a class="code" href="classmoeoIBMOLS.html#d3433001dcc9a6e2a967aa5d64163935">ObjectiveVector</a> x_objVec;
<a name="l00129"></a>00129 <span class="keywordtype">double</span> x_fitness;
<a name="l00130"></a>00130 <span class="comment">// the index, the objective vector and the fitness of the worst solution in the population (-1 implies that the worst is the newly created one)</span>
<a name="l00131"></a>00131 <span class="keywordtype">int</span> worst_idx;
<a name="l00132"></a>00132 <a class="code" href="classmoeoIBMOLS.html#d3433001dcc9a6e2a967aa5d64163935">ObjectiveVector</a> worst_objVec;
<a name="l00133"></a>00133 <span class="keywordtype">double</span> worst_fitness;
<a name="l00134"></a>00134 <span class="comment">// the index current of the current solution to be explored</span>
<a name="l00135"></a>00135 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i=0;
<a name="l00136"></a>00136 <span class="comment">// initilization of the move for the first individual</span>
<a name="l00137"></a>00137 <a class="code" href="classmoeoIBMOLS.html#b4b4908b893edd52d6fa24085d2a89e5">moveInit</a>(move, _pop[i]);
<a name="l00138"></a>00138 <span class="keywordflow">while</span> (i&lt;_pop.size() &amp;&amp; <a class="code" href="classmoeoIBMOLS.html#c15985c0bb5d9ba835f35d99d7c42b14">continuator</a>(_pop))
<a name="l00139"></a>00139 {
<a name="l00140"></a>00140 <span class="comment">// x = one neigbour of pop[i]</span>
<a name="l00141"></a>00141 <span class="comment">// evaluate x in the objective space</span>
<a name="l00142"></a>00142 x_objVec = <a class="code" href="classmoeoIBMOLS.html#6c38636061bd03c4be809277e2dc257a">moveIncrEval</a>(move, _pop[i]);
<a name="l00143"></a>00143 <span class="comment">// update every fitness values to take x into account and compute the fitness of x</span>
<a name="l00144"></a>00144 x_fitness = <a class="code" href="classmoeoIBMOLS.html#f48840d7af306db440e74028ed736a95">fitnessAssignment</a>.updateByAdding(_pop, x_objVec);
<a name="l00145"></a>00145
<a name="l00149"></a>00149 <span class="comment">// qui sont les extremes ? (=&gt; min only !!!)</span>
<a name="l00150"></a>00150 ext_0_idx = -1;
<a name="l00151"></a>00151 ext_0_objVec = x_objVec;
<a name="l00152"></a>00152 ext_1_idx = -1;
<a name="l00153"></a>00153 ext_1_objVec = x_objVec;
<a name="l00154"></a>00154 <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> k=0; k&lt;_pop.size(); k++)
<a name="l00155"></a>00155 {
<a name="l00156"></a>00156 <span class="comment">// ext_0</span>
<a name="l00157"></a>00157 <span class="keywordflow">if</span> (_pop[k].objectiveVector()[0] &lt; ext_0_objVec[0])
<a name="l00158"></a>00158 {
<a name="l00159"></a>00159 ext_0_idx = k;
<a name="l00160"></a>00160 ext_0_objVec = _pop[k].objectiveVector();
<a name="l00161"></a>00161 }
<a name="l00162"></a>00162 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( (_pop[k].objectiveVector()[0] == ext_0_objVec[0]) &amp;&amp; (_pop[k].objectiveVector()[1] &lt; ext_0_objVec[1]) )
<a name="l00163"></a>00163 {
<a name="l00164"></a>00164 ext_0_idx = k;
<a name="l00165"></a>00165 ext_0_objVec = _pop[k].objectiveVector();
<a name="l00166"></a>00166 }
<a name="l00167"></a>00167 <span class="comment">// ext_1</span>
<a name="l00168"></a>00168 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (_pop[k].objectiveVector()[1] &lt; ext_1_objVec[1])
<a name="l00169"></a>00169 {
<a name="l00170"></a>00170 ext_1_idx = k;
<a name="l00171"></a>00171 ext_1_objVec = _pop[k].objectiveVector();
<a name="l00172"></a>00172 }
<a name="l00173"></a>00173 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( (_pop[k].objectiveVector()[1] == ext_1_objVec[1]) &amp;&amp; (_pop[k].objectiveVector()[0] &lt; ext_1_objVec[0]) )
<a name="l00174"></a>00174 {
<a name="l00175"></a>00175 ext_1_idx = k;
<a name="l00176"></a>00176 ext_1_objVec = _pop[k].objectiveVector();
<a name="l00177"></a>00177 }
<a name="l00178"></a>00178 }
<a name="l00179"></a>00179 <span class="comment">// worst init</span>
<a name="l00180"></a>00180 <span class="keywordflow">if</span> (ext_0_idx == -1)
<a name="l00181"></a>00181 {
<a name="l00182"></a>00182 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> ind = 0;
<a name="l00183"></a>00183 <span class="keywordflow">while</span> (ind == ext_1_idx)
<a name="l00184"></a>00184 {
<a name="l00185"></a>00185 ind++;
<a name="l00186"></a>00186 }
<a name="l00187"></a>00187 worst_idx = ind;
<a name="l00188"></a>00188 worst_objVec = _pop[ind].objectiveVector();
<a name="l00189"></a>00189 worst_fitness = _pop[ind].fitness();
<a name="l00190"></a>00190 }
<a name="l00191"></a>00191 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ext_1_idx == -1)
<a name="l00192"></a>00192 {
<a name="l00193"></a>00193 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> ind = 0;
<a name="l00194"></a>00194 <span class="keywordflow">while</span> (ind == ext_0_idx)
<a name="l00195"></a>00195 {
<a name="l00196"></a>00196 ind++;
<a name="l00197"></a>00197 }
<a name="l00198"></a>00198 worst_idx = ind;
<a name="l00199"></a>00199 worst_objVec = _pop[ind].objectiveVector();
<a name="l00200"></a>00200 worst_fitness = _pop[ind].fitness();
<a name="l00201"></a>00201 }
<a name="l00202"></a>00202 <span class="keywordflow">else</span>
<a name="l00203"></a>00203 {
<a name="l00204"></a>00204 worst_idx = -1;
<a name="l00205"></a>00205 worst_objVec = x_objVec;
<a name="l00206"></a>00206 worst_fitness = x_fitness;
<a name="l00207"></a>00207 }
<a name="l00211"></a>00211
<a name="l00212"></a>00212 <span class="comment">// who is the worst ?</span>
<a name="l00213"></a>00213 <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> j=0; j&lt;_pop.size(); j++)
<a name="l00214"></a>00214 {
<a name="l00215"></a>00215 <span class="keywordflow">if</span> ( (j!=ext_0_idx) &amp;&amp; (j!=ext_1_idx) )
<a name="l00216"></a>00216 {
<a name="l00217"></a>00217 <span class="keywordflow">if</span> (_pop[j].fitness() &lt; worst_fitness)
<a name="l00218"></a>00218 {
<a name="l00219"></a>00219 worst_idx = j;
<a name="l00220"></a>00220 worst_objVec = _pop[j].objectiveVector();
<a name="l00221"></a>00221 worst_fitness = _pop[j].fitness();
<a name="l00222"></a>00222 }
<a name="l00223"></a>00223 }
<a name="l00224"></a>00224 }
<a name="l00225"></a>00225 <span class="comment">// if the worst solution is the new one</span>
<a name="l00226"></a>00226 <span class="keywordflow">if</span> (worst_idx == -1)
<a name="l00227"></a>00227 {
<a name="l00228"></a>00228 <span class="comment">// if all its neighbours have been explored,</span>
<a name="l00229"></a>00229 <span class="comment">// let's explore the neighborhoud of the next individual</span>
<a name="l00230"></a>00230 <span class="keywordflow">if</span> (! <a class="code" href="classmoeoIBMOLS.html#8b8ebbd6eb6c82caa796160b4be2a86b">nextMove</a>(move, _pop[i]))
<a name="l00231"></a>00231 {
<a name="l00232"></a>00232 i++;
<a name="l00233"></a>00233 <span class="keywordflow">if</span> (i&lt;_pop.size())
<a name="l00234"></a>00234 {
<a name="l00235"></a>00235 <span class="comment">// initilization of the move for the next individual</span>
<a name="l00236"></a>00236 <a class="code" href="classmoeoIBMOLS.html#b4b4908b893edd52d6fa24085d2a89e5">moveInit</a>(move, _pop[i]);
<a name="l00237"></a>00237 }
<a name="l00238"></a>00238 }
<a name="l00239"></a>00239 }
<a name="l00240"></a>00240 <span class="comment">// if the worst solution is located before _pop[i]</span>
<a name="l00241"></a>00241 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (worst_idx &lt;= i)
<a name="l00242"></a>00242 {
<a name="l00243"></a>00243 <span class="comment">// the new solution takes place insteed of _pop[worst_idx]</span>
<a name="l00244"></a>00244 _pop[worst_idx] = _pop[i];
<a name="l00245"></a>00245 move(_pop[worst_idx]);
<a name="l00246"></a>00246 _pop[worst_idx].objectiveVector(x_objVec);
<a name="l00247"></a>00247 _pop[worst_idx].fitness(x_fitness);
<a name="l00248"></a>00248 <span class="comment">// let's explore the neighborhoud of the next individual</span>
<a name="l00249"></a>00249 i++;
<a name="l00250"></a>00250 <span class="keywordflow">if</span> (i&lt;_pop.size())
<a name="l00251"></a>00251 {
<a name="l00252"></a>00252 <span class="comment">// initilization of the move for the next individual</span>
<a name="l00253"></a>00253 <a class="code" href="classmoeoIBMOLS.html#b4b4908b893edd52d6fa24085d2a89e5">moveInit</a>(move, _pop[i]);
<a name="l00254"></a>00254 }
<a name="l00255"></a>00255 }
<a name="l00256"></a>00256 <span class="comment">// if the worst solution is located after _pop[i]</span>
<a name="l00257"></a>00257 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (worst_idx &gt; i)
<a name="l00258"></a>00258 {
<a name="l00259"></a>00259 <span class="comment">// the new solution takes place insteed of _pop[i+1] and _pop[worst_idx] is deleted</span>
<a name="l00260"></a>00260 _pop[worst_idx] = _pop[i+1];
<a name="l00261"></a>00261 _pop[i+1] = _pop[i];
<a name="l00262"></a>00262 move(_pop[i+1]);
<a name="l00263"></a>00263 _pop[i+1].objectiveVector(x_objVec);
<a name="l00264"></a>00264 _pop[i+1].fitness(x_fitness);
<a name="l00265"></a>00265 <span class="comment">// let's explore the neighborhoud of the individual _pop[i+2]</span>
<a name="l00266"></a>00266 i += 2;
<a name="l00267"></a>00267 <span class="keywordflow">if</span> (i&lt;_pop.size())
<a name="l00268"></a>00268 {
<a name="l00269"></a>00269 <span class="comment">// initilization of the move for the next individual</span>
<a name="l00270"></a>00270 <a class="code" href="classmoeoIBMOLS.html#b4b4908b893edd52d6fa24085d2a89e5">moveInit</a>(move, _pop[i]);
<a name="l00271"></a>00271 }
<a name="l00272"></a>00272 }
<a name="l00273"></a>00273 <span class="comment">// update fitness values</span>
<a name="l00274"></a>00274 <a class="code" href="classmoeoIBMOLS.html#f48840d7af306db440e74028ed736a95">fitnessAssignment</a>.updateByDeleting(_pop, worst_objVec);
<a name="l00275"></a>00275 }
<a name="l00276"></a>00276 }
<a name="l00277"></a>00277
<a name="l00278"></a>00278 };
<a name="l00279"></a>00279
<a name="l00280"></a>00280 <span class="preprocessor">#endif </span><span class="comment">/*MOEOIBMOLS_H_*/</span>
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Jul 2 16:05:01 2007 for ParadisEO-MOEO 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>