NEWS
author Alpar Juttner <alpar@cs.elte.hu>
Thu, 17 Oct 2013 15:09:30 +0200
branch1.3
changeset 1299 b6bad215bccd
parent 962 87569cb5734d
child 1320 bdabbf66b2ad
permissions -rw-r--r--
Merge bugfix #478 to branch 1.3
     1 2013-08-10 Version 1.3 released
     2 
     3         This is major feature release
     4 
     5         * New data structures
     6 
     7           #69 : Bipartite graph concepts and implementations
     8 
     9         * New algorithms
    10 
    11           #177: Port Edmonds-Karp algorithm
    12           #380, #405: Heuristic algorithm for the max clique problem
    13           #386: Heuristic algorithms for symmetric TSP
    14           ----: Nagamochi-Ibaraki algorithm [5087694945e4]
    15           #397, #56: Max. cardinality search
    16 
    17         * Other new features
    18 
    19           #223: Thread safe graph and graph map implementations
    20           #442: Different TimeStamp print formats
    21           #457: File export functionality to LpBase
    22           #362: Bidirectional iterator support for radixSort()
    23 
    24         * Implementation improvements
    25 
    26           ----: Network Simplex
    27                 #391: Better update process, pivot rule and arc mixing
    28                 #435: Improved Altering List pivot rule
    29           #417: Various fine tunings in CostScaling
    30           #438: Optional iteration limit in HowardMmc
    31           #436: Ensure strongly polynomial running time for CycleCanceling
    32                 while keeping the same performance
    33           ----: Make the CBC interface be compatible with latest CBC releases
    34                 [ee581a0ecfbf]
    35 
    36         * CMAKE has become the default build environment (#434)
    37 
    38           ----: Autotool support has been dropped
    39           ----: Improved LP/MIP configuration
    40                 #465: Enable/disable options for LP/MIP backends
    41                 #446: Better CPLEX discovery
    42                 #460: Add cmake config to find SoPlex
    43           ----: Allow CPACK configuration on all platforms
    44           #390: Add 'Maintainer' CMAKE build type
    45           #388: Add 'check' target.
    46           #401: Add contrib dir
    47           #389: Better version string setting in CMAKE
    48           #433: Support shared library build    
    49           #416: Support testing with valgrind
    50   
    51         * Doc improvements
    52 
    53           #395: SOURCE_BROWSER Doxygen switch is configurable from CMAKE
    54                 update-external-tags CMAKE target
    55           #455: Optionally use MathJax for rendering the math formulae
    56           #402, #437, #459, #456, #463: Various doc improvements
    57 
    58         * Bugfixes (compared to release 1.2):
    59 
    60           #432: Add missing doc/template.h and doc/references.bib to release
    61                 tarball
    62           ----: Intel C++ compatibility fixes
    63           #441: Fix buggy reinitialization in _solver_bits::VarIndex::clear()
    64           #444: Bugfix in path copy constructors and assignment operators
    65           #447: Bugfix in AllArcLookUp<>
    66           #448: Bugfix in adaptor_test.cc
    67           #449: Fix clang compilation warnings and errors
    68           #440: Fix a bug + remove redundant typedefs in dimacs-solver
    69           #453: Avoid GCC 4.7 compiler warnings
    70           #445: Fix missing initialization in CplexEnv::CplexEnv()
    71           #428: Add missing lemon/lemon.pc.cmake to the release tarball
    72           #393: Create and install lemon.pc
    73           #429: Fix VS warnings
    74           #430: Fix LpBase::Constr two-side limit bug
    75           #392: Bug fix in Dfs::start(s,t)
    76           #414: Fix wrong initialization in Preflow
    77           #418: Better Win CodeBlock/MinGW support
    78           #419: Build environment improvements
    79                 - Build of mip_test and lp_test precede the running of the tests
    80                 - Also search for coin libs under ${COIN_ROOT_DIR}/lib/coin
    81                 - Do not look for COIN_VOL libraries
    82           #382: Allow lgf file without Arc maps
    83           #417: Bug fix in CostScaling
    84           #366: Fix Pred[Matrix]MapPath::empty()
    85           #371: Bug fix in (di)graphCopy()
    86                 The target graph is cleared before adding nodes and arcs/edges.
    87           #364: Add missing UndirectedTags
    88           #368: Fix the usage of std::numeric_limits<>::min() in Network Simplex
    89           #372: Fix a critical bug in preflow
    90           #461: Bugfix in assert.h
    91           #470: Fix compilation issues related to various gcc versions
    92           #446: Fix #define indicating CPLEX availability
    93           #294: Add explicit namespace to
    94                 ignore_unused_variable_warning() usages
    95           #420: Bugfix in IterableValueMap
    96           #439: Bugfix in biNodeConnected()
    97 
    98 
    99 2010-03-19 Version 1.2 released
   100 
   101         This is major feature release
   102 
   103         * New algorithms
   104           * Bellman-Ford algorithm (#51)
   105           * Minimum mean cycle algorithms (#179)
   106             * Karp, Hartman-Orlin and Howard algorithms
   107           * New minimum cost flow algorithms (#180)
   108             * Cost Scaling algorithms
   109             * Capacity Scaling algorithm
   110             * Cycle-Canceling algorithms
   111           * Planarity related algorithms (#62)
   112             * Planarity checking algorithm
   113             * Planar embedding algorithm
   114             * Schnyder's planar drawing algorithm
   115             * Coloring planar graphs with five or six colors
   116           * Fractional matching algorithms (#314)
   117         * New data structures
   118           * StaticDigraph structure (#68)
   119           * Several new priority queue structures (#50, #301)
   120             * Fibonacci, Radix, Bucket, Pairing, Binomial
   121               D-ary and fourary heaps (#301)
   122           * Iterable map structures (#73)
   123         * Other new tools and functionality
   124           * Map utility functions (#320)
   125           * Reserve functions are added to ListGraph and SmartGraph (#311)
   126           * A resize() function is added to HypercubeGraph (#311)
   127           * A count() function is added to CrossRefMap (#302)
   128           * Support for multiple targets in Suurballe using fullInit() (#181)
   129           * Traits class and named parameters for Suurballe (#323)
   130           * Separate reset() and resetParams() functions in NetworkSimplex
   131             to handle graph changes (#327)
   132           * tolerance() functions are added to HaoOrlin (#306)
   133         * Implementation improvements
   134           * Improvements in weighted matching algorithms (#314)
   135             * Jumpstart initialization
   136           * ArcIt iteration is based on out-arc lists instead of in-arc lists
   137             in ListDigraph (#311)
   138           * Faster add row operation in CbcMip (#203)
   139           * Better implementation for split() in ListDigraph (#311)
   140           * ArgParser can also throw exception instead of exit(1) (#332)
   141         * Miscellaneous
   142           * A simple interactive bootstrap script
   143           * Doc improvements (#62,#180,#299,#302,#303,#304,#307,#311,#331,#315,
   144                 #316,#319)
   145             * BibTeX references in the doc (#184)
   146           * Optionally use valgrind when running tests
   147           * Also check ReferenceMapTag in concept checks (#312)
   148           * dimacs-solver uses long long type by default.
   149         * Several bugfixes (compared to release 1.1):
   150           #295: Suppress MSVC warnings using pragmas
   151           ----: Various CMAKE related improvements
   152                 * Remove duplications from doc/CMakeLists.txt
   153                 * Rename documentation install folder from 'docs' to 'html'
   154                 * Add tools/CMakeLists.txt to the tarball
   155                 * Generate and install LEMONConfig.cmake
   156                 * Change the label of the html project in Visual Studio
   157                 * Fix the check for the 'long long' type
   158                 * Put the version string into config.h
   159                 * Minor CMake improvements
   160                 * Set the version to 'hg-tip' if everything fails
   161           #311: Add missing 'explicit' keywords
   162           #302: Fix the implementation and doc of CrossRefMap
   163           #308: Remove duplicate list_graph.h entry from source list
   164           #307: Bugfix in Preflow and Circulation
   165           #305: Bugfix and extension in the rename script
   166           #312: Also check ReferenceMapTag in concept checks
   167           #250: Bugfix in pathSource() and pathTarget()
   168           #321: Use pathCopy(from,to) instead of copyPath(to,from)
   169           #322: Distribure LEMONConfig.cmake.in
   170           #330: Bug fix in map_extender.h
   171           #336: Fix the date field comment of graphToEps() output
   172           #323: Bug fix in Suurballe
   173           #335: Fix clear() function in ExtendFindEnum
   174           #337: Use void* as the LPX object pointer
   175           #317: Fix (and improve) error message in mip_test.cc
   176                 Remove unnecessary OsiCbc dependency
   177           #356: Allow multiple executions of weighted matching algorithms (#356)
   178 
   179 2009-05-13 Version 1.1 released
   180 
   181         This is the second stable release of the 1.x series. It
   182         features a better coverage of the tools available in the 0.x
   183         series, a thoroughly reworked LP/MIP interface plus various
   184         improvements in the existing tools.
   185 
   186         * Much improved M$ Windows support
   187           * Various improvements in the CMAKE build system
   188           * Compilation warnings are fixed/suppressed
   189         * Support IBM xlC compiler
   190         * New algorithms
   191           * Connectivity related algorithms (#61)
   192           * Euler walks (#65)
   193           * Preflow push-relabel max. flow algorithm (#176)
   194           * Circulation algorithm (push-relabel based) (#175)
   195           * Suurballe algorithm (#47)
   196           * Gomory-Hu algorithm (#66)
   197           * Hao-Orlin algorithm (#58)
   198           * Edmond's maximum cardinality and weighted matching algorithms
   199             in general graphs (#48,#265)
   200           * Minimum cost arborescence/branching (#60)
   201           * Network Simplex min. cost flow algorithm (#234)
   202         * New data structures
   203           * Full graph structure (#57)
   204           * Grid graph structure (#57)
   205           * Hypercube graph structure (#57)
   206           * Graph adaptors (#67)
   207           * ArcSet and EdgeSet classes (#67)
   208           * Elevator class (#174)
   209         * Other new tools
   210           * LP/MIP interface (#44)
   211             * Support for GLPK, CPLEX, Soplex, COIN-OR CLP and CBC
   212           * Reader for the Nauty file format (#55)
   213           * DIMACS readers (#167)
   214           * Radix sort algorithms (#72)
   215           * RangeIdMap and CrossRefMap (#160)
   216         * New command line tools
   217           * DIMACS to LGF converter (#182)
   218           * lgf-gen - a graph generator (#45)
   219           * DIMACS solver utility (#226)
   220         * Other code improvements
   221           * Lognormal distribution added to Random (#102)
   222           * Better (i.e. O(1) time) item counting in SmartGraph (#3)
   223           * The standard maps of graphs are guaranteed to be
   224             reference maps (#190)
   225         * Miscellaneous
   226           * Various doc improvements
   227           * Improved 0.x -> 1.x converter script
   228 
   229         * Several bugfixes (compared to release 1.0):
   230           #170: Bugfix SmartDigraph::split()
   231           #171: Bugfix in SmartGraph::restoreSnapshot()
   232           #172: Extended test cases for graphs and digraphs
   233           #173: Bugfix in Random
   234                 * operator()s always return a double now
   235                 * the faulty real<Num>(Num) and real<Num>(Num,Num)
   236                   have been removed
   237           #187: Remove DijkstraWidestPathOperationTraits
   238           #61:  Bugfix in DfsVisit
   239           #193: Bugfix in GraphReader::skipSection()
   240           #195: Bugfix in ConEdgeIt()
   241           #197: Bugfix in heap unionfind
   242                 * This bug affects Edmond's general matching algorithms
   243           #207: Fix 'make install' without 'make html' using CMAKE
   244           #208: Suppress or fix VS2008 compilation warnings
   245           ----: Update the LEMON icon
   246           ----: Enable the component-based installer
   247                 (in installers made by CPACK)
   248           ----: Set the proper version for CMAKE in the tarballs
   249                 (made by autotools)
   250           ----: Minor clarification in the LICENSE file
   251           ----: Add missing unistd.h include to time_measure.h
   252           #204: Compilation bug fixed in graph_to_eps.h with VS2005
   253           #214,#215: windows.h should never be included by LEMON headers
   254           #230: Build systems check the availability of 'long long' type
   255           #229: Default implementation of Tolerance<> is used for integer types
   256           #211,#212: Various fixes for compiling on AIX
   257           ----: Improvements in CMAKE config
   258                 - docs is installed in share/doc/
   259                 - detects newer versions of Ghostscript
   260           #239: Fix missing 'inline' specifier in time_measure.h
   261           #274,#280: Install lemon/config.h
   262           #275: Prefix macro names with LEMON_ in lemon/config.h
   263           ----: Small script for making the release tarballs added
   264           ----: Minor improvement in unify-sources.sh (a76f55d7d397)
   265 
   266 2009-03-27 LEMON joins to the COIN-OR initiative
   267 
   268         COIN-OR (Computational Infrastructure for Operations Research,
   269         http://www.coin-or.org) project is an initiative to spur the
   270         development of open-source software for the operations research
   271         community.
   272 
   273 2008-10-13 Version 1.0 released
   274 
   275         This is the first stable release of LEMON. Compared to the 0.x
   276         release series, it features a considerably smaller but more
   277         matured set of tools. The API has also completely revised and
   278         changed in several places.
   279 
   280         * The major name changes compared to the 0.x series (see the
   281           Migration Guide in the doc for more details)
   282           * Graph -> Digraph, UGraph -> Graph
   283           * Edge -> Arc, UEdge -> Edge
   284           * source(UEdge)/target(UEdge) -> u(Edge)/v(Edge)
   285         * Other improvements
   286           * Better documentation
   287           * Reviewed and cleaned up codebase
   288           * CMake based build system (along with the autotools based one)
   289         * Contents of the library (ported from 0.x)
   290           * Algorithms
   291             * breadth-first search (bfs.h)
   292             * depth-first search (dfs.h)
   293             * Dijkstra's algorithm (dijkstra.h)
   294             * Kruskal's algorithm (kruskal.h)
   295           * Data structures
   296             * graph data structures (list_graph.h, smart_graph.h)
   297             * path data structures (path.h)
   298             * binary heap data structure (bin_heap.h)
   299             * union-find data structures (unionfind.h)
   300             * miscellaneous property maps (maps.h)
   301             * two dimensional vector and bounding box (dim2.h)
   302           * Concepts
   303             * graph structure concepts (concepts/digraph.h, concepts/graph.h,
   304               concepts/graph_components.h)
   305             * concepts for other structures (concepts/heap.h, concepts/maps.h,
   306               concepts/path.h)
   307           * Tools
   308             * Mersenne twister random number generator (random.h)
   309             * tools for measuring cpu and wall clock time (time_measure.h)
   310             * tools for counting steps and events (counter.h)
   311             * tool for parsing command line arguments (arg_parser.h)
   312             * tool for visualizing graphs (graph_to_eps.h)
   313             * tools for reading and writing data in LEMON Graph Format
   314               (lgf_reader.h, lgf_writer.h)
   315             * tools to handle the anomalies of calculations with
   316               floating point numbers (tolerance.h)
   317             * tools to manage RGB colors (color.h)
   318           * Infrastructure
   319             * extended assertion handling (assert.h)
   320             * exception classes and error handling (error.h)
   321             * concept checking (concept_check.h)
   322             * commonly used mathematical constants (math.h)