Changes in doc/groups.dox [416:76287c8caa26:418:ad483acf1654] in lemon-main
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/groups.dox
r416 r418 16 16 * 17 17 */ 18 19 namespace lemon { 18 20 19 21 /** … … 162 164 163 165 This group describes maps that are specifically designed to assign 164 values to the nodes and arcs of graphs. 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". 165 170 */ 166 171 … … 173 178 maps from other maps. 174 179 175 Most of them are \ref lemon::concepts::ReadMap "read-only maps".180 Most of them are \ref concepts::ReadMap "read-only maps". 176 181 They can make arithmetic and logical operations between one or two maps 177 182 (negation, shifting, addition, multiplication, logical 'and', 'or', … … 275 280 \brief Common graph search algorithms. 276 281 277 This group describes the common graph search algorithms like278 Breadth-First Search (BFS) and Depth-First Search (DFS).282 This group describes the common graph search algorithms, namely 283 \e breadth-first \e search (BFS) and \e depth-first \e search (DFS). 279 284 */ 280 285 … … 284 289 \brief Algorithms for finding shortest paths. 285 290 286 This group describes the algorithms for finding shortest paths in graphs. 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. 287 305 */ 288 306 … … 295 313 feasible circulations. 296 314 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] 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] 307 326 308 327 LEMON contains several algorithms for solving maximum flow problems: 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 the315 fastest method to compute the maximum flow. All impelementations316 provides functions to query the minimum cut, which is the dual linear317 pro gramming problem of the maximum flow.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 the 334 fastest method for computing a maximum flow. All implementations 335 provides functions to also query the minimum cut, which is the dual 336 problem of the maximum flow. 318 337 */ 319 338 … … 326 345 This group describes the algorithms for finding minimum cost flows and 327 346 circulations. 347 348 The \e minimum \e cost \e flow \e problem is to find a feasible flow of 349 minimum total cost from a set of supply nodes to a set of demand nodes 350 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 and 353 upper bounds for the flow values on the arcs, 354 \f$cost: A\rightarrow\mathbf{Z}^+_0\f$ denotes the cost per unit flow 355 on the arcs, and 356 \f$supply: V\rightarrow\mathbf{Z}\f$ denotes the supply/demand values 357 of the nodes. 358 A minimum cost flow is an \f$f:A\rightarrow\mathbf{R}^+_0\f$ solution of 359 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 optional 369 capacity scaling. 370 - \ref CostScaling Push-relabel and augment-relabel algorithms based on 371 cost scaling. 372 - \ref NetworkSimplex Primal network simplex algorithm with various 373 pivot strategies. 328 374 */ 329 375 … … 336 382 This group describes the algorithms for finding minimum cut in graphs. 337 383 338 The minimum cutproblem is to find a non-empty and non-complete339 \f$X\f$ subset of the vertices with minimum overall capacity on340 outgoing arcs. Formally, there is \f$G=(V,A)\f$ directed graph, an341 \f$c _a:A\rightarrow\mathbf{R}^+_0\f$ capacity function. The minimum384 The \e minimum \e cut \e problem is to find a non-empty and non-complete 385 \f$X\f$ subset of the nodes with minimum overall capacity on 386 outgoing arcs. Formally, there is a \f$G=(V,A)\f$ digraph, a 387 \f$cap: A\rightarrow\mathbf{R}^+_0\f$ capacity function. The minimum 342 388 cut is the \f$X\f$ solution of the next optimization problem: 343 389 344 390 \f[ \min_{X \subset V, X\not\in \{\emptyset, V\}} 345 \sum_{uv\in A, u\in X, v\not\in X}c_{uv}\f]391 \sum_{uv\in A, u\in X, v\not\in X}cap(uv) \f] 346 392 347 393 LEMON contains several algorithms related to minimum cut problems: 348 394 349 - \ref lemon::HaoOrlin "Hao-Orlin algorithm" to calculateminimum cut350 in directed graphs 351 - \ref lemon::NagamochiIbaraki "Nagamochi-Ibaraki algorithm" to352 calculat e minimum cut in undirected graphs353 - \ref lemon::GomoryHuTree "Gomory-Hu tree computation" to calculate all354 pairs minimum cut in undirected graphs395 - \ref HaoOrlin "Hao-Orlin algorithm" for calculating minimum cut 396 in directed graphs. 397 - \ref NagamochiIbaraki "Nagamochi-Ibaraki algorithm" for 398 calculating minimum cut in undirected graphs. 399 - \ref GomoryHuTree "Gomory-Hu tree computation" for calculating 400 all-pairs minimum cut in undirected graphs. 355 401 356 402 If you want to find minimum cut just between two distinict nodes, 357 please see the \ref max_flow "Maximum Flow page".403 see the \ref max_flow "maximum flow problem". 358 404 */ 359 405 … … 394 440 graphs. The matching problems in bipartite graphs are generally 395 441 easier than in general graphs. The goal of the matching optimization 396 can be thefinding maximum cardinality, maximum weight or minimum cost442 can be finding maximum cardinality, maximum weight or minimum cost 397 443 matching. The search can be constrained to find perfect or 398 444 maximum cardinality matching. 399 445 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 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. 420 464 421 465 \image html bipartite_matching.png … … 429 473 430 474 This group describes the algorithms for finding a minimum cost spanning 431 tree in a graph 475 tree in a graph. 432 476 */ 433 477 … … 620 664 \anchor demoprograms 621 665 622 @defgroup demos Demo programs666 @defgroup demos Demo Programs 623 667 624 668 Some demo programs are listed here. Their full source codes can be found in … … 630 674 631 675 /** 632 @defgroup tools Standalone utility applications676 @defgroup tools Standalone Utility Applications 633 677 634 678 Some utility applications are listed here. … … 638 682 */ 639 683 684 }
Note: See TracChangeset
for help on using the changeset viewer.