0
16
1
22
13
5
13
5
6
2
94
76
| 1 |
%!PS-Adobe-2.0 EPSF-2.0 |
|
| 2 |
%%Creator: LEMON, graphToEps() |
|
| 3 |
%%CreationDate: Fri Oct 19 18:32:32 2007 |
|
| 4 |
%%BoundingBox: 0 0 596 842 |
|
| 5 |
%%DocumentPaperSizes: a4 |
|
| 6 |
%%EndComments |
|
| 7 |
/lb { setlinewidth setrgbcolor newpath moveto
|
|
| 8 |
4 2 roll 1 index 1 index curveto stroke } bind def |
|
| 9 |
/l { setlinewidth setrgbcolor newpath moveto lineto stroke } bind def
|
|
| 10 |
/c { newpath dup 3 index add 2 index moveto 0 360 arc closepath } bind def
|
|
| 11 |
/sq { newpath 2 index 1 index add 2 index 2 index add moveto
|
|
| 12 |
2 index 1 index sub 2 index 2 index add lineto |
|
| 13 |
2 index 1 index sub 2 index 2 index sub lineto |
|
| 14 |
2 index 1 index add 2 index 2 index sub lineto |
|
| 15 |
closepath pop pop pop} bind def |
|
| 16 |
/di { newpath 2 index 1 index add 2 index moveto
|
|
| 17 |
2 index 2 index 2 index add lineto |
|
| 18 |
2 index 1 index sub 2 index lineto |
|
| 19 |
2 index 2 index 2 index sub lineto |
|
| 20 |
closepath pop pop pop} bind def |
|
| 21 |
/nc { 0 0 0 setrgbcolor 5 index 5 index 5 index c fill
|
|
| 22 |
setrgbcolor 1.1 div c fill |
|
| 23 |
} bind def |
|
| 24 |
/nsq { 0 0 0 setrgbcolor 5 index 5 index 5 index sq fill
|
|
| 25 |
setrgbcolor 1.1 div sq fill |
|
| 26 |
} bind def |
|
| 27 |
/ndi { 0 0 0 setrgbcolor 5 index 5 index 5 index di fill
|
|
| 28 |
setrgbcolor 1.1 div di fill |
|
| 29 |
} bind def |
|
| 30 |
/nfemale { 0 0 0 setrgbcolor 3 index 0.0909091 1.5 mul mul setlinewidth
|
|
| 31 |
newpath 5 index 5 index moveto 5 index 5 index 5 index 3.01 mul sub |
|
| 32 |
lineto 5 index 4 index .7 mul sub 5 index 5 index 2.2 mul sub moveto |
|
| 33 |
5 index 4 index .7 mul add 5 index 5 index 2.2 mul sub lineto stroke |
|
| 34 |
5 index 5 index 5 index c fill |
|
| 35 |
setrgbcolor 1.1 div c fill |
|
| 36 |
} bind def |
|
| 37 |
/nmale {
|
|
| 38 |
0 0 0 setrgbcolor 3 index 0.0909091 1.5 mul mul setlinewidth |
|
| 39 |
newpath 5 index 5 index moveto |
|
| 40 |
5 index 4 index 1 mul 1.5 mul add |
|
| 41 |
5 index 5 index 3 sqrt 1.5 mul mul add |
|
| 42 |
1 index 1 index lineto |
|
| 43 |
1 index 1 index 7 index sub moveto |
|
| 44 |
1 index 1 index lineto |
|
| 45 |
exch 5 index 3 sqrt .5 mul mul sub exch 5 index .5 mul sub lineto |
|
| 46 |
stroke |
|
| 47 |
5 index 5 index 5 index c fill |
|
| 48 |
setrgbcolor 1.1 div c fill |
|
| 49 |
} bind def |
|
| 50 |
/arrl 1 def |
|
| 51 |
/arrw 0.3 def |
|
| 52 |
/lrl { 2 index mul exch 2 index mul exch rlineto pop} bind def
|
|
| 53 |
/arr { setrgbcolor /y1 exch def /x1 exch def /dy exch def /dx exch def
|
|
| 54 |
/w exch def /len exch def |
|
| 55 |
newpath x1 dy w 2 div mul add y1 dx w 2 div mul sub moveto |
|
| 56 |
len w sub arrl sub dx dy lrl |
|
| 57 |
arrw dy dx neg lrl |
|
| 58 |
dx arrl w add mul dy w 2 div arrw add mul sub |
|
| 59 |
dy arrl w add mul dx w 2 div arrw add mul add rlineto |
|
| 60 |
dx arrl w add mul neg dy w 2 div arrw add mul sub |
|
| 61 |
dy arrl w add mul neg dx w 2 div arrw add mul add rlineto |
|
| 62 |
arrw dy dx neg lrl |
|
| 63 |
len w sub arrl sub neg dx dy lrl |
|
| 64 |
closepath fill } bind def |
|
| 65 |
/cshow { 2 index 2 index moveto dup stringwidth pop
|
|
| 66 |
neg 2 div fosi .35 mul neg rmoveto show pop pop} def |
|
| 67 |
|
|
| 68 |
gsave |
|
| 69 |
15 138.307 translate |
|
| 70 |
12.7843 dup scale |
|
| 71 |
90 rotate |
|
| 72 |
0.608112 -43.6081 translate |
|
| 73 |
%Edges: |
|
| 74 |
gsave |
|
| 75 |
9 31 9.5 30.5 10 30 0 0 0 0.091217 lb |
|
| 76 |
9 31 5.5 34.5 2 38 0 0 0 0.091217 lb |
|
| 77 |
9 31 25.5 16 42 1 0 0 0 0.091217 lb |
|
| 78 |
3 40 23 20.5 43 1 0 0 0 0.091217 lb |
|
| 79 |
3 40 22.5 20.5 42 1 0 0 0 0.091217 lb |
|
| 80 |
3 40 2.5 40.5 2 41 0 0 0 0.091217 lb |
|
| 81 |
13 25 10.5 24.5 8 24 0 0 0 0.091217 lb |
|
| 82 |
13 25 12 27 11 29 0 0 0 0.091217 lb |
|
| 83 |
3 4 2.5 3 2 2 0 0 0 0.091217 lb |
|
| 84 |
3 4 4.5 3 6 2 0 0 0 0.091217 lb |
|
| 85 |
6 25 7 24.5 8 24 0 0 0 0.091217 lb |
|
| 86 |
6 25 6 24.5 6 24 0 0 0 0.091217 lb |
|
| 87 |
34 2 33.5 2 33 2 0 0 0 0.091217 lb |
|
| 88 |
34 2 35 2 36 2 0 0 0 0.091217 lb |
|
| 89 |
6 8 16 9 26 10 0 0 0 0.091217 lb |
|
| 90 |
6 8 6 10.5 6 13 0 0 0 0.091217 lb |
|
| 91 |
6 8 6 7.5 6 7 0 0 0 0.091217 lb |
|
| 92 |
26 10 27.5 8.5 29 7 0 0 0 0.091217 lb |
|
| 93 |
26 10 27.5 9 29 8 0 0 0 0.091217 lb |
|
| 94 |
10 30 10.5 29.5 11 29 0 0 0 0.091217 lb |
|
| 95 |
8 24 7 23.5 6 23 0 0 0 0.091217 lb |
|
| 96 |
8 24 8 24.5 8 25 0 0 0 0.091217 lb |
|
| 97 |
33 2 32.5 2 32 2 0 0 0 0.091217 lb |
|
| 98 |
29 7 17.5 7 6 7 0 0 0 0.091217 lb |
|
| 99 |
2 2 1.5 22 1 42 0 0 0 0.091217 lb |
|
| 100 |
2 2 3.5 2 5 2 0 0 0 0.091217 lb |
|
| 101 |
21 15 13.5 14.5 6 14 0 0 0 0.091217 lb |
|
| 102 |
21 15 21 15.5 21 16 0 0 0 0.091217 lb |
|
| 103 |
1 42 0.5 42.5 0 43 0 0 0 0.091217 lb |
|
| 104 |
1 42 1.5 41.5 2 41 0 0 0 0.091217 lb |
|
| 105 |
6 15 6 15.5 6 16 0 0 0 0.091217 lb |
|
| 106 |
6 15 6 14.5 6 14 0 0 0 0.091217 lb |
|
| 107 |
43 1 22 0.5 1 0 0 0 0 0.091217 lb |
|
| 108 |
31 2 18.5 2 6 2 0 0 0 0.091217 lb |
|
| 109 |
31 2 31.5 2 32 2 0 0 0 0.091217 lb |
|
| 110 |
6 24 6 23.5 6 23 0 0 0 0.091217 lb |
|
| 111 |
6 16 6 16.5 6 17 0 0 0 0.091217 lb |
|
| 112 |
6 23 6 20 6 17 0 0 0 0.091217 lb |
|
| 113 |
6 2 5.5 2 5 2 0 0 0 0.091217 lb |
|
| 114 |
6 2 6 4.5 6 7 0 0 0 0.091217 lb |
|
| 115 |
0 43 0.5 21.5 1 0 0 0 0 0.091217 lb |
|
| 116 |
1 1 19.5 1.5 38 2 0 0 0 0.091217 lb |
|
| 117 |
1 1 1 0.5 1 0 0 0 0 0.091217 lb |
|
| 118 |
2 38 5.5 31.5 9 25 0 0 0 0.091217 lb |
|
| 119 |
25 13 15.5 13 6 13 0 0 0 0.091217 lb |
|
| 120 |
25 13 15.5 13.5 6 14 0 0 0 0.091217 lb |
|
| 121 |
8 25 8.5 25 9 25 0 0 0 0.091217 lb |
|
| 122 |
11 29 24.5 15.5 38 2 0 0 0 0.091217 lb |
|
| 123 |
6 17 11.5 18 17 19 0 0 0 0.091217 lb |
|
| 124 |
16 23 26.5 12.5 37 2 0 0 0 0.091217 lb |
|
| 125 |
16 23 18.5 19.5 21 16 0 0 0 0.091217 lb |
|
| 126 |
36 2 36.5 2 37 2 0 0 0 0.091217 lb |
|
| 127 |
36 2 32.5 5 29 8 0 0 0 0.091217 lb |
|
| 128 |
6 13 6 13.5 6 14 0 0 0 0.091217 lb |
|
| 129 |
37 2 37.5 2 38 2 0 0 0 0.091217 lb |
|
| 130 |
21 16 19 17.5 17 19 0 0 0 0.091217 lb |
|
| 131 |
grestore |
|
| 132 |
%Nodes: |
|
| 133 |
gsave |
|
| 134 |
29 8 0.304556 1 1 1 nc |
|
| 135 |
2 41 0.304556 1 1 1 nc |
|
| 136 |
6 7 0.304556 1 1 1 nc |
|
| 137 |
5 2 0.304556 1 1 1 nc |
|
| 138 |
17 19 0.304556 1 1 1 nc |
|
| 139 |
21 16 0.304556 1 1 1 nc |
|
| 140 |
1 0 0.304556 1 1 1 nc |
|
| 141 |
9 25 0.304556 1 1 1 nc |
|
| 142 |
6 14 0.304556 1 1 1 nc |
|
| 143 |
42 1 0.304556 1 1 1 nc |
|
| 144 |
38 2 0.304556 1 1 1 nc |
|
| 145 |
37 2 0.304556 1 1 1 nc |
|
| 146 |
6 13 0.304556 1 1 1 nc |
|
| 147 |
36 2 0.304556 1 1 1 nc |
|
| 148 |
16 23 0.304556 1 1 1 nc |
|
| 149 |
6 17 0.304556 1 1 1 nc |
|
| 150 |
11 29 0.304556 1 1 1 nc |
|
| 151 |
8 25 0.304556 1 1 1 nc |
|
| 152 |
32 2 0.304556 1 1 1 nc |
|
| 153 |
25 13 0.304556 1 1 1 nc |
|
| 154 |
2 38 0.304556 1 1 1 nc |
|
| 155 |
1 1 0.304556 1 1 1 nc |
|
| 156 |
0 43 0.304556 1 1 1 nc |
|
| 157 |
6 2 0.304556 1 1 1 nc |
|
| 158 |
6 23 0.304556 1 1 1 nc |
|
| 159 |
6 16 0.304556 1 1 1 nc |
|
| 160 |
6 24 0.304556 1 1 1 nc |
|
| 161 |
31 2 0.304556 1 1 1 nc |
|
| 162 |
43 1 0.304556 1 1 1 nc |
|
| 163 |
6 15 0.304556 1 1 1 nc |
|
| 164 |
1 42 0.304556 1 1 1 nc |
|
| 165 |
21 15 0.304556 1 1 1 nc |
|
| 166 |
2 2 0.304556 1 1 1 nc |
|
| 167 |
29 7 0.304556 1 1 1 nc |
|
| 168 |
33 2 0.304556 1 1 1 nc |
|
| 169 |
8 24 0.304556 1 1 1 nc |
|
| 170 |
10 30 0.304556 1 1 1 nc |
|
| 171 |
26 10 0.304556 1 1 1 nc |
|
| 172 |
6 8 0.304556 1 1 1 nc |
|
| 173 |
34 2 0.304556 1 1 1 nc |
|
| 174 |
6 25 0.304556 1 1 1 nc |
|
| 175 |
3 4 0.304556 1 1 1 nc |
|
| 176 |
13 25 0.304556 1 1 1 nc |
|
| 177 |
3 40 0.304556 1 1 1 nc |
|
| 178 |
9 31 0.304556 1 1 1 nc |
|
| 179 |
grestore |
|
| 180 |
grestore |
|
| 181 |
showpage |
| ... | ... |
@@ -175,1 +175,23 @@ |
| 175 | 175 |
Disable COIN-OR support. |
| 176 |
|
|
| 177 |
|
|
| 178 |
Makefile Variables |
|
| 179 |
================== |
|
| 180 |
|
|
| 181 |
Some Makefile variables are reserved by the GNU Coding Standards for |
|
| 182 |
the use of the "user" - the person building the package. For instance, |
|
| 183 |
CXX and CXXFLAGS are such variables, and have the same meaning as |
|
| 184 |
explained in the previous section. These variables can be set on the |
|
| 185 |
command line when invoking `make' like this: |
|
| 186 |
`make [VARIABLE=VALUE]...' |
|
| 187 |
|
|
| 188 |
WARNINGCXXFLAGS is a non-standard Makefile variable introduced by us |
|
| 189 |
to hold several compiler flags related to warnings. Its default value |
|
| 190 |
can be overridden when invoking `make'. For example to disable all |
|
| 191 |
warning flags use `make WARNINGCXXFLAGS='. |
|
| 192 |
|
|
| 193 |
In order to turn off a single flag from the default set of warning |
|
| 194 |
flags, you can use the CXXFLAGS variable, since this is passed after |
|
| 195 |
WARNINGCXXFLAGS. For example to turn off `-Wold-style-cast' (which is |
|
| 196 |
used by default when g++ is detected) you can use |
|
| 197 |
`make CXXFLAGS="-g -O2 -Wno-old-style-cast"'. |
| ... | ... |
@@ -28,2 +28,3 @@ |
| 28 | 28 |
COMMAND ${GHOSTSCRIPT_EXECUTABLE} ${GHOSTSCRIPT_OPTIONS} -r18 -sOutputFile=gen-images/nodeshape_4.png ${CMAKE_CURRENT_SOURCE_DIR}/images/nodeshape_4.eps
|
| 29 |
COMMAND ${GHOSTSCRIPT_EXECUTABLE} ${GHOSTSCRIPT_OPTIONS} -r18 -sOutputFile=gen-images/planar.png ${CMAKE_CURRENT_SOURCE_DIR}/images/planar.eps
|
|
| 29 | 30 |
COMMAND ${GHOSTSCRIPT_EXECUTABLE} ${GHOSTSCRIPT_OPTIONS} -r18 -sOutputFile=gen-images/strongly_connected_components.png ${CMAKE_CURRENT_SOURCE_DIR}/images/strongly_connected_components.eps
|
| ... | ... |
@@ -173,2 +173,7 @@ |
| 173 | 173 |
/// \ref concepts::Digraph::ArcMap "GR::ArcMap<int>". |
| 174 |
/// \tparam TR The traits class that defines various types used by the |
|
| 175 |
/// algorithm. By default, it is \ref BellmanFordDefaultTraits |
|
| 176 |
/// "BellmanFordDefaultTraits<GR, LEN>". |
|
| 177 |
/// In most cases, this parameter should not be set directly, |
|
| 178 |
/// consider to use the named template parameters instead. |
|
| 174 | 179 |
#ifdef DOXYGEN |
| ... | ... |
@@ -935,2 +940,5 @@ |
| 935 | 940 |
/// function, which makes it easier to use the algorithm. |
| 941 |
/// |
|
| 942 |
/// \tparam TR The traits class that defines various types used by the |
|
| 943 |
/// algorithm. |
|
| 936 | 944 |
template<class TR> |
| ... | ... |
@@ -123,2 +123,7 @@ |
| 123 | 123 |
///The default type is \ref ListDigraph. |
| 124 |
///\tparam TR The traits class that defines various types used by the |
|
| 125 |
///algorithm. By default, it is \ref BfsDefaultTraits |
|
| 126 |
///"BfsDefaultTraits<GR>". |
|
| 127 |
///In most cases, this parameter should not be set directly, |
|
| 128 |
///consider to use the named template parameters instead. |
|
| 124 | 129 |
#ifdef DOXYGEN |
| ... | ... |
@@ -959,2 +964,5 @@ |
| 959 | 964 |
/// which makes it easier to use the algorithm. |
| 965 |
/// |
|
| 966 |
/// \tparam TR The traits class that defines various types used by the |
|
| 967 |
/// algorithm. |
|
| 960 | 968 |
template<class TR> |
| ... | ... |
@@ -1297,7 +1305,7 @@ |
| 1297 | 1305 |
/// events, you should implement your own visitor class. |
| 1298 |
/// \tparam TR Traits class to set various data types used by the |
|
| 1299 |
/// algorithm. The default traits class is |
|
| 1300 |
/// \ref BfsVisitDefaultTraits "BfsVisitDefaultTraits<GR>". |
|
| 1301 |
/// See \ref BfsVisitDefaultTraits for the documentation of |
|
| 1302 |
/// |
|
| 1306 |
/// \tparam TR The traits class that defines various types used by the |
|
| 1307 |
/// algorithm. By default, it is \ref BfsVisitDefaultTraits |
|
| 1308 |
/// "BfsVisitDefaultTraits<GR>". |
|
| 1309 |
/// In most cases, this parameter should not be set directly, |
|
| 1310 |
/// consider to use the named template parameters instead. |
|
| 1303 | 1311 |
#ifdef DOXYGEN |
| ... | ... |
@@ -79,5 +79,10 @@ |
| 79 | 79 |
/// \tparam V The number type used for flow amounts, capacity bounds |
| 80 |
/// and supply values in the algorithm. By default it is \c int. |
|
| 80 |
/// and supply values in the algorithm. By default, it is \c int. |
|
| 81 | 81 |
/// \tparam C The number type used for costs and potentials in the |
| 82 |
/// algorithm. By default it is the same as \c V. |
|
| 82 |
/// algorithm. By default, it is the same as \c V. |
|
| 83 |
/// \tparam TR The traits class that defines various types used by the |
|
| 84 |
/// algorithm. By default, it is \ref CapacityScalingDefaultTraits |
|
| 85 |
/// "CapacityScalingDefaultTraits<GR, V, C>". |
|
| 86 |
/// In most cases, this parameter should not be set directly, |
|
| 87 |
/// consider to use the named template parameters instead. |
|
| 83 | 88 |
/// |
| ... | ... |
@@ -175,2 +175,7 @@ |
| 175 | 175 |
\ref concepts::Digraph::NodeMap "GR::NodeMap<UM::Value>". |
| 176 |
\tparam TR The traits class that defines various types used by the |
|
| 177 |
algorithm. By default, it is \ref CirculationDefaultTraits |
|
| 178 |
"CirculationDefaultTraits<GR, LM, UM, SM>". |
|
| 179 |
In most cases, this parameter should not be set directly, |
|
| 180 |
consider to use the named template parameters instead. |
|
| 176 | 181 |
*/ |
| ... | ... |
@@ -106,5 +106,10 @@ |
| 106 | 106 |
/// \tparam V The number type used for flow amounts, capacity bounds |
| 107 |
/// and supply values in the algorithm. By default it is \c int. |
|
| 107 |
/// and supply values in the algorithm. By default, it is \c int. |
|
| 108 | 108 |
/// \tparam C The number type used for costs and potentials in the |
| 109 |
/// algorithm. By default it is the same as \c V. |
|
| 109 |
/// algorithm. By default, it is the same as \c V. |
|
| 110 |
/// \tparam TR The traits class that defines various types used by the |
|
| 111 |
/// algorithm. By default, it is \ref CostScalingDefaultTraits |
|
| 112 |
/// "CostScalingDefaultTraits<GR, V, C>". |
|
| 113 |
/// In most cases, this parameter should not be set directly, |
|
| 114 |
/// consider to use the named template parameters instead. |
|
| 110 | 115 |
/// |
| ... | ... |
@@ -138,4 +143,3 @@ |
| 138 | 143 |
/// The large cost type used for internal computations. |
| 139 |
/// Using the \ref CostScalingDefaultTraits "default traits class", |
|
| 140 |
/// it is \c long \c long if the \c Cost type is integer, |
|
| 144 |
/// By default, it is \c long \c long if the \c Cost type is integer, |
|
| 141 | 145 |
/// otherwise it is \c double. |
| ... | ... |
@@ -123,2 +123,7 @@ |
| 123 | 123 |
///The default type is \ref ListDigraph. |
| 124 |
///\tparam TR The traits class that defines various types used by the |
|
| 125 |
///algorithm. By default, it is \ref DfsDefaultTraits |
|
| 126 |
///"DfsDefaultTraits<GR>". |
|
| 127 |
///In most cases, this parameter should not be set directly, |
|
| 128 |
///consider to use the named template parameters instead. |
|
| 124 | 129 |
#ifdef DOXYGEN |
| ... | ... |
@@ -889,2 +894,5 @@ |
| 889 | 894 |
/// which makes it easier to use the algorithm. |
| 895 |
/// |
|
| 896 |
/// \tparam TR The traits class that defines various types used by the |
|
| 897 |
/// algorithm. |
|
| 890 | 898 |
template<class TR> |
| ... | ... |
@@ -1239,7 +1247,7 @@ |
| 1239 | 1247 |
/// events, you should implement your own visitor class. |
| 1240 |
/// \tparam TR Traits class to set various data types used by the |
|
| 1241 |
/// algorithm. The default traits class is |
|
| 1242 |
/// \ref DfsVisitDefaultTraits "DfsVisitDefaultTraits<GR>". |
|
| 1243 |
/// See \ref DfsVisitDefaultTraits for the documentation of |
|
| 1244 |
/// |
|
| 1248 |
/// \tparam TR The traits class that defines various types used by the |
|
| 1249 |
/// algorithm. By default, it is \ref DfsVisitDefaultTraits |
|
| 1250 |
/// "DfsVisitDefaultTraits<GR>". |
|
| 1251 |
/// In most cases, this parameter should not be set directly, |
|
| 1252 |
/// consider to use the named template parameters instead. |
|
| 1245 | 1253 |
#ifdef DOXYGEN |
| ... | ... |
@@ -194,2 +194,7 @@ |
| 194 | 194 |
///concepts::Digraph::ArcMap "GR::ArcMap<int>". |
| 195 |
///\tparam TR The traits class that defines various types used by the |
|
| 196 |
///algorithm. By default, it is \ref DijkstraDefaultTraits |
|
| 197 |
///"DijkstraDefaultTraits<GR, LEN>". |
|
| 198 |
///In most cases, this parameter should not be set directly, |
|
| 199 |
///consider to use the named template parameters instead. |
|
| 195 | 200 |
#ifdef DOXYGEN |
| ... | ... |
@@ -1094,2 +1099,5 @@ |
| 1094 | 1099 |
/// which makes it easier to use the algorithm. |
| 1100 |
/// |
|
| 1101 |
/// \tparam TR The traits class that defines various types used by the |
|
| 1102 |
/// algorithm. |
|
| 1095 | 1103 |
template<class TR> |
| ... | ... |
@@ -108,2 +108,7 @@ |
| 108 | 108 |
/// map type is \ref concepts::Digraph::ArcMap "GR::ArcMap<int>". |
| 109 |
/// \tparam TR The traits class that defines various types used by the |
|
| 110 |
/// algorithm. By default, it is \ref HartmannOrlinDefaultTraits |
|
| 111 |
/// "HartmannOrlinDefaultTraits<GR, LEN>". |
|
| 112 |
/// In most cases, this parameter should not be set directly, |
|
| 113 |
/// consider to use the named template parameters instead. |
|
| 109 | 114 |
#ifdef DOXYGEN |
| ... | ... |
@@ -129,4 +134,3 @@ |
| 129 | 134 |
/// The large value type used for internal computations. |
| 130 |
/// Using the \ref HartmannOrlinDefaultTraits "default traits class", |
|
| 131 |
/// it is \c long \c long if the \c Value type is integer, |
|
| 135 |
/// By default, it is \c long \c long if the \c Value type is integer, |
|
| 132 | 136 |
/// otherwise it is \c double. |
| ... | ... |
@@ -108,2 +108,7 @@ |
| 108 | 108 |
/// map type is \ref concepts::Digraph::ArcMap "GR::ArcMap<int>". |
| 109 |
/// \tparam TR The traits class that defines various types used by the |
|
| 110 |
/// algorithm. By default, it is \ref HowardDefaultTraits |
|
| 111 |
/// "HowardDefaultTraits<GR, LEN>". |
|
| 112 |
/// In most cases, this parameter should not be set directly, |
|
| 113 |
/// consider to use the named template parameters instead. |
|
| 109 | 114 |
#ifdef DOXYGEN |
| ... | ... |
@@ -129,4 +134,3 @@ |
| 129 | 134 |
/// The large value type used for internal computations. |
| 130 |
/// Using the \ref HowardDefaultTraits "default traits class", |
|
| 131 |
/// it is \c long \c long if the \c Value type is integer, |
|
| 135 |
/// By default, it is \c long \c long if the \c Value type is integer, |
|
| 132 | 136 |
/// otherwise it is \c double. |
| ... | ... |
@@ -106,2 +106,7 @@ |
| 106 | 106 |
/// map type is \ref concepts::Digraph::ArcMap "GR::ArcMap<int>". |
| 107 |
/// \tparam TR The traits class that defines various types used by the |
|
| 108 |
/// algorithm. By default, it is \ref KarpDefaultTraits |
|
| 109 |
/// "KarpDefaultTraits<GR, LEN>". |
|
| 110 |
/// In most cases, this parameter should not be set directly, |
|
| 111 |
/// consider to use the named template parameters instead. |
|
| 107 | 112 |
#ifdef DOXYGEN |
| ... | ... |
@@ -127,4 +132,3 @@ |
| 127 | 132 |
/// The large value type used for internal computations. |
| 128 |
/// Using the \ref KarpDefaultTraits "default traits class", |
|
| 129 |
/// it is \c long \c long if the \c Value type is integer, |
|
| 133 |
/// By default, it is \c long \c long if the \c Value type is integer, |
|
| 130 | 134 |
/// otherwise it is \c double. |
| ... | ... |
@@ -114,6 +114,7 @@ |
| 114 | 114 |
/// concepts::Digraph::ArcMap "Digraph::ArcMap<int>". |
| 115 |
/// \param TR Traits class to set various data types used |
|
| 116 |
/// by the algorithm. The default traits class is |
|
| 117 |
/// \ |
|
| 115 |
/// \tparam TR The traits class that defines various types used by the |
|
| 116 |
/// algorithm. By default, it is \ref MinCostArborescenceDefaultTraits |
|
| 118 | 117 |
/// "MinCostArborescenceDefaultTraits<GR, CM>". |
| 118 |
/// In most cases, this parameter should not be set directly, |
|
| 119 |
/// consider to use the named template parameters instead. |
|
| 119 | 120 |
#ifndef DOXYGEN |
| ... | ... |
@@ -124,3 +125,3 @@ |
| 124 | 125 |
#else |
| 125 |
template <typename GR, typename CM, |
|
| 126 |
template <typename GR, typename CM, typename TR> |
|
| 126 | 127 |
#endif |
| ... | ... |
@@ -520,5 +520,5 @@ |
| 520 | 520 |
/// This function implements the Boyer-Myrvold algorithm for |
| 521 |
/// planarity checking of an undirected graph. It is a simplified |
|
| 521 |
/// planarity checking of an undirected simple graph. It is a simplified |
|
| 522 | 522 |
/// version of the PlanarEmbedding algorithm class because neither |
| 523 |
/// the embedding nor the |
|
| 523 |
/// the embedding nor the Kuratowski subdivisons are computed. |
|
| 524 | 524 |
template <typename GR> |
| ... | ... |
@@ -534,12 +534,13 @@ |
| 534 | 534 |
/// This class implements the Boyer-Myrvold algorithm for planar |
| 535 |
/// embedding of an undirected graph. The planar embedding is an |
|
| 535 |
/// embedding of an undirected simple graph. The planar embedding is an |
|
| 536 | 536 |
/// ordering of the outgoing edges of the nodes, which is a possible |
| 537 | 537 |
/// configuration to draw the graph in the plane. If there is not |
| 538 |
/// such ordering then the graph contains a \f$ K_5 \f$ (full graph |
|
| 539 |
/// with 5 nodes) or a \f$ K_{3,3} \f$ (complete bipartite graph on
|
|
| 540 |
/// |
|
| 538 |
/// such ordering then the graph contains a K<sub>5</sub> (full graph |
|
| 539 |
/// with 5 nodes) or a K<sub>3,3</sub> (complete bipartite graph on |
|
| 540 |
/// 3 Red and 3 Blue nodes) subdivision. |
|
| 541 | 541 |
/// |
| 542 | 542 |
/// The current implementation calculates either an embedding or a |
| 543 |
/// Kuratowski subdivision. The running time of the algorithm is |
|
| 544 |
/// \f$ O(n) \f$. |
|
| 543 |
/// Kuratowski subdivision. The running time of the algorithm is O(n). |
|
| 544 |
/// |
|
| 545 |
/// \see PlanarDrawing, checkPlanarity() |
|
| 545 | 546 |
template <typename Graph> |
| ... | ... |
@@ -593,3 +594,6 @@ |
| 593 | 594 |
|
| 594 |
/// \brief The map for |
|
| 595 |
/// \brief The map type for storing the embedding |
|
| 596 |
/// |
|
| 597 |
/// The map type for storing the embedding. |
|
| 598 |
/// \see embeddingMap() |
|
| 595 | 599 |
typedef typename Graph::template ArcMap<Arc> EmbeddingMap; |
| ... | ... |
@@ -598,4 +602,5 @@ |
| 598 | 602 |
/// |
| 599 |
/// \note The graph should be simple, i.e. parallel and loop arc |
|
| 600 |
/// free. |
|
| 603 |
/// Constructor. |
|
| 604 |
/// \pre The graph must be simple, i.e. it should not |
|
| 605 |
/// contain parallel or loop arcs. |
|
| 601 | 606 |
PlanarEmbedding(const Graph& graph) |
| ... | ... |
@@ -603,8 +608,8 @@ |
| 603 | 608 |
|
| 604 |
/// \brief |
|
| 609 |
/// \brief Run the algorithm. |
|
| 605 | 610 |
/// |
| 606 |
/// Runs the algorithm. |
|
| 607 |
/// \param kuratowski If the parameter is false, then the |
|
| 611 |
/// This function runs the algorithm. |
|
| 612 |
/// \param kuratowski If this parameter is set to \c false, then the |
|
| 608 | 613 |
/// algorithm does not compute a Kuratowski subdivision. |
| 609 |
///\return |
|
| 614 |
/// \return \c true if the graph is planar. |
|
| 610 | 615 |
bool run(bool kuratowski = true) {
|
| ... | ... |
@@ -701,5 +706,5 @@ |
| 701 | 706 |
|
| 702 |
/// \brief |
|
| 707 |
/// \brief Give back the successor of an arc |
|
| 703 | 708 |
/// |
| 704 |
/// |
|
| 709 |
/// This function gives back the successor of an arc. It makes |
|
| 705 | 710 |
/// possible to query the cyclic order of the outgoing arcs from |
| ... | ... |
@@ -710,6 +715,7 @@ |
| 710 | 715 |
|
| 711 |
/// \brief |
|
| 716 |
/// \brief Give back the calculated embedding map |
|
| 712 | 717 |
/// |
| 713 |
/// The returned map contains the successor of each arc in the |
|
| 714 |
/// graph. |
|
| 718 |
/// This function gives back the calculated embedding map, which |
|
| 719 |
/// contains the successor of each arc in the cyclic order of the |
|
| 720 |
/// outgoing arcs of its source node. |
|
| 715 | 721 |
const EmbeddingMap& embeddingMap() const {
|
| ... | ... |
@@ -718,9 +724,10 @@ |
| 718 | 724 |
|
| 719 |
/// \brief Gives back true if the undirected arc is in the |
|
| 720 |
/// kuratowski subdivision |
|
| 725 |
/// \brief Give back \c true if the given edge is in the Kuratowski |
|
| 726 |
/// subdivision |
|
| 721 | 727 |
/// |
| 722 |
/// Gives back true if the undirected arc is in the kuratowski |
|
| 723 |
/// subdivision |
|
| 724 |
/// \note The \c run() had to be called with true value. |
|
| 725 |
bool kuratowski(const Edge& edge) {
|
|
| 728 |
/// This function gives back \c true if the given edge is in the found |
|
| 729 |
/// Kuratowski subdivision. |
|
| 730 |
/// \pre The \c run() function must be called with \c true parameter |
|
| 731 |
/// before using this function. |
|
| 732 |
bool kuratowski(const Edge& edge) const {
|
|
| 726 | 733 |
return _kuratowski[edge]; |
| ... | ... |
@@ -2061,9 +2068,11 @@ |
| 2061 | 2068 |
/// The planar drawing algorithm calculates positions for the nodes |
| 2062 |
/// in the plane which coordinates satisfy that if the arcs are |
|
| 2063 |
/// represented with straight lines then they will not intersect |
|
| 2069 |
/// in the plane. These coordinates satisfy that if the edges are |
|
| 2070 |
/// represented with straight lines, then they will not intersect |
|
| 2064 | 2071 |
/// each other. |
| 2065 | 2072 |
/// |
| 2066 |
/// Scnyder's algorithm embeds the graph on \c (n-2,n-2) size grid, |
|
| 2067 |
/// i.e. each node will be located in the \c [0,n-2]x[0,n-2] square. |
|
| 2073 |
/// Scnyder's algorithm embeds the graph on an \c (n-2)x(n-2) size grid, |
|
| 2074 |
/// i.e. each node will be located in the \c [0..n-2]x[0..n-2] square. |
|
| 2068 | 2075 |
/// The time complexity of the algorithm is O(n). |
| 2076 |
/// |
|
| 2077 |
/// \see PlanarEmbedding |
|
| 2069 | 2078 |
template <typename Graph> |
| ... | ... |
@@ -2074,5 +2083,5 @@ |
| 2074 | 2083 |
|
| 2075 |
/// \brief The point type for |
|
| 2084 |
/// \brief The point type for storing coordinates |
|
| 2076 | 2085 |
typedef dim2::Point<int> Point; |
| 2077 |
/// \brief The map type for |
|
| 2086 |
/// \brief The map type for storing the coordinates of the nodes |
|
| 2078 | 2087 |
typedef typename Graph::template NodeMap<Point> PointMap; |
| ... | ... |
@@ -2083,3 +2092,4 @@ |
| 2083 | 2092 |
/// Constructor |
| 2084 |
/// \pre The graph |
|
| 2093 |
/// \pre The graph must be simple, i.e. it should not |
|
| 2094 |
/// contain parallel or loop arcs. |
|
| 2085 | 2095 |
PlanarDrawing(const Graph& graph) |
| ... | ... |
@@ -2368,6 +2378,6 @@ |
| 2368 | 2378 |
|
| 2369 |
/// \brief |
|
| 2379 |
/// \brief Calculate the node positions |
|
| 2370 | 2380 |
/// |
| 2371 |
/// This function calculates the node positions. |
|
| 2372 |
/// \return %True if the graph is planar. |
|
| 2381 |
/// This function calculates the node positions on the plane. |
|
| 2382 |
/// \return \c true if the graph is planar. |
|
| 2373 | 2383 |
bool run() {
|
| ... | ... |
@@ -2380,8 +2390,9 @@ |
| 2380 | 2390 |
|
| 2381 |
/// \brief |
|
| 2391 |
/// \brief Calculate the node positions according to a |
|
| 2382 | 2392 |
/// combinatorical embedding |
| 2383 | 2393 |
/// |
| 2384 |
/// This function calculates the node locations. The \c embedding |
|
| 2385 |
/// parameter should contain a valid combinatorical embedding, i.e. |
|
| 2386 |
/// |
|
| 2394 |
/// This function calculates the node positions on the plane. |
|
| 2395 |
/// The given \c embedding map should contain a valid combinatorical |
|
| 2396 |
/// embedding, i.e. a valid cyclic order of the arcs. |
|
| 2397 |
/// It can be computed using PlanarEmbedding. |
|
| 2387 | 2398 |
template <typename EmbeddingMap> |
| ... | ... |
@@ -2425,3 +2436,3 @@ |
| 2425 | 2436 |
/// |
| 2426 |
/// |
|
| 2437 |
/// This function returns the coordinate of the given node. |
|
| 2427 | 2438 |
Point operator[](const Node& node) const {
|
| ... | ... |
@@ -2430,5 +2441,6 @@ |
| 2430 | 2441 |
|
| 2431 |
/// \brief |
|
| 2442 |
/// \brief Return the grid embedding in a node map |
|
| 2432 | 2443 |
/// |
| 2433 |
/// |
|
| 2444 |
/// This function returns the grid embedding in a node map of |
|
| 2445 |
/// \c dim2::Point<int> coordinates. |
|
| 2434 | 2446 |
const PointMap& coords() const {
|
| ... | ... |
@@ -2472,8 +2484,8 @@ |
| 2472 | 2484 |
/// The graph coloring problem is the coloring of the graph nodes |
| 2473 |
/// that there are not adjacent nodes with the same color. The |
|
| 2474 |
/// planar graphs can be always colored with four colors, it is |
|
| 2475 |
/// |
|
| 2485 |
/// so that there are no adjacent nodes with the same color. The |
|
| 2486 |
/// planar graphs can always be colored with four colors, which is |
|
| 2487 |
/// proved by Appel and Haken. Their proofs provide a quadratic |
|
| 2476 | 2488 |
/// time algorithm for four coloring, but it could not be used to |
| 2477 |
/// implement efficient algorithm. The five and six coloring can be |
|
| 2478 |
/// made in linear time, but in this class the five coloring has |
|
| 2489 |
/// implement an efficient algorithm. The five and six coloring can be |
|
| 2490 |
/// made in linear time, but in this class, the five coloring has |
|
| 2479 | 2491 |
/// quadratic worst case time complexity. The two coloring (if |
| ... | ... |
@@ -2481,4 +2493,3 @@ |
| 2481 | 2493 |
/// implemented in \ref bipartitePartitions() function in LEMON. To |
| 2482 |
/// decide whether the planar graph is three colorable is |
|
| 2483 |
/// NP-complete. |
|
| 2494 |
/// decide whether a planar graph is three colorable is NP-complete. |
|
| 2484 | 2495 |
/// |
| ... | ... |
@@ -2487,4 +2498,4 @@ |
| 2487 | 2498 |
/// greedy coloring on the backward minimum outgoing order of nodes. |
| 2488 |
/// This order can be computed as in each phase the node with least |
|
| 2489 |
/// outgoing arcs to unprocessed nodes is chosen. This order |
|
| 2499 |
/// This order can be computed by selecting the node with least |
|
| 2500 |
/// outgoing arcs to unprocessed nodes in each phase. This order |
|
| 2490 | 2501 |
/// guarantees that when a node is chosen for coloring it has at |
| ... | ... |
@@ -2501,5 +2512,8 @@ |
| 2501 | 2512 |
|
| 2502 |
/// \brief The map type for |
|
| 2513 |
/// \brief The map type for storing color indices |
|
| 2503 | 2514 |
typedef typename Graph::template NodeMap<int> IndexMap; |
| 2504 |
/// \brief The map type for |
|
| 2515 |
/// \brief The map type for storing colors |
|
| 2516 |
/// |
|
| 2517 |
/// The map type for storing colors. |
|
| 2518 |
/// \see Palette, Color |
|
| 2505 | 2519 |
typedef ComposeMap<Palette, IndexMap> ColorMap; |
| ... | ... |
@@ -2508,4 +2522,5 @@ |
| 2508 | 2522 |
/// |
| 2509 |
/// Constructor |
|
| 2510 |
/// \pre The graph should be simple, i.e. loop and parallel arc free. |
|
| 2523 |
/// Constructor. |
|
| 2524 |
/// \pre The graph must be simple, i.e. it should not |
|
| 2525 |
/// contain parallel or loop arcs. |
|
| 2511 | 2526 |
PlanarColoring(const Graph& graph) |
| ... | ... |
@@ -2520,6 +2535,6 @@ |
| 2520 | 2535 |
|
| 2521 |
/// \brief |
|
| 2536 |
/// \brief Return the node map of color indices |
|
| 2522 | 2537 |
/// |
| 2523 |
/// Returns the \e NodeMap of color indexes. The values are in the |
|
| 2524 |
/// range \c [0..4] or \c [0..5] according to the coloring method. |
|
| 2538 |
/// This function returns the node map of color indices. The values are |
|
| 2539 |
/// in the range \c [0..4] or \c [0..5] according to the coloring method. |
|
| 2525 | 2540 |
IndexMap colorIndexMap() const {
|
| ... | ... |
@@ -2528,6 +2543,6 @@ |
| 2528 | 2543 |
|
| 2529 |
/// \brief |
|
| 2544 |
/// \brief Return the node map of colors |
|
| 2530 | 2545 |
/// |
| 2531 |
/// Returns the \e NodeMap of colors. The values are five or six |
|
| 2532 |
/// distinct \ref lemon::Color "colors". |
|
| 2546 |
/// This function returns the node map of colors. The values are among |
|
| 2547 |
/// five or six distinct \ref lemon::Color "colors". |
|
| 2533 | 2548 |
ColorMap colorMap() const {
|
| ... | ... |
@@ -2536,6 +2551,6 @@ |
| 2536 | 2551 |
|
| 2537 |
/// \brief |
|
| 2552 |
/// \brief Return the color index of the node |
|
| 2538 | 2553 |
/// |
| 2539 |
/// Returns the color index of the node. The values are in the |
|
| 2540 |
/// range \c [0..4] or \c [0..5] according to the coloring method. |
|
| 2554 |
/// This function returns the color index of the given node. The value is |
|
| 2555 |
/// in the range \c [0..4] or \c [0..5] according to the coloring method. |
|
| 2541 | 2556 |
int colorIndex(const Node& node) const {
|
| ... | ... |
@@ -2544,6 +2559,6 @@ |
| 2544 | 2559 |
|
| 2545 |
/// \brief |
|
| 2560 |
/// \brief Return the color of the node |
|
| 2546 | 2561 |
/// |
| 2547 |
/// Returns the color of the node. The values are five or six |
|
| 2548 |
/// distinct \ref lemon::Color "colors". |
|
| 2562 |
/// This function returns the color of the given node. The value is among |
|
| 2563 |
/// five or six distinct \ref lemon::Color "colors". |
|
| 2549 | 2564 |
Color color(const Node& node) const {
|
| ... | ... |
@@ -2553,3 +2568,3 @@ |
| 2553 | 2568 |
|
| 2554 |
/// \brief |
|
| 2569 |
/// \brief Calculate a coloring with at most six colors |
|
| 2555 | 2570 |
/// |
| ... | ... |
@@ -2557,6 +2572,6 @@ |
| 2557 | 2572 |
/// complexity of this variant is linear in the size of the graph. |
| 2558 |
/// \return %True when the algorithm could color the graph with six color. |
|
| 2559 |
/// If the algorithm fails, then the graph could not be planar. |
|
| 2560 |
/// \note This function can return true if the graph is not |
|
| 2561 |
/// planar but it can be colored with 6 colors. |
|
| 2573 |
/// \return \c true if the algorithm could color the graph with six colors. |
|
| 2574 |
/// If the algorithm fails, then the graph is not planar. |
|
| 2575 |
/// \note This function can return \c true if the graph is not |
|
| 2576 |
/// planar, but it can be colored with at most six colors. |
|
| 2562 | 2577 |
bool runSixColoring() {
|
| ... | ... |
@@ -2662,3 +2677,3 @@ |
| 2662 | 2677 |
|
| 2663 |
/// \brief |
|
| 2678 |
/// \brief Calculate a coloring with at most five colors |
|
| 2664 | 2679 |
/// |
| ... | ... |
@@ -2667,2 +2682,5 @@ |
| 2667 | 2682 |
/// quadratic in the size of the graph. |
| 2683 |
/// \param embedding This map should contain a valid combinatorical |
|
| 2684 |
/// embedding, i.e. a valid cyclic order of the arcs. |
|
| 2685 |
/// It can be computed using PlanarEmbedding. |
|
| 2668 | 2686 |
template <typename EmbeddingMap> |
| ... | ... |
@@ -2713,3 +2731,3 @@ |
| 2713 | 2731 |
|
| 2714 |
/// \brief |
|
| 2732 |
/// \brief Calculate a coloring with at most five colors |
|
| 2715 | 2733 |
/// |
| ... | ... |
@@ -2718,3 +2736,3 @@ |
| 2718 | 2736 |
/// quadratic in the size of the graph. |
| 2719 |
/// \return |
|
| 2737 |
/// \return \c true if the graph is planar. |
|
| 2720 | 2738 |
bool runFiveColoring() {
|
| ... | ... |
@@ -121,2 +121,7 @@ |
| 121 | 121 |
/// type is \ref concepts::Digraph::ArcMap "GR::ArcMap<int>". |
| 122 |
/// \tparam TR The traits class that defines various types used by the |
|
| 123 |
/// algorithm. By default, it is \ref PreflowDefaultTraits |
|
| 124 |
/// "PreflowDefaultTraits<GR, CAP>". |
|
| 125 |
/// In most cases, this parameter should not be set directly, |
|
| 126 |
/// consider to use the named template parameters instead. |
|
| 122 | 127 |
#ifdef DOXYGEN |
0 comments (0 inline)