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

📄 easylocal_cpp-source.html

📁 一个tabu search算法框架
💻 HTML
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  <title>EasyLocal++ Documentation</title>
  <link href="local.css" rel="stylesheet" type="text/css">
</head>

<body lang="en">

<table width="100%" border="0">
  <tbody>
    <tr>
      <td colspan="2"><h1 class="nojustify">EasyLocal++ Documentation</h1>
        <hr>
      </td>
    </tr>
    <tr>
      <td width="30" align="center">&nbsp;</td>
      <td>
<!-- Generated by Doxygen 1.2.5 on Sat Jun 9 18:59:15 2001 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="modules.html">Modules</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="namespacemembers.html">Namespace Members</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; <a class="qindex" href="pages.html">Related Pages</a> &nbsp; </center>
<hr><h1>EasyLocal.cpp</h1><a href="EasyLocal_cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 
00020 <font class="preprocessor">#include &lt;ctime&gt;</font>
00021 <font class="preprocessor">#include &lt;cstdlib&gt;</font>
00022 <font class="preprocessor">#include &lt;iostream&gt;</font>
00023 <font class="preprocessor">#include &lt;FlexLexer.h&gt;</font>
00024 
00025 <font class="preprocessor">#include "<a class="code" href="EasyLocal_h.html">EasyLocal.h</a>"</font>
00026 
<a name="l00027"></a><a class="code" href="namespace_easylocal.html">00027</a> <font class="keyword">namespace </font>easylocal {
00028   
<a name="l00037"></a><a class="code" href="namespace_easylocal.html#a3">00037</a>   <font class="keywordtype">int</font> <a class="code" href="namespace_easylocal.html#a3">Random</a>(<font class="keywordtype">int</font> i, <font class="keywordtype">int</font> j)<font class="keyword"></font>
00038 <font class="keyword">  </font>{ 
00039     <font class="keyword">static</font> <font class="keywordtype">bool</font> init = <font class="keyword">false</font>;
00040     <font class="keywordflow">if</font> (init == <font class="keyword">false</font>)  <font class="comment">// if the random source has not been </font>
00041       {                 <font class="comment">// initialized yet</font>
00042         srand(time(0)); <font class="comment">// let's initialize it</font>
00043         init = <font class="keyword">true</font>;
00044       }
00045     <font class="keywordflow">return</font> (rand() % (j - i + 1)) + i; <font class="comment">// return the randomly picked value</font>
00046   }
00047 
<a name="l00056"></a><a class="code" href="namespace_easylocal.html#a4">00056</a>   <font class="keyword">inline</font> <font class="keywordtype">double</font> <a class="code" href="namespace_easylocal.html#a4">distance</a>(fvalue x, fvalue y)<font class="keyword"></font>
00057 <font class="keyword">  </font>{
00058     <font class="keywordflow">return</font> x &gt; y ? x-y : y-x;
00059   }
00060 
<a name="l00066"></a><a class="code" href="class_easylocal__AbstractTester.html#a3">00066</a>   <font class="keywordtype">void</font> AbstractTester::SetSolverTrials(<font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> t)<font class="keyword"></font>
00067 <font class="keyword">  </font>{ trials = t; }
00068 
<a name="l00075"></a><a class="code" href="class_easylocal__AbstractTester.html#a4">00075</a>   <font class="keywordtype">void</font> AbstractTester::SetLogFile(std::string s)<font class="keyword"></font>
00076 <font class="keyword">  </font>{ logstream = <font class="keyword">new</font> std::ofstream(s.c_str()); }
00077 
<a name="l00085"></a><a class="code" href="class_easylocal__AbstractTester.html#a5">00085</a>   <font class="keywordtype">void</font> AbstractTester::SetOutputPrefix(std::string s)<font class="keyword"></font>
00086 <font class="keyword">  </font>{ output_file_prefix = s; }
00087         
<a name="l00094"></a><a class="code" href="class_easylocal__AbstractTester.html#a6">00094</a>   <font class="keywordtype">void</font> AbstractTester::SetPlotPrefix(std::string s)<font class="keyword"></font>
00095 <font class="keyword">  </font>{ plot_file_prefix = s; } 
00096         
00097   <font class="comment">//</font>
00098   <font class="comment">// Actual Runner Parameters Classes related methods</font>
00099   <font class="comment">//</font>
00100   
<a name="l00108"></a><a class="code" href="class_easylocal__ParameterData.html#a0">00108</a>   ParameterData::ParameterData(std::string n, std::string t, ValueType v)
00109     : name(n), type(t), value(v)
00110   {}
00111   
<a name="l00117"></a><a class="code" href="class_easylocal__ParameterData.html#a1">00117</a>   std::string ParameterData::Name()<font class="keyword"> const</font>
00118 <font class="keyword">  </font>{ <font class="keywordflow">return</font> name; }
00119 
<a name="l00125"></a><a class="code" href="class_easylocal__ParameterData.html#a2">00125</a>   std::string ParameterData::Type()<font class="keyword"> const</font>
00126 <font class="keyword">  </font>{ <font class="keywordflow">return</font> type; }
00127         
<a name="l00133"></a><a class="code" href="class_easylocal__ParameterData.html#a3">00133</a>   ValueType ParameterData::Value()<font class="keyword"> const</font>
00134 <font class="keyword">  </font>{ <font class="keywordflow">return</font> value; }
00135         
00136   
<a name="l00144"></a><a class="code" href="class_easylocal__ParameterBox.html#a0">00144</a>   <font class="keywordtype">void</font> ParameterBox::Put(std::string name, std::string type, ValueType value)<font class="keyword"> </font>
00145 <font class="keyword">  </font>{ parameters.push_back(ParameterData(name,type,value)); }
00146         
<a name="l00153"></a><a class="code" href="class_easylocal__ParameterBox.html#a1">00153</a>   <font class="keywordtype">void</font> ParameterBox::Put(std::string name, <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> value)<font class="keyword"></font>
00154 <font class="keyword">  </font>{ 
00155     ValueType tmp;
00156     tmp.natural = value;
00157     parameters.push_back(ParameterData(name,<font class="stringliteral">"ulong"</font>,tmp)); 
00158   }
00159 
<a name="l00166"></a><a class="code" href="class_easylocal__ParameterBox.html#a2">00166</a>   <font class="keywordtype">void</font> ParameterBox::Put(std::string name, <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> value)<font class="keyword"></font>
00167 <font class="keyword">  </font>{ 
00168     ValueType tmp;
00169     tmp.short_natural = value;
00170     parameters.push_back(ParameterData(name,<font class="stringliteral">"uint"</font>,tmp)); 
00171   }
00172         
<a name="l00179"></a><a class="code" href="class_easylocal__ParameterBox.html#a3">00179</a>   <font class="keywordtype">void</font> ParameterBox::Put(std::string name, <font class="keywordtype">double</font> value)<font class="keyword">  </font>
00180 <font class="keyword">  </font>{ 
00181     ValueType tmp;
00182     tmp.real = value;
00183     parameters.push_back(ParameterData(name,<font class="stringliteral">"double"</font>,tmp)); 
00184   }
00185         
<a name="l00194"></a><a class="code" href="class_easylocal__ParameterBox.html#a4">00194</a>   <font class="keywordtype">void</font> ParameterBox::Get(std::string name, std::string type, ValueType&amp; value)<font class="keyword"> const</font>
00195 <font class="keyword">  </font>{
00196     <font class="keywordtype">bool</font> found = <font class="keyword">false</font>;
00197     <font class="keywordflow">for</font> (std::list&lt;ParameterData&gt;::const_iterator i = parameters.begin(); i != parameters.end(); i++)
00198       <font class="keywordflow">if</font> (i-&gt;Name() == name) {
00199         found = <font class="keyword">true</font>;
00200         assert(type == i-&gt;Type());
00201         value = i-&gt;Value();
00202         <font class="keywordflow">break</font>;
00203       }
00204     assert(found);
00205   }
00206         
<a name="l00213"></a><a class="code" href="class_easylocal__ParameterBox.html#a5">00213</a>   <font class="keywordtype">void</font> ParameterBox::Get(std::string name, <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font>&amp; value)<font class="keyword"> const</font>
00214 <font class="keyword">  </font>{
00215     <font class="keywordtype">bool</font> found = <font class="keyword">false</font>;
00216     <font class="keywordflow">for</font> (std::list&lt;ParameterData&gt;::const_iterator i = parameters.begin(); i != parameters.end(); i++)
00217       <font class="keywordflow">if</font> (i-&gt;Name() == name) {
00218         found = <font class="keyword">true</font>;
00219         assert(<font class="stringliteral">"ulong"</font> == i-&gt;Type());
00220         value = i-&gt;Value().natural;
00221         <font class="keywordflow">break</font>;
00222       }
00223     assert(found);
00224   }
00225         
<a name="l00232"></a><a class="code" href="class_easylocal__ParameterBox.html#a6">00232</a>   <font class="keywordtype">void</font> ParameterBox::Get(std::string name, <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font>&amp; value)<font class="keyword"> const</font>
00233 <font class="keyword">  </font>{
00234     <font class="keywordtype">bool</font> found = <font class="keyword">false</font>;
00235     <font class="keywordflow">for</font> (std::list&lt;ParameterData&gt;::const_iterator i = parameters.begin(); i != parameters.end(); i++)
00236       <font class="keywordflow">if</font> (i-&gt;Name() == name) {
00237         found = <font class="keyword">true</font>;
00238         assert(<font class="stringliteral">"uint"</font> == i-&gt;Type());
00239         value = i-&gt;Value().short_natural;
00240         <font class="keywordflow">break</font>;
00241       }
00242     assert(found);
00243   }
00244         
<a name="l00251"></a><a class="code" href="class_easylocal__ParameterBox.html#a7">00251</a>   <font class="keywordtype">void</font> ParameterBox::Get(std::string name, <font class="keywordtype">double</font>&amp; value)<font class="keyword"> const</font>
00252 <font class="keyword">  </font>{
00253     <font class="keywordtype">bool</font> found = <font class="keyword">false</font>;
00254     <font class="keywordflow">for</font> (std::list&lt;ParameterData&gt;::const_iterator i = parameters.begin(); i != parameters.end(); i++)
00255       <font class="keywordflow">if</font> (i-&gt;Name() == name) {
00256         found = <font class="keyword">true</font>;
00257         assert(<font class="stringliteral">"double"</font> == i-&gt;Type());
00258         value = i-&gt;Value().real;
00259         <font class="keywordflow">break</font>;
00260       }
00261     assert(found);
00262   }
00263         
<a name="l00267"></a><a class="code" href="class_easylocal__ParameterBox.html#a8">00267</a>   <font class="keywordtype">void</font> ParameterBox::Clear()<font class="keyword"></font>
00268 <font class="keyword">  </font>{ parameters.clear(); }               
00269 }; <font class="comment">// end of namespace easylocal</font>
</div></pre>      </td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td><hr>
        <span class="mark">Go to:</span> the <a href="index.html">Main Page</a> of the documentation.
      </td>
    </tr>
  </tbody>
</table>
</body>
</html>

⌨️ 快捷键说明

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