Changes in doc/groups.dox [658:85cb3aa71cce:318:1e2d6ca80793] in lemon
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/groups.dox
r658 r318 3 3 * This file is a part of LEMON, a generic C++ optimization library. 4 4 * 5 * Copyright (C) 2003-200 95 * Copyright (C) 2003-2008 6 6 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport 7 7 * (Egervary Research Group on Combinatorial Optimization, EGRES). … … 17 17 */ 18 18 19 namespace lemon {20 21 19 /** 22 20 @defgroup datas Data Structures 23 This group contains the several data structures implemented in LEMON.21 This group describes the several data structures implemented in LEMON. 24 22 */ 25 23 … … 63 61 64 62 /** 65 @defgroup graph_adaptors Adaptor Classes for Graphs66 @ingroup graphs67 \brief Adaptor classes for digraphs and graphs68 69 This group contains several useful adaptor classes for digraphs and graphs.70 71 The main parts of LEMON are the different graph structures, generic72 graph algorithms, graph concepts, which couple them, and graph73 adaptors. While the previous notions are more or less clear, the74 latter one needs further explanation. Graph adaptors are graph classes75 which serve for considering graph structures in different ways.76 77 A short example makes this much clearer. Suppose that we have an78 instance \c g of a directed graph type, say ListDigraph and an algorithm79 \code80 template <typename Digraph>81 int algorithm(const Digraph&);82 \endcode83 is needed to run on the reverse oriented graph. It may be expensive84 (in time or in memory usage) to copy \c g with the reversed85 arcs. In this case, an adaptor class is used, which (according86 to LEMON \ref concepts::Digraph "digraph concepts") works as a digraph.87 The adaptor uses the original digraph structure and digraph operations when88 methods of the reversed oriented graph are called. This means that the adaptor89 have minor memory usage, and do not perform sophisticated algorithmic90 actions. The purpose of it is to give a tool for the cases when a91 graph have to be used in a specific alteration. If this alteration is92 obtained by a usual construction like filtering the node or the arc set or93 considering a new orientation, then an adaptor is worthwhile to use.94 To come back to the reverse oriented graph, in this situation95 \code96 template<typename Digraph> class ReverseDigraph;97 \endcode98 template class can be used. The code looks as follows99 \code100 ListDigraph g;101 ReverseDigraph<ListDigraph> rg(g);102 int result = algorithm(rg);103 \endcode104 During running the algorithm, the original digraph \c g is untouched.105 This techniques give rise to an elegant code, and based on stable106 graph adaptors, complex algorithms can be implemented easily.107 108 In flow, circulation and matching problems, the residual109 graph is of particular importance. Combining an adaptor implementing110 this with shortest path algorithms or minimum mean cycle algorithms,111 a range of weighted and cardinality optimization algorithms can be112 obtained. For other examples, the interested user is referred to the113 detailed documentation of particular adaptors.114 115 The behavior of graph adaptors can be very different. Some of them keep116 capabilities of the original graph while in other cases this would be117 meaningless. This means that the concepts that they meet depend118 on the graph adaptor, and the wrapped graph.119 For example, if an arc of a reversed digraph is deleted, this is carried120 out by deleting the corresponding arc of the original digraph, thus the121 adaptor modifies the original digraph.122 However in case of a residual digraph, this operation has no sense.123 124 Let us stand one more example here to simplify your work.125 ReverseDigraph has constructor126 \code127 ReverseDigraph(Digraph& digraph);128 \endcode129 This means that in a situation, when a <tt>const %ListDigraph&</tt>130 reference to a graph is given, then it have to be instantiated with131 <tt>Digraph=const %ListDigraph</tt>.132 \code133 int algorithm1(const ListDigraph& g) {134 ReverseDigraph<const ListDigraph> rg(g);135 return algorithm2(rg);136 }137 \endcode138 */139 140 /**141 63 @defgroup semi_adaptors Semi-Adaptor Classes for Graphs 142 64 @ingroup graphs 143 65 \brief Graph types between real graphs and graph adaptors. 144 66 145 This group contains some graph types between real graphs and graph adaptors.67 This group describes some graph types between real graphs and graph adaptors. 146 68 These classes wrap graphs to give new functionality as the adaptors do it. 147 69 On the other hand they are not light-weight structures as the adaptors. … … 153 75 \brief Map structures implemented in LEMON. 154 76 155 This group contains the map structures implemented in LEMON.77 This group describes the map structures implemented in LEMON. 156 78 157 79 LEMON provides several special purpose maps and map adaptors that e.g. combine … … 166 88 \brief Special graph-related maps. 167 89 168 This group contains maps that are specifically designed to assign 169 values to the nodes and arcs/edges of graphs. 170 171 If you are looking for the standard graph maps (\c NodeMap, \c ArcMap, 172 \c EdgeMap), see the \ref graph_concepts "Graph Structure Concepts". 90 This group describes maps that are specifically designed to assign 91 values to the nodes and arcs of graphs. 173 92 */ 174 93 … … 178 97 \brief Tools to create new maps from existing ones 179 98 180 This group contains map adaptors that are used to create "implicit"99 This group describes map adaptors that are used to create "implicit" 181 100 maps from other maps. 182 101 183 Most of them are \ref concepts::ReadMap "read-only maps".102 Most of them are \ref lemon::concepts::ReadMap "read-only maps". 184 103 They can make arithmetic and logical operations between one or two maps 185 104 (negation, shifting, addition, multiplication, logical 'and', 'or', … … 241 160 \brief Two dimensional data storages implemented in LEMON. 242 161 243 This group contains two dimensional data storages implemented in LEMON.162 This group describes two dimensional data storages implemented in LEMON. 244 163 */ 245 164 … … 249 168 \brief %Path structures implemented in LEMON. 250 169 251 This group contains the path structures implemented in LEMON.170 This group describes the path structures implemented in LEMON. 252 171 253 172 LEMON provides flexible data structures to work with paths. … … 265 184 \brief Auxiliary data structures implemented in LEMON. 266 185 267 This group contains some data structures implemented in LEMON in186 This group describes some data structures implemented in LEMON in 268 187 order to make it easier to implement combinatorial algorithms. 269 188 */ … … 271 190 /** 272 191 @defgroup algs Algorithms 273 \brief This group contains the several algorithms192 \brief This group describes the several algorithms 274 193 implemented in LEMON. 275 194 276 This group contains the several algorithms195 This group describes the several algorithms 277 196 implemented in LEMON. 278 197 */ … … 283 202 \brief Common graph search algorithms. 284 203 285 This group contains the common graph search algorithms, namely286 \e breadth-first \e search (BFS) and \e depth-first \e search (DFS).204 This group describes the common graph search algorithms like 205 Breadth-First Search (BFS) and Depth-First Search (DFS). 287 206 */ 288 207 … … 292 211 \brief Algorithms for finding shortest paths. 293 212 294 This group contains the algorithms for finding shortest paths in digraphs. 295 296 - \ref Dijkstra algorithm for finding shortest paths from a source node 297 when all arc lengths are non-negative. 298 - \ref BellmanFord "Bellman-Ford" algorithm for finding shortest paths 299 from a source node when arc lenghts can be either positive or negative, 300 but the digraph should not contain directed cycles with negative total 301 length. 302 - \ref FloydWarshall "Floyd-Warshall" and \ref Johnson "Johnson" algorithms 303 for solving the \e all-pairs \e shortest \e paths \e problem when arc 304 lenghts can be either positive or negative, but the digraph should 305 not contain directed cycles with negative total length. 306 - \ref Suurballe A successive shortest path algorithm for finding 307 arc-disjoint paths between two nodes having minimum total length. 213 This group describes the algorithms for finding shortest paths in graphs. 308 214 */ 309 215 … … 313 219 \brief Algorithms for finding maximum flows. 314 220 315 This group contains the algorithms for finding maximum flows and221 This group describes the algorithms for finding maximum flows and 316 222 feasible circulations. 317 223 318 The \e maximum \e flow \e problem is to find a flow of maximum value between 319 a single source and a single target. Formally, there is a \f$G=(V,A)\f$ 320 digraph, a \f$cap: A\rightarrow\mathbf{R}^+_0\f$ capacity function and 321 \f$s, t \in V\f$ source and target nodes. 322 A maximum flow is an \f$f: A\rightarrow\mathbf{R}^+_0\f$ solution of the 323 following optimization problem. 324 325 \f[ \max\sum_{sv\in A} f(sv) - \sum_{vs\in A} f(vs) \f] 326 \f[ \sum_{uv\in A} f(uv) = \sum_{vu\in A} f(vu) 327 \quad \forall u\in V\setminus\{s,t\} \f] 328 \f[ 0 \leq f(uv) \leq cap(uv) \quad \forall uv\in A \f] 224 The maximum flow problem is to find a flow between a single source and 225 a single target that is maximum. Formally, there is a \f$G=(V,A)\f$ 226 directed graph, an \f$c_a:A\rightarrow\mathbf{R}^+_0\f$ capacity 227 function and given \f$s, t \in V\f$ source and target node. The 228 maximum flow is the \f$f_a\f$ solution of the next optimization problem: 229 230 \f[ 0 \le f_a \le c_a \f] 231 \f[ \sum_{v\in\delta^{-}(u)}f_{vu}=\sum_{v\in\delta^{+}(u)}f_{uv} 232 \qquad \forall u \in V \setminus \{s,t\}\f] 233 \f[ \max \sum_{v\in\delta^{+}(s)}f_{uv} - \sum_{v\in\delta^{-}(s)}f_{vu}\f] 329 234 330 235 LEMON contains several algorithms for solving maximum flow problems: 331 - \ref EdmondsKarp Edmonds-Karp algorithm.332 - \ref Preflow Goldberg-Tarjan's preflow push-relabel algorithm.333 - \ref DinitzSleatorTarjan Dinitz's blocking flow algorithm with dynamic trees.334 - \ref GoldbergTarjan Preflow push-relabel algorithm with dynamic trees.335 336 In most cases the \ref Preflow "Preflow" algorithm provides the337 fastest method for computing a maximum flow. All implementations338 provides functions to also query the minimum cut, which is the dual339 pro blem of the maximum flow.236 - \ref lemon::EdmondsKarp "Edmonds-Karp" 237 - \ref lemon::Preflow "Goldberg's Preflow algorithm" 238 - \ref lemon::DinitzSleatorTarjan "Dinitz's blocking flow algorithm with dynamic trees" 239 - \ref lemon::GoldbergTarjan "Preflow algorithm with dynamic trees" 240 241 In most cases the \ref lemon::Preflow "Preflow" algorithm provides the 242 fastest method to compute the maximum flow. All impelementations 243 provides functions to query the minimum cut, which is the dual linear 244 programming problem of the maximum flow. 340 245 */ 341 246 … … 346 251 \brief Algorithms for finding minimum cost flows and circulations. 347 252 348 This group contains the algorithms for finding minimum cost flows and253 This group describes the algorithms for finding minimum cost flows and 349 254 circulations. 350 351 The \e minimum \e cost \e flow \e problem is to find a feasible flow of352 minimum total cost from a set of supply nodes to a set of demand nodes353 in a network with capacity constraints (lower and upper bounds)354 and arc costs.355 Formally, let \f$G=(V,A)\f$ be a digraph,356 \f$lower, upper: A\rightarrow\mathbf{Z}^+_0\f$ denote the lower and357 upper bounds for the flow values on the arcs, for which358 \f$0 \leq lower(uv) \leq upper(uv)\f$ holds for all \f$uv\in A\f$.359 \f$cost: A\rightarrow\mathbf{Z}^+_0\f$ denotes the cost per unit flow360 on the arcs, and \f$sup: V\rightarrow\mathbf{Z}\f$ denotes the361 signed supply values of the nodes.362 If \f$sup(u)>0\f$, then \f$u\f$ is a supply node with \f$sup(u)\f$363 supply, if \f$sup(u)<0\f$, then \f$u\f$ is a demand node with364 \f$-sup(u)\f$ demand.365 A minimum cost flow is an \f$f: A\rightarrow\mathbf{Z}^+_0\f$ solution366 of the following optimization problem.367 368 \f[ \min\sum_{uv\in A} f(uv) \cdot cost(uv) \f]369 \f[ \sum_{uv\in A} f(uv) - \sum_{vu\in A} f(vu) \geq370 sup(u) \quad \forall u\in V \f]371 \f[ lower(uv) \leq f(uv) \leq upper(uv) \quad \forall uv\in A \f]372 373 The sum of the supply values, i.e. \f$\sum_{u\in V} sup(u)\f$ must be374 zero or negative in order to have a feasible solution (since the sum375 of the expressions on the left-hand side of the inequalities is zero).376 It means that the total demand must be greater or equal to the total377 supply and all the supplies have to be carried out from the supply nodes,378 but there could be demands that are not satisfied.379 If \f$\sum_{u\in V} sup(u)\f$ is zero, then all the supply/demand380 constraints have to be satisfied with equality, i.e. all demands381 have to be satisfied and all supplies have to be used.382 383 If you need the opposite inequalities in the supply/demand constraints384 (i.e. the total demand is less than the total supply and all the demands385 have to be satisfied while there could be supplies that are not used),386 then you could easily transform the problem to the above form by reversing387 the direction of the arcs and taking the negative of the supply values388 (e.g. using \ref ReverseDigraph and \ref NegMap adaptors).389 However \ref NetworkSimplex algorithm also supports this form directly390 for the sake of convenience.391 392 A feasible solution for this problem can be found using \ref Circulation.393 394 Note that the above formulation is actually more general than the usual395 definition of the minimum cost flow problem, in which strict equalities396 are required in the supply/demand contraints, i.e.397 398 \f[ \sum_{uv\in A} f(uv) - \sum_{vu\in A} f(vu) =399 sup(u) \quad \forall u\in V. \f]400 401 However if the sum of the supply values is zero, then these two problems402 are equivalent. So if you need the equality form, you have to ensure this403 additional contraint for the algorithms.404 405 The dual solution of the minimum cost flow problem is represented by node406 potentials \f$\pi: V\rightarrow\mathbf{Z}\f$.407 An \f$f: A\rightarrow\mathbf{Z}^+_0\f$ feasible solution of the problem408 is optimal if and only if for some \f$\pi: V\rightarrow\mathbf{Z}\f$409 node potentials the following \e complementary \e slackness optimality410 conditions hold.411 412 - For all \f$uv\in A\f$ arcs:413 - if \f$cost^\pi(uv)>0\f$, then \f$f(uv)=lower(uv)\f$;414 - if \f$lower(uv)<f(uv)<upper(uv)\f$, then \f$cost^\pi(uv)=0\f$;415 - if \f$cost^\pi(uv)<0\f$, then \f$f(uv)=upper(uv)\f$.416 - For all \f$u\in V\f$:417 - if \f$\sum_{uv\in A} f(uv) - \sum_{vu\in A} f(vu) \neq sup(u)\f$,418 then \f$\pi(u)=0\f$.419 420 Here \f$cost^\pi(uv)\f$ denotes the \e reduced \e cost of the arc421 \f$uv\in A\f$ with respect to the node potentials \f$\pi\f$, i.e.422 \f[ cost^\pi(uv) = cost(uv) + \pi(u) - \pi(v).\f]423 424 All algorithms provide dual solution (node potentials) as well425 if an optimal flow is found.426 427 LEMON contains several algorithms for solving minimum cost flow problems.428 - \ref NetworkSimplex Primal Network Simplex algorithm with various429 pivot strategies.430 - \ref CostScaling Push-Relabel and Augment-Relabel algorithms based on431 cost scaling.432 - \ref CapacityScaling Successive Shortest %Path algorithm with optional433 capacity scaling.434 - \ref CancelAndTighten The Cancel and Tighten algorithm.435 - \ref CycleCanceling Cycle-Canceling algorithms.436 437 Most of these implementations support the general inequality form of the438 minimum cost flow problem, but CancelAndTighten and CycleCanceling439 only support the equality form due to the primal method they use.440 441 In general NetworkSimplex is the most efficient implementation,442 but in special cases other algorithms could be faster.443 For example, if the total supply and/or capacities are rather small,444 CapacityScaling is usually the fastest algorithm (without effective scaling).445 255 */ 446 256 … … 451 261 \brief Algorithms for finding minimum cut in graphs. 452 262 453 This group contains the algorithms for finding minimum cut in graphs.454 455 The \e minimum \e cut \eproblem is to find a non-empty and non-complete456 \f$X\f$ subset of the nodes with minimum overall capacity on457 outgoing arcs. Formally, there is a \f$G=(V,A)\f$ digraph, a458 \f$c ap:A\rightarrow\mathbf{R}^+_0\f$ capacity function. The minimum263 This group describes the algorithms for finding minimum cut in graphs. 264 265 The minimum cut problem is to find a non-empty and non-complete 266 \f$X\f$ subset of the vertices with minimum overall capacity on 267 outgoing arcs. Formally, there is \f$G=(V,A)\f$ directed graph, an 268 \f$c_a:A\rightarrow\mathbf{R}^+_0\f$ capacity function. The minimum 459 269 cut is the \f$X\f$ solution of the next optimization problem: 460 270 461 271 \f[ \min_{X \subset V, X\not\in \{\emptyset, V\}} 462 \sum_{uv\in A, u\in X, v\not\in X}cap(uv)\f]272 \sum_{uv\in A, u\in X, v\not\in X}c_{uv}\f] 463 273 464 274 LEMON contains several algorithms related to minimum cut problems: 465 275 466 - \ref HaoOrlin "Hao-Orlin algorithm" for calculatingminimum cut467 in directed graphs .468 - \ref NagamochiIbaraki "Nagamochi-Ibaraki algorithm" for469 calculat ing minimum cut in undirected graphs.470 - \ref GomoryHu "Gomory-Hu tree computation" for calculating471 all-pairs minimum cut in undirected graphs.276 - \ref lemon::HaoOrlin "Hao-Orlin algorithm" to calculate minimum cut 277 in directed graphs 278 - \ref lemon::NagamochiIbaraki "Nagamochi-Ibaraki algorithm" to 279 calculate minimum cut in undirected graphs 280 - \ref lemon::GomoryHuTree "Gomory-Hu tree computation" to calculate all 281 pairs minimum cut in undirected graphs 472 282 473 283 If you want to find minimum cut just between two distinict nodes, 474 see the \ref max_flow "maximum flow problem".475 */ 476 477 /** 478 @defgroup graph_prop ertiesConnectivity and Other Graph Properties284 please see the \ref max_flow "Maximum Flow page". 285 */ 286 287 /** 288 @defgroup graph_prop Connectivity and Other Graph Properties 479 289 @ingroup algs 480 290 \brief Algorithms for discovering the graph properties 481 291 482 This group contains the algorithms for discovering the graph properties292 This group describes the algorithms for discovering the graph properties 483 293 like connectivity, bipartiteness, euler property, simplicity etc. 484 294 … … 492 302 \brief Algorithms for planarity checking, embedding and drawing 493 303 494 This group contains the algorithms for planarity checking,304 This group describes the algorithms for planarity checking, 495 305 embedding and drawing. 496 306 … … 504 314 \brief Algorithms for finding matchings in graphs and bipartite graphs. 505 315 506 This group contains the algorithms for calculating316 This group contains algorithm objects and functions to calculate 507 317 matchings in graphs and bipartite graphs. The general matching problem is 508 finding a subset of the edges for which each node has at most one incident 509 edge. 318 finding a subset of the arcs which does not shares common endpoints. 510 319 511 320 There are several different algorithms for calculate matchings in 512 321 graphs. The matching problems in bipartite graphs are generally 513 322 easier than in general graphs. The goal of the matching optimization 514 can be finding maximum cardinality, maximum weight or minimum cost323 can be the finding maximum cardinality, maximum weight or minimum cost 515 324 matching. The search can be constrained to find perfect or 516 325 maximum cardinality matching. 517 326 518 The matching algorithms implemented in LEMON: 519 - \ref MaxBipartiteMatching Hopcroft-Karp augmenting path algorithm 520 for calculating maximum cardinality matching in bipartite graphs. 521 - \ref PrBipartiteMatching Push-relabel algorithm 522 for calculating maximum cardinality matching in bipartite graphs. 523 - \ref MaxWeightedBipartiteMatching 524 Successive shortest path algorithm for calculating maximum weighted 525 matching and maximum weighted bipartite matching in bipartite graphs. 526 - \ref MinCostMaxBipartiteMatching 527 Successive shortest path algorithm for calculating minimum cost maximum 528 matching in bipartite graphs. 529 - \ref MaxMatching Edmond's blossom shrinking algorithm for calculating 530 maximum cardinality matching in general graphs. 531 - \ref MaxWeightedMatching Edmond's blossom shrinking algorithm for calculating 532 maximum weighted matching in general graphs. 533 - \ref MaxWeightedPerfectMatching 534 Edmond's blossom shrinking algorithm for calculating maximum weighted 535 perfect matching in general graphs. 327 LEMON contains the next algorithms: 328 - \ref lemon::MaxBipartiteMatching "MaxBipartiteMatching" Hopcroft-Karp 329 augmenting path algorithm for calculate maximum cardinality matching in 330 bipartite graphs 331 - \ref lemon::PrBipartiteMatching "PrBipartiteMatching" Push-Relabel 332 algorithm for calculate maximum cardinality matching in bipartite graphs 333 - \ref lemon::MaxWeightedBipartiteMatching "MaxWeightedBipartiteMatching" 334 Successive shortest path algorithm for calculate maximum weighted matching 335 and maximum weighted bipartite matching in bipartite graph 336 - \ref lemon::MinCostMaxBipartiteMatching "MinCostMaxBipartiteMatching" 337 Successive shortest path algorithm for calculate minimum cost maximum 338 matching in bipartite graph 339 - \ref lemon::MaxMatching "MaxMatching" Edmond's blossom shrinking algorithm 340 for calculate maximum cardinality matching in general graph 341 - \ref lemon::MaxWeightedMatching "MaxWeightedMatching" Edmond's blossom 342 shrinking algorithm for calculate maximum weighted matching in general 343 graph 344 - \ref lemon::MaxWeightedPerfectMatching "MaxWeightedPerfectMatching" 345 Edmond's blossom shrinking algorithm for calculate maximum weighted 346 perfect matching in general graph 536 347 537 348 \image html bipartite_matching.png … … 544 355 \brief Algorithms for finding a minimum cost spanning tree in a graph. 545 356 546 This group contains the algorithms for finding a minimum cost spanning547 tree in a graph .357 This group describes the algorithms for finding a minimum cost spanning 358 tree in a graph 548 359 */ 549 360 … … 553 364 \brief Auxiliary algorithms implemented in LEMON. 554 365 555 This group contains some algorithms implemented in LEMON366 This group describes some algorithms implemented in LEMON 556 367 in order to make it easier to implement complex algorithms. 557 368 */ … … 562 373 \brief Approximation algorithms. 563 374 564 This group contains the approximation and heuristic algorithms375 This group describes the approximation and heuristic algorithms 565 376 implemented in LEMON. 566 377 */ … … 568 379 /** 569 380 @defgroup gen_opt_group General Optimization Tools 570 \brief This group contains some general optimization frameworks381 \brief This group describes some general optimization frameworks 571 382 implemented in LEMON. 572 383 573 This group contains some general optimization frameworks384 This group describes some general optimization frameworks 574 385 implemented in LEMON. 575 386 */ … … 580 391 \brief Lp and Mip solver interfaces for LEMON. 581 392 582 This group contains Lp and Mip solver interfaces for LEMON. The393 This group describes Lp and Mip solver interfaces for LEMON. The 583 394 various LP solvers could be used in the same manner with this 584 395 interface. … … 599 410 \brief Metaheuristics for LEMON library. 600 411 601 This group contains some metaheuristic optimization tools.412 This group describes some metaheuristic optimization tools. 602 413 */ 603 414 … … 614 425 \brief Simple basic graph utilities. 615 426 616 This group contains some simple basic graph utilities.427 This group describes some simple basic graph utilities. 617 428 */ 618 429 … … 622 433 \brief Tools for development, debugging and testing. 623 434 624 This group contains several useful tools for development,435 This group describes several useful tools for development, 625 436 debugging and testing. 626 437 */ … … 631 442 \brief Simple tools for measuring the performance of algorithms. 632 443 633 This group contains simple tools for measuring the performance444 This group describes simple tools for measuring the performance 634 445 of algorithms. 635 446 */ … … 640 451 \brief Exceptions defined in LEMON. 641 452 642 This group contains the exceptions defined in LEMON.453 This group describes the exceptions defined in LEMON. 643 454 */ 644 455 … … 647 458 \brief Graph Input-Output methods 648 459 649 This group contains the tools for importing and exporting graphs460 This group describes the tools for importing and exporting graphs 650 461 and graph related data. Now it supports the \ref lgf-format 651 462 "LEMON Graph Format", the \c DIMACS format and the encapsulated … … 654 465 655 466 /** 656 @defgroup lemon_io LEMON Graph Format467 @defgroup lemon_io LEMON Input-Output 657 468 @ingroup io_group 658 469 \brief Reading and writing LEMON Graph Format. 659 470 660 This group contains methods for reading and writing471 This group describes methods for reading and writing 661 472 \ref lgf-format "LEMON Graph Format". 662 473 */ … … 667 478 \brief General \c EPS drawer and graph exporter 668 479 669 This group contains general \c EPS drawing methods and special480 This group describes general \c EPS drawing methods and special 670 481 graph exporting tools. 671 */672 673 /**674 @defgroup dimacs_group DIMACS format675 @ingroup io_group676 \brief Read and write files in DIMACS format677 678 Tools to read a digraph from or write it to a file in DIMACS format data.679 */680 681 /**682 @defgroup nauty_group NAUTY Format683 @ingroup io_group684 \brief Read \e Nauty format685 686 Tool to read graphs from \e Nauty format data.687 482 */ 688 483 … … 691 486 \brief Skeleton classes and concept checking classes 692 487 693 This group contains the data/algorithm skeletons and concept checking488 This group describes the data/algorithm skeletons and concept checking 694 489 classes implemented in LEMON. 695 490 … … 721 516 \brief Skeleton and concept checking classes for graph structures 722 517 723 This group contains the skeletons and concept checking classes of LEMON's518 This group describes the skeletons and concept checking classes of LEMON's 724 519 graph structures and helper classes used to implement these. 725 520 */ … … 730 525 \brief Skeleton and concept checking classes for maps 731 526 732 This group contains the skeletons and concept checking classes of maps.527 This group describes the skeletons and concept checking classes of maps. 733 528 */ 734 529 … … 736 531 \anchor demoprograms 737 532 738 @defgroup demos Demo Programs533 @defgroup demos Demo programs 739 534 740 535 Some demo programs are listed here. Their full source codes can be found in 741 536 the \c demo subdirectory of the source tree. 742 537 743 I n order to compile them, use the <tt>make demo</tt> or the744 <tt>make check</tt> commands.745 */ 746 747 /** 748 @defgroup tools Standalone Utility Applications538 It order to compile them, use <tt>--enable-demo</tt> configure option when 539 build the library. 540 */ 541 542 /** 543 @defgroup tools Standalone utility applications 749 544 750 545 Some utility applications are listed here. … … 754 549 */ 755 550 756 }
Note: See TracChangeset
for help on using the changeset viewer.