# HG changeset patch
# User Peter Kovacs <kpeter@inf.elte.hu>
# Date 1241654712 -7200
# Branch 1.1
# Node ID 189760a7cdd0d71c2d3ae8727ab5d589944f374d
# Parent dc9316203edfdb96c5fc03d7af724392146468f5
Remove references of missing tools (#257)
diff --git a/doc/groups.dox b/doc/groups.dox
a
|
b
|
|
236 | 236 | */ |
237 | 237 | |
238 | 238 | /** |
239 | | @defgroup matrices Matrices |
240 | | @ingroup datas |
241 | | \brief Two dimensional data storages implemented in LEMON. |
242 | | |
243 | | This group contains two dimensional data storages implemented in LEMON. |
244 | | */ |
245 | | |
246 | | /** |
247 | 239 | @defgroup paths Path Structures |
248 | 240 | @ingroup datas |
249 | 241 | \brief %Path structures implemented in LEMON. |
… |
… |
|
293 | 285 | |
294 | 286 | This group contains the algorithms for finding shortest paths in digraphs. |
295 | 287 | |
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. |
| 288 | - \ref Dijkstra Dijkstra's algorithm for finding shortest paths from a |
| 289 | source node when all arc lengths are non-negative. |
306 | 290 | - \ref Suurballe A successive shortest path algorithm for finding |
307 | 291 | arc-disjoint paths between two nodes having minimum total length. |
308 | 292 | */ |
… |
… |
|
327 | 311 | \quad \forall u\in V\setminus\{s,t\} \f] |
328 | 312 | \f[ 0 \leq f(uv) \leq cap(uv) \quad \forall uv\in A \f] |
329 | 313 | |
330 | | 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. |
| 314 | \ref Preflow implements the preflow push-relabel algorithm of Goldberg and |
| 315 | Tarjan for solving this problem. It also provides functions to query the |
| 316 | minimum cut, which is the dual problem of maximum flow. |
335 | 317 | |
336 | | In most cases the \ref Preflow "Preflow" algorithm provides the |
337 | | fastest method for computing a maximum flow. All implementations |
338 | | provides functions to also query the minimum cut, which is the dual |
339 | | problem of the maximum flow. |
| 318 | \ref Circulation is a preflow push-relabel algorithm implemented directly |
| 319 | for finding feasible circulations, which is a somewhat different problem, |
| 320 | but it is strongly related to maximum flow. |
| 321 | For more information, see \ref Circulation. |
340 | 322 | */ |
341 | 323 | |
342 | 324 | /** |
… |
… |
|
421 | 403 | \f$uv\in A\f$ with respect to the potential function \f$\pi\f$, i.e. |
422 | 404 | \f[ cost^\pi(uv) = cost(uv) + \pi(u) - \pi(v).\f] |
423 | 405 | |
424 | | All algorithms provide dual solution (node potentials) as well, |
425 | | 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 various |
429 | | pivot strategies. |
430 | | - \ref CostScaling Push-Relabel and Augment-Relabel algorithms based on |
431 | | cost scaling. |
432 | | - \ref CapacityScaling Successive Shortest %Path algorithm with optional |
433 | | 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 the |
438 | | minimum cost flow problem, but CancelAndTighten and CycleCanceling |
439 | | 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). |
| 406 | \ref NetworkSimplex is an efficient implementation of the primal Network |
| 407 | Simplex algorithm for finding minimum cost flows. It also provides dual |
| 408 | solution (node potentials), if an optimal flow is found. |
445 | 409 | */ |
446 | 410 | |
447 | 411 | /** |
… |
… |
|
465 | 429 | |
466 | 430 | - \ref HaoOrlin "Hao-Orlin algorithm" for calculating minimum cut |
467 | 431 | in directed graphs. |
468 | | - \ref NagamochiIbaraki "Nagamochi-Ibaraki algorithm" for |
469 | | calculating minimum cut in undirected graphs. |
470 | 432 | - \ref GomoryHu "Gomory-Hu tree computation" for calculating |
471 | 433 | all-pairs minimum cut in undirected graphs. |
472 | 434 | |
… |
… |
|
487 | 449 | */ |
488 | 450 | |
489 | 451 | /** |
490 | | @defgroup planar Planarity Embedding and Drawing |
491 | | @ingroup algs |
492 | | \brief Algorithms for planarity checking, embedding and drawing |
493 | | |
494 | | This group contains the algorithms for planarity checking, |
495 | | embedding and drawing. |
496 | | |
497 | | \image html planar.png |
498 | | \image latex planar.eps "Plane graph" width=\textwidth |
499 | | */ |
500 | | |
501 | | /** |
502 | 452 | @defgroup matching Matching Algorithms |
503 | 453 | @ingroup algs |
504 | 454 | \brief Algorithms for finding matchings in graphs and bipartite graphs. |
505 | 455 | |
506 | | This group contains the algorithms for calculating |
507 | | 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. |
| 456 | This group contains the algorithms for calculating matchings in graphs. |
| 457 | The general matching problem is finding a subset of the edges for which |
| 458 | each node has at most one incident edge. |
510 | 459 | |
511 | 460 | There are several different algorithms for calculate matchings in |
512 | | graphs. The matching problems in bipartite graphs are generally |
513 | | easier than in general graphs. The goal of the matching optimization |
| 461 | graphs. The goal of the matching optimization |
514 | 462 | can be finding maximum cardinality, maximum weight or minimum cost |
515 | 463 | matching. The search can be constrained to find perfect or |
516 | 464 | maximum cardinality matching. |
517 | 465 | |
518 | 466 | 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 | 467 | - \ref MaxMatching Edmond's blossom shrinking algorithm for calculating |
530 | 468 | maximum cardinality matching in general graphs. |
531 | 469 | - \ref MaxWeightedMatching Edmond's blossom shrinking algorithm for calculating |
… |
… |
|
557 | 495 | */ |
558 | 496 | |
559 | 497 | /** |
560 | | @defgroup approx Approximation Algorithms |
561 | | @ingroup algs |
562 | | \brief Approximation algorithms. |
563 | | |
564 | | This group contains the approximation and heuristic algorithms |
565 | | implemented in LEMON. |
566 | | */ |
567 | | |
568 | | /** |
569 | 498 | @defgroup gen_opt_group General Optimization Tools |
570 | 499 | \brief This group contains some general optimization frameworks |
571 | 500 | implemented in LEMON. |
… |
… |
|
585 | 514 | */ |
586 | 515 | |
587 | 516 | /** |
588 | | @defgroup lp_utils Tools for Lp and Mip Solvers |
589 | | @ingroup lp_group |
590 | | \brief Helper tools to the Lp and Mip solvers. |
591 | | |
592 | | This group adds some helper tools to general optimization framework |
593 | | implemented in LEMON. |
594 | | */ |
595 | | |
596 | | /** |
597 | | @defgroup metah Metaheuristics |
598 | | @ingroup gen_opt_group |
599 | | \brief Metaheuristics for LEMON library. |
600 | | |
601 | | This group contains some metaheuristic optimization tools. |
602 | | */ |
603 | | |
604 | | /** |
605 | 517 | @defgroup utils Tools and Utilities |
606 | 518 | \brief Tools and utilities for programming in LEMON |
607 | 519 | |
diff --git a/lemon/suurballe.h b/lemon/suurballe.h
a
|
b
|
|
45 | 45 | /// |
46 | 46 | /// Note that this problem is a special case of the \ref min_cost_flow |
47 | 47 | /// "minimum cost flow problem". This implementation is actually an |
48 | | /// efficient specialized version of the \ref CapacityScaling |
49 | | /// "Successive Shortest Path" algorithm directly for this problem. |
| 48 | /// efficient specialized version of the Successive Shortest Path |
| 49 | /// algorithm directly for this problem. |
50 | 50 | /// Therefore this class provides query functions for flow values and |
51 | 51 | /// node potentials (the dual solution) just like the minimum cost flow |
52 | 52 | /// algorithms. |