COIN-OR::LEMON - Graph Library

Changes in / [757:9fbbd802020f:753:48fe2a46bf91] in lemon-1.2


Ignore:
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • doc/Doxyfile.in

    r756 r744  
    1 # Doxyfile 1.5.9
     1# Doxyfile 1.5.7.1
    22
    33#---------------------------------------------------------------------------
     
    2222QT_AUTOBRIEF           = NO
    2323MULTILINE_CPP_IS_BRIEF = NO
     24DETAILS_AT_TOP         = YES
    2425INHERIT_DOCS           = NO
    2526SEPARATE_MEMBER_PAGES  = NO
     
    224225SKIP_FUNCTION_MACROS   = YES
    225226#---------------------------------------------------------------------------
    226 # Options related to the search engine   
     227# Configuration::additions related to external references   
    227228#---------------------------------------------------------------------------
    228229TAGFILES               = "@abs_top_srcdir@/doc/libstdc++.tag = http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/  "
  • doc/groups.dox

    r755 r742  
    317317
    318318This group contains the common graph search algorithms, namely
    319 \e breadth-first \e search (BFS) and \e depth-first \e search (DFS)
    320 \ref clrs01algorithms.
     319\e breadth-first \e search (BFS) and \e depth-first \e search (DFS).
    321320*/
    322321
     
    326325\brief Algorithms for finding shortest paths.
    327326
    328 This group contains the algorithms for finding shortest paths in digraphs
    329 \ref clrs01algorithms.
     327This group contains the algorithms for finding shortest paths in digraphs.
    330328
    331329 - \ref Dijkstra algorithm for finding shortest paths from a source node
     
    349347
    350348This group contains the algorithms for finding minimum cost spanning
    351 trees and arborescences \ref clrs01algorithms.
     349trees and arborescences.
    352350*/
    353351
     
    358356
    359357This group contains the algorithms for finding maximum flows and
    360 feasible circulations \ref clrs01algorithms, \ref amo93networkflows.
     358feasible circulations.
    361359
    362360The \e maximum \e flow \e problem is to find a flow of maximum value between
     
    373371
    374372LEMON contains several algorithms for solving maximum flow problems:
    375 - \ref EdmondsKarp Edmonds-Karp algorithm
    376   \ref edmondskarp72theoretical.
    377 - \ref Preflow Goldberg-Tarjan's preflow push-relabel algorithm
    378   \ref goldberg88newapproach.
    379 - \ref DinitzSleatorTarjan Dinitz's blocking flow algorithm with dynamic trees
    380   \ref dinic70algorithm, \ref sleator83dynamic.
    381 - \ref GoldbergTarjan !Preflow push-relabel algorithm with dynamic trees
    382   \ref goldberg88newapproach, \ref sleator83dynamic.
    383 
    384 In most cases the \ref Preflow algorithm provides the
     373- \ref EdmondsKarp Edmonds-Karp algorithm.
     374- \ref Preflow Goldberg-Tarjan's preflow push-relabel algorithm.
     375- \ref DinitzSleatorTarjan Dinitz's blocking flow algorithm with dynamic trees.
     376- \ref GoldbergTarjan Preflow push-relabel algorithm with dynamic trees.
     377
     378In most cases the \ref Preflow "Preflow" algorithm provides the
    385379fastest method for computing a maximum flow. All implementations
    386380also provide functions to query the minimum cut, which is the dual
     
    400394
    401395This group contains the algorithms for finding minimum cost flows and
    402 circulations \ref amo93networkflows. For more information about this
    403 problem and its dual solution, see \ref min_cost_flow
    404 "Minimum Cost Flow Problem".
     396circulations. For more information about this problem and its dual
     397solution see \ref min_cost_flow "Minimum Cost Flow Problem".
    405398
    406399LEMON contains several algorithms for this problem.
    407400 - \ref NetworkSimplex Primal Network Simplex algorithm with various
    408    pivot strategies \ref dantzig63linearprog, \ref kellyoneill91netsimplex.
     401   pivot strategies.
    409402 - \ref CostScaling Push-Relabel and Augment-Relabel algorithms based on
    410    cost scaling \ref goldberg90approximation, \ref goldberg97efficient,
    411    \ref bunnagel98efficient.
     403   cost scaling.
    412404 - \ref CapacityScaling Successive Shortest %Path algorithm with optional
    413    capacity scaling \ref edmondskarp72theoretical.
    414  - \ref CancelAndTighten The Cancel and Tighten algorithm
    415    \ref goldberg89cyclecanceling.
    416  - \ref CycleCanceling Cycle-Canceling algorithms
    417    \ref klein67primal, \ref goldberg89cyclecanceling.
     405   capacity scaling.
     406 - \ref CancelAndTighten The Cancel and Tighten algorithm.
     407 - \ref CycleCanceling Cycle-Canceling algorithms.
    418408
    419409In general NetworkSimplex is the most efficient implementation,
     
    545535
    546536/**
    547 @defgroup lp_group LP and MIP Solvers
     537@defgroup lp_group Lp and Mip Solvers
    548538@ingroup gen_opt_group
    549 \brief LP and MIP solver interfaces for LEMON.
    550 
    551 This group contains LP and MIP solver interfaces for LEMON.
    552 Various LP solvers could be used in the same manner with this
    553 high-level interface.
    554 
    555 The currently supported solvers are \ref glpk, \ref clp, \ref cbc,
    556 \ref cplex, \ref soplex.
     539\brief Lp and Mip solver interfaces for LEMON.
     540
     541This group contains Lp and Mip solver interfaces for LEMON. The
     542various LP solvers could be used in the same manner with this
     543interface.
    557544*/
    558545
  • doc/mainpage.dox

    r755 r658  
    2222\section intro Introduction
    2323
    24 <b>LEMON</b> stands for <i><b>L</b>ibrary for <b>E</b>fficient <b>M</b>odeling
    25 and <b>O</b>ptimization in <b>N</b>etworks</i>.
    26 It is a C++ template library providing efficient implementation of common
    27 data structures and algorithms with focus on combinatorial optimization
    28 problems in graphs and networks.
     24\subsection whatis What is LEMON
     25
     26LEMON stands for <b>L</b>ibrary for <b>E</b>fficient <b>M</b>odeling
     27and <b>O</b>ptimization in <b>N</b>etworks.
     28It is a C++ template
     29library aimed at combinatorial optimization tasks which
     30often involve in working
     31with graphs.
    2932
    3033<b>
     
    3639</b>
    3740
    38 The project is maintained by the
    39 <a href="http://www.cs.elte.hu/egres/">Egerv&aacute;ry Research Group on
    40 Combinatorial Optimization</a> \ref egres
    41 at the Operations Research Department of the
    42 <a href="http://www.elte.hu/">E&ouml;tv&ouml;s Lor&aacute;nd University,
    43 Budapest</a>, Hungary.
    44 LEMON is also a member of the <a href="http://www.coin-or.org/">COIN-OR</a>
    45 initiative \ref coinor.
    46 
    47 \section howtoread How to Read the Documentation
     41\subsection howtoread How to read the documentation
    4842
    4943If you would like to get to know the library, see
  • doc/min_cost_flow.dox

    r755 r663  
    2727minimum total cost from a set of supply nodes to a set of demand nodes
    2828in a network with capacity constraints (lower and upper bounds)
    29 and arc costs \ref amo93networkflows.
     29and arc costs.
    3030
    3131Formally, let \f$G=(V,A)\f$ be a digraph, \f$lower: A\rightarrow\mathbf{R}\f$,
  • doc/references.bib

    r755 r743  
    1313  title =        {{EGRES} -- {E}gerv{\'a}ry {R}esearch {G}roup on
    1414                  {C}ombinatorial {O}ptimization},
    15   url =          {http://www.cs.elte.hu/egres/}
     15  howpublished = {\url{http://www.cs.elte.hu/egres/}},
     16  year =         2009
    1617}
    1718
     
    2021  title =        {{COIN-OR} -- {C}omputational {I}nfrastructure for
    2122                  {O}perations {R}esearch},
    22   url =          {http://www.coin-or.org/}
     23  howpublished = {\url{http://www.coin-or.org/}},
     24  year =         2009
    2325}
    2426
     
    2931  key =          {Boost},
    3032  title =        {{B}oost {C++} {L}ibraries},
    31   url =          {http://www.boost.org/}
     33  howpublished = {\url{http://www.boost.org/}},
     34  year =         2009
    3235}
    3336
     
    4548  title =        {{LEDA} -- {L}ibrary of {E}fficient {D}ata {T}ypes and
    4649                  {A}lgorithms},
    47   url =          {http://www.algorithmic-solutions.com/}
     50  howpublished = {\url{http://www.algorithmic-solutions.com/}},
     51  year =         2009
    4852}
    4953
     
    6468  key =          {CMake},
    6569  title =        {{CMake} -- {C}ross {P}latform {M}ake},
    66   url =          {http://www.cmake.org/}
     70  howpublished = {\url{http://www.cmake.org/}},
     71  year =         2009
    6772}
    6873
     
    7176  title =        {{Doxygen} -- {S}ource code documentation generator
    7277                  tool},
    73   url =          {http://www.doxygen.org/}
     78  howpublished = {\url{http://www.doxygen.org/}},
     79  year =         2009
    7480}
    7581
     
    8086  key =          {GLPK},
    8187  title =        {{GLPK} -- {GNU} {L}inear {P}rogramming {K}it},
    82   url =          {http://www.gnu.org/software/glpk/}
     88  howpublished = {\url{http://www.gnu.org/software/glpk/}},
     89  year =         2009
    8390}
    8491
     
    8693  key =          {Clp},
    8794  title =        {{Clp} -- {Coin-Or} {L}inear {P}rogramming},
    88   url =          {http://projects.coin-or.org/Clp/}
     95  howpublished = {\url{http://projects.coin-or.org/Clp/}},
     96  year =         2009
    8997}
    9098
     
    92100  key =          {Cbc},
    93101  title =        {{Cbc} -- {Coin-Or} {B}ranch and {C}ut},
    94   url =          {http://projects.coin-or.org/Cbc/}
     102  howpublished = {\url{http://projects.coin-or.org/Cbc/}},
     103  year =         2009
    95104}
    96105
     
    98107  key =          {CPLEX},
    99108  title =        {{ILOG} {CPLEX}},
    100   url =          {http://www.ilog.com/}
     109  howpublished = {\url{http://www.ilog.com/}},
     110  year =         2009
    101111}
    102112
     
    105115  title =        {{SoPlex} -- {T}he {S}equential {O}bject-{O}riented
    106116                  {S}implex},
    107   url =          {http://soplex.zib.de/}
     117  howpublished = {\url{http://soplex.zib.de/}},
     118  year =         2009
    108119}
    109120
     
    151162%%%%% Maximum flow algorithms %%%%%
    152163
    153 @article{edmondskarp72theoretical,
    154   author =       {Jack Edmonds and Richard M. Karp},
    155   title =        {Theoretical improvements in algorithmic efficiency
    156                   for network flow problems},
    157   journal =      {Journal of the ACM},
    158   year =         1972,
    159   volume =       19,
    160   number =       2,
    161   pages =        {248-264}
    162 }
    163 
    164 @article{goldberg88newapproach,
     164@inproceedings{goldberg86newapproach,
    165165  author =       {Andrew V. Goldberg and Robert E. Tarjan},
    166166  title =        {A new approach to the maximum flow problem},
    167   journal =      {Journal of the ACM},
    168   year =         1988,
    169   volume =       35,
    170   number =       4,
    171   pages =        {921-940}
     167  booktitle =    {STOC '86: Proceedings of the Eighteenth Annual ACM
     168                  Symposium on Theory of Computing},
     169  year =         1986,
     170  publisher =    {ACM Press},
     171  address =      {New York, NY},
     172  pages =        {136-146}
    172173}
    173174
     
    240241}
    241242
    242 @article{goldberg89cyclecanceling,
     243@inproceedings{goldberg88cyclecanceling,
    243244  author =       {Andrew V. Goldberg and Robert E. Tarjan},
    244245  title =        {Finding minimum-cost circulations by canceling
    245246                  negative cycles},
     247  booktitle =    {STOC '88: Proceedings of the Twentieth Annual ACM
     248                  Symposium on Theory of Computing},
     249  year =         1988,
     250  publisher =    {ACM Press},
     251  address =      {New York, NY},
     252  pages =        {388-397}
     253}
     254
     255@article{edmondskarp72theoretical,
     256  author =       {Jack Edmonds and Richard M. Karp},
     257  title =        {Theoretical improvements in algorithmic efficiency
     258                  for network flow problems},
    246259  journal =      {Journal of the ACM},
    247   year =         1989,
    248   volume =       36,
    249   number =       4,
    250   pages =        {873-886}
    251 }
    252 
    253 @article{goldberg90approximation,
     260  year =         1972,
     261  volume =       19,
     262  number =       2,
     263  pages =        {248-264}
     264}
     265
     266@inproceedings{goldberg87approximation,
     267  author =       {Andrew V. Goldberg and Robert E. Tarjan},
     268  title =        {Solving minimum-cost flow problems by successive
     269                  approximation},
     270  booktitle =    {STOC '87: Proceedings of the Nineteenth Annual ACM
     271                  Symposium on Theory of Computing},
     272  year =         1987,
     273  publisher =    {ACM Press},
     274  address =      {New York, NY},
     275  pages =        {7-18}
     276}
     277
     278@article{goldberg90finding,
    254279  author =       {Andrew V. Goldberg and Robert E. Tarjan},
    255280  title =        {Finding Minimum-Cost Circulations by Successive
     
    284309}
    285310
    286 @book{dantzig63linearprog,
    287   author =       {George B. Dantzig},
    288   title =        {Linear Programming and Extensions},
    289   publisher =    {Princeton University Press},
    290   year =         1963
    291 }
    292 
    293311@mastersthesis{kellyoneill91netsimplex,
    294312  author =       {Damian J. Kelly and Garrett M. O'Neill},
     
    300318  month =        sep,
    301319}
     320
     321@techreport{lobel96networksimplex,
     322  author =       {Andreas L{\"o}bel},
     323  title =        {Solving large-scale real-world minimum-cost flow
     324                  problems by a network simplex method},
     325  institution =  {Konrad-Zuse-Zentrum fur Informationstechnik Berlin
     326                  ({ZIB})},
     327  address =      {Berlin, Germany},
     328  year =         1996,
     329  number =       {SC 96-7}
     330}
     331
     332@article{frangioni06computational,
     333  author =       {Antonio Frangioni and Antonio Manca},
     334  title =        {A Computational Study of Cost Reoptimization for
     335                  Min-Cost Flow Problems},
     336  journal =      {INFORMS Journal On Computing},
     337  year =         2006,
     338  volume =       18,
     339  number =       1,
     340  pages =        {61-70}
     341}
  • lemon/network_simplex.h

    r755 r730  
    4141  ///
    4242  /// \ref NetworkSimplex implements the primal Network Simplex algorithm
    43   /// for finding a \ref min_cost_flow "minimum cost flow"
    44   /// \ref amo93networkflows, \ref dantzig63linearprog,
    45   /// \ref kellyoneill91netsimplex.
     43  /// for finding a \ref min_cost_flow "minimum cost flow".
    4644  /// This algorithm is a specialized version of the linear programming
    4745  /// simplex method directly for the minimum cost flow problem.
  • lemon/preflow.h

    r755 r715  
    103103  /// This class provides an implementation of Goldberg-Tarjan's \e preflow
    104104  /// \e push-relabel algorithm producing a \ref max_flow
    105   /// "flow of maximum value" in a digraph \ref clrs01algorithms,
    106   /// \ref amo93networkflows, \ref goldberg88newapproach.
     105  /// "flow of maximum value" in a digraph.
    107106  /// The preflow algorithms are the fastest known maximum
    108107  /// flow algorithms. The current implementation uses a mixture of the
  • scripts/bib2dox.py

    r754 r745  
    7171author_rex = re.compile('\s+and\s+')
    7272rembraces_rex = re.compile('[{}]')
    73 capitalize_rex = re.compile('({[^}]*})')
     73capitalize_rex = re.compile('({\w*})')
    7474
    7575# used by bibtexkeywords(data)
     
    364364            if entrycont.has_key('note') and (entrycont['note'] != ''):
    365365                entry.append(entrycont['note'] + '.')
    366             if entrycont.has_key('url') and (entrycont['url'] != ''):
    367                 entry.append(entrycont['url'] + '.')
    368366
    369367            # generate keys for sorting and for the output
     
    413411                field = string.lower(field)
    414412                data =  data_rex.sub('\g<2>', line)
    415 
    416             if field == 'url':
    417                 data = '\\url{' + data.strip() + '}'
    418413           
    419414            if field in ('author', 'editor'):
Note: See TracChangeset for help on using the changeset viewer.