📄 easylocal_h-source.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"> </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> <a class="qindex" href="modules.html">Modules</a> <a class="qindex" href="namespaces.html">Namespace List</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="classes.html">Alphabetical List</a> <a class="qindex" href="annotated.html">Compound List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="namespacemembers.html">Namespace Members</a> <a class="qindex" href="functions.html">Compound Members</a> <a class="qindex" href="globals.html">File Members</a> <a class="qindex" href="pages.html">Related Pages</a> </center>
<hr><h1>EasyLocal.h</h1><a href="EasyLocal_h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001
00016 <font class="preprocessor">#ifndef __EASYLOCAL_H</font>
00017 <font class="preprocessor"></font><font class="preprocessor">#define __EASYLOCAL_H</font>
00018 <font class="preprocessor"></font>
00019 <font class="preprocessor">#include <iostream></font>
00020 <font class="preprocessor">#include <fstream></font>
00021 <font class="preprocessor">#include <vector></font>
00022 <font class="preprocessor">#include <string></font>
00023 <font class="preprocessor">#include <list></font>
00024 <font class="preprocessor">#include <cmath></font>
00025 <font class="preprocessor">#include <cassert></font>
00026 <font class="preprocessor">#include <ctime></font>
00027 <font class="preprocessor">#include <cstdio></font>
00028
00031 <font class="keyword">extern</font> <font class="stringliteral">"C++"</font> <font class="keywordtype">int</font> <a class="code" href="EasyLocal_h.html#a4">yyparse</a>();
00032
<a name="l00034"></a><a class="code" href="EasyLocal_h.html#a2">00034</a> <font class="keyword">extern</font> FILE *yyin;
<a name="l00036"></a><a class="code" href="EasyLocal_h.html#a3">00036</a> <font class="keyword">extern</font> FILE *yyout;
00037
00039 <font class="keyword">namespace </font>easylocal {
00046 <font class="keywordtype">int</font> <a class="code" href="namespace_easylocal.html#a3">Random</a>(<font class="keywordtype">int</font> a, <font class="keywordtype">int</font> b);
00047
00055 <font class="preprocessor">#ifndef HARD_WEIGHT</font>
<a name="l00056"></a><a class="code" href="EasyLocal_h.html#a0">00056</a> <font class="preprocessor"></font><font class="preprocessor">#define HARD_WEIGHT 1000</font>
00057 <font class="preprocessor"></font><font class="preprocessor">#endif</font>
00058 <font class="preprocessor"></font>
<a name="l00061"></a><a class="code" href="namespace_easylocal.html#a1">00061</a> <font class="keyword">const</font> <font class="keywordtype">int</font> RUNNER_NOT_FOUND = 1, RUNNER_TYPE_MISMATCH = 2;
00062
00070 <font class="preprocessor">#ifndef fvalue</font>
<a name="l00071"></a><a class="code" href="EasyLocal_h.html#a1">00071</a> <font class="preprocessor"></font><font class="preprocessor">#define fvalue double</font>
00072 <font class="preprocessor"></font><font class="preprocessor">#endif</font>
00073 <font class="preprocessor"></font>
<a name="l00077"></a><a class="code" href="namespace_easylocal.html#a2">00077</a> <font class="keyword">const</font> <font class="keywordtype">double</font> EPS = 1.0E-6;
00078
00086 <font class="keyword">inline</font> <font class="keywordtype">double</font> <a class="code" href="namespace_easylocal.html#a4">distance</a>(fvalue x, fvalue y);
00087
00107 <font class="comment">// forward class tag declaration</font>
00108 template <class Input, class State> <font class="keyword">class </font>Runner;
00109
00116 template <class Input, class State>
<a name="l00117"></a><a class="code" href="class_easylocal__StateManager.html">00117</a> <font class="keyword">class </font>StateManager
00118 {
00119 <font class="keyword">public</font>:
00123 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_easylocal__StateManager.html#a0">RandomState</a>(State &st) = 0;
<a name="l00128"></a><a class="code" href="class_easylocal__StateManager.html#a1">00128</a> <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_easylocal__StateManager.html#a1">UpdateRedundantStateData</a>(State &st)<font class="keyword"> </font>
00129 <font class="keyword"> </font>{}
00130 <font class="keyword">virtual</font> fvalue <a class="code" href="class_easylocal__StateManager.html#a2">SampleState</a>(State &st, <font class="keywordtype">int</font> samples);
00131 <font class="keyword">virtual</font> fvalue <a class="code" href="class_easylocal__StateManager.html#a3">ImprovedSampleState</a>(State &st, <font class="keywordtype">int</font> samples, Runner<Input,State>* r);
00132
00133 <font class="comment">// State Evaluation functions</font>
00134 <font class="keyword">virtual</font> fvalue <a class="code" href="class_easylocal__StateManager.html#a4">CostFunction</a>(<font class="keyword">const</font> State& st) <font class="keyword">const</font>;
00135 <font class="keyword">virtual</font> fvalue <a class="code" href="class_easylocal__StateManager.html#a5">Objective</a>(<font class="keyword">const</font> State& st) <font class="keyword">const</font>;
00136 <font class="keyword">virtual</font> fvalue <a class="code" href="class_easylocal__StateManager.html#a6">Violations</a>(<font class="keyword">const</font> State& st) <font class="keyword">const</font>;
00137
00138 <font class="comment">// debug functions</font>
00139 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_easylocal__StateManager.html#a7">PrintState</a>(<font class="keyword">const</font> State& st) <font class="keyword">const</font>;
00140 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_easylocal__StateManager.html#a8">Check</a>() <font class="keyword">const</font>;
00141
00142 <font class="keywordtype">void</font> <a class="code" href="class_easylocal__StateManager.html#a9">SetInput</a>(Input* in);
00143 Input* <a class="code" href="class_easylocal__StateManager.html#a10">GetInput</a>();
00144 <font class="keyword">protected</font>:
00145 <a class="code" href="class_easylocal__StateManager.html#b0">StateManager</a>(Input* in = NULL);
<a name="l00146"></a><a class="code" href="class_easylocal__StateManager.html#n0">00146</a> Input* p_in;
00147 };
00148
00158 template <class Input, class Output, class State>
<a name="l00159"></a><a class="code" href="class_easylocal__OutputManager.html">00159</a> <font class="keyword">class </font>OutputManager
00160 {
00161 <font class="keyword">public</font>:
00165 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_easylocal__OutputManager.html#a0">OutputState</a>(<font class="keyword">const</font> State &st, Output& out) <font class="keyword">const</font> = 0;
00169 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_easylocal__OutputManager.html#a1">InputState</a>(State &st, <font class="keyword">const</font> Output& out) <font class="keyword">const</font> = 0;
00170 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_easylocal__OutputManager.html#a2">ReadState</a>(State &st, std::istream &is) <font class="keyword">const</font>;
00171 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_easylocal__OutputManager.html#a3">WriteState</a>(<font class="keyword">const</font> State &st, std::ostream &os) <font class="keyword">const</font>;
00172
00173 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_easylocal__OutputManager.html#a4">Check</a>() <font class="keyword">const</font>;
00174 <font class="keywordtype">void</font> <a class="code" href="class_easylocal__OutputManager.html#a5">SetInput</a>(Input* in);
00175 Input* <a class="code" href="class_easylocal__OutputManager.html#a6">GetInput</a>();
00176 <font class="keyword">protected</font>:
<a name="l00181"></a><a class="code" href="class_easylocal__OutputManager.html#b0">00181</a> <a class="code" href="class_easylocal__OutputManager.html#b0">OutputManager</a>(StateManager<Input,State>* sm, Input* in = NULL)
00182 : p_sm(sm), p_in(in) {}
<a name="l00183"></a><a class="code" href="class_easylocal__OutputManager.html#n0">00183</a> StateManager<Input,State>* p_sm;
<a name="l00185"></a><a class="code" href="class_easylocal__OutputManager.html#n1">00185</a> Input* p_in;
00186 };
00187
00188
00197 template <class Move>
<a name="l00198"></a><a class="code" href="class_easylocal__ProhibitionManager.html">00198</a> <font class="keyword">class </font>ProhibitionManager
00199 {
00200 <font class="keyword">public</font>:
00207 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_easylocal__ProhibitionManager.html#a0">InsertMove</a>(<font class="keyword">const</font> Move& mv, fvalue mv_cost, fvalue curr, fvalue best) = 0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -