Changes in / [407:e22fc10ab6f1:404:59d3aa4f921f] in lemon-main
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/groups.dox
r406 r388 17 17 */ 18 18 19 namespace lemon {20 21 19 /** 22 20 @defgroup datas Data Structures … … 91 89 92 90 This group describes maps that are specifically designed to assign 93 values to the nodes and arcs/edges of graphs. 94 95 If you are looking for the standard graph maps (\c NodeMap, \c ArcMap, 96 \c EdgeMap), see the \ref graph_concepts "Graph Structure Concepts". 91 values to the nodes and arcs of graphs. 97 92 */ 98 93 … … 105 100 maps from other maps. 106 101 107 Most of them are \ref concepts::ReadMap "read-only maps".102 Most of them are \ref lemon::concepts::ReadMap "read-only maps". 108 103 They can make arithmetic and logical operations between one or two maps 109 104 (negation, shifting, addition, multiplication, logical 'and', 'or', … … 207 202 \brief Common graph search algorithms. 208 203 209 This group describes the common graph search algorithms , namely210 \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). 211 206 */ 212 207 … … 216 211 \brief Algorithms for finding shortest paths. 217 212 218 This group describes the algorithms for finding shortest paths in digraphs. 219 220 - \ref Dijkstra algorithm for finding shortest paths from a source node 221 when all arc lengths are non-negative. 222 - \ref BellmanFord "Bellman-Ford" algorithm for finding shortest paths 223 from a source node when arc lenghts can be either positive or negative, 224 but the digraph should not contain directed cycles with negative total 225 length. 226 - \ref FloydWarshall "Floyd-Warshall" and \ref Johnson "Johnson" algorithms 227 for solving the \e all-pairs \e shortest \e paths \e problem when arc 228 lenghts can be either positive or negative, but the digraph should 229 not contain directed cycles with negative total length. 230 - \ref Suurballe A successive shortest path algorithm for finding 231 arc-disjoint paths between two nodes having minimum total length. 213 This group describes the algorithms for finding shortest paths in graphs. 232 214 */ 233 215 … … 240 222 feasible circulations. 241 223 242 The \e maximum \e flow \e problem is to find a flow of maximum value between 243 a single source and a single target. Formally, there is a \f$G=(V,A)\f$ 244 digraph, a \f$cap:A\rightarrow\mathbf{R}^+_0\f$ capacity function and 245 \f$s, t \in V\f$ source and target nodes. 246 A maximum flow is an \f$f:A\rightarrow\mathbf{R}^+_0\f$ solution of the 247 following optimization problem. 248 249 \f[ \max\sum_{a\in\delta_{out}(s)}f(a) - \sum_{a\in\delta_{in}(s)}f(a) \f] 250 \f[ \sum_{a\in\delta_{out}(v)} f(a) = \sum_{a\in\delta_{in}(v)} f(a) 251 \qquad \forall v\in V\setminus\{s,t\} \f] 252 \f[ 0 \leq f(a) \leq cap(a) \qquad \forall a\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] 253 234 254 235 LEMON contains several algorithms for solving maximum flow problems: 255 - \ref EdmondsKarp Edmonds-Karp algorithm.256 - \ref Preflow Goldberg-Tarjan's preflow push-relabel algorithm.257 - \ref DinitzSleatorTarjan Dinitz's blocking flow algorithm with dynamic trees.258 - \ref GoldbergTarjan Preflow push-relabel algorithm with dynamic trees.259 260 In most cases the \ref Preflow "Preflow" algorithm provides the261 fastest method for computing a maximum flow. All implementations262 provides functions to also query the minimum cut, which is the dual263 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. 264 245 */ 265 246 … … 272 253 This group describes the algorithms for finding minimum cost flows and 273 254 circulations. 274 275 The \e minimum \e cost \e flow \e problem is to find a feasible flow of276 minimum total cost from a set of supply nodes to a set of demand nodes277 in a network with capacity constraints and arc costs.278 Formally, let \f$G=(V,A)\f$ be a digraph,279 \f$lower, upper: A\rightarrow\mathbf{Z}^+_0\f$ denote the lower and280 upper bounds for the flow values on the arcs,281 \f$cost: A\rightarrow\mathbf{Z}^+_0\f$ denotes the cost per unit flow282 on the arcs, and283 \f$supply: V\rightarrow\mathbf{Z}\f$ denotes the supply/demand values284 of the nodes.285 A minimum cost flow is an \f$f:A\rightarrow\mathbf{R}^+_0\f$ solution of286 the following optimization problem.287 288 \f[ \min\sum_{a\in A} f(a) cost(a) \f]289 \f[ \sum_{a\in\delta_{out}(v)} f(a) - \sum_{a\in\delta_{in}(v)} f(a) =290 supply(v) \qquad \forall v\in V \f]291 \f[ lower(a) \leq f(a) \leq upper(a) \qquad \forall a\in A \f]292 293 LEMON contains several algorithms for solving minimum cost flow problems:294 - \ref CycleCanceling Cycle-canceling algorithms.295 - \ref CapacityScaling Successive shortest path algorithm with optional296 capacity scaling.297 - \ref CostScaling Push-relabel and augment-relabel algorithms based on298 cost scaling.299 - \ref NetworkSimplex Primal network simplex algorithm with various300 pivot strategies.301 255 */ 302 256 … … 309 263 This group describes the algorithms for finding minimum cut in graphs. 310 264 311 The \e minimum \e cut \eproblem is to find a non-empty and non-complete312 \f$X\f$ subset of the nodes with minimum overall capacity on313 outgoing arcs. Formally, there is a \f$G=(V,A)\f$ digraph, a314 \f$c ap:A\rightarrow\mathbf{R}^+_0\f$ capacity function. The minimum265 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 315 269 cut is the \f$X\f$ solution of the next optimization problem: 316 270 317 271 \f[ \min_{X \subset V, X\not\in \{\emptyset, V\}} 318 \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] 319 273 320 274 LEMON contains several algorithms related to minimum cut problems: 321 275 322 - \ref HaoOrlin "Hao-Orlin algorithm" for calculatingminimum cut323 in directed graphs .324 - \ref NagamochiIbaraki "Nagamochi-Ibaraki algorithm" for325 calculat ing minimum cut in undirected graphs.326 - \ref GomoryHuTree "Gomory-Hu tree computation" for calculating327 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 328 282 329 283 If you want to find minimum cut just between two distinict nodes, 330 see the \ref max_flow "maximum flow problem".284 please see the \ref max_flow "Maximum Flow page". 331 285 */ 332 286 … … 367 321 graphs. The matching problems in bipartite graphs are generally 368 322 easier than in general graphs. The goal of the matching optimization 369 can be finding maximum cardinality, maximum weight or minimum cost323 can be the finding maximum cardinality, maximum weight or minimum cost 370 324 matching. The search can be constrained to find perfect or 371 325 maximum cardinality matching. 372 326 373 The matching algorithms implemented in LEMON: 374 - \ref MaxBipartiteMatching Hopcroft-Karp augmenting path algorithm 375 for calculating maximum cardinality matching in bipartite graphs. 376 - \ref PrBipartiteMatching Push-relabel algorithm 377 for calculating maximum cardinality matching in bipartite graphs. 378 - \ref MaxWeightedBipartiteMatching 379 Successive shortest path algorithm for calculating maximum weighted 380 matching and maximum weighted bipartite matching in bipartite graphs. 381 - \ref MinCostMaxBipartiteMatching 382 Successive shortest path algorithm for calculating minimum cost maximum 383 matching in bipartite graphs. 384 - \ref MaxMatching Edmond's blossom shrinking algorithm for calculating 385 maximum cardinality matching in general graphs. 386 - \ref MaxWeightedMatching Edmond's blossom shrinking algorithm for calculating 387 maximum weighted matching in general graphs. 388 - \ref MaxWeightedPerfectMatching 389 Edmond's blossom shrinking algorithm for calculating maximum weighted 390 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 391 347 392 348 \image html bipartite_matching.png … … 400 356 401 357 This group describes the algorithms for finding a minimum cost spanning 402 tree in a graph .358 tree in a graph 403 359 */ 404 360 … … 591 547 \anchor demoprograms 592 548 593 @defgroup demos Demo Programs549 @defgroup demos Demo programs 594 550 595 551 Some demo programs are listed here. Their full source codes can be found in … … 601 557 602 558 /** 603 @defgroup tools Standalone Utility Applications559 @defgroup tools Standalone utility applications 604 560 605 561 Some utility applications are listed here. … … 609 565 */ 610 566 611 }
Note: See TracChangeset
for help on using the changeset viewer.