<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Fast SAT Solver: AbstractSatSolver Class Reference</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.5.4 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class List</span></a></li>
<li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class Members</span></a></li>
</ul>
</div>
<div class="nav">
<a class="el" href="namespaceFastSatSolver.html">FastSatSolver</a>::<a class="el" href="classFastSatSolver_1_1AbstractSatSolver.html">AbstractSatSolver</a></div>
<h1>AbstractSatSolver Class Reference<br>
<small>
[<a class="el" href="group__SatSolver.html">SAT Solver</a>]</small>
</h1><!-- doxytag: class="FastSatSolver::AbstractSatSolver" --><!-- doxytag: inherits="FastSatSolver::AbstractProcessWatched" --><code>#include <<a class="el" href="SatSolver_8h-source.html">SatSolver.h</a>></code>
<p>
<div class="dynheader">
Inheritance diagram for AbstractSatSolver:</div>
<div class="dynsection">
<p><center><img src="classFastSatSolver_1_1AbstractSatSolver__inherit__graph.png" border="0" usemap="#AbstractSatSolver__inherit__map" alt="Inheritance graph"></center>
<map name="AbstractSatSolver__inherit__map">
<area shape="rect" href="classFastSatSolver_1_1BlindSatSolver.html" title="Solver using brute force method to solve SAT problem." alt="" coords="76,379,196,405"><area shape="rect" href="classFastSatSolver_1_1GaSatSolver.html" title="Solver using GAlib library to solve SAT problem." alt="" coords="220,379,324,405"><area shape="rect" href="classFastSatSolver_1_1AbstractProcessWatched.html" title="Multi-step process with time-watch extension." alt="" coords="109,229,299,256"><area shape="rect" href="classFastSatSolver_1_1AbstractProcess.html" title="Base class of simple multi-step process." alt="" coords="69,155,200,181"><area shape="rect" href="classFastSatSolver_1_1AbstractSubject.html" title="Simple subject's base class." alt="" coords="5,80,136,107"><area shape="rect" href="classFastSatSolver_1_1ISubject.html" title="Simple observer's subject base class." alt="" coords="33,5,108,32"><area shape="rect" href="classFastSatSolver_1_1IProcess.html" title="Continous process interface." alt="" coords="160,80,237,107"><area shape="rect" href="classFastSatSolver_1_1IStopWatch.html" title="Interface of time-watchable activity." alt="" coords="224,155,323,181"></map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>
<div class="dynheader">
Collaboration diagram for AbstractSatSolver:</div>
<div class="dynsection">
<p><center><img src="classFastSatSolver_1_1AbstractSatSolver__coll__graph.png" border="0" usemap="#AbstractSatSolver__coll__map" alt="Collaboration graph"></center>
<map name="AbstractSatSolver__coll__map">
<area shape="rect" href="classFastSatSolver_1_1AbstractProcessWatched.html" title="Multi-step process with time-watch extension." alt="" coords="263,277,452,304"><area shape="rect" href="classFastSatSolver_1_1AbstractProcess.html" title="Base class of simple multi-step process." alt="" coords="153,187,284,213"><area shape="rect" href="classFastSatSolver_1_1AbstractSubject.html" title="Simple subject's base class." alt="" coords="25,96,156,123"><area shape="rect" href="classFastSatSolver_1_1ISubject.html" title="Simple observer's subject base class." alt="" coords="5,5,80,32"><area shape="rect" href="structFastSatSolver_1_1AbstractSubject_1_1Private.html" title="Private" alt="" coords="104,5,173,32"><area shape="rect" href="classFastSatSolver_1_1IProcess.html" title="Continous process interface." alt="" coords="180,96,257,123"><area shape="rect" href="structFastSatSolver_1_1AbstractProcess_1_1Private.html" title="Private" alt="" coords="281,96,351,123"><area shape="rect" href="classFastSatSolver_1_1IStopWatch.html" title="Interface of time-watchable activity." alt="" coords="308,187,407,213"><area shape="rect" href="structFastSatSolver_1_1AbstractProcessWatched_1_1Private.html" title="Private" alt="" coords="431,187,500,213"></map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>
<p>
<a href="classFastSatSolver_1_1AbstractSatSolver-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
SAT Solver base class.
<p>
It defines common interface (and partially behavior) for both solver implementations - BlindSolver and GaSolver.
<p>Definition at line <a class="el" href="SatSolver_8h-source.html#l00328">328</a> of file <a class="el" href="SatSolver_8h-source.html">SatSolver.h</a>.</p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classFastSatSolver_1_1AbstractSatSolver.html#fae336fb16e0c147d36ad94b8bff70a5">~AbstractSatSolver</a> ()</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classFastSatSolver_1_1SatProblem.html">SatProblem</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classFastSatSolver_1_1AbstractSatSolver.html#bf3d0f5a5273e99c718f39966456814b">getProblem</a> ()=0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns pointer to instance of <a class="el" href="classFastSatSolver_1_1SatProblem.html" title="SAT Problem module's facade.">SatProblem</a> used by solver. <a href="#bf3d0f5a5273e99c718f39966456814b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classFastSatSolver_1_1AbstractSatSolver.html#f70c2c7822e8a563a1685c9b68d5cc4a">getSolutionsCount</a> ()=0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns current count solutions founded by solver. <a href="#f70c2c7822e8a563a1685c9b68d5cc4a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classFastSatSolver_1_1SatItemVector.html">SatItemVector</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classFastSatSolver_1_1AbstractSatSolver.html#958ccb4759e38d9941f37717cf860bce">getSolutionVector</a> ()=0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns a set of solutions founded by solver. <a href="#958ccb4759e38d9941f37717cf860bce"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual float </td><td class="memItemRight" valign="bottom"><a class="el" href="classFastSatSolver_1_1AbstractSatSolver.html#d1d0057d2029d7bfbf25323ab7c3b6ec">minFitness</a> ()=0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns fitness of the Worst solution managed by solver. <a href="#d1d0057d2029d7bfbf25323ab7c3b6ec"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual float </td><td class="memItemRight" valign="bottom"><a class="el" href="classFastSatSolver_1_1AbstractSatSolver.html#1d214769e7d45e9fd04601b31adb8c70">avgFitness</a> ()=0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns average fitness computed by solver. <a href="#1d214769e7d45e9fd04601b31adb8c70"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual float </td><td class="memItemRight" valign="bottom"><a class="el" href="classFastSatSolver_1_1AbstractSatSolver.html#5f493f0ddbb31c2e3fa53153b67501e6">maxFitness</a> ()=0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the Best fitness founded by solver. <a href="#5f493f0ddbb31c2e3fa53153b67501e6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classFastSatSolver_1_1AbstractProcessWatched.html#60de64d75454385b23995437f1d72669">start</a> ()</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Start process execution. This method returns control after process ends (or after it is stopped by <a class="el" href="classFastSatSolver_1_1AbstractProcessWatched.html#8c528baf37154d347366083f0f816846" title="Stop currently executed process as soon as possible.">stop()</a> or <a class="el" href="classFastSatSolver_1_1AbstractProcessWatched.html#d20897c5c8bd47f5d4005989bead0e55" title="Reset process to its initial state.">reset()</a> method). <a href="#60de64d75454385b23995437f1d72669"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classFastSatSolver_1_1AbstractProcessWatched.html#8c528baf37154d347366083f0f816846">stop</a> ()</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Stop currently executed process as soon as possible. <a href="#8c528baf37154d347366083f0f816846"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classFastSatSolver_1_1AbstractProcessWatched.html#d20897c5c8bd47f5d4005989bead0e55">reset</a> ()</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Reset process to its initial state. <a href="#d20897c5c8bd47f5d4005989bead0e55"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual long </td><td class="memItemRight" valign="bottom"><a class="el" href="classFastSatSolver_1_1AbstractProcessWatched.html#57e2ab43bf94f9adc686e788f8771681">getTimeElapsed</a> ()</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns time elapsed by activity. <a href="#57e2ab43bf94f9adc686e788f8771681"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classFastSatSolver_1_1AbstractProcess.html#14fa4258dc9ab261c5d4026ae3dfc882">getStepsCount</a> ()</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns current step number. <a href="#14fa4258dc9ab261c5d4026ae3dfc882"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classFastSatSolver_1_1AbstractSubject.html#05bf56954cced132e03ec548c0557c88">addObserver</a> (<a class="el" href="classFastSatSolver_1_1IObserver.html">IObserver</a> *)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Add observer to list of listeners. <a href="#05bf56954cced132e03ec548c0557c88"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classFastSatSolver_1_1AbstractSatSolver.html#6716df2cfc865894f1d26905c27bdc19">AbstractSatSolver</a> ()</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classFastSatSolver_1_1AbstractProcess.html#a5085af8ee5e5c39b4c20c60231e5c92">initialize</a> ()=0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Initialize process. <a href="#a5085af8ee5e5c39b4c20c60231e5c92"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classFastSatSolver_1_1AbstractProcess.html#f40573eed2567df340143a72ddb6cd69">doStep</a> ()=0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Do one step of process. <a href="#f40573eed2567df340143a72ddb6cd69"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classFastSatSolver_1_1AbstractSubject.html#7ff19734eb024bd6f3e2ad95647b1b27">notify</a> ()</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Send notification to all observers (listeners). <a href="#7ff19734eb024bd6f3e2ad95647b1b27"></a><br></td></tr>
</table>
<hr><h2>Constructor & Destructor Documentation</h2>
<a class="anchor" name="fae336fb16e0c147d36ad94b8bff70a5"></a><!-- doxytag: member="FastSatSolver::AbstractSatSolver::~AbstractSatSolver" ref="fae336fb16e0c147d36ad94b8bff70a5" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">~<a class="el" href="classFastSatSolver_1_1AbstractSatSolver.html">AbstractSatSolver</a> </td>
<td>(</td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"><code> [virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>Definition at line <a class="el" href="SatSolver_8cpp-source.html#l00147">147</a> of file <a class="el" href="SatSolver_8cpp-source.html">SatSolver.cpp</a>.</p>
</div>
</div><p>
<a class="anchor" name="6716df2cfc865894f1d26905c27bdc19"></a><!-- doxytag: member="FastSatSolver::AbstractSatSolver::AbstractSatSolver" ref="6716df2cfc865894f1d26905c27bdc19" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classFastSatSolver_1_1AbstractSatSolver.html">AbstractSatSolver</a> </td>
<td>(</td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"><code> [protected]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>Definition at line <a class="el" href="SatSolver_8cpp-source.html#l00146">146</a> of file <a class="el" href="SatSolver_8cpp-source.html">SatSolver.cpp</a>.</p>
</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="bf3d0f5a5273e99c718f39966456814b"></a><!-- doxytag: member="FastSatSolver::AbstractSatSolver::getProblem" ref="bf3d0f5a5273e99c718f39966456814b" args="()=0" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual <a class="el" href="classFastSatSolver_1_1SatProblem.html">SatProblem</a>* getProblem </td>
<td>(</td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"><code> [pure virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns pointer to instance of <a class="el" href="classFastSatSolver_1_1SatProblem.html" title="SAT Problem module's facade.">SatProblem</a> used by solver.
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns pointer to instance of <a class="el" href="classFastSatSolver_1_1SatProblem.html" title="SAT Problem module's facade.">SatProblem</a> used by solver. </dd></dl>
<p>Implemented in <a class="el" href="classFastSatSolver_1_1BlindSatSolver.html#0f8b9a0b5b88a1091aee75779d1b7cb7">BlindSatSolver</a>, and <a class="el" href="classFastSatSolver_1_1GaSatSolver.html#0f8b9a0b5b88a1091aee75779d1b7cb7">GaSatSolver</a>.</p>
</div>
</div><p>
<a class="anchor" name="f70c2c7822e8a563a1685c9b68d5cc4a"></a><!-- doxytag: member="FastSatSolver::AbstractSatSolver::getSolutionsCount" ref="f70c2c7822e8a563a1685c9b68d5cc4a" args="()=0" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual int getSolutionsCount </td>
<td>(</td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"><code> [pure virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns current count solutions founded by solver.
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns current count solutions founded by solver. </dd></dl>
<p>Implemented in <a class="el" href="classFastSatSolver_1_1BlindSatSolver.html#7b0abc45218a7539d5c842d0d23d1c2e">BlindSatSolver</a>, and <a class="el" href="classFastSatSolver_1_1GaSatSolver.html#7b0abc45218a7539d5c842d0d23d1c2e">GaSatSolver</a>.</p>
<p>Referenced by <a class="el" href="SatSolverObserver_8cpp-source.html#l00147">ResultsWatch::notify()</a>, and <a class="el" href="SatSolverObserver_8cpp-source.html#l00045">SolutionsCountStop::notify()</a>.</p>
</div>
</div><p>
<a class="anchor" name="958ccb4759e38d9941f37717cf860bce"></a><!-- doxytag: member="FastSatSolver::AbstractSatSolver::getSolutionVector" ref="958ccb4759e38d9941f37717cf860bce" args="()=0" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual <a class="el" href="classFastSatSolver_1_1SatItemVector.html">SatItemVector</a>* getSolutionVector </td>
<td>(</td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"><code> [pure virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns a set of solutions founded by solver.
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns on heap allocated instance of <a class="el" href="classFastSatSolver_1_1SatItemVector.html" title="Linear storage container for ISatItem objects.">SatItemVector</a> containing solutions founded by solver. </dd></dl>
<p>Implemented in <a class="el" href="classFastSatSolver_1_1BlindSatSolver.html#afe4f04b889ee848eb52271ea1f4f9ef">BlindSatSolver</a>, and <a class="el" href="classFastSatSolver_1_1GaSatSolver.html#afe4f04b889ee848eb52271ea1f4f9ef">GaSatSolver</a>.</p>
</div>
</div><p>
<a class="anchor" name="d1d0057d2029d7bfbf25323ab7c3b6ec"></a><!-- doxytag: member="FastSatSolver::AbstractSatSolver::minFitness" ref="d1d0057d2029d7bfbf25323ab7c3b6ec" args="()=0" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual float minFitness </td>
<td>(</td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"><code> [pure virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns fitness of the Worst solution managed by solver.
<p>
<p>Implemented in <a class="el" href="classFastSatSolver_1_1BlindSatSolver.html#3e12cbdb3e43385dc45fc10f703af769">BlindSatSolver</a>, and <a class="el" href="classFastSatSolver_1_1GaSatSolver.html#3e12cbdb3e43385dc45fc10f703af769">GaSatSolver</a>.</p>
<p>Referenced by <a class="el" href="SatSolverObserver_8cpp-source.html#l00092">FitnessWatch::notify()</a>.</p>
</div>
</div><p>
<a class="anchor" name="1d214769e7d45e9fd04601b31adb8c70"></a><!-- doxytag: member="FastSatSolver::AbstractSatSolver::avgFitness" ref="1d214769e7d45e9fd04601b31adb8c70" args="()=0" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual float avgFitness </td>
<td>(</td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"><code> [pure virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns average fitness computed by solver.
<p>
<p>Implemented in <a class="el" href="classFastSatSolver_1_1BlindSatSolver.html#c38f955a6e6a313249883aa555ab36b6">BlindSatSolver</a>, and <a class="el" href="classFastSatSolver_1_1GaSatSolver.html#c38f955a6e6a313249883aa555ab36b6">GaSatSolver</a>.</p>
<p>Referenced by <a class="el" href="SatSolverObserver_8cpp-source.html#l00092">FitnessWatch::notify()</a>.</p>
</div>
</div><p>
<a class="anchor" name="5f493f0ddbb31c2e3fa53153b67501e6"></a><!-- doxytag: member="FastSatSolver::AbstractSatSolver::maxFitness" ref="5f493f0ddbb31c2e3fa53153b67501e6" args="()=0" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual float maxFitness </td>
<td>(</td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"><code> [pure virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns the Best fitness founded by solver.
<p>
<dl class="note" compact><dt><b>Note:</b></dt><dd>This should be always 1.0 if solution was found. </dd></dl>
<p>Implemented in <a class="el" href="classFastSatSolver_1_1BlindSatSolver.html#a4ff4f00ef1022a70f538e32d7a2e07b">BlindSatSolver</a>, and <a class="el" href="classFastSatSolver_1_1GaSatSolver.html#a4ff4f00ef1022a70f538e32d7a2e07b">GaSatSolver</a>.</p>
<p>Referenced by <a class="el" href="SatSolverObserver_8cpp-source.html#l00092">FitnessWatch::notify()</a>.</p>
</div>
</div><p>
<a class="anchor" name="60de64d75454385b23995437f1d72669"></a><!-- doxytag: member="FastSatSolver::AbstractSatSolver::start" ref="60de64d75454385b23995437f1d72669" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void start </td>
<td>(</td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"><code> [virtual, inherited]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Start process execution. This method returns control after process ends (or after it is stopped by <a class="el" href="classFastSatSolver_1_1AbstractProcessWatched.html#8c528baf37154d347366083f0f816846" title="Stop currently executed process as soon as possible.">stop()</a> or <a class="el" href="classFastSatSolver_1_1AbstractProcessWatched.html#d20897c5c8bd47f5d4005989bead0e55" title="Reset process to its initial state.">reset()</a> method).
<p>
<p>Reimplemented from <a class="el" href="classFastSatSolver_1_1AbstractProcess.html#60de64d75454385b23995437f1d72669">AbstractProcess</a>.</p>
<p>Definition at line <a class="el" href="SatSolver_8cpp-source.html#l00111">111</a> of file <a class="el" href="SatSolver_8cpp-source.html">SatSolver.cpp</a>.</p>
<p>References <a class="el" href="SatSolver_8cpp-source.html#l00096">AbstractProcessWatched::Private::running</a>, <a class="el" href="SatSolver_8cpp-source.html#l00072">AbstractProcess::start()</a>, and <a class="el" href="SatSolver_8cpp-source.html#l00094">AbstractProcessWatched::Private::start</a>.</p>
</div>
</div><p>
<a class="anchor" name="8c528baf37154d347366083f0f816846"></a><!-- doxytag: member="FastSatSolver::AbstractSatSolver::stop" ref="8c528baf37154d347366083f0f816846" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void stop </td>
<td>(</td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"><code> [virtual, inherited]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Stop currently executed process as soon as possible.
<p>
<p>Reimplemented from <a class="el" href="classFastSatSolver_1_1AbstractProcess.html#8c528baf37154d347366083f0f816846">AbstractProcess</a>.</p>
<p>Definition at line <a class="el" href="SatSolver_8cpp-source.html#l00117">117</a> of file <a class="el" href="SatSolver_8cpp-source.html">SatSolver.cpp</a>.</p>
<p>References <a class="el" href="SatSolver_8cpp-source.html#l00097">AbstractProcessWatched::Private::currentElapsed()</a>, <a class="el" href="SatSolver_8cpp-source.html#l00096">AbstractProcessWatched::Private::running</a>, <a class="el" href="SatSolver_8cpp-source.html#l00078">AbstractProcess::stop()</a>, and <a class="el" href="SatSolver_8cpp-source.html#l00095">AbstractProcessWatched::Private::total</a>.</p>
<p>Referenced by <a class="el" href="GaSatSolver_8cpp-source.html#l00155">GaSatSolver::doStep()</a>, <a class="el" href="BlindSatSolver_8cpp-source.html#l00108">BlindSatSolver::doStep()</a>, <a class="el" href="SatSolverObserver_8cpp-source.html#l00067">TimedStop::notify()</a>, and <a class="el" href="SatSolverObserver_8cpp-source.html#l00045">SolutionsCountStop::notify()</a>.</p>
</div>
</div><p>
<a class="anchor" name="d20897c5c8bd47f5d4005989bead0e55"></a><!-- doxytag: member="FastSatSolver::AbstractSatSolver::reset" ref="d20897c5c8bd47f5d4005989bead0e55" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void reset </td>
<td>(</td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"><code> [virtual, inherited]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Reset process to its initial state.
<p>
<dl class="note" compact><dt><b>Note:</b></dt><dd>This implies <a class="el" href="classFastSatSolver_1_1AbstractProcessWatched.html#8c528baf37154d347366083f0f816846" title="Stop currently executed process as soon as possible.">stop()</a> if process is running. </dd></dl>
<p>Reimplemented from <a class="el" href="classFastSatSolver_1_1AbstractProcess.html#d20897c5c8bd47f5d4005989bead0e55">AbstractProcess</a>.</p>
<p>Definition at line <a class="el" href="SatSolver_8cpp-source.html#l00125">125</a> of file <a class="el" href="SatSolver_8cpp-source.html">SatSolver.cpp</a>.</p>
<p>References <a class="el" href="SatSolver_8cpp-source.html#l00081">AbstractProcess::reset()</a>, <a class="el" href="SatSolver_8cpp-source.html#l00096">AbstractProcessWatched::Private::running</a>, and <a class="el" href="SatSolver_8cpp-source.html#l00095">AbstractProcessWatched::Private::total</a>.</p>
</div>
</div><p>
<a class="anchor" name="57e2ab43bf94f9adc686e788f8771681"></a><!-- doxytag: member="FastSatSolver::AbstractSatSolver::getTimeElapsed" ref="57e2ab43bf94f9adc686e788f8771681" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">long getTimeElapsed </td>
<td>(</td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"><code> [virtual, inherited]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns time elapsed by activity.
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns time elapsed by activity. </dd></dl>
<p>Implements <a class="el" href="classFastSatSolver_1_1IStopWatch.html#f649f409444bc5f814164e072a4c38e7">IStopWatch</a>.</p>
<p>Definition at line <a class="el" href="SatSolver_8cpp-source.html#l00131">131</a> of file <a class="el" href="SatSolver_8cpp-source.html">SatSolver.cpp</a>.</p>
<p>References <a class="el" href="SatSolver_8cpp-source.html#l00097">AbstractProcessWatched::Private::currentElapsed()</a>, <a class="el" href="SatSolver_8cpp-source.html#l00096">AbstractProcessWatched::Private::running</a>, and <a class="el" href="SatSolver_8cpp-source.html#l00095">AbstractProcessWatched::Private::total</a>.</p>
<p>Referenced by <a class="el" href="SatSolverObserver_8cpp-source.html#l00147">ResultsWatch::notify()</a>, <a class="el" href="SatSolverObserver_8cpp-source.html#l00092">FitnessWatch::notify()</a>, and <a class="el" href="SatSolverObserver_8cpp-source.html#l00067">TimedStop::notify()</a>.</p>
</div>
</div><p>
<a class="anchor" name="14fa4258dc9ab261c5d4026ae3dfc882"></a><!-- doxytag: member="FastSatSolver::AbstractSatSolver::getStepsCount" ref="14fa4258dc9ab261c5d4026ae3dfc882" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int getStepsCount </td>
<td>(</td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"><code> [virtual, inherited]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns current step number.
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns current step number. </dd></dl>
<p>Definition at line <a class="el" href="SatSolver_8cpp-source.html#l00086">86</a> of file <a class="el" href="SatSolver_8cpp-source.html">SatSolver.cpp</a>.</p>
<p>References <a class="el" href="SatSolver_8cpp-source.html#l00061">AbstractProcess::Private::steps</a>.</p>
<p>Referenced by <a class="el" href="SatSolverObserver_8cpp-source.html#l00180">ProgressWatch::notify()</a>.</p>
</div>
</div><p>
<a class="anchor" name="a5085af8ee5e5c39b4c20c60231e5c92"></a><!-- doxytag: member="FastSatSolver::AbstractSatSolver::initialize" ref="a5085af8ee5e5c39b4c20c60231e5c92" args="()=0" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual void initialize </td>
<td>(</td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"><code> [protected, pure virtual, inherited]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Initialize process.
<p>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Design pattern <b>template</b> <b>method</b> </dd></dl>
<p>Implemented in <a class="el" href="classFastSatSolver_1_1BlindSatSolver.html#25a40b6614565f755233080a384c35f1">BlindSatSolver</a>, and <a class="el" href="classFastSatSolver_1_1GaSatSolver.html#25a40b6614565f755233080a384c35f1">GaSatSolver</a>.</p>
<p>Referenced by <a class="el" href="SatSolver_8cpp-source.html#l00081">AbstractProcess::reset()</a>.</p>
</div>
</div><p>
<a class="anchor" name="f40573eed2567df340143a72ddb6cd69"></a><!-- doxytag: member="FastSatSolver::AbstractSatSolver::doStep" ref="f40573eed2567df340143a72ddb6cd69" args="()=0" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual void doStep </td>
<td>(</td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"><code> [protected, pure virtual, inherited]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Do one step of process.
<p>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Design pattern <b>template</b> <b>method</b> </dd></dl>
<p>Implemented in <a class="el" href="classFastSatSolver_1_1BlindSatSolver.html#931514cf013abbc0b9511a44c1f7fe48">BlindSatSolver</a>, and <a class="el" href="classFastSatSolver_1_1GaSatSolver.html#931514cf013abbc0b9511a44c1f7fe48">GaSatSolver</a>.</p>
<p>Referenced by <a class="el" href="SatSolver_8cpp-source.html#l00072">AbstractProcess::start()</a>.</p>
</div>
</div><p>
<a class="anchor" name="05bf56954cced132e03ec548c0557c88"></a><!-- doxytag: member="FastSatSolver::AbstractSatSolver::addObserver" ref="05bf56954cced132e03ec548c0557c88" args="(IObserver *)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void addObserver </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classFastSatSolver_1_1IObserver.html">IObserver</a> * </td>
<td class="paramname"> <em>observer</em> </td>
<td> ) </td>
<td width="100%"><code> [virtual, inherited]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Add observer to list of listeners.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>observer</em> </td><td>Observer object to add to list of listeners. </td></tr>
</table>
</dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Observers are notified in the same order, as there are added to lsit of listeners. <p>
Design pattern <b>observer</b> </dd></dl>
<p>Implements <a class="el" href="classFastSatSolver_1_1ISubject.html#667a901632cfa1cf55790fed03a615c6">ISubject</a>.</p>
<p>Definition at line <a class="el" href="SatSolver_8cpp-source.html#l00046">46</a> of file <a class="el" href="SatSolver_8cpp-source.html">SatSolver.cpp</a>.</p>
<p>References <a class="el" href="SatSolver_8cpp-source.html#l00036">AbstractSubject::Private::container</a>.</p>
<p>Referenced by <a class="el" href="fss_8cpp-source.html#l00046">main()</a>.</p>
</div>
</div><p>
<a class="anchor" name="7ff19734eb024bd6f3e2ad95647b1b27"></a><!-- doxytag: member="FastSatSolver::AbstractSatSolver::notify" ref="7ff19734eb024bd6f3e2ad95647b1b27" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void notify </td>
<td>(</td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"><code> [protected, inherited]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Send notification to all observers (listeners).
<p>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Observers are notified in the same order, as there are added to lsit of listeners. </dd></dl>
<p>Definition at line <a class="el" href="SatSolver_8cpp-source.html#l00049">49</a> of file <a class="el" href="SatSolver_8cpp-source.html">SatSolver.cpp</a>.</p>
<p>References <a class="el" href="SatSolver_8cpp-source.html#l00036">AbstractSubject::Private::container</a>, and <a class="el" href="classFastSatSolver_1_1IObserver.html#db968cb3b9d5c0f9c62efbc1ea91de8d">IObserver::notify()</a>.</p>
<p>Referenced by <a class="el" href="BlindSatSolver_8cpp-source.html#l00108">BlindSatSolver::doStep()</a>, <a class="el" href="GaSatSolver_8cpp-source.html#l00165">GaSatSolver::Private::fitness()</a>, and <a class="el" href="SatSolver_8cpp-source.html#l00072">AbstractProcess::start()</a>.</p>
</div>
</div><p>
<hr>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="SatSolver_8h-source.html">SatSolver.h</a><li><a class="el" href="SatSolver_8cpp-source.html">SatSolver.cpp</a></ul>
<hr size="1"><address style="text-align: right;"><small>Generated on Wed Nov 5 22:30:22 2008 for Fast SAT Solver by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.4 </small></address>
</body>
</html>