LEMON (C++ library)

From Wikipedia, the free encyclopedia
LEMON (C++ library)
Initial release September 30, 2004 (2004-09-30)
Stable release 1.3 / August 10, 2013 (2013-08-10)
Written in C++
Operating system Cross-platform
Platform gcc, icc, Visual Studio, xlC
Type Graph and Network Optimization Library
License Free software (Boost license)
Website http://lemon.cs.elte.hu

LEMON is an open source graph library written in the C++ language providing implementations of common data structures and algorithms with focus on combinatorial optimization tasks connected mainly with graphs and networks. The library is part of the COIN-OR project.

LEMON is an abbreviation of Library for Efficient Modeling and Optimization in Networks.

Design

LEMON employs genericity in C++ by using templates. The tools of the library are designed to be versatile, convenient and highly efficient. They can be combined easily to solve complex real-life optimization problems. For example, LEMON’s graphs can differ in many ways (depending on the representation and other specialities), but all have to satisfy one or more graph concepts, which are standardized interfaces to work with the rest of the library.

Features

LEMON provides

  • Graph structures and related tools
  • Graph search algorithms
  • Shortest path algorithms
  • Maximum flow algorithms
  • Minimum cost flow algorithms
  • Minimum cut algorithms
  • Connectivity and other graph properties
  • Maximum cardinality and minimum cost perfect matching algorithms
  • Minimum cost spanning tree algorithms
  • Approximation algorithms
  • Auxiliary algorithms

LEMON also contains some metaheuristic optimization tools and provides a general high-level interface for several LP and MIP solvers, such as GLPK, ILOG CPLEX, CLP, CBC, SoPlex.

LEMON has its own graph storing format, the so called Lemon Graph Format and includes general EPS drawing methods and special graph exporting tools.

LEMON also includes several miscellaneous tools. For example, it provides simple tools for measuring the performance of algorithms, which can be used to compare different implementations of the same problem.

External links

LEMON webpage:

This article is issued from Wikipedia. The text is available under the Creative Commons Attribution/Share Alike; additional terms may apply for the media files.