1
2
1
... | ... |
@@ -18,4 +18,4 @@ |
18 | 18 |
|
19 |
#ifndef LEMON_MIN_MEAN_CYCLE_H |
|
20 |
#define LEMON_MIN_MEAN_CYCLE_H |
|
19 |
#ifndef LEMON_HOWARD_H |
|
20 |
#define LEMON_HOWARD_H |
|
21 | 21 |
|
... | ... |
@@ -35,5 +35,5 @@ |
35 | 35 |
|
36 |
/// \brief Default traits class of |
|
36 |
/// \brief Default traits class of Howard class. |
|
37 | 37 |
/// |
38 |
/// Default traits class of |
|
38 |
/// Default traits class of Howard class. |
|
39 | 39 |
/// \tparam GR The type of the digraph. |
... | ... |
@@ -47,3 +47,3 @@ |
47 | 47 |
#endif |
48 |
struct |
|
48 |
struct HowardDefaultTraits |
|
49 | 49 |
{ |
... | ... |
@@ -77,3 +77,3 @@ |
77 | 77 |
template <typename GR, typename LEN> |
78 |
struct |
|
78 |
struct HowardDefaultTraits<GR, LEN, true> |
|
79 | 79 |
{ |
... | ... |
@@ -98,4 +98,4 @@ |
98 | 98 |
/// |
99 |
/// \ref MinMeanCycle implements Howard's algorithm for finding a |
|
100 |
/// directed cycle of minimum mean length (cost) in a digraph. |
|
99 |
/// This class implements Howard's policy iteration algorithm for finding |
|
100 |
/// a directed cycle of minimum mean length (cost) in a digraph. |
|
101 | 101 |
/// |
... | ... |
@@ -109,5 +109,5 @@ |
109 | 109 |
typename LEN = typename GR::template ArcMap<int>, |
110 |
typename TR = |
|
110 |
typename TR = HowardDefaultTraits<GR, LEN> > |
|
111 | 111 |
#endif |
112 |
class |
|
112 |
class Howard |
|
113 | 113 |
{ |
... | ... |
@@ -125,3 +125,3 @@ |
125 | 125 |
/// The large value type used for internal computations. |
126 |
/// Using the \ref |
|
126 |
/// Using the \ref HowardDefaultTraits "default traits class", |
|
127 | 127 |
/// it is \c long \c long if the \c Value type is integer, |
... | ... |
@@ -136,3 +136,3 @@ |
136 | 136 |
/// The path type of the found cycles. |
137 |
/// Using the \ref |
|
137 |
/// Using the \ref HowardDefaultTraits "default traits class", |
|
138 | 138 |
/// it is \ref lemon::Path "Path<Digraph>". |
... | ... |
@@ -140,3 +140,3 @@ |
140 | 140 |
|
141 |
/// The \ref |
|
141 |
/// The \ref HowardDefaultTraits "traits class" of the algorithm |
|
142 | 142 |
typedef TR Traits; |
... | ... |
@@ -198,4 +198,4 @@ |
198 | 198 |
struct SetLargeValue |
199 |
: public MinMeanCycle<GR, LEN, SetLargeValueTraits<T> > { |
|
200 |
typedef MinMeanCycle<GR, LEN, SetLargeValueTraits<T> > Create; |
|
199 |
: public Howard<GR, LEN, SetLargeValueTraits<T> > { |
|
200 |
typedef Howard<GR, LEN, SetLargeValueTraits<T> > Create; |
|
201 | 201 |
}; |
... | ... |
@@ -216,4 +216,4 @@ |
216 | 216 |
struct SetPath |
217 |
: public MinMeanCycle<GR, LEN, SetPathTraits<T> > { |
|
218 |
typedef MinMeanCycle<GR, LEN, SetPathTraits<T> > Create; |
|
217 |
: public Howard<GR, LEN, SetPathTraits<T> > { |
|
218 |
typedef Howard<GR, LEN, SetPathTraits<T> > Create; |
|
219 | 219 |
}; |
... | ... |
@@ -230,4 +230,4 @@ |
230 | 230 |
/// \param length The lengths (costs) of the arcs. |
231 |
MinMeanCycle( const Digraph &digraph, |
|
232 |
const LengthMap &length ) : |
|
231 |
Howard( const Digraph &digraph, |
|
232 |
const LengthMap &length ) : |
|
233 | 233 |
_gr(digraph), _length(length), _cycle_path(NULL), _local_path(false), |
... | ... |
@@ -238,3 +238,3 @@ |
238 | 238 |
/// Destructor. |
239 |
~ |
|
239 |
~Howard() { |
|
240 | 240 |
if (_local_path) delete _cycle_path; |
... | ... |
@@ -256,3 +256,3 @@ |
256 | 256 |
/// \return <tt>(*this)</tt> |
257 |
|
|
257 |
Howard& cycle(Path &path) { |
|
258 | 258 |
if (_local_path) { |
... | ... |
@@ -561,3 +561,3 @@ |
561 | 561 |
|
562 |
}; //class |
|
562 |
}; //class Howard |
|
563 | 563 |
|
... | ... |
@@ -567,2 +567,2 @@ |
567 | 567 |
|
568 |
#endif // |
|
568 |
#endif //LEMON_HOWARD_H |
... | ... |
@@ -23,3 +23,3 @@ |
23 | 23 |
#include <lemon/lgf_reader.h> |
24 |
#include <lemon/ |
|
24 |
#include <lemon/howard.h> |
|
25 | 25 |
#include <lemon/path.h> |
... | ... |
@@ -143,4 +143,4 @@ |
143 | 143 |
typedef concepts::Digraph GR; |
144 |
typedef MinMeanCycle<GR, concepts::ReadMap<GR::Arc, int> > IntMmcAlg; |
|
145 |
typedef MinMeanCycle<GR, concepts::ReadMap<GR::Arc, float> > FloatMmcAlg; |
|
144 |
typedef Howard<GR, concepts::ReadMap<GR::Arc, int> > IntMmcAlg; |
|
145 |
typedef Howard<GR, concepts::ReadMap<GR::Arc, float> > FloatMmcAlg; |
|
146 | 146 |
|
... | ... |
@@ -176,6 +176,6 @@ |
176 | 176 |
|
177 |
checkMmcAlg<MinMeanCycle<GR, IntArcMap> >(gr, l1, c1, 6, 3); |
|
178 |
checkMmcAlg<MinMeanCycle<GR, IntArcMap> >(gr, l2, c2, 5, 2); |
|
179 |
checkMmcAlg<MinMeanCycle<GR, IntArcMap> >(gr, l3, c3, 0, 1); |
|
180 |
checkMmcAlg<MinMeanCycle<GR, IntArcMap> >(gr, l4, c4, -1, 1); |
|
177 |
checkMmcAlg<Howard<GR, IntArcMap> >(gr, l1, c1, 6, 3); |
|
178 |
checkMmcAlg<Howard<GR, IntArcMap> >(gr, l2, c2, 5, 2); |
|
179 |
checkMmcAlg<Howard<GR, IntArcMap> >(gr, l3, c3, 0, 1); |
|
180 |
checkMmcAlg<Howard<GR, IntArcMap> >(gr, l4, c4, -1, 1); |
|
181 | 181 |
} |
0 comments (0 inline)