summary |
shortlog |
changelog |
graph |
tags |
bookmarks |
branches |
files |
changeset |
raw | bz2 | zip | gz |
help

author | Alpar Juttner <alpar@cs.elte.hu> |

Mon, 07 Jan 2008 19:22:09 +0100 | |

changeset 40 | 8f4e8273a458 |

parent 39 | 0a01d811071f |

child 41 | b11737922197 |

Several doc files ported from svn -r3436

- groups.dox contains several incomlete references

- groups.dox contains several incomlete references

doc/coding_style.dox | file | annotate | diff | comparison | revisions | |

doc/dirs.dox | file | annotate | diff | comparison | revisions | |

doc/groups.dox | file | annotate | diff | comparison | revisions | |

doc/license.dox | file | annotate | diff | comparison | revisions | |

doc/mainpage.dox | file | annotate | diff | comparison | revisions | |

doc/namespaces.dox | file | annotate | diff | comparison | revisions | |

doc/template.h | file | annotate | diff | comparison | revisions |

1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/doc/coding_style.dox Mon Jan 07 19:22:09 2008 +0100 1.3 @@ -0,0 +1,118 @@ 1.4 +/* -*- C++ -*- 1.5 + * 1.6 + * This file is a part of LEMON, a generic C++ optimization library 1.7 + * 1.8 + * Copyright (C) 2003-2008 1.9 + * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport 1.10 + * (Egervary Research Group on Combinatorial Optimization, EGRES). 1.11 + * 1.12 + * Permission to use, modify and distribute this software is granted 1.13 + * provided that this copyright notice appears in all copies. For 1.14 + * precise terms see the accompanying LICENSE file. 1.15 + * 1.16 + * This software is provided "AS IS" with no warranty of any kind, 1.17 + * express or implied, and with no claim as to its suitability for any 1.18 + * purpose. 1.19 + * 1.20 + */ 1.21 + 1.22 +/*! 1.23 + 1.24 +\page coding_style LEMON Coding Style 1.25 + 1.26 +\section naming_conv Naming Conventions 1.27 + 1.28 +In order to make development easier we have made some conventions 1.29 +according to coding style. These include names of types, classes, 1.30 +functions, variables, constants and exceptions. If these conventions 1.31 +are met in one's code then it is easier to read and maintain 1.32 +it. Please comply with these conventions if you want to contribute 1.33 +developing LEMON library. 1.34 + 1.35 +\note When the coding style requires the capitalization of an abbreviation, 1.36 +only the first letter should be upper case. 1.37 + 1.38 +\code 1.39 +XmlReader 1.40 +\endcode 1.41 + 1.42 + 1.43 +\warning In some cases we diverge from these rules. 1.44 +This primary done because STL uses different naming convention and 1.45 +in certain cases 1.46 +it is beneficial to provide STL compatible interface. 1.47 + 1.48 +\subsection cs-files File Names 1.49 + 1.50 +The header file names should look like the following. 1.51 + 1.52 +\code 1.53 +header_file.h 1.54 +\endcode 1.55 + 1.56 +Note that all standard LEMON headers are located in the \c lemon subdirectory, 1.57 +so you should include them from C++ source like this: 1.58 + 1.59 +\code 1.60 +#include <lemon/header_file.h> 1.61 +\endcode 1.62 + 1.63 +The source code files use the same style and they have '.cc' extension. 1.64 + 1.65 +\code 1.66 +source_code.cc 1.67 +\endcode 1.68 + 1.69 +\subsection cs-class Classes and other types 1.70 + 1.71 +The name of a class or any type should look like the following. 1.72 + 1.73 +\code 1.74 +AllWordsCapitalizedWithoutUnderscores 1.75 +\endcode 1.76 + 1.77 +\subsection cs-func Methods and other functions 1.78 + 1.79 +The name of a function should look like the following. 1.80 + 1.81 +\code 1.82 +firstWordLowerCaseRestCapitalizedWithoutUnderscores 1.83 +\endcode 1.84 + 1.85 +\subsection cs-funcs Constants, Macros 1.86 + 1.87 +The names of constants and macros should look like the following. 1.88 + 1.89 +\code 1.90 +ALL_UPPER_CASE_WITH_UNDERSCORES 1.91 +\endcode 1.92 + 1.93 +\subsection cs-loc-var Class and instance member variables, auto variables 1.94 + 1.95 +The names of class and instance member variables and auto variables (=variables used locally in methods) should look like the following. 1.96 + 1.97 +\code 1.98 +all_lower_case_with_underscores 1.99 +\endcode 1.100 + 1.101 +\subsection cs-excep Exceptions 1.102 + 1.103 +When writing exceptions please comply the following naming conventions. 1.104 + 1.105 +\code 1.106 +ClassNameEndsWithException 1.107 +\endcode 1.108 + 1.109 +or 1.110 + 1.111 +\code 1.112 +ClassNameEndsWithError 1.113 +\endcode 1.114 + 1.115 +\section header-template Template Header File 1.116 + 1.117 +Each LEMON header file should look like this: 1.118 + 1.119 +\include template.h 1.120 + 1.121 +*/

2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 2.2 +++ b/doc/dirs.dox Mon Jan 07 19:22:09 2008 +0100 2.3 @@ -0,0 +1,79 @@ 2.4 +/* -*- C++ -*- 2.5 + * 2.6 + * This file is a part of LEMON, a generic C++ optimization library 2.7 + * 2.8 + * Copyright (C) 2003-2008 2.9 + * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport 2.10 + * (Egervary Research Group on Combinatorial Optimization, EGRES). 2.11 + * 2.12 + * Permission to use, modify and distribute this software is granted 2.13 + * provided that this copyright notice appears in all copies. For 2.14 + * precise terms see the accompanying LICENSE file. 2.15 + * 2.16 + * This software is provided "AS IS" with no warranty of any kind, 2.17 + * express or implied, and with no claim as to its suitability for any 2.18 + * purpose. 2.19 + * 2.20 + */ 2.21 + 2.22 +/** 2.23 +\dir demo 2.24 +\brief A collection of demo application. 2.25 + 2.26 +This directory contains several simple demo application, mainly 2.27 +for educational purposes. 2.28 +*/ 2.29 + 2.30 +/** 2.31 +\dir doc 2.32 +\brief Auxiliary (and the whole generated) documentation. 2.33 + 2.34 +Auxiliary (and the whole generated) documentation. 2.35 +*/ 2.36 + 2.37 +/** 2.38 +\dir test 2.39 +\brief Test programs. 2.40 + 2.41 +This directory contains several test programs that check the consistency 2.42 +of the code. 2.43 +*/ 2.44 + 2.45 +/** 2.46 +\dir tools 2.47 +\brief Some useful executables 2.48 + 2.49 +This directory contains the sources of some useful complete executables. 2.50 + 2.51 +*/ 2.52 + 2.53 + 2.54 + 2.55 +/** 2.56 +\dir lemon 2.57 +\brief Base include directory of LEMON 2.58 + 2.59 +This is the base directory of lemon includes, so each include file must be 2.60 +prefixed with this, e.g. 2.61 +\code 2.62 +#include<lemon/list_graph.h> 2.63 +#include<lemon/dijkstra.h> 2.64 +\endcode 2.65 +*/ 2.66 + 2.67 +/** 2.68 +\dir concepts 2.69 +\brief Concept descriptors and checking classes 2.70 + 2.71 +This directory contains the concept descriptors and concept checkers. As a user 2.72 +you typically don't have to deal with these files. 2.73 +*/ 2.74 + 2.75 +/** 2.76 +\dir bits 2.77 +\brief Implementation helper files 2.78 + 2.79 +This directory contains some helper classes to implement graphs, maps and 2.80 +some other classes. As a user you typically don't have to deal with these 2.81 +files. 2.82 +*/

3.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 3.2 +++ b/doc/groups.dox Mon Jan 07 19:22:09 2008 +0100 3.3 @@ -0,0 +1,585 @@ 3.4 +/* -*- C++ -*- 3.5 + * 3.6 + * This file is a part of LEMON, a generic C++ optimization library 3.7 + * 3.8 + * Copyright (C) 2003-2008 3.9 + * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport 3.10 + * (Egervary Research Group on Combinatorial Optimization, EGRES). 3.11 + * 3.12 + * Permission to use, modify and distribute this software is granted 3.13 + * provided that this copyright notice appears in all copies. For 3.14 + * precise terms see the accompanying LICENSE file. 3.15 + * 3.16 + * This software is provided "AS IS" with no warranty of any kind, 3.17 + * express or implied, and with no claim as to its suitability for any 3.18 + * purpose. 3.19 + * 3.20 + */ 3.21 + 3.22 +/** 3.23 +@defgroup datas Data Structures 3.24 +This group describes the several graph structures implemented in LEMON. 3.25 +*/ 3.26 + 3.27 +/** 3.28 +@defgroup graphs Graph Structures 3.29 +@ingroup datas 3.30 +\brief Graph structures implemented in LEMON. 3.31 + 3.32 +The implementation of combinatorial algorithms heavily relies on 3.33 +efficient graph implementations. LEMON offers data structures which are 3.34 +planned to be easily used in an experimental phase of implementation studies, 3.35 +and thereafter the program code can be made efficient by small modifications. 3.36 + 3.37 +The most efficient implementation of diverse applications require the 3.38 +usage of different physical graph implementations. These differences 3.39 +appear in the size of graph we require to handle, memory or time usage 3.40 +limitations or in the set of operations through which the graph can be 3.41 +accessed. LEMON provides several physical graph structures to meet 3.42 +the diverging requirements of the possible users. In order to save on 3.43 +running time or on memory usage, some structures may fail to provide 3.44 +some graph features like edge or node deletion. 3.45 + 3.46 +Alteration of standard containers need a very limited number of 3.47 +operations, these together satisfy the everyday requirements. 3.48 +In the case of graph structures, different operations are needed which do 3.49 +not alter the physical graph, but gives another view. If some nodes or 3.50 +edges have to be hidden or the reverse oriented graph have to be used, then 3.51 +this is the case. It also may happen that in a flow implementation 3.52 +the residual graph can be accessed by another algorithm, or a node-set 3.53 +is to be shrunk for another algorithm. 3.54 +LEMON also provides a variety of graphs for these requirements called 3.55 +\ref graph_adaptors "graph adaptors". Adaptors cannot be used alone but only 3.56 +in conjunction with other graph representation. 3.57 + 3.58 +You are free to use the graph structure that fit your requirements 3.59 +the best, most graph algorithms and auxiliary data structures can be used 3.60 +with any graph structures. 3.61 +*/ 3.62 + 3.63 +/** 3.64 +@defgroup semi_adaptors Semi-Adaptors Classes for Graphs 3.65 +@ingroup graphs 3.66 +\brief Graph types between real graphs and graph adaptors. 3.67 + 3.68 +Graph types between real graphs and graph adaptors. These classes wrap 3.69 +graphs to give new functionality as the adaptors do it. On the other 3.70 +hand they are not light-weight structures as the adaptors. 3.71 +*/ 3.72 + 3.73 +/** 3.74 +@defgroup maps Maps 3.75 +@ingroup datas 3.76 +\brief Some special purpose map to make life easier. 3.77 + 3.78 +LEMON provides several special maps that e.g. combine 3.79 +new maps from existing ones. 3.80 +*/ 3.81 + 3.82 +/** 3.83 +@defgroup graph_maps Graph Maps 3.84 +@ingroup maps 3.85 +\brief Special Graph-Related Maps. 3.86 + 3.87 +These maps are specifically designed to assign values to the nodes and edges of 3.88 +graphs. 3.89 +*/ 3.90 + 3.91 + 3.92 +/** 3.93 +\defgroup map_adaptors Map Adaptors 3.94 +\ingroup maps 3.95 +\brief Tools to create new maps from existing ones 3.96 + 3.97 +Map adaptors are used to create "implicit" maps from other maps. 3.98 + 3.99 +Most of them are \ref lemon::concepts::ReadMap "ReadMap"s. They can 3.100 +make arithmetic operations between one or two maps (negation, scaling, 3.101 +addition, multiplication etc.) or e.g. convert a map to another one 3.102 +of different Value type. 3.103 + 3.104 +The typical usage of this classes is the passing implicit maps to 3.105 +algorithms. If a function type algorithm is called then the function 3.106 +type map adaptors can be used comfortable. For example let's see the 3.107 +usage of map adaptors with the \c graphToEps() function: 3.108 +\code 3.109 + Color nodeColor(int deg) { 3.110 + if (deg >= 2) { 3.111 + return Color(0.5, 0.0, 0.5); 3.112 + } else if (deg == 1) { 3.113 + return Color(1.0, 0.5, 1.0); 3.114 + } else { 3.115 + return Color(0.0, 0.0, 0.0); 3.116 + } 3.117 + } 3.118 + 3.119 + Graph::NodeMap<int> degree_map(graph); 3.120 + 3.121 + graphToEps(graph, "graph.eps") 3.122 + .coords(coords).scaleToA4().undirected() 3.123 + .nodeColors(composeMap(functorMap(nodeColor), degree_map)) 3.124 + .run(); 3.125 +\endcode 3.126 +The \c functorMap() function makes an \c int to \c Color map from the 3.127 +\e nodeColor() function. The \c composeMap() compose the \e degree_map 3.128 +and the previous created map. The composed map is proper function to 3.129 +get color of each node. 3.130 + 3.131 +The usage with class type algorithms is little bit harder. In this 3.132 +case the function type map adaptors can not be used, because the 3.133 +function map adaptors give back temporarly objects. 3.134 +\code 3.135 + Graph graph; 3.136 + 3.137 + typedef Graph::EdgeMap<double> DoubleEdgeMap; 3.138 + DoubleEdgeMap length(graph); 3.139 + DoubleEdgeMap speed(graph); 3.140 + 3.141 + typedef DivMap<DoubleEdgeMap, DoubleEdgeMap> TimeMap; 3.142 + 3.143 + TimeMap time(length, speed); 3.144 + 3.145 + Dijkstra<Graph, TimeMap> dijkstra(graph, time); 3.146 + dijkstra.run(source, target); 3.147 +\endcode 3.148 + 3.149 +We have a length map and a maximum speed map on a graph. The minimum 3.150 +time to pass the edge can be calculated as the division of the two 3.151 +maps which can be done implicitly with the \c DivMap template 3.152 +class. We use the implicit minimum time map as the length map of the 3.153 +\c Dijkstra algorithm. 3.154 +*/ 3.155 + 3.156 +/** 3.157 +@defgroup matrices Matrices 3.158 +@ingroup datas 3.159 +\brief Two dimensional data storages. 3.160 + 3.161 +Two dimensional data storages. 3.162 +*/ 3.163 + 3.164 +/** 3.165 +@defgroup paths Path Structures 3.166 +@ingroup datas 3.167 +\brief Path structures implemented in LEMON. 3.168 + 3.169 +LEMON provides flexible data structures 3.170 +to work with paths. 3.171 + 3.172 +All of them have similar interfaces, and it can be copied easily with 3.173 +assignment operator and copy constructor. This make it easy and 3.174 +efficient to have e.g. the Dijkstra algorithm to store its result in 3.175 +any kind of path structure. 3.176 + 3.177 +\sa lemon::concepts::Path 3.178 + 3.179 +*/ 3.180 + 3.181 +/** 3.182 +@defgroup auxdat Auxiliary Data Structures 3.183 +@ingroup datas 3.184 +\brief Some data structures implemented in LEMON. 3.185 + 3.186 +This group describes the data structures implemented in LEMON in 3.187 +order to make it easier to implement combinatorial algorithms. 3.188 +*/ 3.189 + 3.190 + 3.191 +/** 3.192 +@defgroup algs Algorithms 3.193 +\brief This group describes the several algorithms 3.194 +implemented in LEMON. 3.195 + 3.196 +This group describes the several algorithms 3.197 +implemented in LEMON. 3.198 +*/ 3.199 + 3.200 +/** 3.201 +@defgroup search Graph Search 3.202 +@ingroup algs 3.203 +\brief This group contains the common graph 3.204 +search algorithms. 3.205 + 3.206 +This group contains the common graph 3.207 +search algorithms like Bfs and Dfs. 3.208 +*/ 3.209 + 3.210 +/** 3.211 +@defgroup shortest_path Shortest Path algorithms 3.212 +@ingroup algs 3.213 +\brief This group describes the algorithms 3.214 +for finding shortest paths. 3.215 + 3.216 +This group describes the algorithms for finding shortest paths in 3.217 +graphs. 3.218 + 3.219 +*/ 3.220 + 3.221 +/** 3.222 +@defgroup max_flow Maximum Flow algorithms 3.223 +@ingroup algs 3.224 +\brief This group describes the algorithms for finding maximum flows. 3.225 + 3.226 +This group describes the algorithms for finding maximum flows and 3.227 +feasible circulations. 3.228 + 3.229 +The maximum flow problem is to find a flow between a single-source and 3.230 +single-target that is maximum. Formally, there is \f$G=(V,A)\f$ 3.231 +directed graph, an \f$c_a:A\rightarrow\mathbf{R}^+_0\f$ capacity 3.232 +function and given \f$s, t \in V\f$ source and target node. The 3.233 +maximum flow is the solution of the next optimization problem: 3.234 + 3.235 +\f[ 0 \le f_a \le c_a \f] 3.236 +\f[ \sum_{v\in\delta^{-}(u)}f_{vu}=\sum_{v\in\delta^{+}(u)}f_{uv} \quad u \in V \setminus \{s,t\}\f] 3.237 +\f[ \max \sum_{v\in\delta^{+}(s)}f_{uv} - \sum_{v\in\delta^{-}(s)}f_{vu}\f] 3.238 + 3.239 +The lemon contains several algorithms for solve maximum flow problems: 3.240 +- \ref lemon::EdmondsKarp "Edmonds-Karp" 3.241 +- \ref lemon::Preflow "Goldberg's Preflow algorithm" 3.242 +- \ref lemon::DinitzSleatorTarjan "Dinitz's blocking flow algorithm with dynamic tree" 3.243 +- \ref lemon::GoldbergTarjan "Preflow algorithm with dynamic trees" 3.244 + 3.245 +In most cases the \ref lemon::Preflow "preflow" algorithm provides the 3.246 +fastest method to compute the maximum flow. All impelementations 3.247 +provides functions for query the minimum cut, which is the dual linear 3.248 +programming probelm of the maximum flow. 3.249 + 3.250 +*/ 3.251 + 3.252 +/** 3.253 +@defgroup min_cost_flow Minimum Cost Flow algorithms 3.254 +@ingroup algs 3.255 + 3.256 +\brief This group describes the algorithms 3.257 +for finding minimum cost flows and circulations. 3.258 + 3.259 +This group describes the algorithms for finding minimum cost flows and 3.260 +circulations. 3.261 +*/ 3.262 + 3.263 +/** 3.264 +@defgroup min_cut Minimum Cut algorithms 3.265 +@ingroup algs 3.266 + 3.267 +\brief This group describes the algorithms for finding minimum cut in 3.268 +graphs. 3.269 + 3.270 +This group describes the algorithms for finding minimum cut in graphs. 3.271 + 3.272 +The minimum cut problem is to find a non-empty and non-complete 3.273 +\f$X\f$ subset of the vertices with minimum overall capacity on 3.274 +outgoing arcs. Formally, there is \f$G=(V,A)\f$ directed graph, an 3.275 +\f$c_a:A\rightarrow\mathbf{R}^+_0\f$ capacity function. The minimum 3.276 +cut is the solution of the next optimization problem: 3.277 + 3.278 +\f[ \min_{X \subset V, X\not\in \{\emptyset, V\}}\sum_{uv\in A, u\in X, v\not\in X}c_{uv}\f] 3.279 + 3.280 +The lemon contains several algorithms related to minimum cut problems: 3.281 + 3.282 +- \ref lemon::HaoOrlin "Hao-Orlin algorithm" for calculate minimum cut 3.283 + in directed graphs 3.284 +- \ref lemon::NagamochiIbaraki "Nagamochi-Ibaraki algorithm" for 3.285 + calculate minimum cut in undirected graphs 3.286 +- \ref lemon::GomoryHuTree "Gomory-Hu tree computation" for calculate all 3.287 + pairs minimum cut in undirected graphs 3.288 + 3.289 +If you want to find minimum cut just between two distinict nodes, 3.290 +please see the \ref max_flow "Maximum Flow page". 3.291 + 3.292 +*/ 3.293 + 3.294 +/** 3.295 +@defgroup graph_prop Connectivity and other graph properties 3.296 +@ingroup algs 3.297 +\brief This group describes the algorithms 3.298 +for discover the graph properties 3.299 + 3.300 +This group describes the algorithms for discover the graph properties 3.301 +like connectivity, bipartiteness, euler property, simplicity, etc... 3.302 + 3.303 +\image html edge_biconnected_components.png 3.304 +\image latex edge_biconnected_components.eps "bi-edge-connected components" width=\textwidth 3.305 +*/ 3.306 + 3.307 +/** 3.308 +@defgroup planar Planarity embedding and drawing 3.309 +@ingroup algs 3.310 +\brief This group contains algorithms for planarity embedding and drawing 3.311 + 3.312 +This group contains algorithms for planarity checking, embedding and drawing. 3.313 + 3.314 +\image html planar.png 3.315 +\image latex planar.eps "Plane graph" width=\textwidth 3.316 +*/ 3.317 + 3.318 +/** 3.319 +@defgroup matching Matching algorithms 3.320 +@ingroup algs 3.321 +\brief This group describes the algorithms 3.322 +for find matchings in graphs and bipartite graphs. 3.323 + 3.324 +This group provides some algorithm objects and function to calculate 3.325 +matchings in graphs and bipartite graphs. The general matching problem is 3.326 +finding a subset of the edges which does not shares common endpoints. 3.327 + 3.328 +There are several different algorithms for calculate matchings in 3.329 +graphs. The matching problems in bipartite graphs are generally 3.330 +easier than in general graphs. The goal of the matching optimization 3.331 +can be the finding maximum cardinality, maximum weight or minimum cost 3.332 +matching. The search can be constrained to find perfect or 3.333 +maximum cardinality matching. 3.334 + 3.335 +Lemon contains the next algorithms: 3.336 +- \ref lemon::MaxBipartiteMatching "MaxBipartiteMatching" Hopcroft-Karp 3.337 + augmenting path algorithm for calculate maximum cardinality matching in 3.338 + bipartite graphs 3.339 +- \ref lemon::PrBipartiteMatching "PrBipartiteMatching" Push-Relabel 3.340 + algorithm for calculate maximum cardinality matching in bipartite graphs 3.341 +- \ref lemon::MaxWeightedBipartiteMatching "MaxWeightedBipartiteMatching" 3.342 + Successive shortest path algorithm for calculate maximum weighted matching 3.343 + and maximum weighted bipartite matching in bipartite graph 3.344 +- \ref lemon::MinCostMaxBipartiteMatching "MinCostMaxBipartiteMatching" 3.345 + Successive shortest path algorithm for calculate minimum cost maximum 3.346 + matching in bipartite graph 3.347 +- \ref lemon::MaxMatching "MaxMatching" Edmond's blossom shrinking algorithm 3.348 + for calculate maximum cardinality matching in general graph 3.349 +- \ref lemon::MaxWeightedMatching "MaxWeightedMatching" Edmond's blossom 3.350 + shrinking algorithm for calculate maximum weighted matching in general 3.351 + graph 3.352 +- \ref lemon::MaxWeightedPerfectMatching "MaxWeightedPerfectMatching" 3.353 + Edmond's blossom shrinking algorithm for calculate maximum weighted 3.354 + perfect matching in general graph 3.355 + 3.356 +\image html bipartite_matching.png 3.357 +\image latex bipartite_matching.eps "Bipartite Matching" width=\textwidth 3.358 + 3.359 +*/ 3.360 + 3.361 +/** 3.362 +@defgroup spantree Minimum Spanning Tree algorithms 3.363 +@ingroup algs 3.364 +\brief This group contains the algorithms for finding a minimum cost spanning 3.365 +tree in a graph 3.366 + 3.367 +This group contains the algorithms for finding a minimum cost spanning 3.368 +tree in a graph 3.369 +*/ 3.370 + 3.371 + 3.372 +/** 3.373 +@defgroup auxalg Auxiliary algorithms 3.374 +@ingroup algs 3.375 +\brief Some algorithms implemented in LEMON. 3.376 + 3.377 +This group describes the algorithms in LEMON in order to make 3.378 +it easier to implement complex algorithms. 3.379 +*/ 3.380 + 3.381 +/** 3.382 +@defgroup approx Approximation algorithms 3.383 +\brief Approximation algorithms 3.384 + 3.385 +Approximation and heuristic algorithms 3.386 +*/ 3.387 + 3.388 +/** 3.389 +@defgroup gen_opt_group General Optimization Tools 3.390 +\brief This group describes some general optimization frameworks 3.391 +implemented in LEMON. 3.392 + 3.393 +This group describes some general optimization frameworks 3.394 +implemented in LEMON. 3.395 + 3.396 +*/ 3.397 + 3.398 +/** 3.399 +@defgroup lp_group Lp and Mip solvers 3.400 +@ingroup gen_opt_group 3.401 +\brief Lp and Mip solver interfaces for LEMON. 3.402 + 3.403 +This group describes Lp and Mip solver interfaces for LEMON. The 3.404 +various LP solvers could be used in the same manner with this 3.405 +interface. 3.406 + 3.407 +*/ 3.408 + 3.409 +/** 3.410 +@defgroup lp_utils Tools for Lp and Mip solvers 3.411 +@ingroup lp_group 3.412 +\brief This group adds some helper tools to the Lp and Mip solvers 3.413 +implemented in LEMON. 3.414 + 3.415 +This group adds some helper tools to general optimization framework 3.416 +implemented in LEMON. 3.417 +*/ 3.418 + 3.419 +/** 3.420 +@defgroup metah Metaheuristics 3.421 +@ingroup gen_opt_group 3.422 +\brief Metaheuristics for LEMON library. 3.423 + 3.424 +This group contains some metaheuristic optimization tools. 3.425 +*/ 3.426 + 3.427 +/** 3.428 +@defgroup utils Tools and Utilities 3.429 +\brief Tools and Utilities for Programming in LEMON 3.430 + 3.431 +Tools and Utilities for Programming in LEMON 3.432 +*/ 3.433 + 3.434 +/** 3.435 +@defgroup gutils Basic Graph Utilities 3.436 +@ingroup utils 3.437 +\brief This group describes some simple basic graph utilities. 3.438 + 3.439 +This group describes some simple basic graph utilities. 3.440 +*/ 3.441 + 3.442 +/** 3.443 +@defgroup misc Miscellaneous Tools 3.444 +@ingroup utils 3.445 +Here you can find several useful tools for development, 3.446 +debugging and testing. 3.447 +*/ 3.448 + 3.449 + 3.450 +/** 3.451 +@defgroup timecount Time measuring and Counting 3.452 +@ingroup misc 3.453 +Here you can find simple tools for measuring the performance 3.454 +of algorithms. 3.455 +*/ 3.456 + 3.457 +/** 3.458 +@defgroup graphbits Tools for Graph Implementation 3.459 +@ingroup utils 3.460 +\brief Tools to Make It Easier to Make Graphs. 3.461 + 3.462 +This group describes the tools that makes it easier to make graphs and 3.463 +the maps that dynamically update with the graph changes. 3.464 +*/ 3.465 + 3.466 +/** 3.467 +@defgroup exceptions Exceptions 3.468 +@ingroup utils 3.469 +This group contains the exceptions thrown by LEMON library 3.470 +*/ 3.471 + 3.472 +/** 3.473 +@defgroup io_group Input-Output 3.474 +\brief Several Graph Input-Output methods 3.475 + 3.476 +Here you can find tools for importing and exporting graphs 3.477 +and graph related data. Now it supports the LEMON format, the 3.478 +\c DIMACS format and the encapsulated postscript format. 3.479 +*/ 3.480 + 3.481 +/** 3.482 +@defgroup lemon_io Lemon Input-Output 3.483 +@ingroup io_group 3.484 +\brief Reading and writing LEMON format 3.485 + 3.486 +Methods for reading and writing LEMON format. More about this 3.487 +format you can find on the \ref graph-io-page "Graph Input-Output" 3.488 +tutorial pages. 3.489 +*/ 3.490 + 3.491 +/** 3.492 +@defgroup section_io Section readers and writers 3.493 +@ingroup lemon_io 3.494 +\brief Section readers and writers for lemon Input-Output. 3.495 + 3.496 +Here you can find which section readers and writers can attach to 3.497 +the LemonReader and LemonWriter. 3.498 +*/ 3.499 + 3.500 +/** 3.501 +@defgroup item_io Item Readers and Writers 3.502 +@ingroup lemon_io 3.503 +\brief Item readers and writers for lemon Input-Output. 3.504 + 3.505 +The Input-Output classes can handle more data type by example 3.506 +as map or attribute value. Each of these should be written and 3.507 +read some way. The module make possible to do this. 3.508 +*/ 3.509 + 3.510 +/** 3.511 +@defgroup eps_io Postscript exporting 3.512 +@ingroup io_group 3.513 +\brief General \c EPS drawer and graph exporter 3.514 + 3.515 +This group contains general \c EPS drawing methods and special 3.516 +graph exporting tools. 3.517 +*/ 3.518 + 3.519 + 3.520 +/** 3.521 +@defgroup concept Concepts 3.522 +\brief Skeleton classes and concept checking classes 3.523 + 3.524 +This group describes the data/algorithm skeletons and concept checking 3.525 +classes implemented in LEMON. 3.526 + 3.527 +The purpose of the classes in this group is fourfold. 3.528 + 3.529 +- These classes contain the documentations of the concepts. In order 3.530 + to avoid document multiplications, an implementation of a concept 3.531 + simply refers to the corresponding concept class. 3.532 + 3.533 +- These classes declare every functions, <tt>typedef</tt>s etc. an 3.534 + implementation of the concepts should provide, however completely 3.535 + without implementations and real data structures behind the 3.536 + interface. On the other hand they should provide nothing else. All 3.537 + the algorithms working on a data structure meeting a certain concept 3.538 + should compile with these classes. (Though it will not run properly, 3.539 + of course.) In this way it is easily to check if an algorithm 3.540 + doesn't use any extra feature of a certain implementation. 3.541 + 3.542 +- The concept descriptor classes also provide a <em>checker class</em> 3.543 + that makes it possible check whether a certain implementation of a 3.544 + concept indeed provides all the required features. 3.545 + 3.546 +- Finally, They can serve as a skeleton of a new implementation of a concept. 3.547 + 3.548 +*/ 3.549 + 3.550 + 3.551 +/** 3.552 +@defgroup graph_concepts Graph Structure Concepts 3.553 +@ingroup concept 3.554 +\brief Skeleton and concept checking classes for graph structures 3.555 + 3.556 +This group contains the skeletons and concept checking classes of LEMON's 3.557 +graph structures and helper classes used to implement these. 3.558 +*/ 3.559 + 3.560 +/* --- Unused group 3.561 +@defgroup experimental Experimental Structures and Algorithms 3.562 +This group contains some Experimental structures and algorithms. 3.563 +The stuff here is subject to change. 3.564 +*/ 3.565 + 3.566 +/** 3.567 +\anchor demoprograms 3.568 + 3.569 +@defgroup demos Demo programs 3.570 + 3.571 +Some demo programs are listed here. Their full source codes can be found in 3.572 +the \c demo subdirectory of the source tree. 3.573 + 3.574 +The standard compilation procedure (<tt>./configure;make</tt>) will compile 3.575 +them, as well. 3.576 + 3.577 +*/ 3.578 + 3.579 +/** 3.580 +@defgroup tools Standalone utility applications 3.581 + 3.582 +Some utility applications are listed here. 3.583 + 3.584 +The standard compilation procedure (<tt>./configure;make</tt>) will compile 3.585 +them, as well. 3.586 + 3.587 +*/ 3.588 +

4.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 4.2 +++ b/doc/license.dox Mon Jan 07 19:22:09 2008 +0100 4.3 @@ -0,0 +1,25 @@ 4.4 +/* -*- C++ -*- 4.5 + * 4.6 + * This file is a part of LEMON, a generic C++ optimization library 4.7 + * 4.8 + * Copyright (C) 2003-2008 4.9 + * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport 4.10 + * (Egervary Research Group on Combinatorial Optimization, EGRES). 4.11 + * 4.12 + * Permission to use, modify and distribute this software is granted 4.13 + * provided that this copyright notice appears in all copies. For 4.14 + * precise terms see the accompanying LICENSE file. 4.15 + * 4.16 + * This software is provided "AS IS" with no warranty of any kind, 4.17 + * express or implied, and with no claim as to its suitability for any 4.18 + * purpose. 4.19 + * 4.20 + */ 4.21 + 4.22 +/** 4.23 + 4.24 +\page license License Terms 4.25 + 4.26 +\verbinclude LICENSE 4.27 + 4.28 +*/

5.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 5.2 +++ b/doc/mainpage.dox Mon Jan 07 19:22:09 2008 +0100 5.3 @@ -0,0 +1,60 @@ 5.4 +/* -*- C++ -*- 5.5 + * 5.6 + * This file is a part of LEMON, a generic C++ optimization library 5.7 + * 5.8 + * Copyright (C) 2003-2008 5.9 + * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport 5.10 + * (Egervary Research Group on Combinatorial Optimization, EGRES). 5.11 + * 5.12 + * Permission to use, modify and distribute this software is granted 5.13 + * provided that this copyright notice appears in all copies. For 5.14 + * precise terms see the accompanying LICENSE file. 5.15 + * 5.16 + * This software is provided "AS IS" with no warranty of any kind, 5.17 + * express or implied, and with no claim as to its suitability for any 5.18 + * purpose. 5.19 + * 5.20 + */ 5.21 + 5.22 +/** 5.23 +\mainpage LEMON Documentation 5.24 + 5.25 +\section intro Introduction 5.26 + 5.27 +\subsection whatis What is LEMON 5.28 + 5.29 +LEMON stands for 5.30 +<b>L</b>ibrary of <b>E</b>fficient <b>M</b>odels 5.31 +and <b>O</b>ptimization in <b>N</b>etworks. 5.32 +It is a C++ template 5.33 +library aimed at combinatorial optimization tasks which 5.34 +often involve in working 5.35 +with graphs. 5.36 + 5.37 +<b> 5.38 +LEMON is an <a class="el" href="http://opensource.org/">open source</a> 5.39 +project. 5.40 +You are free to use it in your commercial or 5.41 +non-commercial applications under very permissive 5.42 +\ref license "license terms". 5.43 +</b> 5.44 + 5.45 +\subsection howtoread How to read the documentation 5.46 + 5.47 +If you want to get a quick start and see the most important features then 5.48 +take a look at our \ref quicktour 5.49 +"Quick Tour to LEMON" which will guide you along. 5.50 + 5.51 +If you already feel like using our library, see the page that tells you 5.52 +\ref getstart "How to start using LEMON". 5.53 + 5.54 +If you 5.55 +want to see how LEMON works, see 5.56 +some \ref demoprograms "demo programs"! 5.57 + 5.58 +If you know what you are looking for then try to find it under the 5.59 +<a class="el" href="modules.html">Modules</a> 5.60 +section. 5.61 + 5.62 + 5.63 +*/

6.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 6.2 +++ b/doc/namespaces.dox Mon Jan 07 19:22:09 2008 +0100 6.3 @@ -0,0 +1,30 @@ 6.4 +/* -*- C++ -*- 6.5 + * 6.6 + * This file is a part of LEMON, a generic C++ optimization library 6.7 + * 6.8 + * Copyright (C) 2003-2008 6.9 + * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport 6.10 + * (Egervary Research Group on Combinatorial Optimization, EGRES). 6.11 + * 6.12 + * Permission to use, modify and distribute this software is granted 6.13 + * provided that this copyright notice appears in all copies. For 6.14 + * precise terms see the accompanying LICENSE file. 6.15 + * 6.16 + * This software is provided "AS IS" with no warranty of any kind, 6.17 + * express or implied, and with no claim as to its suitability for any 6.18 + * purpose. 6.19 + * 6.20 + */ 6.21 + 6.22 +/// The namespace of LEMON 6.23 + 6.24 +/// The namespace of LEMON 6.25 +/// 6.26 +namespace lemon { 6.27 + 6.28 + /// The namespace of LEMON concepts and concept checking classes 6.29 + 6.30 + /// The namespace of LEMON concepts and concept checking classes 6.31 + /// 6.32 + namespace concepts {} 6.33 +}

7.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 7.2 +++ b/doc/template.h Mon Jan 07 19:22:09 2008 +0100 7.3 @@ -0,0 +1,22 @@ 7.4 +/* -*- C++ -*- 7.5 + * 7.6 + * This file is a part of LEMON, a generic C++ optimization library 7.7 + * 7.8 + * Copyright (C) 2003-2008 7.9 + * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport 7.10 + * (Egervary Research Group on Combinatorial Optimization, EGRES). 7.11 + * 7.12 + * Permission to use, modify and distribute this software is granted 7.13 + * provided that this copyright notice appears in all copies. For 7.14 + * precise terms see the accompanying LICENSE file. 7.15 + * 7.16 + * This software is provided "AS IS" with no warranty of any kind, 7.17 + * express or implied, and with no claim as to its suitability for any 7.18 + * purpose. 7.19 + * 7.20 + */ 7.21 + 7.22 +#ifndef LEMON_TEMPLATE_H 7.23 +#define LEMON_TEMPLATE_H 7.24 + 7.25 +#endif // LEMON_TEMPLATE_H