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

📄 easylocal_h-source.html

📁 一个tabu search算法框架
💻 HTML
📖 第 1 页 / 共 5 页
字号:
00622     <font class="comment">// state data</font>
<a name="l00623"></a><a class="code" href="class_easylocal__MoveRunner.html#n3">00623</a>     State current_state; 
<a name="l00624"></a><a class="code" href="class_easylocal__MoveRunner.html#n4">00624</a>     fvalue current_state_cost; 
<a name="l00625"></a><a class="code" href="class_easylocal__MoveRunner.html#n5">00625</a>     <font class="keywordtype">bool</font> current_state_set; 
<a name="l00627"></a><a class="code" href="class_easylocal__MoveRunner.html#n6">00627</a>     Move current_move;      
<a name="l00628"></a><a class="code" href="class_easylocal__MoveRunner.html#n7">00628</a>     fvalue current_move_cost; 
<a name="l00630"></a><a class="code" href="class_easylocal__MoveRunner.html#n8">00630</a>     State best_state;         
<a name="l00631"></a><a class="code" href="class_easylocal__MoveRunner.html#n9">00631</a>     fvalue best_state_cost;   
<a name="l00633"></a><a class="code" href="class_easylocal__MoveRunner.html#n10">00633</a>     <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> iteration_of_best; 
<a name="l00635"></a><a class="code" href="class_easylocal__MoveRunner.html#n11">00635</a>     <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> max_idle_iteration; 
<a name="l00639"></a><a class="code" href="class_easylocal__MoveRunner.html#n12">00639</a>     <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> number_of_iterations; 
<a name="l00641"></a><a class="code" href="class_easylocal__MoveRunner.html#n13">00641</a>     <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> max_iteration;  
<a name="l00644"></a><a class="code" href="class_easylocal__MoveRunner.html#n14">00644</a>     std::ostream* pos; 
00645   };
00646 
00654   template &lt;class Input, class State, class Move&gt;
<a name="l00655"></a><a class="code" href="class_easylocal__SteepestDescent.html">00655</a>   <font class="keyword">class </font>SteepestDescent : <font class="keyword">public</font> MoveRunner&lt;Input,State,Move&gt;
00656   {
00657   <font class="keyword">public</font>:
00658     <font class="keywordtype">void</font> <a class="code" href="class_easylocal__SteepestDescent.html#a0">Print</a>(std::ostream&amp; os = std::cout) <font class="keyword">const</font>;
<a name="l00659"></a><a class="code" href="class_easylocal__SteepestDescent.html#a1">00659</a>     <font class="keywordtype">void</font> <a class="code" href="class_easylocal__SteepestDescent.html#a1">ReadParameters</a>()<font class="keyword"> </font>{}
00660   <font class="keyword">protected</font>: 
00661     <a class="code" href="class_easylocal__SteepestDescent.html#b0">SteepestDescent</a>(StateManager&lt;Input,State&gt;* s, 
00662                     NeighborhoodExplorer&lt;Input,State,Move&gt;* ne, 
00663                     Input* in = NULL);
00664     <font class="keywordtype">void</font> <a class="code" href="class_easylocal__SteepestDescent.html#b1">InitializeRun</a>();
00665     <font class="keywordtype">void</font> <a class="code" href="class_easylocal__SteepestDescent.html#b2">TerminateRun</a>();
00666     <font class="keywordtype">bool</font> <a class="code" href="class_easylocal__SteepestDescent.html#b3">StopCriterion</a>();
00667     <font class="keywordtype">bool</font> <a class="code" href="class_easylocal__SteepestDescent.html#b4">AcceptableMove</a>();
00668     <font class="keywordtype">void</font> <a class="code" href="class_easylocal__SteepestDescent.html#b5">SelectMove</a>();
00669   };
00670 
00676   template &lt;class Input, class State, class Move&gt;
<a name="l00677"></a><a class="code" href="class_easylocal__HillClimbing.html">00677</a>   <font class="keyword">class </font>HillClimbing : <font class="keyword">public</font> MoveRunner&lt;Input,State,Move&gt;
00678   {<font class="keyword">public</font>:
00679     <font class="keywordtype">void</font> <a class="code" href="class_easylocal__HillClimbing.html#a0">Print</a>(std::ostream&amp; os = std::cout) <font class="keyword">const</font>;
00680     <font class="keywordtype">void</font> <a class="code" href="class_easylocal__HillClimbing.html#a1">ReadParameters</a>();
00681   <font class="keyword">protected</font>: 
00682     <a class="code" href="class_easylocal__HillClimbing.html#b0">HillClimbing</a>(StateManager&lt;Input,State&gt;* s, 
00683                  NeighborhoodExplorer&lt;Input,State,Move&gt;* ne, Input* in = NULL);
00684     <font class="keywordtype">void</font> <a class="code" href="class_easylocal__HillClimbing.html#b1">InitializeRun</a>();
00685     <font class="keywordtype">void</font> <a class="code" href="class_easylocal__HillClimbing.html#b2">TerminateRun</a>();
00686     <font class="keywordtype">bool</font> <a class="code" href="class_easylocal__HillClimbing.html#b3">StopCriterion</a>();
00687     <font class="keywordtype">bool</font> <a class="code" href="class_easylocal__HillClimbing.html#b4">AcceptableMove</a>();
00688     <font class="keywordtype">void</font> <a class="code" href="class_easylocal__HillClimbing.html#b5">StoreMove</a>();
00689     <font class="keywordtype">void</font> <a class="code" href="class_easylocal__HillClimbing.html#b6">SelectMove</a>();
00690   };
00691   
00706   template &lt;class Input, class State, class Move&gt;
<a name="l00707"></a><a class="code" href="class_easylocal__TabuSearch.html">00707</a>   <font class="keyword">class </font>TabuSearch : <font class="keyword">public</font> MoveRunner&lt;Input,State, Move&gt;
00708   {<font class="keyword">public</font>:
00709     <font class="keywordtype">void</font> <a class="code" href="class_easylocal__TabuSearch.html#a0">ReadParameters</a>();
00710     <font class="keywordtype">void</font> <a class="code" href="class_easylocal__TabuSearch.html#a1">Print</a>(std::ostream&amp; os = std::cout) <font class="keyword">const</font>;
00711     <font class="keywordtype">void</font> <a class="code" href="class_easylocal__TabuSearch.html#a2">SetInput</a>(Input* in);
00712     <font class="keywordtype">void</font> <a class="code" href="class_easylocal__TabuSearch.html#a3">SetParameters</a>(<font class="keyword">const</font> ParameterBox&amp; pb);
00713   <font class="keyword">protected</font>:
00714     <a class="code" href="class_easylocal__TabuSearch.html#b0">TabuSearch</a>(StateManager&lt;Input,State&gt;* s, 
00715                NeighborhoodExplorer&lt;Input,State,Move&gt;* ne,
00716                TabuListManager&lt;Move&gt;* tlm, Input* in = NULL);
00717     <font class="keywordtype">void</font> <a class="code" href="class_easylocal__TabuSearch.html#b1">SetTabuListManager</a>(TabuListManager&lt;Move&gt;* tlm,
00718                             <font class="keywordtype">int</font> min_tabu = 0, <font class="keywordtype">int</font> max_tabu = 0);
00719     <font class="keywordtype">void</font> <a class="code" href="class_easylocal__TabuSearch.html#b2">InitializeRun</a>();
00720     <font class="keywordtype">bool</font> <a class="code" href="class_easylocal__TabuSearch.html#b3">StopCriterion</a>();
00721     <font class="keywordtype">void</font> <a class="code" href="class_easylocal__TabuSearch.html#b4">SelectMove</a>();
00722     <font class="keywordtype">bool</font> <a class="code" href="class_easylocal__TabuSearch.html#b5">AcceptableMove</a>();
00723     <font class="keywordtype">void</font> <a class="code" href="class_easylocal__TabuSearch.html#b6">StoreMove</a>();
<a name="l00724"></a><a class="code" href="class_easylocal__TabuSearch.html#n0">00724</a>     TabuListManager&lt;Move&gt;* p_pm; 
00725   };
00726 
00738   template &lt;class Input, class State, class Move&gt;
<a name="l00739"></a><a class="code" href="class_easylocal__SimulatedAnnealing.html">00739</a>   <font class="keyword">class </font>SimulatedAnnealing : <font class="keyword">public</font> MoveRunner&lt;Input,State,Move&gt;
00740   {
00741   <font class="keyword">public</font>:
00742     <font class="keywordtype">void</font> <a class="code" href="class_easylocal__SimulatedAnnealing.html#a0">ReadParameters</a>();
00743     <font class="keywordtype">void</font> <a class="code" href="class_easylocal__SimulatedAnnealing.html#a1">SetParameters</a>(<font class="keyword">const</font> ParameterBox&amp; pb);
00744     <font class="keywordtype">void</font> <a class="code" href="class_easylocal__SimulatedAnnealing.html#a2">Print</a>(std::ostream&amp; os = std::cout) <font class="keyword">const</font>;
00745   <font class="keyword">protected</font>: 
00746     <a class="code" href="class_easylocal__SimulatedAnnealing.html#b0">SimulatedAnnealing</a>(StateManager&lt;Input,State&gt;* s, 
00747                        NeighborhoodExplorer&lt;Input,State,Move&gt;* ne, Input* in = NULL);
00748     <font class="keywordtype">void</font> <a class="code" href="class_easylocal__SimulatedAnnealing.html#b1">InitializeRun</a>();
00749     <font class="keywordtype">void</font> <a class="code" href="class_easylocal__SimulatedAnnealing.html#b2">TerminateRun</a>();
00750     <font class="keywordtype">bool</font> <a class="code" href="class_easylocal__SimulatedAnnealing.html#b3">StopCriterion</a>();
00751     <font class="keywordtype">void</font> <a class="code" href="class_easylocal__SimulatedAnnealing.html#b4">UpdateIterationCounter</a>();
00752     <font class="keywordtype">void</font> <a class="code" href="class_easylocal__SimulatedAnnealing.html#b5">SelectMove</a>();
00753     <font class="keywordtype">bool</font> <a class="code" href="class_easylocal__SimulatedAnnealing.html#b6">AcceptableMove</a>();
00754   <font class="keyword">protected</font>:
<a name="l00755"></a><a class="code" href="class_easylocal__SimulatedAnnealing.html#n0">00755</a>     <font class="keywordtype">double</font> temperature; 
<a name="l00756"></a><a class="code" href="class_easylocal__SimulatedAnnealing.html#n1">00756</a>     <font class="keywordtype">double</font> start_temperature; 
<a name="l00757"></a><a class="code" href="class_easylocal__SimulatedAnnealing.html#n2">00757</a>     <font class="keywordtype">double</font> min_temperature;   
<a name="l00759"></a><a class="code" href="class_easylocal__SimulatedAnnealing.html#n3">00759</a>     <font class="keywordtype">double</font> cooling_rate;  
<a name="l00762"></a><a class="code" href="class_easylocal__SimulatedAnnealing.html#n4">00762</a>     <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> neighbor_sample; 
00764   };
00765         
<a name="l00781"></a><a class="code" href="class_easylocal__AbstractSolver.html">00781</a>   <font class="keyword">class </font>AbstractSolver
00782   {
00783   <font class="keyword">public</font>:
<a name="l00785"></a><a class="code" href="class_easylocal__AbstractSolver.html#a0">00785</a>     <font class="keyword">virtual</font> <a class="code" href="class_easylocal__AbstractSolver.html#a0">~AbstractSolver</a>()<font class="keyword"> </font>{}
00788     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_easylocal__AbstractSolver.html#a1">Solve</a>() = 0;
00791     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_easylocal__AbstractSolver.html#a2">ReSolve</a>() = 0;
00795     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_easylocal__AbstractSolver.html#a3">MultiStartSolve</a>(<font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> n) = 0;
00796   };
00797   
00803   template &lt;class Input, class Output&gt;
<a name="l00804"></a><a class="code" href="class_easylocal__Solver.html">00804</a>   <font class="keyword">class </font>Solver : <font class="keyword">public</font> AbstractSolver
00805   {
00806   <font class="keyword">public</font>:
00807     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_easylocal__Solver.html#a0">Solve</a>() = 0;
00808     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_easylocal__Solver.html#a1">SetInput</a>(Input* in);
00809     Input* <a class="code" href="class_easylocal__Solver.html#a2">GetInput</a>();
00810     Output* <a class="code" href="class_easylocal__Solver.html#a3">GetOutput</a>();
00811     <font class="keywordtype">void</font> <a class="code" href="class_easylocal__Solver.html#a4">SetOutput</a>(Output* out);
00812   <font class="keyword">protected</font>:
00813     <a class="code" href="class_easylocal__Solver.html#b0">Solver</a>(Input* in = NULL, Output* out = NULL);
00816     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_easylocal__Solver.html#b1">DeliverOutput</a>() = 0;

⌨️ 快捷键说明

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