📄 easylocal_h-source.html
字号:
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 <class Input, class State, class Move>
<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<Input,State,Move>
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& 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<Input,State>* s,
00662 NeighborhoodExplorer<Input,State,Move>* 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 <class Input, class State, class Move>
<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<Input,State,Move>
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& 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<Input,State>* s,
00683 NeighborhoodExplorer<Input,State,Move>* 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 <class Input, class State, class Move>
<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<Input,State, Move>
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& 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& pb);
00713 <font class="keyword">protected</font>:
00714 <a class="code" href="class_easylocal__TabuSearch.html#b0">TabuSearch</a>(StateManager<Input,State>* s,
00715 NeighborhoodExplorer<Input,State,Move>* ne,
00716 TabuListManager<Move>* tlm, Input* in = NULL);
00717 <font class="keywordtype">void</font> <a class="code" href="class_easylocal__TabuSearch.html#b1">SetTabuListManager</a>(TabuListManager<Move>* 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<Move>* p_pm;
00725 };
00726
00738 template <class Input, class State, class Move>
<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<Input,State,Move>
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& pb);
00744 <font class="keywordtype">void</font> <a class="code" href="class_easylocal__SimulatedAnnealing.html#a2">Print</a>(std::ostream& 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<Input,State>* s,
00747 NeighborhoodExplorer<Input,State,Move>* 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 <class Input, class Output>
<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 + -