Česky
Kamil Dudka

Fast SAT Solver (C++, GAlib)

File detail

Name:DownloadclassFastSatSolver_1_1BlindSatSolver.html [Download]
Location: fss > doc > api > html
Size:39.5 KB
Last modification:2022-09-09 13:06

Source code

<!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: BlindSatSolver 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&nbsp;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&nbsp;List</span></a></li>
    <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
  </ul>
</div>
<div class="nav">
<a class="el" href="namespaceFastSatSolver.html">FastSatSolver</a>::<a class="el" href="classFastSatSolver_1_1BlindSatSolver.html">BlindSatSolver</a></div>
<h1>BlindSatSolver Class Reference<br>
<small>
[<a class="el" href="group__SatSolver.html">SAT Solver</a>]</small>
</h1><!-- doxytag: class="FastSatSolver::BlindSatSolver" --><!-- doxytag: inherits="FastSatSolver::AbstractSatSolver" --><code>#include &lt;<a class="el" href="BlindSatSolver_8h-source.html">BlindSatSolver.h</a>&gt;</code>
<p>
<div class="dynheader">
Inheritance diagram for BlindSatSolver:</div>
<div class="dynsection">
<p><center><img src="classFastSatSolver_1_1BlindSatSolver__inherit__graph.png" border="0" usemap="#BlindSatSolver__inherit__map" alt="Inheritance graph"></center>
<map name="BlindSatSolver__inherit__map">
<area shape="rect" href="classFastSatSolver_1_1AbstractSatSolver.html" title="SAT Solver base class." alt="" coords="132,304,276,331"><area shape="rect" href="classFastSatSolver_1_1AbstractProcessWatched.html" title="Multi&#45;step process with time&#45;watch extension." alt="" coords="109,229,299,256"><area shape="rect" href="classFastSatSolver_1_1AbstractProcess.html" title="Base class of simple multi&#45;step process." alt="" coords="69,155,200,181"><area shape="rect" href="classFastSatSolver_1_1AbstractSubject.html" title="Simple subject&#39;s base class." alt="" coords="5,80,136,107"><area shape="rect" href="classFastSatSolver_1_1ISubject.html" title="Simple observer&#39;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&#45;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 BlindSatSolver:</div>
<div class="dynsection">
<p><center><img src="classFastSatSolver_1_1BlindSatSolver__coll__graph.png" border="0" usemap="#BlindSatSolver__coll__map" alt="Collaboration graph"></center>
<map name="BlindSatSolver__coll__map">
<area shape="rect" href="classFastSatSolver_1_1AbstractSatSolver.html" title="SAT Solver base class." alt="" coords="335,368,479,395"><area shape="rect" href="classFastSatSolver_1_1AbstractProcessWatched.html" title="Multi&#45;step process with time&#45;watch extension." alt="" coords="268,277,457,304"><area shape="rect" href="classFastSatSolver_1_1AbstractProcess.html" title="Base class of simple multi&#45;step process." alt="" coords="153,187,284,213"><area shape="rect" href="classFastSatSolver_1_1AbstractSubject.html" title="Simple subject&#39;s base class." alt="" coords="25,96,156,123"><area shape="rect" href="classFastSatSolver_1_1ISubject.html" title="Simple observer&#39;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&#45;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"><area shape="rect" href="structFastSatSolver_1_1BlindSatSolver_1_1Private.html" title="Private" alt="" coords="517,368,587,395"><area shape="rect" href="classFastSatSolver_1_1SatItemVector.html" title="Linear storage container for ISatItem objects." alt="" coords="493,277,611,304"><area shape="rect" href="structFastSatSolver_1_1SatItemVector_1_1Private.html" title="Private" alt="" coords="524,187,593,213"><area shape="rect" href="classFastSatSolver_1_1SatProblem.html" title="SAT Problem module&#39;s facade." alt="" coords="635,277,733,304"><area shape="rect" href="structFastSatSolver_1_1SatProblem_1_1Private.html" title="Private" alt="" coords="649,187,719,213"><area shape="rect" href="classFastSatSolver_1_1FormulaContainer.html" title="Container for evaluable formulas." alt="" coords="447,96,588,123"><area shape="rect" href="structFastSatSolver_1_1FormulaContainer_1_1Private.html" title="Private" alt="" coords="483,5,552,32"><area shape="rect" href="classFastSatSolver_1_1VariableContainer.html" title="Container for variables names." alt="" coords="612,96,756,123"><area shape="rect" href="structFastSatSolver_1_1VariableContainer_1_1Private.html" title="Private" alt="" coords="649,5,719,32"></map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>
 
<p>
<a href="classFastSatSolver_1_1BlindSatSolver-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
Solver using brute force method to solve SAT problem. 
<p>Definition at line <a class="el" href="BlindSatSolver_8h-source.html#l00059">59</a> of file <a class="el" href="BlindSatSolver_8h-source.html">BlindSatSolver.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">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFastSatSolver_1_1BlindSatSolver.html#1d787435ca6a07292943f11d39ee9f01">BlindSatSolver</a> (<a class="el" href="classFastSatSolver_1_1SatProblem.html">SatProblem</a> *problem, int stepWidth)</td></tr>
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFastSatSolver_1_1BlindSatSolver.html#b727e98ec0bf1ff968b16b74c82a7e00">~BlindSatSolver</a> ()</td></tr>
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classFastSatSolver_1_1SatProblem.html">SatProblem</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFastSatSolver_1_1BlindSatSolver.html#0f8b9a0b5b88a1091aee75779d1b7cb7">getProblem</a> ()</td></tr>
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns pointer to instance of <a class="el" href="classFastSatSolver_1_1SatProblem.html" title="SAT Problem module&#39;s facade.">SatProblem</a> used by solver.  <a href="#0f8b9a0b5b88a1091aee75779d1b7cb7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFastSatSolver_1_1BlindSatSolver.html#7b0abc45218a7539d5c842d0d23d1c2e">getSolutionsCount</a> ()</td></tr>
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns current count solutions founded by solver.  <a href="#7b0abc45218a7539d5c842d0d23d1c2e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classFastSatSolver_1_1SatItemVector.html">SatItemVector</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFastSatSolver_1_1BlindSatSolver.html#afe4f04b889ee848eb52271ea1f4f9ef">getSolutionVector</a> ()</td></tr>
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a set of solutions founded by solver.  <a href="#afe4f04b889ee848eb52271ea1f4f9ef"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFastSatSolver_1_1BlindSatSolver.html#3e12cbdb3e43385dc45fc10f703af769">minFitness</a> ()</td></tr>
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns fitness of the Worst solution managed by solver.  <a href="#3e12cbdb3e43385dc45fc10f703af769"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFastSatSolver_1_1BlindSatSolver.html#c38f955a6e6a313249883aa555ab36b6">avgFitness</a> ()</td></tr>
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns average fitness computed by solver.  <a href="#c38f955a6e6a313249883aa555ab36b6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFastSatSolver_1_1BlindSatSolver.html#a4ff4f00ef1022a70f538e32d7a2e07b">maxFitness</a> ()</td></tr>
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the Best fitness founded by solver.  <a href="#a4ff4f00ef1022a70f538e32d7a2e07b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFastSatSolver_1_1AbstractProcessWatched.html#60de64d75454385b23995437f1d72669">start</a> ()</td></tr>
 
<tr><td class="mdescLeft">&nbsp;</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&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFastSatSolver_1_1AbstractProcessWatched.html#8c528baf37154d347366083f0f816846">stop</a> ()</td></tr>
 
<tr><td class="mdescLeft">&nbsp;</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&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFastSatSolver_1_1AbstractProcessWatched.html#d20897c5c8bd47f5d4005989bead0e55">reset</a> ()</td></tr>
 
<tr><td class="mdescLeft">&nbsp;</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&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFastSatSolver_1_1AbstractProcessWatched.html#57e2ab43bf94f9adc686e788f8771681">getTimeElapsed</a> ()</td></tr>
 
<tr><td class="mdescLeft">&nbsp;</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&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFastSatSolver_1_1AbstractProcess.html#14fa4258dc9ab261c5d4026ae3dfc882">getStepsCount</a> ()</td></tr>
 
<tr><td class="mdescLeft">&nbsp;</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&nbsp;</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">&nbsp;</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">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFastSatSolver_1_1BlindSatSolver.html#25a40b6614565f755233080a384c35f1">initialize</a> ()</td></tr>
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize process.  <a href="#25a40b6614565f755233080a384c35f1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFastSatSolver_1_1BlindSatSolver.html#931514cf013abbc0b9511a44c1f7fe48">doStep</a> ()</td></tr>
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Do one step of process.  <a href="#931514cf013abbc0b9511a44c1f7fe48"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFastSatSolver_1_1AbstractSubject.html#7ff19734eb024bd6f3e2ad95647b1b27">notify</a> ()</td></tr>
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Send notification to all observers (listeners).  <a href="#7ff19734eb024bd6f3e2ad95647b1b27"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structFastSatSolver_1_1BlindSatSolver_1_1Private.html">Private</a></td></tr>
 
</table>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="1d787435ca6a07292943f11d39ee9f01"></a><!-- doxytag: member="FastSatSolver::BlindSatSolver::BlindSatSolver" ref="1d787435ca6a07292943f11d39ee9f01" args="(SatProblem *problem, int stepWidth)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classFastSatSolver_1_1BlindSatSolver.html">BlindSatSolver</a>           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classFastSatSolver_1_1SatProblem.html">SatProblem</a> *&nbsp;</td>
          <td class="paramname"> <em>problem</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>stepWidth</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">
 
<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>problem</em>&nbsp;</td><td><a class="el" href="classFastSatSolver_1_1SatProblem.html" title="SAT Problem module&#39;s facade.">SatProblem</a> instance containing SAT problem to solve. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>stepWidth</em>&nbsp;</td><td>Number of bits explored in one step. This influences the granullarity of notifications and process control. Recomended value for ordinary machines is 16. </td></tr>
  </table>
</dl>
 
<p>Definition at line <a class="el" href="BlindSatSolver_8cpp-source.html#l00068">68</a> of file <a class="el" href="BlindSatSolver_8cpp-source.html">BlindSatSolver.cpp</a>.</p>
 
<p>References <a class="el" href="BlindSatSolver_8cpp-source.html#l00054">BlindSatSolver::Private::end</a>, <a class="el" href="SatProblem_8cpp-source.html#l00165">SatProblem::getVarsCount()</a>, <a class="el" href="BlindSatSolver_8cpp-source.html#l00061">BlindSatSolver::Private::init()</a>, <a class="el" href="BlindSatSolver_8cpp-source.html#l00052">BlindSatSolver::Private::problem</a>, and <a class="el" href="BlindSatSolver_8cpp-source.html#l00053">BlindSatSolver::Private::stepWidth</a>.</p>
 
</div>
</div><p>
<a class="anchor" name="b727e98ec0bf1ff968b16b74c82a7e00"></a><!-- doxytag: member="FastSatSolver::BlindSatSolver::~BlindSatSolver" ref="b727e98ec0bf1ff968b16b74c82a7e00" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">~<a class="el" href="classFastSatSolver_1_1BlindSatSolver.html">BlindSatSolver</a>           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
 
<p>
 
<p>Definition at line <a class="el" href="BlindSatSolver_8cpp-source.html#l00081">81</a> of file <a class="el" href="BlindSatSolver_8cpp-source.html">BlindSatSolver.cpp</a>.</p>
 
</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="0f8b9a0b5b88a1091aee75779d1b7cb7"></a><!-- doxytag: member="FastSatSolver::BlindSatSolver::getProblem" ref="0f8b9a0b5b88a1091aee75779d1b7cb7" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classFastSatSolver_1_1SatProblem.html">SatProblem</a> * getProblem           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [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&#39;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&#39;s facade.">SatProblem</a> used by solver. </dd></dl>
 
<p>Implements <a class="el" href="classFastSatSolver_1_1AbstractSatSolver.html#bf3d0f5a5273e99c718f39966456814b">AbstractSatSolver</a>.</p>
 
<p>Definition at line <a class="el" href="BlindSatSolver_8cpp-source.html#l00084">84</a> of file <a class="el" href="BlindSatSolver_8cpp-source.html">BlindSatSolver.cpp</a>.</p>
 
<p>References <a class="el" href="BlindSatSolver_8cpp-source.html#l00052">BlindSatSolver::Private::problem</a>.</p>
 
</div>
</div><p>
<a class="anchor" name="7b0abc45218a7539d5c842d0d23d1c2e"></a><!-- doxytag: member="FastSatSolver::BlindSatSolver::getSolutionsCount" ref="7b0abc45218a7539d5c842d0d23d1c2e" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int getSolutionsCount           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [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>Implements <a class="el" href="classFastSatSolver_1_1AbstractSatSolver.html#f70c2c7822e8a563a1685c9b68d5cc4a">AbstractSatSolver</a>.</p>
 
<p>Definition at line <a class="el" href="BlindSatSolver_8cpp-source.html#l00087">87</a> of file <a class="el" href="BlindSatSolver_8cpp-source.html">BlindSatSolver.cpp</a>.</p>
 
<p>References <a class="el" href="SatSolver_8cpp-source.html#l00173">SatItemVector::getLength()</a>, and <a class="el" href="BlindSatSolver_8cpp-source.html#l00059">BlindSatSolver::Private::resultSet</a>.</p>
 
</div>
</div><p>
<a class="anchor" name="afe4f04b889ee848eb52271ea1f4f9ef"></a><!-- doxytag: member="FastSatSolver::BlindSatSolver::getSolutionVector" ref="afe4f04b889ee848eb52271ea1f4f9ef" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classFastSatSolver_1_1SatItemVector.html">SatItemVector</a> * getSolutionVector           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [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>Implements <a class="el" href="classFastSatSolver_1_1AbstractSatSolver.html#958ccb4759e38d9941f37717cf860bce">AbstractSatSolver</a>.</p>
 
<p>Definition at line <a class="el" href="BlindSatSolver_8cpp-source.html#l00090">90</a> of file <a class="el" href="BlindSatSolver_8cpp-source.html">BlindSatSolver.cpp</a>.</p>
 
<p>References <a class="el" href="BlindSatSolver_8cpp-source.html#l00059">BlindSatSolver::Private::resultSet</a>.</p>
 
</div>
</div><p>
<a class="anchor" name="3e12cbdb3e43385dc45fc10f703af769"></a><!-- doxytag: member="FastSatSolver::BlindSatSolver::minFitness" ref="3e12cbdb3e43385dc45fc10f703af769" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float minFitness           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
 
<p>
Returns fitness of the Worst solution managed by solver. 
<p>
 
<p>Implements <a class="el" href="classFastSatSolver_1_1AbstractSatSolver.html#d1d0057d2029d7bfbf25323ab7c3b6ec">AbstractSatSolver</a>.</p>
 
<p>Definition at line <a class="el" href="BlindSatSolver_8cpp-source.html#l00093">93</a> of file <a class="el" href="BlindSatSolver_8cpp-source.html">BlindSatSolver.cpp</a>.</p>
 
<p>References <a class="el" href="BlindSatSolver_8cpp-source.html#l00056">BlindSatSolver::Private::minFitness</a>.</p>
 
<p>Referenced by <a class="el" href="BlindSatSolver_8cpp-source.html#l00108">BlindSatSolver::doStep()</a>.</p>
 
</div>
</div><p>
<a class="anchor" name="c38f955a6e6a313249883aa555ab36b6"></a><!-- doxytag: member="FastSatSolver::BlindSatSolver::avgFitness" ref="c38f955a6e6a313249883aa555ab36b6" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float avgFitness           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
 
<p>
Returns average fitness computed by solver. 
<p>
 
<p>Implements <a class="el" href="classFastSatSolver_1_1AbstractSatSolver.html#1d214769e7d45e9fd04601b31adb8c70">AbstractSatSolver</a>.</p>
 
<p>Definition at line <a class="el" href="BlindSatSolver_8cpp-source.html#l00096">96</a> of file <a class="el" href="BlindSatSolver_8cpp-source.html">BlindSatSolver.cpp</a>.</p>
 
<p>References <a class="el" href="BlindSatSolver_8cpp-source.html#l00055">BlindSatSolver::Private::current</a>, and <a class="el" href="BlindSatSolver_8cpp-source.html#l00058">BlindSatSolver::Private::sumFitness</a>.</p>
 
</div>
</div><p>
<a class="anchor" name="a4ff4f00ef1022a70f538e32d7a2e07b"></a><!-- doxytag: member="FastSatSolver::BlindSatSolver::maxFitness" ref="a4ff4f00ef1022a70f538e32d7a2e07b" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float maxFitness           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [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>Implements <a class="el" href="classFastSatSolver_1_1AbstractSatSolver.html#5f493f0ddbb31c2e3fa53153b67501e6">AbstractSatSolver</a>.</p>
 
<p>Definition at line <a class="el" href="BlindSatSolver_8cpp-source.html#l00099">99</a> of file <a class="el" href="BlindSatSolver_8cpp-source.html">BlindSatSolver.cpp</a>.</p>
 
<p>References <a class="el" href="BlindSatSolver_8cpp-source.html#l00057">BlindSatSolver::Private::maxFitness</a>.</p>
 
</div>
</div><p>
<a class="anchor" name="25a40b6614565f755233080a384c35f1"></a><!-- doxytag: member="FastSatSolver::BlindSatSolver::initialize" ref="25a40b6614565f755233080a384c35f1" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void initialize           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [protected, virtual]</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>Implements <a class="el" href="classFastSatSolver_1_1AbstractProcess.html#a5085af8ee5e5c39b4c20c60231e5c92">AbstractProcess</a>.</p>
 
<p>Definition at line <a class="el" href="BlindSatSolver_8cpp-source.html#l00103">103</a> of file <a class="el" href="BlindSatSolver_8cpp-source.html">BlindSatSolver.cpp</a>.</p>
 
<p>References <a class="el" href="SatSolver_8cpp-source.html#l00197">SatItemVector::clear()</a>, <a class="el" href="BlindSatSolver_8cpp-source.html#l00061">BlindSatSolver::Private::init()</a>, and <a class="el" href="BlindSatSolver_8cpp-source.html#l00059">BlindSatSolver::Private::resultSet</a>.</p>
 
</div>
</div><p>
<a class="anchor" name="931514cf013abbc0b9511a44c1f7fe48"></a><!-- doxytag: member="FastSatSolver::BlindSatSolver::doStep" ref="931514cf013abbc0b9511a44c1f7fe48" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void doStep           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [protected, virtual]</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>Implements <a class="el" href="classFastSatSolver_1_1AbstractProcess.html#f40573eed2567df340143a72ddb6cd69">AbstractProcess</a>.</p>
 
<p>Definition at line <a class="el" href="BlindSatSolver_8cpp-source.html#l00108">108</a> of file <a class="el" href="BlindSatSolver_8cpp-source.html">BlindSatSolver.cpp</a>.</p>
 
<p>References <a class="el" href="SatSolver_8cpp-source.html#l00179">SatItemVector::addItem()</a>, <a class="el" href="BlindSatSolver_8cpp-source.html#l00045">LongSatItem::clone()</a>, <a class="el" href="BlindSatSolver_8cpp-source.html#l00055">BlindSatSolver::Private::current</a>, <a class="el" href="BlindSatSolver_8cpp-source.html#l00054">BlindSatSolver::Private::end</a>, <a class="el" href="SatProblem_8cpp-source.html#l00182">SatProblem::getFormulasCount()</a>, <a class="el" href="SatProblem_8cpp-source.html#l00191">SatProblem::getSatsCount()</a>, <a class="el" href="SatProblem_8cpp-source.html#l00165">SatProblem::getVarsCount()</a>, <a class="el" href="BlindSatSolver_8cpp-source.html#l00057">BlindSatSolver::Private::maxFitness</a>, <a class="el" href="BlindSatSolver_8cpp-source.html#l00056">BlindSatSolver::Private::minFitness</a>, <a class="el" href="BlindSatSolver_8cpp-source.html#l00093">BlindSatSolver::minFitness()</a>, <a class="el" href="SatSolver_8cpp-source.html#l00049">AbstractSubject::notify()</a>, <a class="el" href="BlindSatSolver_8cpp-source.html#l00052">BlindSatSolver::Private::problem</a>, <a class="el" href="BlindSatSolver_8cpp-source.html#l00059">BlindSatSolver::Private::resultSet</a>, <a class="el" href="BlindSatSolver_8cpp-source.html#l00053">BlindSatSolver::Private::stepWidth</a>, <a class="el" href="SatSolver_8cpp-source.html#l00117">AbstractProcessWatched::stop()</a>, and <a class="el" href="BlindSatSolver_8cpp-source.html#l00058">BlindSatSolver::Private::sumFitness</a>.</p>
 
</div>
</div><p>
<a class="anchor" name="60de64d75454385b23995437f1d72669"></a><!-- doxytag: member="FastSatSolver::BlindSatSolver::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>&nbsp;)&nbsp;</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::BlindSatSolver::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>&nbsp;)&nbsp;</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::BlindSatSolver::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>&nbsp;)&nbsp;</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::BlindSatSolver::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>&nbsp;)&nbsp;</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::BlindSatSolver::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>&nbsp;)&nbsp;</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="05bf56954cced132e03ec548c0557c88"></a><!-- doxytag: member="FastSatSolver::BlindSatSolver::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> *&nbsp;</td>
          <td class="paramname"> <em>observer</em>          </td>
          <td>&nbsp;)&nbsp;</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>&nbsp;</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::BlindSatSolver::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>&nbsp;)&nbsp;</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="BlindSatSolver_8h-source.html">BlindSatSolver.h</a><li><a class="el" href="BlindSatSolver_8cpp-source.html">BlindSatSolver.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&nbsp;
<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>