[Lemon-commits] Peter Kovacs: Insert citations into the doc (#184)

Lemon HG hg at lemon.cs.elte.hu
Thu Nov 5 06:29:28 CET 2009


details:   http://lemon.cs.elte.hu/hg/lemon/rev/134852d7fb0a
changeset: 815:134852d7fb0a
user:      Peter Kovacs <kpeter [at] inf.elte.hu>
date:      Sat Oct 10 08:18:46 2009 +0200
description:
	Insert citations into the doc (#184)

	 - Add general citations to modules.
	 - Add specific citations for max flow and min cost flow algorithms.
	 - Add citations for the supported LP and MIP solvers.
	 - Extend the main page.
	 - Replace inproceedings entries with the journal versions.
	 - Add a new bibtex entry about network simplex.
	 - Remove unwanted entries.

diffstat:

 doc/groups.dox          |  55 +++++++++++++++++----------
 doc/mainpage.dox        |  24 +++++++----
 doc/min_cost_flow.dox   |   2 +-
 doc/references.bib      |  91 +++++++++++++++------------------------------
 lemon/network_simplex.h |   4 +-
 lemon/preflow.h         |   3 +-
 6 files changed, 86 insertions(+), 93 deletions(-)

diffs (truncated from 321 to 300 lines):

diff --git a/doc/groups.dox b/doc/groups.dox
--- a/doc/groups.dox
+++ b/doc/groups.dox
@@ -316,7 +316,8 @@
 \brief Common graph search algorithms.
 
 This group contains the common graph search algorithms, namely
-\e breadth-first \e search (BFS) and \e depth-first \e search (DFS).
+\e breadth-first \e search (BFS) and \e depth-first \e search (DFS)
+\ref clrs01algorithms.
 */
 
 /**
@@ -324,7 +325,8 @@
 @ingroup algs
 \brief Algorithms for finding shortest paths.
 
-This group contains the algorithms for finding shortest paths in digraphs.
+This group contains the algorithms for finding shortest paths in digraphs
+\ref clrs01algorithms.
 
  - \ref Dijkstra algorithm for finding shortest paths from a source node
    when all arc lengths are non-negative.
@@ -346,7 +348,7 @@
 \brief Algorithms for finding minimum cost spanning trees and arborescences.
 
 This group contains the algorithms for finding minimum cost spanning
-trees and arborescences.
+trees and arborescences \ref clrs01algorithms.
 */
 
 /**
@@ -355,7 +357,7 @@
 \brief Algorithms for finding maximum flows.
 
 This group contains the algorithms for finding maximum flows and
-feasible circulations.
+feasible circulations \ref clrs01algorithms, \ref amo93networkflows.
 
 The \e maximum \e flow \e problem is to find a flow of maximum value between
 a single source and a single target. Formally, there is a \f$G=(V,A)\f$
@@ -370,12 +372,16 @@
 \f[ 0 \leq f(uv) \leq cap(uv) \quad \forall uv\in A \f]
 
 LEMON contains several algorithms for solving maximum flow problems:
-- \ref EdmondsKarp Edmonds-Karp algorithm.
-- \ref Preflow Goldberg-Tarjan's preflow push-relabel algorithm.
-- \ref DinitzSleatorTarjan Dinitz's blocking flow algorithm with dynamic trees.
-- \ref GoldbergTarjan Preflow push-relabel algorithm with dynamic trees.
+- \ref EdmondsKarp Edmonds-Karp algorithm
+  \ref edmondskarp72theoretical.
+- \ref Preflow Goldberg-Tarjan's preflow push-relabel algorithm
+  \ref goldberg88newapproach.
+- \ref DinitzSleatorTarjan Dinitz's blocking flow algorithm with dynamic trees
+  \ref dinic70algorithm, \ref sleator83dynamic.
+- \ref GoldbergTarjan !Preflow push-relabel algorithm with dynamic trees
+  \ref goldberg88newapproach, \ref sleator83dynamic.
 
-In most cases the \ref Preflow "Preflow" algorithm provides the
+In most cases the \ref Preflow algorithm provides the
 fastest method for computing a maximum flow. All implementations
 also provide functions to query the minimum cut, which is the dual
 problem of maximum flow.
@@ -393,18 +399,22 @@
 \brief Algorithms for finding minimum cost flows and circulations.
 
 This group contains the algorithms for finding minimum cost flows and
-circulations. For more information about this problem and its dual
-solution see \ref min_cost_flow "Minimum Cost Flow Problem".
+circulations \ref amo93networkflows. For more information about this
+problem and its dual solution, see \ref min_cost_flow
+"Minimum Cost Flow Problem".
 
 LEMON contains several algorithms for this problem.
  - \ref NetworkSimplex Primal Network Simplex algorithm with various
-   pivot strategies.
+   pivot strategies \ref dantzig63linearprog, \ref kellyoneill91netsimplex.
  - \ref CostScaling Push-Relabel and Augment-Relabel algorithms based on
-   cost scaling.
+   cost scaling \ref goldberg90approximation, \ref goldberg97efficient,
+   \ref bunnagel98efficient.
  - \ref CapacityScaling Successive Shortest %Path algorithm with optional
-   capacity scaling.
- - \ref CancelAndTighten The Cancel and Tighten algorithm.
- - \ref CycleCanceling Cycle-Canceling algorithms.
+   capacity scaling \ref edmondskarp72theoretical.
+ - \ref CancelAndTighten The Cancel and Tighten algorithm
+   \ref goldberg89cyclecanceling.
+ - \ref CycleCanceling Cycle-Canceling algorithms
+   \ref klein67primal, \ref goldberg89cyclecanceling.
 
 In general NetworkSimplex is the most efficient implementation,
 but in special cases other algorithms could be faster.
@@ -534,13 +544,16 @@
 */
 
 /**
- at defgroup lp_group Lp and Mip Solvers
+ at defgroup lp_group LP and MIP Solvers
 @ingroup gen_opt_group
-\brief Lp and Mip solver interfaces for LEMON.
+\brief LP and MIP solver interfaces for LEMON.
 
-This group contains Lp and Mip solver interfaces for LEMON. The
-various LP solvers could be used in the same manner with this
-interface.
+This group contains LP and MIP solver interfaces for LEMON.
+Various LP solvers could be used in the same manner with this
+high-level interface.
+
+The currently supported solvers are \ref glpk, \ref clp, \ref cbc,
+\ref cplex, \ref soplex.
 */
 
 /**
diff --git a/doc/mainpage.dox b/doc/mainpage.dox
--- a/doc/mainpage.dox
+++ b/doc/mainpage.dox
@@ -21,14 +21,11 @@
 
 \section intro Introduction
 
-\subsection whatis What is LEMON
-
-LEMON stands for <b>L</b>ibrary for <b>E</b>fficient <b>M</b>odeling
-and <b>O</b>ptimization in <b>N</b>etworks.
-It is a C++ template
-library aimed at combinatorial optimization tasks which
-often involve in working
-with graphs.
+<b>LEMON</b> stands for <i><b>L</b>ibrary for <b>E</b>fficient <b>M</b>odeling
+and <b>O</b>ptimization in <b>N</b>etworks</i>.
+It is a C++ template library providing efficient implementation of common
+data structures and algorithms with focus on combinatorial optimization
+problems in graphs and networks.
 
 <b>
 LEMON is an <a class="el" href="http://opensource.org/">open source</a>
@@ -38,7 +35,16 @@
 \ref license "license terms".
 </b>
 
-\subsection howtoread How to read the documentation
+The project is maintained by the 
+<a href="http://www.cs.elte.hu/egres/">Egerváry Research Group on
+Combinatorial Optimization</a> \ref egres
+at the Operations Research Department of the
+<a href="http://www.elte.hu/">Eötvös Loránd University,
+Budapest</a>, Hungary.
+LEMON is also a member of the <a href="http://www.coin-or.org/">COIN-OR</a>
+initiative \ref coinor.
+
+\section howtoread How to Read the Documentation
 
 If you would like to get to know the library, see
 <a class="el" href="http://lemon.cs.elte.hu/pub/tutorial/">LEMON Tutorial</a>.
diff --git a/doc/min_cost_flow.dox b/doc/min_cost_flow.dox
--- a/doc/min_cost_flow.dox
+++ b/doc/min_cost_flow.dox
@@ -26,7 +26,7 @@
 The \e minimum \e cost \e flow \e problem is to find a feasible flow of
 minimum total cost from a set of supply nodes to a set of demand nodes
 in a network with capacity constraints (lower and upper bounds)
-and arc costs.
+and arc costs \ref amo93networkflows.
 
 Formally, let \f$G=(V,A)\f$ be a digraph, \f$lower: A\rightarrow\mathbf{R}\f$,
 \f$upper: A\rightarrow\mathbf{R}\cup\{+\infty\}\f$ denote the lower and
diff --git a/doc/references.bib b/doc/references.bib
--- a/doc/references.bib
+++ b/doc/references.bib
@@ -150,15 +150,25 @@
 
 %%%%% Maximum flow algorithms %%%%%
 
- at inproceedings{goldberg86newapproach,
+ at article{edmondskarp72theoretical,
+  author =       {Jack Edmonds and Richard M. Karp},
+  title =        {Theoretical improvements in algorithmic efficiency
+                  for network flow problems},
+  journal =      {Journal of the ACM},
+  year =         1972,
+  volume =       19,
+  number =       2,
+  pages =        {248-264}
+}
+
+ at article{goldberg88newapproach,
   author =       {Andrew V. Goldberg and Robert E. Tarjan},
   title =        {A new approach to the maximum flow problem},
-  booktitle =    {STOC '86: Proceedings of the Eighteenth Annual ACM
-                  Symposium on Theory of Computing},
-  year =         1986,
-  publisher =    {ACM Press},
-  address =      {New York, NY},
-  pages =        {136-146}
+  journal =      {Journal of the ACM},
+  year =         1988,
+  volume =       35,
+  number =       4,
+  pages =        {921-940}
 }
 
 @article{dinic70algorithm,
@@ -229,42 +239,18 @@
   pages =        {205-220}
 }
 
- at inproceedings{goldberg88cyclecanceling,
+ at article{goldberg89cyclecanceling,
   author =       {Andrew V. Goldberg and Robert E. Tarjan},
   title =        {Finding minimum-cost circulations by canceling
                   negative cycles},
-  booktitle =    {STOC '88: Proceedings of the Twentieth Annual ACM
-                  Symposium on Theory of Computing},
-  year =         1988,
-  publisher =    {ACM Press},
-  address =      {New York, NY},
-  pages =        {388-397}
+  journal =      {Journal of the ACM},
+  year =         1989,
+  volume =       36,
+  number =       4,
+  pages =        {873-886}
 }
 
- at article{edmondskarp72theoretical,
-  author =       {Jack Edmonds and Richard M. Karp},
-  title =        {Theoretical improvements in algorithmic efficiency
-                  for network flow problems},
-  journal =      {Journal of the ACM},
-  year =         1972,
-  volume =       19,
-  number =       2,
-  pages =        {248-264}
-}
-
- at inproceedings{goldberg87approximation,
-  author =       {Andrew V. Goldberg and Robert E. Tarjan},
-  title =        {Solving minimum-cost flow problems by successive
-                  approximation},
-  booktitle =    {STOC '87: Proceedings of the Nineteenth Annual ACM
-                  Symposium on Theory of Computing},
-  year =         1987,
-  publisher =    {ACM Press},
-  address =      {New York, NY},
-  pages =        {7-18}
-}
-
- at article{goldberg90finding,
+ at article{goldberg90approximation,
   author =       {Andrew V. Goldberg and Robert E. Tarjan},
   title =        {Finding Minimum-Cost Circulations by Successive
                   Approximation},
@@ -297,6 +283,13 @@
   pages =        {157-174}
 }
 
+ at book{dantzig63linearprog,
+  author =       {George B. Dantzig},
+  title =        {Linear Programming and Extensions},
+  publisher =    {Princeton University Press},
+  year =         1963
+}
+
 @mastersthesis{kellyoneill91netsimplex,
   author =       {Damian J. Kelly and Garrett M. O'Neill},
   title =        {The Minimum Cost Flow Problem and The Network
@@ -306,25 +299,3 @@
   year =         1991,
   month =        sep,
 }
-
- at techreport{lobel96networksimplex,
-  author =       {Andreas L{\"o}bel},
-  title =        {Solving large-scale real-world minimum-cost flow
-                  problems by a network simplex method},
-  institution =  {Konrad-Zuse-Zentrum fur Informationstechnik Berlin
-                  ({ZIB})},
-  address =      {Berlin, Germany},
-  year =         1996,
-  number =       {SC 96-7}
-}
-
- at article{frangioni06computational,
-  author =       {Antonio Frangioni and Antonio Manca},
-  title =        {A Computational Study of Cost Reoptimization for
-                  Min-Cost Flow Problems},
-  journal =      {INFORMS Journal On Computing},
-  year =         2006,
-  volume =       18,
-  number =       1,
-  pages =        {61-70}
-}
diff --git a/lemon/network_simplex.h b/lemon/network_simplex.h
--- a/lemon/network_simplex.h
+++ b/lemon/network_simplex.h
@@ -40,7 +40,9 @@
   /// for finding a \ref min_cost_flow "minimum cost flow".
   ///



More information about the Lemon-commits mailing list