alpar@1281: 2013-08-10 Version 1.3 released alpar@1281: alpar@1281: This is major feature release alpar@1281: alpar@1281: * New data structures alpar@1281: alpar@1281: #69 : Bipartite graph concepts and implementations alpar@1281: alpar@1281: * New algorithms alpar@1281: alpar@1281: #177: Port Edmonds-Karp algorithm alpar@1281: #380, #405: Heuristic algorithm for the max clique problem alpar@1281: #386: Heuristic algorithms for symmetric TSP alpar@1281: ----: Nagamochi-Ibaraki algorithm [5087694945e4] alpar@1281: #397, #56: Max. cardinality search alpar@1281: alpar@1281: * Other new features alpar@1281: alpar@1281: #223: Thread safe graph and graph map implementations alpar@1281: #442: Different TimeStamp print formats alpar@1281: #457: File export functionality to LpBase alpar@1281: #362: Bidirectional iterator support for radixSort() alpar@1281: alpar@1281: * Implementation improvements alpar@1281: alpar@1281: ----: Network Simplex alpar@1281: #391: Better update process, pivot rule and arc mixing alpar@1281: #435: Improved Altering List pivot rule alpar@1281: #417: Various fine tunings in CostScaling alpar@1281: #438: Optional iteration limit in HowardMmc alpar@1281: #436: Ensure strongly polynomial running time for CycleCanceling alpar@1281: while keeping the same performance alpar@1281: ----: Make the CBC interface be compatible with latest CBC releases alpar@1281: [ee581a0ecfbf] alpar@1281: alpar@1281: * CMAKE has become the default build environment (#434) alpar@1281: alpar@1281: ----: Autotool support has been dropped alpar@1281: ----: Improved LP/MIP configuration alpar@1281: #465: Enable/disable options for LP/MIP backends alpar@1281: #446: Better CPLEX discovery alpar@1281: #460: Add cmake config to find SoPlex alpar@1281: ----: Allow CPACK configuration on all platforms alpar@1281: #390: Add 'Maintainer' CMAKE build type alpar@1281: #388: Add 'check' target. alpar@1281: #401: Add contrib dir alpar@1281: #389: Better version string setting in CMAKE alpar@1281: #433: Support shared library build alpar@1281: #416: Support testing with valgrind alpar@1281: alpar@1281: * Doc improvements alpar@1281: alpar@1281: #395: SOURCE_BROWSER Doxygen switch is configurable from CMAKE alpar@1281: update-external-tags CMAKE target alpar@1281: #455: Optionally use MathJax for rendering the math formulae alpar@1281: #402, #437, #459, #456, #463: Various doc improvements alpar@1281: alpar@1281: * Bugfixes (compared to release 1.2): alpar@1281: alpar@1281: #432: Add missing doc/template.h and doc/references.bib to release alpar@1281: tarball alpar@1281: ----: Intel C++ compatibility fixes alpar@1281: #441: Fix buggy reinitialization in _solver_bits::VarIndex::clear() alpar@1281: #444: Bugfix in path copy constructors and assignment operators alpar@1281: #447: Bugfix in AllArcLookUp<> alpar@1281: #448: Bugfix in adaptor_test.cc alpar@1281: #449: Fix clang compilation warnings and errors alpar@1281: #440: Fix a bug + remove redundant typedefs in dimacs-solver alpar@1281: #453: Avoid GCC 4.7 compiler warnings alpar@1281: #445: Fix missing initialization in CplexEnv::CplexEnv() alpar@1281: #428: Add missing lemon/lemon.pc.cmake to the release tarball alpar@1281: #393: Create and install lemon.pc alpar@1281: #429: Fix VS warnings alpar@1281: #430: Fix LpBase::Constr two-side limit bug alpar@1281: #392: Bug fix in Dfs::start(s,t) alpar@1281: #414: Fix wrong initialization in Preflow alpar@1281: #418: Better Win CodeBlock/MinGW support alpar@1281: #419: Build environment improvements alpar@1281: - Build of mip_test and lp_test precede the running of the tests alpar@1281: - Also search for coin libs under ${COIN_ROOT_DIR}/lib/coin alpar@1281: - Do not look for COIN_VOL libraries alpar@1281: #382: Allow lgf file without Arc maps alpar@1281: #417: Bug fix in CostScaling alpar@1281: #366: Fix Pred[Matrix]MapPath::empty() alpar@1281: #371: Bug fix in (di)graphCopy() alpar@1281: The target graph is cleared before adding nodes and arcs/edges. alpar@1281: #364: Add missing UndirectedTags alpar@1281: #368: Fix the usage of std::numeric_limits<>::min() in Network Simplex alpar@1281: #372: Fix a critical bug in preflow alpar@1281: #461: Bugfix in assert.h alpar@1281: #470: Fix compilation issues related to various gcc versions alpar@1281: #446: Fix #define indicating CPLEX availability alpar@1281: #294: Add explicit namespace to alpar@1281: ignore_unused_variable_warning() usages alpar@1281: #420: Bugfix in IterableValueMap alpar@1281: #439: Bugfix in biNodeConnected() alpar@1281: alpar@1281: alpar@962: 2010-03-19 Version 1.2 released alpar@962: alpar@962: This is major feature release alpar@962: alpar@962: * New algorithms alpar@962: * Bellman-Ford algorithm (#51) alpar@962: * Minimum mean cycle algorithms (#179) alpar@962: * Karp, Hartman-Orlin and Howard algorithms alpar@962: * New minimum cost flow algorithms (#180) alpar@962: * Cost Scaling algorithms alpar@962: * Capacity Scaling algorithm alpar@962: * Cycle-Canceling algorithms alpar@962: * Planarity related algorithms (#62) alpar@962: * Planarity checking algorithm alpar@962: * Planar embedding algorithm alpar@962: * Schnyder's planar drawing algorithm alpar@962: * Coloring planar graphs with five or six colors alpar@962: * Fractional matching algorithms (#314) alpar@962: * New data structures alpar@962: * StaticDigraph structure (#68) alpar@962: * Several new priority queue structures (#50, #301) alpar@962: * Fibonacci, Radix, Bucket, Pairing, Binomial alpar@962: D-ary and fourary heaps (#301) alpar@962: * Iterable map structures (#73) alpar@962: * Other new tools and functionality alpar@962: * Map utility functions (#320) alpar@962: * Reserve functions are added to ListGraph and SmartGraph (#311) alpar@962: * A resize() function is added to HypercubeGraph (#311) alpar@962: * A count() function is added to CrossRefMap (#302) alpar@962: * Support for multiple targets in Suurballe using fullInit() (#181) alpar@962: * Traits class and named parameters for Suurballe (#323) alpar@962: * Separate reset() and resetParams() functions in NetworkSimplex alpar@962: to handle graph changes (#327) alpar@962: * tolerance() functions are added to HaoOrlin (#306) alpar@962: * Implementation improvements alpar@962: * Improvements in weighted matching algorithms (#314) alpar@962: * Jumpstart initialization alpar@962: * ArcIt iteration is based on out-arc lists instead of in-arc lists alpar@962: in ListDigraph (#311) alpar@962: * Faster add row operation in CbcMip (#203) alpar@962: * Better implementation for split() in ListDigraph (#311) alpar@962: * ArgParser can also throw exception instead of exit(1) (#332) alpar@962: * Miscellaneous alpar@962: * A simple interactive bootstrap script alpar@962: * Doc improvements (#62,#180,#299,#302,#303,#304,#307,#311,#331,#315, alpar@962: #316,#319) alpar@962: * BibTeX references in the doc (#184) alpar@962: * Optionally use valgrind when running tests alpar@962: * Also check ReferenceMapTag in concept checks (#312) alpar@962: * dimacs-solver uses long long type by default. alpar@962: * Several bugfixes (compared to release 1.1): alpar@962: #295: Suppress MSVC warnings using pragmas alpar@962: ----: Various CMAKE related improvements alpar@962: * Remove duplications from doc/CMakeLists.txt alpar@962: * Rename documentation install folder from 'docs' to 'html' alpar@962: * Add tools/CMakeLists.txt to the tarball alpar@962: * Generate and install LEMONConfig.cmake alpar@962: * Change the label of the html project in Visual Studio alpar@962: * Fix the check for the 'long long' type alpar@962: * Put the version string into config.h alpar@962: * Minor CMake improvements alpar@962: * Set the version to 'hg-tip' if everything fails alpar@962: #311: Add missing 'explicit' keywords alpar@962: #302: Fix the implementation and doc of CrossRefMap alpar@962: #308: Remove duplicate list_graph.h entry from source list alpar@962: #307: Bugfix in Preflow and Circulation alpar@962: #305: Bugfix and extension in the rename script alpar@962: #312: Also check ReferenceMapTag in concept checks alpar@962: #250: Bugfix in pathSource() and pathTarget() alpar@962: #321: Use pathCopy(from,to) instead of copyPath(to,from) alpar@962: #322: Distribure LEMONConfig.cmake.in alpar@962: #330: Bug fix in map_extender.h alpar@962: #336: Fix the date field comment of graphToEps() output alpar@962: #323: Bug fix in Suurballe alpar@962: #335: Fix clear() function in ExtendFindEnum alpar@962: #337: Use void* as the LPX object pointer alpar@962: #317: Fix (and improve) error message in mip_test.cc alpar@962: Remove unnecessary OsiCbc dependency alpar@962: #356: Allow multiple executions of weighted matching algorithms (#356) alpar@962: alpar@712: 2009-05-13 Version 1.1 released alpar@712: alpar@712: This is the second stable release of the 1.x series. It alpar@712: features a better coverage of the tools available in the 0.x alpar@712: series, a thoroughly reworked LP/MIP interface plus various alpar@712: improvements in the existing tools. alpar@712: alpar@712: * Much improved M$ Windows support alpar@712: * Various improvements in the CMAKE build system alpar@712: * Compilation warnings are fixed/suppressed alpar@712: * Support IBM xlC compiler alpar@712: * New algorithms alpar@712: * Connectivity related algorithms (#61) alpar@712: * Euler walks (#65) alpar@712: * Preflow push-relabel max. flow algorithm (#176) alpar@712: * Circulation algorithm (push-relabel based) (#175) alpar@712: * Suurballe algorithm (#47) alpar@712: * Gomory-Hu algorithm (#66) alpar@712: * Hao-Orlin algorithm (#58) alpar@712: * Edmond's maximum cardinality and weighted matching algorithms alpar@712: in general graphs (#48,#265) alpar@712: * Minimum cost arborescence/branching (#60) alpar@712: * Network Simplex min. cost flow algorithm (#234) alpar@712: * New data structures alpar@712: * Full graph structure (#57) alpar@712: * Grid graph structure (#57) alpar@712: * Hypercube graph structure (#57) alpar@712: * Graph adaptors (#67) alpar@712: * ArcSet and EdgeSet classes (#67) alpar@712: * Elevator class (#174) alpar@712: * Other new tools alpar@712: * LP/MIP interface (#44) alpar@712: * Support for GLPK, CPLEX, Soplex, COIN-OR CLP and CBC alpar@712: * Reader for the Nauty file format (#55) alpar@712: * DIMACS readers (#167) alpar@712: * Radix sort algorithms (#72) alpar@712: * RangeIdMap and CrossRefMap (#160) alpar@712: * New command line tools alpar@712: * DIMACS to LGF converter (#182) alpar@712: * lgf-gen - a graph generator (#45) alpar@712: * DIMACS solver utility (#226) alpar@712: * Other code improvements alpar@712: * Lognormal distribution added to Random (#102) alpar@712: * Better (i.e. O(1) time) item counting in SmartGraph (#3) alpar@712: * The standard maps of graphs are guaranteed to be alpar@712: reference maps (#190) alpar@712: * Miscellaneous alpar@712: * Various doc improvements alpar@712: * Improved 0.x -> 1.x converter script alpar@712: alpar@712: * Several bugfixes (compared to release 1.0): alpar@712: #170: Bugfix SmartDigraph::split() alpar@712: #171: Bugfix in SmartGraph::restoreSnapshot() alpar@712: #172: Extended test cases for graphs and digraphs alpar@712: #173: Bugfix in Random alpar@712: * operator()s always return a double now alpar@712: * the faulty real(Num) and real(Num,Num) alpar@712: have been removed alpar@712: #187: Remove DijkstraWidestPathOperationTraits alpar@712: #61: Bugfix in DfsVisit alpar@712: #193: Bugfix in GraphReader::skipSection() alpar@712: #195: Bugfix in ConEdgeIt() alpar@712: #197: Bugfix in heap unionfind alpar@712: * This bug affects Edmond's general matching algorithms alpar@712: #207: Fix 'make install' without 'make html' using CMAKE alpar@712: #208: Suppress or fix VS2008 compilation warnings alpar@712: ----: Update the LEMON icon alpar@712: ----: Enable the component-based installer alpar@712: (in installers made by CPACK) alpar@712: ----: Set the proper version for CMAKE in the tarballs alpar@712: (made by autotools) alpar@712: ----: Minor clarification in the LICENSE file alpar@712: ----: Add missing unistd.h include to time_measure.h alpar@712: #204: Compilation bug fixed in graph_to_eps.h with VS2005 alpar@962: #214,#215: windows.h should never be included by LEMON headers alpar@712: #230: Build systems check the availability of 'long long' type alpar@712: #229: Default implementation of Tolerance<> is used for integer types alpar@712: #211,#212: Various fixes for compiling on AIX alpar@712: ----: Improvements in CMAKE config alpar@712: - docs is installed in share/doc/ alpar@712: - detects newer versions of Ghostscript alpar@712: #239: Fix missing 'inline' specifier in time_measure.h alpar@712: #274,#280: Install lemon/config.h alpar@712: #275: Prefix macro names with LEMON_ in lemon/config.h alpar@712: ----: Small script for making the release tarballs added alpar@712: ----: Minor improvement in unify-sources.sh (a76f55d7d397) alpar@712: alpar@534: 2009-03-27 LEMON joins to the COIN-OR initiative alpar@534: alpar@534: COIN-OR (Computational Infrastructure for Operations Research, alpar@534: http://www.coin-or.org) project is an initiative to spur the alpar@534: development of open-source software for the operations research alpar@534: community. alpar@534: alpar@322: 2008-10-13 Version 1.0 released alpar@262: alpar@962: This is the first stable release of LEMON. Compared to the 0.x alpar@962: release series, it features a considerably smaller but more alpar@962: matured set of tools. The API has also completely revised and alpar@962: changed in several places. alpar@262: alpar@962: * The major name changes compared to the 0.x series (see the alpar@322: Migration Guide in the doc for more details) alpar@262: * Graph -> Digraph, UGraph -> Graph alpar@262: * Edge -> Arc, UEdge -> Edge alpar@962: * source(UEdge)/target(UEdge) -> u(Edge)/v(Edge) alpar@962: * Other improvements alpar@962: * Better documentation alpar@962: * Reviewed and cleaned up codebase alpar@962: * CMake based build system (along with the autotools based one) alpar@962: * Contents of the library (ported from 0.x) alpar@962: * Algorithms alpar@962: * breadth-first search (bfs.h) alpar@962: * depth-first search (dfs.h) alpar@962: * Dijkstra's algorithm (dijkstra.h) alpar@962: * Kruskal's algorithm (kruskal.h) alpar@962: * Data structures alpar@962: * graph data structures (list_graph.h, smart_graph.h) alpar@962: * path data structures (path.h) alpar@962: * binary heap data structure (bin_heap.h) alpar@962: * union-find data structures (unionfind.h) alpar@962: * miscellaneous property maps (maps.h) alpar@962: * two dimensional vector and bounding box (dim2.h) alpar@262: * Concepts alpar@962: * graph structure concepts (concepts/digraph.h, concepts/graph.h, alpar@262: concepts/graph_components.h) alpar@962: * concepts for other structures (concepts/heap.h, concepts/maps.h, alpar@962: concepts/path.h) alpar@962: * Tools alpar@962: * Mersenne twister random number generator (random.h) alpar@962: * tools for measuring cpu and wall clock time (time_measure.h) alpar@962: * tools for counting steps and events (counter.h) alpar@962: * tool for parsing command line arguments (arg_parser.h) alpar@962: * tool for visualizing graphs (graph_to_eps.h) alpar@962: * tools for reading and writing data in LEMON Graph Format alpar@262: (lgf_reader.h, lgf_writer.h) alpar@262: * tools to handle the anomalies of calculations with alpar@962: floating point numbers (tolerance.h) alpar@262: * tools to manage RGB colors (color.h) alpar@962: * Infrastructure alpar@962: * extended assertion handling (assert.h) alpar@962: * exception classes and error handling (error.h) alpar@962: * concept checking (concept_check.h) alpar@962: * commonly used mathematical constants (math.h)