COIN-OR::LEMON - Graph Library

Ticket #257: 257-1.1-189760a7cdd0.patch

File 257-1.1-189760a7cdd0.patch, 8.0 KB (added by Peter Kovacs, 16 years ago)
  • doc/groups.dox

    # 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  
    236236*/
    237237
    238238/**
    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 /**
    247239@defgroup paths Path Structures
    248240@ingroup datas
    249241\brief %Path structures implemented in LEMON.
     
    293285
    294286This group contains the algorithms for finding shortest paths in digraphs.
    295287
    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.
    306290 - \ref Suurballe A successive shortest path algorithm for finding
    307291   arc-disjoint paths between two nodes having minimum total length.
    308292*/
     
    327311    \quad \forall u\in V\setminus\{s,t\} \f]
    328312\f[ 0 \leq f(uv) \leq cap(uv) \quad \forall uv\in A \f]
    329313
    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
     315Tarjan for solving this problem. It also provides functions to query the
     316minimum cut, which is the dual problem of maximum flow.
    335317
    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
     319for finding feasible circulations, which is a somewhat different problem,
     320but it is strongly related to maximum flow.
     321For more information, see \ref Circulation.
    340322*/
    341323
    342324/**
     
    421403\f$uv\in A\f$ with respect to the potential function \f$\pi\f$, i.e.
    422404\f[ cost^\pi(uv) = cost(uv) + \pi(u) - \pi(v).\f]
    423405
    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
     407Simplex algorithm for finding minimum cost flows. It also provides dual
     408solution (node potentials), if an optimal flow is found.
    445409*/
    446410
    447411/**
     
    465429
    466430- \ref HaoOrlin "Hao-Orlin algorithm" for calculating minimum cut
    467431  in directed graphs.
    468 - \ref NagamochiIbaraki "Nagamochi-Ibaraki algorithm" for
    469   calculating minimum cut in undirected graphs.
    470432- \ref GomoryHu "Gomory-Hu tree computation" for calculating
    471433  all-pairs minimum cut in undirected graphs.
    472434
     
    487449*/
    488450
    489451/**
    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 /**
    502452@defgroup matching Matching Algorithms
    503453@ingroup algs
    504454\brief Algorithms for finding matchings in graphs and bipartite graphs.
    505455
    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.
     456This group contains the algorithms for calculating matchings in graphs.
     457The general matching problem is finding a subset of the edges for which
     458each node has at most one incident edge.
    510459
    511460There 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
     461graphs. The goal of the matching optimization
    514462can be finding maximum cardinality, maximum weight or minimum cost
    515463matching. The search can be constrained to find perfect or
    516464maximum cardinality matching.
    517465
    518466The 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.
    529467- \ref MaxMatching Edmond's blossom shrinking algorithm for calculating
    530468  maximum cardinality matching in general graphs.
    531469- \ref MaxWeightedMatching Edmond's blossom shrinking algorithm for calculating
     
    557495*/
    558496
    559497/**
    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 /**
    569498@defgroup gen_opt_group General Optimization Tools
    570499\brief This group contains some general optimization frameworks
    571500implemented in LEMON.
     
    585514*/
    586515
    587516/**
    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 /**
    605517@defgroup utils Tools and Utilities
    606518\brief Tools and utilities for programming in LEMON
    607519
  • lemon/suurballe.h

    diff --git a/lemon/suurballe.h b/lemon/suurballe.h
    a b  
    4545  ///
    4646  /// Note that this problem is a special case of the \ref min_cost_flow
    4747  /// "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.
    5050  /// Therefore this class provides query functions for flow values and
    5151  /// node potentials (the dual solution) just like the minimum cost flow
    5252  /// algorithms.