COIN-OR::LEMON - Graph Library

Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • doc/groups.dox

    r959 r1271  
    33 * This file is a part of LEMON, a generic C++ optimization library.
    44 *
    5  * Copyright (C) 2003-2010
     5 * Copyright (C) 2003-2013
    66 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
    77 * (Egervary Research Group on Combinatorial Optimization, EGRES).
     
    113113detailed documentation of particular adaptors.
    114114
     115Since the adaptor classes conform to the \ref graph_concepts "graph concepts",
     116an adaptor can even be applied to another one.
     117The following image illustrates a situation when a \ref SubDigraph adaptor
     118is applied on a digraph and \ref Undirector is applied on the subgraph.
     119
     120\image html adaptors2.png
     121\image latex adaptors2.eps "Using graph adaptors" width=\textwidth
     122
    115123The behavior of graph adaptors can be very different. Some of them keep
    116124capabilities of the original graph while in other cases this would be
     
    310318This group contains the common graph search algorithms, namely
    311319\e breadth-first \e search (BFS) and \e depth-first \e search (DFS)
    312 \ref clrs01algorithms.
     320\cite clrs01algorithms.
    313321*/
    314322
     
    319327
    320328This group contains the algorithms for finding shortest paths in digraphs
    321 \ref clrs01algorithms.
     329\cite clrs01algorithms.
    322330
    323331 - \ref Dijkstra algorithm for finding shortest paths from a source node
     
    341349
    342350This group contains the algorithms for finding minimum cost spanning
    343 trees and arborescences \ref clrs01algorithms.
     351trees and arborescences \cite clrs01algorithms.
    344352*/
    345353
     
    350358
    351359This group contains the algorithms for finding maximum flows and
    352 feasible circulations \ref clrs01algorithms, \ref amo93networkflows.
     360feasible circulations \cite clrs01algorithms, \cite amo93networkflows.
    353361
    354362The \e maximum \e flow \e problem is to find a flow of maximum value between
     
    366374LEMON contains several algorithms for solving maximum flow problems:
    367375- \ref EdmondsKarp Edmonds-Karp algorithm
    368   \ref edmondskarp72theoretical.
     376  \cite edmondskarp72theoretical.
    369377- \ref Preflow Goldberg-Tarjan's preflow push-relabel algorithm
    370   \ref goldberg88newapproach.
     378  \cite goldberg88newapproach.
    371379- \ref DinitzSleatorTarjan Dinitz's blocking flow algorithm with dynamic trees
    372   \ref dinic70algorithm, \ref sleator83dynamic.
     380  \cite dinic70algorithm, \cite sleator83dynamic.
    373381- \ref GoldbergTarjan !Preflow push-relabel algorithm with dynamic trees
    374   \ref goldberg88newapproach, \ref sleator83dynamic.
     382  \cite goldberg88newapproach, \cite sleator83dynamic.
    375383
    376384In most cases the \ref Preflow algorithm provides the
     
    392400
    393401This group contains the algorithms for finding minimum cost flows and
    394 circulations \ref amo93networkflows. For more information about this
    395 problem and its dual solution, see \ref min_cost_flow
     402circulations \cite amo93networkflows. For more information about this
     403problem and its dual solution, see: \ref min_cost_flow
    396404"Minimum Cost Flow Problem".
    397405
    398406LEMON contains several algorithms for this problem.
    399407 - \ref NetworkSimplex Primal Network Simplex algorithm with various
    400    pivot strategies \ref dantzig63linearprog, \ref kellyoneill91netsimplex.
     408   pivot strategies \cite dantzig63linearprog, \cite kellyoneill91netsimplex.
    401409 - \ref CostScaling Cost Scaling algorithm based on push/augment and
    402    relabel operations \ref goldberg90approximation, \ref goldberg97efficient,
    403    \ref bunnagel98efficient.
     410   relabel operations \cite goldberg90approximation, \cite goldberg97efficient,
     411   \cite bunnagel98efficient.
    404412 - \ref CapacityScaling Capacity Scaling algorithm based on the successive
    405    shortest path method \ref edmondskarp72theoretical.
     413   shortest path method \cite edmondskarp72theoretical.
    406414 - \ref CycleCanceling Cycle-Canceling algorithms, two of which are
    407    strongly polynomial \ref klein67primal, \ref goldberg89cyclecanceling.
    408 
    409 In general NetworkSimplex is the most efficient implementation,
    410 but in special cases other algorithms could be faster.
     415   strongly polynomial \cite klein67primal, \cite goldberg89cyclecanceling.
     416
     417In general, \ref NetworkSimplex and \ref CostScaling are the most efficient
     418implementations.
     419\ref NetworkSimplex is usually the fastest on relatively small graphs (up to
     420several thousands of nodes) and on dense graphs, while \ref CostScaling is
     421typically more efficient on large graphs (e.g. hundreds of thousands of
     422nodes or above), especially if they are sparse.
     423However, other algorithms could be faster in special cases.
    411424For example, if the total supply and/or capacities are rather small,
    412 CapacityScaling is usually the fastest algorithm (without effective scaling).
     425\ref CapacityScaling is usually the fastest algorithm
     426(without effective scaling).
     427
     428These classes are intended to be used with integer-valued input data
     429(capacities, supply values, and costs), except for \ref CapacityScaling,
     430which is capable of handling real-valued arc costs (other numerical
     431data are required to be integer).
     432
     433For more details about these implementations and for a comprehensive
     434experimental study, see the paper \cite KiralyKovacs12MCF.
     435It also compares these codes to other publicly available
     436minimum cost flow solvers.
    413437*/
    414438
     
    449473
    450474This group contains the algorithms for finding minimum mean cycles
    451 \ref clrs01algorithms, \ref amo93networkflows.
     475\cite amo93networkflows, \cite karp78characterization.
    452476
    453477The \e minimum \e mean \e cycle \e problem is to find a directed cycle
     
    465489
    466490LEMON contains three algorithms for solving the minimum mean cycle problem:
    467 - \ref KarpMmc Karp's original algorithm \ref amo93networkflows,
    468   \ref dasdan98minmeancycle.
     491- \ref KarpMmc Karp's original algorithm \cite karp78characterization.
    469492- \ref HartmannOrlinMmc Hartmann-Orlin's algorithm, which is an improved
    470   version of Karp's algorithm \ref dasdan98minmeancycle.
     493  version of Karp's algorithm \cite hartmann93finding.
    471494- \ref HowardMmc Howard's policy iteration algorithm
    472   \ref dasdan98minmeancycle.
    473 
    474 In practice, the \ref HowardMmc "Howard" algorithm proved to be by far the
     495  \cite dasdan98minmeancycle, \cite dasdan04experimental.
     496
     497In practice, the \ref HowardMmc "Howard" algorithm turned out to be by far the
    475498most efficient one, though the best known theoretical bound on its running
    476499time is exponential.
    477500Both \ref KarpMmc "Karp" and \ref HartmannOrlinMmc "Hartmann-Orlin" algorithms
    478 run in time O(ne) and use space O(n<sup>2</sup>+e), but the latter one is
    479 typically faster due to the applied early termination scheme.
     501run in time O(nm) and use space O(n<sup>2</sup>+m).
    480502*/
    481503
     
    540562
    541563/**
    542 @defgroup planar Planarity Embedding and Drawing
     564@defgroup planar Planar Embedding and Drawing
    543565@ingroup algs
    544566\brief Algorithms for planarity checking, embedding and drawing
     
    552574
    553575/**
    554 @defgroup approx Approximation Algorithms
     576@defgroup tsp Traveling Salesman Problem
     577@ingroup algs
     578\brief Algorithms for the symmetric traveling salesman problem
     579
     580This group contains basic heuristic algorithms for the the symmetric
     581\e traveling \e salesman \e problem (TSP).
     582Given an \ref FullGraph "undirected full graph" with a cost map on its edges,
     583the problem is to find a shortest possible tour that visits each node exactly
     584once (i.e. the minimum cost Hamiltonian cycle).
     585
     586These TSP algorithms are intended to be used with a \e metric \e cost
     587\e function, i.e. the edge costs should satisfy the triangle inequality.
     588Otherwise the algorithms could yield worse results.
     589
     590LEMON provides five well-known heuristics for solving symmetric TSP:
     591 - \ref NearestNeighborTsp Neareast neighbor algorithm
     592 - \ref GreedyTsp Greedy algorithm
     593 - \ref InsertionTsp Insertion heuristic (with four selection methods)
     594 - \ref ChristofidesTsp Christofides algorithm
     595 - \ref Opt2Tsp 2-opt algorithm
     596
     597\ref NearestNeighborTsp, \ref GreedyTsp, and \ref InsertionTsp are the fastest
     598solution methods. Furthermore, \ref InsertionTsp is usually quite effective.
     599
     600\ref ChristofidesTsp is somewhat slower, but it has the best guaranteed
     601approximation factor: 3/2.
     602
     603\ref Opt2Tsp usually provides the best results in practice, but
     604it is the slowest method. It can also be used to improve given tours,
     605for example, the results of other algorithms.
     606
     607\image html tsp.png
     608\image latex tsp.eps "Traveling salesman problem" width=\textwidth
     609*/
     610
     611/**
     612@defgroup approx_algs Approximation Algorithms
    555613@ingroup algs
    556614\brief Approximation algorithms.
     
    558616This group contains the approximation and heuristic algorithms
    559617implemented in LEMON.
     618
     619<b>Maximum Clique Problem</b>
     620  - \ref GrossoLocatelliPullanMc An efficient heuristic algorithm of
     621    Grosso, Locatelli, and Pullan.
    560622*/
    561623
     
    587649high-level interface.
    588650
    589 The currently supported solvers are \ref glpk, \ref clp, \ref cbc,
    590 \ref cplex, \ref soplex.
     651The currently supported solvers are \cite glpk, \cite clp, \cite cbc,
     652\cite cplex, \cite soplex.
    591653*/
    592654
     
    675737This group contains general \c EPS drawing methods and special
    676738graph exporting tools.
     739
     740\image html graph_to_eps.png
    677741*/
    678742
Note: See TracChangeset for help on using the changeset viewer.