Changes in doc/groups.dox [418:ad483acf1654:416:76287c8caa26] in lemon-main
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/groups.dox
r418 r416 16 16 * 17 17 */ 18 19 namespace lemon {20 18 21 19 /** … … 164 162 165 163 This group describes maps that are specifically designed to assign 166 values to the nodes and arcs/edges of graphs. 167 168 If you are looking for the standard graph maps (\c NodeMap, \c ArcMap, 169 \c EdgeMap), see the \ref graph_concepts "Graph Structure Concepts". 164 values to the nodes and arcs of graphs. 170 165 */ 171 166 … … 178 173 maps from other maps. 179 174 180 Most of them are \ref concepts::ReadMap "read-only maps".175 Most of them are \ref lemon::concepts::ReadMap "read-only maps". 181 176 They can make arithmetic and logical operations between one or two maps 182 177 (negation, shifting, addition, multiplication, logical 'and', 'or', … … 280 275 \brief Common graph search algorithms. 281 276 282 This group describes the common graph search algorithms , namely283 \e breadth-first \e search (BFS) and \e depth-first \e search (DFS).277 This group describes the common graph search algorithms like 278 Breadth-First Search (BFS) and Depth-First Search (DFS). 284 279 */ 285 280 … … 289 284 \brief Algorithms for finding shortest paths. 290 285 291 This group describes the algorithms for finding shortest paths in digraphs. 292 293 - \ref Dijkstra algorithm for finding shortest paths from a source node 294 when all arc lengths are non-negative. 295 - \ref BellmanFord "Bellman-Ford" algorithm for finding shortest paths 296 from a source node when arc lenghts can be either positive or negative, 297 but the digraph should not contain directed cycles with negative total 298 length. 299 - \ref FloydWarshall "Floyd-Warshall" and \ref Johnson "Johnson" algorithms 300 for solving the \e all-pairs \e shortest \e paths \e problem when arc 301 lenghts can be either positive or negative, but the digraph should 302 not contain directed cycles with negative total length. 303 - \ref Suurballe A successive shortest path algorithm for finding 304 arc-disjoint paths between two nodes having minimum total length. 286 This group describes the algorithms for finding shortest paths in graphs. 305 287 */ 306 288 … … 313 295 feasible circulations. 314 296 315 The \e maximum \e flow \e problem is to find a flow of maximum value between 316 a single source and a single target. Formally, there is a \f$G=(V,A)\f$ 317 digraph, a \f$cap:A\rightarrow\mathbf{R}^+_0\f$ capacity function and 318 \f$s, t \in V\f$ source and target nodes. 319 A maximum flow is an \f$f:A\rightarrow\mathbf{R}^+_0\f$ solution of the 320 following optimization problem. 321 322 \f[ \max\sum_{a\in\delta_{out}(s)}f(a) - \sum_{a\in\delta_{in}(s)}f(a) \f] 323 \f[ \sum_{a\in\delta_{out}(v)} f(a) = \sum_{a\in\delta_{in}(v)} f(a) 324 \qquad \forall v\in V\setminus\{s,t\} \f] 325 \f[ 0 \leq f(a) \leq cap(a) \qquad \forall a\in A \f] 297 The maximum flow problem is to find a flow between a single source and 298 a single target that is maximum. Formally, there is a \f$G=(V,A)\f$ 299 directed graph, an \f$c_a:A\rightarrow\mathbf{R}^+_0\f$ capacity 300 function and given \f$s, t \in V\f$ source and target node. The 301 maximum flow is the \f$f_a\f$ solution of the next optimization problem: 302 303 \f[ 0 \le f_a \le c_a \f] 304 \f[ \sum_{v\in\delta^{-}(u)}f_{vu}=\sum_{v\in\delta^{+}(u)}f_{uv} 305 \qquad \forall u \in V \setminus \{s,t\}\f] 306 \f[ \max \sum_{v\in\delta^{+}(s)}f_{uv} - \sum_{v\in\delta^{-}(s)}f_{vu}\f] 326 307 327 308 LEMON contains several algorithms for solving maximum flow problems: 328 - \ref EdmondsKarp Edmonds-Karp algorithm.329 - \ref Preflow Goldberg-Tarjan's preflow push-relabel algorithm.330 - \ref DinitzSleatorTarjan Dinitz's blocking flow algorithm with dynamic trees.331 - \ref GoldbergTarjan Preflow push-relabel algorithm with dynamic trees.332 333 In most cases the \ref Preflow "Preflow" algorithm provides the334 fastest method for computing a maximum flow. All implementations335 provides functions to also query the minimum cut, which is the dual336 pro blem of the maximum flow.309 - \ref lemon::EdmondsKarp "Edmonds-Karp" 310 - \ref lemon::Preflow "Goldberg's Preflow algorithm" 311 - \ref lemon::DinitzSleatorTarjan "Dinitz's blocking flow algorithm with dynamic trees" 312 - \ref lemon::GoldbergTarjan "Preflow algorithm with dynamic trees" 313 314 In most cases the \ref lemon::Preflow "Preflow" algorithm provides the 315 fastest method to compute the maximum flow. All impelementations 316 provides functions to query the minimum cut, which is the dual linear 317 programming problem of the maximum flow. 337 318 */ 338 319 … … 345 326 This group describes the algorithms for finding minimum cost flows and 346 327 circulations. 347 348 The \e minimum \e cost \e flow \e problem is to find a feasible flow of349 minimum total cost from a set of supply nodes to a set of demand nodes350 in a network with capacity constraints and arc costs.351 Formally, let \f$G=(V,A)\f$ be a digraph,352 \f$lower, upper: A\rightarrow\mathbf{Z}^+_0\f$ denote the lower and353 upper bounds for the flow values on the arcs,354 \f$cost: A\rightarrow\mathbf{Z}^+_0\f$ denotes the cost per unit flow355 on the arcs, and356 \f$supply: V\rightarrow\mathbf{Z}\f$ denotes the supply/demand values357 of the nodes.358 A minimum cost flow is an \f$f:A\rightarrow\mathbf{R}^+_0\f$ solution of359 the following optimization problem.360 361 \f[ \min\sum_{a\in A} f(a) cost(a) \f]362 \f[ \sum_{a\in\delta_{out}(v)} f(a) - \sum_{a\in\delta_{in}(v)} f(a) =363 supply(v) \qquad \forall v\in V \f]364 \f[ lower(a) \leq f(a) \leq upper(a) \qquad \forall a\in A \f]365 366 LEMON contains several algorithms for solving minimum cost flow problems:367 - \ref CycleCanceling Cycle-canceling algorithms.368 - \ref CapacityScaling Successive shortest path algorithm with optional369 capacity scaling.370 - \ref CostScaling Push-relabel and augment-relabel algorithms based on371 cost scaling.372 - \ref NetworkSimplex Primal network simplex algorithm with various373 pivot strategies.374 328 */ 375 329 … … 382 336 This group describes the algorithms for finding minimum cut in graphs. 383 337 384 The \e minimum \e cut \eproblem is to find a non-empty and non-complete385 \f$X\f$ subset of the nodes with minimum overall capacity on386 outgoing arcs. Formally, there is a \f$G=(V,A)\f$ digraph, a387 \f$c ap:A\rightarrow\mathbf{R}^+_0\f$ capacity function. The minimum338 The minimum cut problem is to find a non-empty and non-complete 339 \f$X\f$ subset of the vertices with minimum overall capacity on 340 outgoing arcs. Formally, there is \f$G=(V,A)\f$ directed graph, an 341 \f$c_a:A\rightarrow\mathbf{R}^+_0\f$ capacity function. The minimum 388 342 cut is the \f$X\f$ solution of the next optimization problem: 389 343 390 344 \f[ \min_{X \subset V, X\not\in \{\emptyset, V\}} 391 \sum_{uv\in A, u\in X, v\not\in X}cap(uv)\f]345 \sum_{uv\in A, u\in X, v\not\in X}c_{uv}\f] 392 346 393 347 LEMON contains several algorithms related to minimum cut problems: 394 348 395 - \ref HaoOrlin "Hao-Orlin algorithm" for calculatingminimum cut396 in directed graphs .397 - \ref NagamochiIbaraki "Nagamochi-Ibaraki algorithm" for398 calculat ing minimum cut in undirected graphs.399 - \ref GomoryHuTree "Gomory-Hu tree computation" for calculating400 all-pairs minimum cut in undirected graphs.349 - \ref lemon::HaoOrlin "Hao-Orlin algorithm" to calculate minimum cut 350 in directed graphs 351 - \ref lemon::NagamochiIbaraki "Nagamochi-Ibaraki algorithm" to 352 calculate minimum cut in undirected graphs 353 - \ref lemon::GomoryHuTree "Gomory-Hu tree computation" to calculate all 354 pairs minimum cut in undirected graphs 401 355 402 356 If you want to find minimum cut just between two distinict nodes, 403 see the \ref max_flow "maximum flow problem".357 please see the \ref max_flow "Maximum Flow page". 404 358 */ 405 359 … … 440 394 graphs. The matching problems in bipartite graphs are generally 441 395 easier than in general graphs. The goal of the matching optimization 442 can be finding maximum cardinality, maximum weight or minimum cost396 can be the finding maximum cardinality, maximum weight or minimum cost 443 397 matching. The search can be constrained to find perfect or 444 398 maximum cardinality matching. 445 399 446 The matching algorithms implemented in LEMON: 447 - \ref MaxBipartiteMatching Hopcroft-Karp augmenting path algorithm 448 for calculating maximum cardinality matching in bipartite graphs. 449 - \ref PrBipartiteMatching Push-relabel algorithm 450 for calculating maximum cardinality matching in bipartite graphs. 451 - \ref MaxWeightedBipartiteMatching 452 Successive shortest path algorithm for calculating maximum weighted 453 matching and maximum weighted bipartite matching in bipartite graphs. 454 - \ref MinCostMaxBipartiteMatching 455 Successive shortest path algorithm for calculating minimum cost maximum 456 matching in bipartite graphs. 457 - \ref MaxMatching Edmond's blossom shrinking algorithm for calculating 458 maximum cardinality matching in general graphs. 459 - \ref MaxWeightedMatching Edmond's blossom shrinking algorithm for calculating 460 maximum weighted matching in general graphs. 461 - \ref MaxWeightedPerfectMatching 462 Edmond's blossom shrinking algorithm for calculating maximum weighted 463 perfect matching in general graphs. 400 LEMON contains the next algorithms: 401 - \ref lemon::MaxBipartiteMatching "MaxBipartiteMatching" Hopcroft-Karp 402 augmenting path algorithm for calculate maximum cardinality matching in 403 bipartite graphs 404 - \ref lemon::PrBipartiteMatching "PrBipartiteMatching" Push-Relabel 405 algorithm for calculate maximum cardinality matching in bipartite graphs 406 - \ref lemon::MaxWeightedBipartiteMatching "MaxWeightedBipartiteMatching" 407 Successive shortest path algorithm for calculate maximum weighted matching 408 and maximum weighted bipartite matching in bipartite graph 409 - \ref lemon::MinCostMaxBipartiteMatching "MinCostMaxBipartiteMatching" 410 Successive shortest path algorithm for calculate minimum cost maximum 411 matching in bipartite graph 412 - \ref lemon::MaxMatching "MaxMatching" Edmond's blossom shrinking algorithm 413 for calculate maximum cardinality matching in general graph 414 - \ref lemon::MaxWeightedMatching "MaxWeightedMatching" Edmond's blossom 415 shrinking algorithm for calculate maximum weighted matching in general 416 graph 417 - \ref lemon::MaxWeightedPerfectMatching "MaxWeightedPerfectMatching" 418 Edmond's blossom shrinking algorithm for calculate maximum weighted 419 perfect matching in general graph 464 420 465 421 \image html bipartite_matching.png … … 473 429 474 430 This group describes the algorithms for finding a minimum cost spanning 475 tree in a graph .431 tree in a graph 476 432 */ 477 433 … … 664 620 \anchor demoprograms 665 621 666 @defgroup demos Demo Programs622 @defgroup demos Demo programs 667 623 668 624 Some demo programs are listed here. Their full source codes can be found in … … 674 630 675 631 /** 676 @defgroup tools Standalone Utility Applications632 @defgroup tools Standalone utility applications 677 633 678 634 Some utility applications are listed here. … … 682 638 */ 683 639 684 }
Note: See TracChangeset
for help on using the changeset viewer.