source: tspsg-svn/trunk/docs/html/tspsolver_8h_source.html @ 113

Last change on this file since 113 was 112, checked in by laleppa, 15 years ago

Updated translations and regenerated documentation.

File size: 26.8 KB
RevLine 
[68]1<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml">
4<head>
5<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
6<title>TSPSG: TSP Solver and Generator: src/tspsolver.h Source File</title>
7<link href="tabs.css" rel="stylesheet" type="text/css"/>
8<link href="search/search.css" rel="stylesheet" type="text/css"/>
9<script type="text/javaScript" src="search/search.js"></script>
10<link href="doxygen.css" rel="stylesheet" type="text/css"/>
11</head>
12<body onload='searchBox.OnSelectItem(0);'>
13<!-- Generated by Doxygen 1.6.1 -->
14<script type="text/javascript"><!--
15var searchBox = new SearchBox("searchBox", "search",false,'Search');
16--></script>
17<script type="text/javascript">
18<!--
19function changeDisplayState (e){
20  var num=this.id.replace(/[^[0-9]/g,'');
21  var button=this.firstChild;
22  var sectionDiv=document.getElementById('dynsection'+num);
23  if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
24    sectionDiv.style.display='block';
25    button.src='open.gif';
26  }else{
27    sectionDiv.style.display='none';
28    button.src='closed.gif';
29  }
30}
31function initDynSections(){
32  var divs=document.getElementsByTagName('div');
33  var sectionCounter=1;
34  for(var i=0;i<divs.length-1;i++){
35    if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
36      var header=divs[i];
37      var section=divs[i+1];
38      var button=header.firstChild;
39      if (button!='IMG'){
40        divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
41        button=document.createElement('img');
42        divs[i].insertBefore(button,divs[i].firstChild);
43      }
44      header.style.cursor='pointer';
45      header.onclick=changeDisplayState;
46      header.id='dynheader'+sectionCounter;
47      button.src='closed.gif';
48      section.id='dynsection'+sectionCounter;
49      section.style.display='none';
50      section.style.marginLeft='14px';
51      sectionCounter++;
52    }
53  }
54}
55window.onload = initDynSections;
56-->
57</script>
58<div class="navigation" id="top">
59  <div class="tabs">
60    <ul>
61      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
62      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
[112]63      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
[68]64      <li><a href="annotated.html"><span>Classes</span></a></li>
65      <li class="current"><a href="files.html"><span>Files</span></a></li>
66      <li>
67        <div id="MSearchBox" class="MSearchBoxInactive">
68        <img id="MSearchSelect" src="search/search.png"
69             onmouseover="return searchBox.OnSearchSelectShow()"
70             onmouseout="return searchBox.OnSearchSelectHide()"
71             alt=""/>
72        <input type="text" id="MSearchField" value="Search" accesskey="S"
73             onfocus="searchBox.OnSearchFieldFocus(true)" 
74             onblur="searchBox.OnSearchFieldFocus(false)" 
75             onkeyup="searchBox.OnSearchFieldChange(event)"/>
76        <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
77        </div>
78      </li>
79    </ul>
80  </div>
81  <div class="tabs">
82    <ul>
83      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
84      <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
85    </ul>
86  </div>
87<h1>src/tspsolver.h</h1><a href="tspsolver_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
88<a name="l00028"></a>00028 <span class="preprocessor">#ifndef TSPSOLVER_H</span>
89<a name="l00029"></a>00029 <span class="preprocessor"></span><span class="preprocessor">#define TSPSOLVER_H</span>
90<a name="l00030"></a>00030 <span class="preprocessor"></span>
[112]91<a name="l00031"></a>00031 <span class="preprocessor">#include &lt;QtCore&gt;</span>
92<a name="l00032"></a>00032 <span class="preprocessor">#include &lt;limits&gt;</span>
93<a name="l00033"></a>00033
94<a name="l00041"></a>00041 <span class="preprocessor">#ifdef INFINITY</span>
95<a name="l00042"></a>00042 <span class="preprocessor"></span><span class="preprocessor">    #undef INFINITY</span>
96<a name="l00043"></a>00043 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
97<a name="l00044"></a><a class="code" href="tspsolver_8h.html#a956e2723d559858d08644ac99146e910">00044</a> <span class="preprocessor"></span><span class="preprocessor">#define INFINITY std::numeric_limits&lt;double&gt;::infinity()</span>
98<a name="l00045"></a>00045 <span class="preprocessor"></span>
99<a name="l00051"></a>00051 <span class="keyword">namespace </span>TSPSolver {
100<a name="l00052"></a>00052
101<a name="l00054"></a><a class="code" href="namespace_t_s_p_solver.html#a54acd6743f0aa52d3022436d38a78f8c">00054</a> <span class="keyword">typedef</span> <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qlist.html">QList&lt;QList&lt;double&gt;</a> &gt; <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qlist.html">TMatrix</a>;
102<a name="l00055"></a>00055
103<a name="l00061"></a><a class="code" href="struct_t_s_p_solver_1_1_s_step.html">00061</a> <span class="keyword">struct </span><a class="code" href="struct_t_s_p_solver_1_1_s_step.html" title="This structure represents one step of solving.">SStep</a> {
104<a name="l00063"></a><a class="code" href="struct_t_s_p_solver_1_1_s_step_1_1_s_candidate.html">00063</a>     <span class="keyword">struct </span><a class="code" href="struct_t_s_p_solver_1_1_s_step_1_1_s_candidate.html" title="A structure that represents a candidate for branching.">SCandidate</a> {
105<a name="l00064"></a><a class="code" href="struct_t_s_p_solver_1_1_s_step_1_1_s_candidate.html#ae8336e07f26a5b51439c6c7ac3c15800">00064</a>         <span class="keywordtype">int</span> <a class="code" href="struct_t_s_p_solver_1_1_s_step_1_1_s_candidate.html#ae8336e07f26a5b51439c6c7ac3c15800" title="A zero-based row number of the candidate.">nRow</a>;
106<a name="l00065"></a><a class="code" href="struct_t_s_p_solver_1_1_s_step_1_1_s_candidate.html#af6a9d9a2df92c1a56a7156ef7b9f6a27">00065</a>         <span class="keywordtype">int</span> <a class="code" href="struct_t_s_p_solver_1_1_s_step_1_1_s_candidate.html#af6a9d9a2df92c1a56a7156ef7b9f6a27" title="A zero-based column number of the candidate.">nCol</a>;
107<a name="l00066"></a>00066
108<a name="l00068"></a><a class="code" href="struct_t_s_p_solver_1_1_s_step_1_1_s_candidate.html#ad1f84242c537c8c824c5383cec63c233">00068</a>         <a class="code" href="struct_t_s_p_solver_1_1_s_step_1_1_s_candidate.html#ad1f84242c537c8c824c5383cec63c233" title="Assigns default values.">SCandidate</a>() {
109<a name="l00069"></a>00069             <a class="code" href="struct_t_s_p_solver_1_1_s_step_1_1_s_candidate.html#af6a9d9a2df92c1a56a7156ef7b9f6a27" title="A zero-based column number of the candidate.">nCol</a> = <a class="code" href="struct_t_s_p_solver_1_1_s_step_1_1_s_candidate.html#ae8336e07f26a5b51439c6c7ac3c15800" title="A zero-based row number of the candidate.">nRow</a> = -1;
110<a name="l00070"></a>00070         }
111<a name="l00072"></a><a class="code" href="struct_t_s_p_solver_1_1_s_step_1_1_s_candidate.html#a4ada1cd8006cf3b50d4a8e912965f0bc">00072</a>         <span class="keywordtype">bool</span> <a class="code" href="struct_t_s_p_solver_1_1_s_step_1_1_s_candidate.html#a4ada1cd8006cf3b50d4a8e912965f0bc" title="An operator == implementation.">operator ==</a>(<span class="keyword">const</span> <a class="code" href="struct_t_s_p_solver_1_1_s_step_1_1_s_candidate.html" title="A structure that represents a candidate for branching.">SCandidate</a> &amp;cand)<span class="keyword"> const </span>{
112<a name="l00073"></a>00073             <span class="keywordflow">return</span> ((cand.<a class="code" href="struct_t_s_p_solver_1_1_s_step_1_1_s_candidate.html#ae8336e07f26a5b51439c6c7ac3c15800" title="A zero-based row number of the candidate.">nRow</a> == <a class="code" href="struct_t_s_p_solver_1_1_s_step_1_1_s_candidate.html#ae8336e07f26a5b51439c6c7ac3c15800" title="A zero-based row number of the candidate.">nRow</a>) &amp;&amp; (cand.<a class="code" href="struct_t_s_p_solver_1_1_s_step_1_1_s_candidate.html#af6a9d9a2df92c1a56a7156ef7b9f6a27" title="A zero-based column number of the candidate.">nCol</a> == <a class="code" href="struct_t_s_p_solver_1_1_s_step_1_1_s_candidate.html#af6a9d9a2df92c1a56a7156ef7b9f6a27" title="A zero-based column number of the candidate.">nCol</a>));
113<a name="l00074"></a>00074         }
114<a name="l00075"></a>00075     };
115<a name="l00076"></a>00076
116<a name="l00078"></a><a class="code" href="struct_t_s_p_solver_1_1_s_step.html#af1a915528229317a309dfba9991fcd86">00078</a>     <span class="keyword">enum</span> <a class="code" href="struct_t_s_p_solver_1_1_s_step.html#af1a915528229317a309dfba9991fcd86" title="An enum that describes possible selection of the next step.">NextStep</a> {
117<a name="l00079"></a><a class="code" href="struct_t_s_p_solver_1_1_s_step.html#af1a915528229317a309dfba9991fcd86a3b8ba538613f8e35ff43828c6522c354">00079</a>         <a class="code" href="struct_t_s_p_solver_1_1_s_step.html#af1a915528229317a309dfba9991fcd86a3b8ba538613f8e35ff43828c6522c354" title="No next step (end of solution).">NoNextStep</a>,
118<a name="l00080"></a><a class="code" href="struct_t_s_p_solver_1_1_s_step.html#af1a915528229317a309dfba9991fcd86a077009b17a9710f3cf1a72803aa05243">00080</a>         <a class="code" href="struct_t_s_p_solver_1_1_s_step.html#af1a915528229317a309dfba9991fcd86a077009b17a9710f3cf1a72803aa05243" title="Left branch was selected for the next step.">LeftBranch</a>,
119<a name="l00081"></a><a class="code" href="struct_t_s_p_solver_1_1_s_step.html#af1a915528229317a309dfba9991fcd86aa09cf2c0a12d3097b67884e9c45e1818">00081</a>         <a class="code" href="struct_t_s_p_solver_1_1_s_step.html#af1a915528229317a309dfba9991fcd86aa09cf2c0a12d3097b67884e9c45e1818" title="Right branch was selected for the next step.">RightBranch</a> 
120<a name="l00082"></a>00082     };
[97]121<a name="l00083"></a>00083
[112]122<a name="l00084"></a><a class="code" href="struct_t_s_p_solver_1_1_s_step.html#ae2ae1106147f4cd4a1e7a15c2bdf9cdc">00084</a>     <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qlist.html">TMatrix</a> <a class="code" href="struct_t_s_p_solver_1_1_s_step.html#ae2ae1106147f4cd4a1e7a15c2bdf9cdc" title="This step&amp;#39;s matrix.">matrix</a>;
123<a name="l00085"></a><a class="code" href="struct_t_s_p_solver_1_1_s_step.html#a881c1503127ad2426194700491ea4026">00085</a>     <span class="keywordtype">double</span> <a class="code" href="struct_t_s_p_solver_1_1_s_step.html#a881c1503127ad2426194700491ea4026" title="The price of travel to this step.">price</a>;
[100]124<a name="l00086"></a>00086
[112]125<a name="l00087"></a><a class="code" href="struct_t_s_p_solver_1_1_s_step.html#af569aef4d00d3e33f39d8f251138860e">00087</a>     <a class="code" href="struct_t_s_p_solver_1_1_s_step_1_1_s_candidate.html" title="A structure that represents a candidate for branching.">SCandidate</a> <a class="code" href="struct_t_s_p_solver_1_1_s_step.html#af569aef4d00d3e33f39d8f251138860e" title="A candiadate for branching in the current step.">candidate</a>;
126<a name="l00088"></a><a class="code" href="struct_t_s_p_solver_1_1_s_step.html#af95b7f421e7373e32548c64c358438d7">00088</a>     <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qlist.html">QList&lt;SCandidate&gt;</a> <a class="code" href="struct_t_s_p_solver_1_1_s_step.html#af95b7f421e7373e32548c64c358438d7" title="A list of alternative branching candidates.">alts</a>;
127<a name="l00089"></a><a class="code" href="struct_t_s_p_solver_1_1_s_step.html#a4689e211e6a03f4b255243fde93ac54e">00089</a>     <a class="code" href="struct_t_s_p_solver_1_1_s_step.html" title="This structure represents one step of solving.">SStep</a> *<a class="code" href="struct_t_s_p_solver_1_1_s_step.html#a4689e211e6a03f4b255243fde93ac54e" title="Pointer to the parent step.">pNode</a>;
128<a name="l00090"></a><a class="code" href="struct_t_s_p_solver_1_1_s_step.html#a3d4642f69b5eb7531697112341d31fd9">00090</a>     <a class="code" href="struct_t_s_p_solver_1_1_s_step.html" title="This structure represents one step of solving.">SStep</a> *<a class="code" href="struct_t_s_p_solver_1_1_s_step.html#a3d4642f69b5eb7531697112341d31fd9" title="Pointer to the left branch step.">plNode</a>;
129<a name="l00091"></a><a class="code" href="struct_t_s_p_solver_1_1_s_step.html#a44db7deaa9dbb69eafdf5fc7efd2296b">00091</a>     <a class="code" href="struct_t_s_p_solver_1_1_s_step.html" title="This structure represents one step of solving.">SStep</a> *<a class="code" href="struct_t_s_p_solver_1_1_s_step.html#a44db7deaa9dbb69eafdf5fc7efd2296b" title="Pointer to the right branch step.">prNode</a>;
130<a name="l00092"></a><a class="code" href="struct_t_s_p_solver_1_1_s_step.html#a8db8f6149eb89754aeefd35348292375">00092</a>     <a class="code" href="struct_t_s_p_solver_1_1_s_step.html#af1a915528229317a309dfba9991fcd86" title="An enum that describes possible selection of the next step.">NextStep</a> <a class="code" href="struct_t_s_p_solver_1_1_s_step.html#a8db8f6149eb89754aeefd35348292375" title="Indicates what branch was selected for the next step.">next</a>;
131<a name="l00093"></a>00093
132<a name="l00095"></a><a class="code" href="struct_t_s_p_solver_1_1_s_step.html#ae1d7209d6effb9fcfa28aafeac360c31">00095</a>     <a class="code" href="struct_t_s_p_solver_1_1_s_step.html#ae1d7209d6effb9fcfa28aafeac360c31" title="Assigns default values.">SStep</a>() {
133<a name="l00096"></a>00096         <a class="code" href="struct_t_s_p_solver_1_1_s_step.html#a881c1503127ad2426194700491ea4026" title="The price of travel to this step.">price</a> = -1;
134<a name="l00097"></a>00097         <a class="code" href="struct_t_s_p_solver_1_1_s_step.html#a4689e211e6a03f4b255243fde93ac54e" title="Pointer to the parent step.">pNode</a> = <a class="code" href="struct_t_s_p_solver_1_1_s_step.html#a3d4642f69b5eb7531697112341d31fd9" title="Pointer to the left branch step.">plNode</a> = <a class="code" href="struct_t_s_p_solver_1_1_s_step.html#a44db7deaa9dbb69eafdf5fc7efd2296b" title="Pointer to the right branch step.">prNode</a> = NULL;
135<a name="l00098"></a>00098         <a class="code" href="struct_t_s_p_solver_1_1_s_step.html#a8db8f6149eb89754aeefd35348292375" title="Indicates what branch was selected for the next step.">next</a> = <a class="code" href="struct_t_s_p_solver_1_1_s_step.html#af1a915528229317a309dfba9991fcd86a3b8ba538613f8e35ff43828c6522c354" title="No next step (end of solution).">NoNextStep</a>;
136<a name="l00099"></a>00099     }
137<a name="l00100"></a>00100 };
138<a name="l00101"></a>00101
139<a name="l00106"></a><a class="code" href="class_t_s_p_solver_1_1_c_t_s_p_solver.html">00106</a> <span class="keyword">class </span><a class="code" href="class_t_s_p_solver_1_1_c_t_s_p_solver.html" title="This class solves Travelling Salesman Problem task.">CTSPSolver</a>: <span class="keyword">public</span> <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qobject.html">QObject</a>
140<a name="l00107"></a>00107 {
141<a name="l00108"></a>00108     Q_OBJECT
142<a name="l00109"></a>00109
143<a name="l00110"></a>00110 <span class="keyword">public</span>:
144<a name="l00111"></a>00111     <span class="keyword">static</span> <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qstring.html">QString</a> <a class="code" href="class_t_s_p_solver_1_1_c_t_s_p_solver.html#a71d04cbead3508cdff606a5ccc79e59e" title="Returns CTSPSolver&amp;#39;s version ID.">getVersionId</a>();
145<a name="l00112"></a>00112
146<a name="l00113"></a>00113     <a class="code" href="class_t_s_p_solver_1_1_c_t_s_p_solver.html#a71bebe073ed5149a4558a779410a2e6b" title="Constructs CTSPSolver object.">CTSPSolver</a>(<a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qobject.html">QObject</a> *<a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qobject.html#parent">parent</a> = NULL);
147<a name="l00114"></a>00114     <span class="keywordtype">void</span> <a class="code" href="class_t_s_p_solver_1_1_c_t_s_p_solver.html#a3ef198959f1b4c32b84fbd5222f8b796" title="Cleans up the object and frees up memory used by the solution tree.">cleanup</a>(<span class="keywordtype">bool</span> processEvents = <span class="keyword">false</span>);
148<a name="l00115"></a>00115     <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qstring.html">QString</a> <a class="code" href="class_t_s_p_solver_1_1_c_t_s_p_solver.html#a8897c0737ef2451ae606c38113477521" title="Returns the sorted optimal path, starting from City 1.">getSortedPath</a>(<span class="keyword">const</span> <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qstring.html">QString</a> &amp;city, <span class="keyword">const</span> <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qstring.html">QString</a> &amp;separator = <span class="stringliteral">&quot; -&gt; &quot;</span>) <span class="keyword">const</span>;
149<a name="l00116"></a>00116     <span class="keywordtype">int</span> <a class="code" href="class_t_s_p_solver_1_1_c_t_s_p_solver.html#a721973cc992b62750aae6fd3ab65773d" title="Returns a total number of steps in the current solution.">getTotalSteps</a>() <span class="keyword">const</span>;
150<a name="l00117"></a>00117     <span class="keywordtype">bool</span> <a class="code" href="class_t_s_p_solver_1_1_c_t_s_p_solver.html#a2b82ac68b981c47a3261f4e4e9ecd2bd" title="Indicates whether or not the solution is definitely optimal.">isOptimal</a>() <span class="keyword">const</span>;
151<a name="l00118"></a>00118     <a class="code" href="struct_t_s_p_solver_1_1_s_step.html" title="This structure represents one step of solving.">SStep</a> *<a class="code" href="class_t_s_p_solver_1_1_c_t_s_p_solver.html#ab8a5a387deebffd898577dba31a95099" title="Solves the given task.">solve</a>(<span class="keywordtype">int</span> numCities, <span class="keyword">const</span> <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qlist.html">TMatrix</a> &amp;task);
152<a name="l00119"></a>00119     <span class="keywordtype">bool</span> <a class="code" href="class_t_s_p_solver_1_1_c_t_s_p_solver.html#a6cce9079d60735f92037c98d6d361a82" title="Indicates whether or not the solution process was canceled.">wasCanceled</a>() <span class="keyword">const</span>;
153<a name="l00120"></a>00120     ~<a class="code" href="class_t_s_p_solver_1_1_c_t_s_p_solver.html" title="This class solves Travelling Salesman Problem task.">CTSPSolver</a>();
154<a name="l00121"></a>00121
155<a name="l00122"></a>00122 <span class="keyword">public</span> slots:
156<a name="l00123"></a>00123     <span class="keywordtype">void</span> <a class="code" href="class_t_s_p_solver_1_1_c_t_s_p_solver.html#a46a3da58d4bb9431bea2c915ceaf1eea" title="Cancels the solution process.">cancel</a>();
157<a name="l00124"></a>00124
158<a name="l00125"></a>00125 signals:
159<a name="l00130"></a>00130     <span class="keywordtype">void</span> <a class="code" href="class_t_s_p_solver_1_1_c_t_s_p_solver.html#a5e02867f053089a3e096f6baa70499a2" title="This signal is emitted once every time a part of the route is found.">routePartFound</a>(<span class="keywordtype">int</span> n);
160<a name="l00131"></a>00131
161<a name="l00132"></a>00132 <span class="keyword">private</span>:
162<a name="l00133"></a>00133     <span class="keywordtype">bool</span> mayNotBeOptimal, canceled;
163<a name="l00134"></a>00134     <span class="keywordtype">int</span> nCities, total;
164<a name="l00135"></a>00135     <a class="code" href="struct_t_s_p_solver_1_1_s_step.html" title="This structure represents one step of solving.">SStep</a> *root;
165<a name="l00136"></a>00136     <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qhash.html">QHash&lt;int,int&gt;</a> route;
166<a name="l00137"></a>00137     <span class="keyword">mutable</span> <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qmutex.html">QMutex</a> mutex;
167<a name="l00138"></a>00138
168<a name="l00139"></a>00139     <span class="keywordtype">double</span> align(<a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qlist.html">TMatrix</a> &amp;matrix);
169<a name="l00140"></a>00140     <span class="keywordtype">void</span> deleteTree(<a class="code" href="struct_t_s_p_solver_1_1_s_step.html" title="This structure represents one step of solving.">SStep</a> *&amp;root, <span class="keywordtype">bool</span> processEvents = <span class="keyword">false</span>);
170<a name="l00141"></a>00141     <span class="keywordtype">void</span> denormalize(<a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qlist.html">TMatrix</a> &amp;matrix) <span class="keyword">const</span>;
171<a name="l00142"></a>00142     <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qlist.html">QList&lt;SStep::SCandidate&gt;</a> findCandidate(<span class="keyword">const</span> <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qlist.html">TMatrix</a> &amp;matrix, <span class="keywordtype">int</span> &amp;nRow, <span class="keywordtype">int</span> &amp;nCol) <span class="keyword">const</span>;
172<a name="l00143"></a>00143     <span class="keywordtype">double</span> findMinInCol(<span class="keywordtype">int</span> nCol, <span class="keyword">const</span> <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qlist.html">TMatrix</a> &amp;matrix, <span class="keywordtype">int</span> exr = -1) <span class="keyword">const</span>;
173<a name="l00144"></a>00144     <span class="keywordtype">double</span> findMinInRow(<span class="keywordtype">int</span> nRow, <span class="keyword">const</span> <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qlist.html">TMatrix</a> &amp;matrix, <span class="keywordtype">int</span> exc = -1) <span class="keyword">const</span>;
174<a name="l00145"></a>00145     <span class="keywordtype">void</span> finishRoute();
175<a name="l00146"></a>00146     <span class="keywordtype">bool</span> hasSubCycles(<span class="keywordtype">int</span> nRow, <span class="keywordtype">int</span> nCol) <span class="keyword">const</span>;
176<a name="l00147"></a>00147     <span class="keywordtype">void</span> normalize(<a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qlist.html">TMatrix</a> &amp;matrix) <span class="keyword">const</span>;
177<a name="l00148"></a>00148     <span class="keywordtype">void</span> subCol(<a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qlist.html">TMatrix</a> &amp;matrix, <span class="keywordtype">int</span> nCol, <span class="keywordtype">double</span> val);
178<a name="l00149"></a>00149     <span class="keywordtype">void</span> subRow(<a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qlist.html">TMatrix</a> &amp;matrix, <span class="keywordtype">int</span> nRow, <span class="keywordtype">double</span> val);
179<a name="l00150"></a>00150 };
180<a name="l00151"></a>00151
181<a name="l00152"></a>00152 }
182<a name="l00153"></a>00153
183<a name="l00154"></a>00154 <span class="preprocessor">#ifdef DEBUG</span>
184<a name="l00155"></a>00155 <span class="preprocessor"></span><a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qdebug.html">QDebug</a> operator&lt;&lt;(<a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qdebug.html">QDebug</a> dbg, <span class="keyword">const</span> <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qlist.html">TSPSolver::TMatrix</a> &amp;matrix);
185<a name="l00156"></a>00156 <a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qdebug.html">QDebug</a> operator&lt;&lt;(<a class="codeRef" doxygen="qt-4.6.tag:http://doc.trolltech.com/4.6/" href="http://doc.trolltech.com/4.6/qdebug.html">QDebug</a> dbg, <span class="keyword">const</span> <a class="code" href="struct_t_s_p_solver_1_1_s_step_1_1_s_candidate.html" title="A structure that represents a candidate for branching.">TSPSolver::SStep::SCandidate</a> &amp;candidate);
186<a name="l00157"></a>00157 <span class="preprocessor">#endif // DEBUG</span>
187<a name="l00158"></a>00158 <span class="preprocessor"></span>
188<a name="l00159"></a>00159 <span class="preprocessor">#endif // TSPSOLVER_H</span>
[68]189</pre></div></div>
190<!--- window showing the filter options -->
191<div id="MSearchSelectWindow"
192     onmouseover="return searchBox.OnSearchSelectShow()"
193     onmouseout="return searchBox.OnSearchSelectHide()"
194     onkeydown="return searchBox.OnSearchSelectKey(event)">
[112]195<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&nbsp;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&nbsp;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&nbsp;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&nbsp;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&nbsp;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&nbsp;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&nbsp;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&nbsp;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&nbsp;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&nbsp;</span>Defines</a></div>
[68]196
197<!-- iframe showing the search results (closed by default) -->
198<div id="MSearchResultsWindow">
199<iframe src="" frameborder="0" 
200        name="MSearchResults" id="MSearchResults">
201</iframe>
202</div>
203
[112]204<hr size="1"/><address style="text-align: right;"><small>Generated on Wed Apr 28 02:47:10 2010 for TSPSG: TSP Solver and Generator by&nbsp;
[68]205<a href="http://www.doxygen.org/index.html">
206<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
207</body>
208</html>
Note: See TracBrowser for help on using the repository browser.