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