summaryrefslogtreecommitdiff
path: root/lemon/NEWS
blob: aaf2474f0248122b5527a805a77dca38ed351668 (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
2011-11-09 Version 1.2.3 released

        Bugfix release.

        #428: Add missing lemon/lemon.pc.cmake to the release tarball
        #429: Fix VS warnings
        #430: Fix LpBase::Constr two-side limit bug

2011-08-08 Version 1.2.2 released

        Bugfix release.

        #392: Bug fix in Dfs::start(s,t)
        #414: Fix wrong initialization in Preflow
        #404: Update Doxygen configuration
        #416: Support tests with valgrind
        #418: Better Win CodeBlock/MinGW support
        #419: Backport build environment improvements from the main branch
              - Build of mip_test and lp_test precede the running of the tests
              - Also search for coin libs under ${COIN_ROOT_DIR}/lib/coin
              - Do not look for COIN_VOL libraries
        #382: Allow lgf file without Arc maps
        #417: Bug fix in CostScaling

2010-10-21 Version 1.2.1 released

        Bugfix release.

        #366: Fix Pred[Matrix]MapPath::empty()
        #371: Bug fix in (di)graphCopy()
              The target graph is cleared before adding nodes and arcs/edges.

        #364: Add missing UndirectedTags
        #368: Fix the usage of std::numeric_limits<>::min() in Network Simplex
        #372: Fix a critical bug in preflow

2010-03-19 Version 1.2 released

        This is major feature release

        * New algorithms
          * Bellman-Ford algorithm (#51)
          * Minimum mean cycle algorithms (#179)
            * Karp, Hartman-Orlin and Howard algorithms
          * New minimum cost flow algorithms (#180)
            * Cost Scaling algorithms
            * Capacity Scaling algorithm
            * Cycle-Canceling algorithms
          * Planarity related algorithms (#62)
            * Planarity checking algorithm
            * Planar embedding algorithm
            * Schnyder's planar drawing algorithm
            * Coloring planar graphs with five or six colors
          * Fractional matching algorithms (#314)
        * New data structures
          * StaticDigraph structure (#68)
          * Several new priority queue structures (#50, #301)
            * Fibonacci, Radix, Bucket, Pairing, Binomial
              D-ary and fourary heaps (#301)
          * Iterable map structures (#73)
        * Other new tools and functionality
          * Map utility functions (#320)
          * Reserve functions are added to ListGraph and SmartGraph (#311)
          * A resize() function is added to HypercubeGraph (#311)
          * A count() function is added to CrossRefMap (#302)
          * Support for multiple targets in Suurballe using fullInit() (#181)
          * Traits class and named parameters for Suurballe (#323)
          * Separate reset() and resetParams() functions in NetworkSimplex
            to handle graph changes (#327)
          * tolerance() functions are added to HaoOrlin (#306)
        * Implementation improvements
          * Improvements in weighted matching algorithms (#314)
            * Jumpstart initialization
          * ArcIt iteration is based on out-arc lists instead of in-arc lists
            in ListDigraph (#311)
          * Faster add row operation in CbcMip (#203)
          * Better implementation for split() in ListDigraph (#311)
          * ArgParser can also throw exception instead of exit(1) (#332)
        * Miscellaneous
          * A simple interactive bootstrap script
          * Doc improvements (#62,#180,#299,#302,#303,#304,#307,#311,#331,#315,
                #316,#319)
            * BibTeX references in the doc (#184)
          * Optionally use valgrind when running tests
          * Also check ReferenceMapTag in concept checks (#312)
          * dimacs-solver uses long long type by default.
        * Several bugfixes (compared to release 1.1):
          #295: Suppress MSVC warnings using pragmas
          ----: Various CMAKE related improvements
                * Remove duplications from doc/CMakeLists.txt
                * Rename documentation install folder from 'docs' to 'html'
                * Add tools/CMakeLists.txt to the tarball
                * Generate and install LEMONConfig.cmake
                * Change the label of the html project in Visual Studio
                * Fix the check for the 'long long' type
                * Put the version string into config.h
                * Minor CMake improvements
                * Set the version to 'hg-tip' if everything fails
          #311: Add missing 'explicit' keywords
          #302: Fix the implementation and doc of CrossRefMap
          #308: Remove duplicate list_graph.h entry from source list
          #307: Bugfix in Preflow and Circulation
          #305: Bugfix and extension in the rename script
          #312: Also check ReferenceMapTag in concept checks
          #250: Bugfix in pathSource() and pathTarget()
          #321: Use pathCopy(from,to) instead of copyPath(to,from)
          #322: Distribure LEMONConfig.cmake.in
          #330: Bug fix in map_extender.h
          #336: Fix the date field comment of graphToEps() output
          #323: Bug fix in Suurballe
          #335: Fix clear() function in ExtendFindEnum
          #337: Use void* as the LPX object pointer
          #317: Fix (and improve) error message in mip_test.cc
                Remove unnecessary OsiCbc dependency
          #356: Allow multiple executions of weighted matching algorithms (#356)

2009-05-13 Version 1.1 released

        This is the second stable release of the 1.x series. It
        features a better coverage of the tools available in the 0.x
        series, a thoroughly reworked LP/MIP interface plus various
        improvements in the existing tools.

        * Much improved M$ Windows support
          * Various improvements in the CMAKE build system
          * Compilation warnings are fixed/suppressed
        * Support IBM xlC compiler
        * New algorithms
          * Connectivity related algorithms (#61)
          * Euler walks (#65)
          * Preflow push-relabel max. flow algorithm (#176)
          * Circulation algorithm (push-relabel based) (#175)
          * Suurballe algorithm (#47)
          * Gomory-Hu algorithm (#66)
          * Hao-Orlin algorithm (#58)
          * Edmond's maximum cardinality and weighted matching algorithms
            in general graphs (#48,#265)
          * Minimum cost arborescence/branching (#60)
          * Network Simplex min. cost flow algorithm (#234)
        * New data structures
          * Full graph structure (#57)
          * Grid graph structure (#57)
          * Hypercube graph structure (#57)
          * Graph adaptors (#67)
          * ArcSet and EdgeSet classes (#67)
          * Elevator class (#174)
        * Other new tools
          * LP/MIP interface (#44)
            * Support for GLPK, CPLEX, Soplex, COIN-OR CLP and CBC
          * Reader for the Nauty file format (#55)
          * DIMACS readers (#167)
          * Radix sort algorithms (#72)
          * RangeIdMap and CrossRefMap (#160)
        * New command line tools
          * DIMACS to LGF converter (#182)
          * lgf-gen - a graph generator (#45)
          * DIMACS solver utility (#226)
        * Other code improvements
          * Lognormal distribution added to Random (#102)
          * Better (i.e. O(1) time) item counting in SmartGraph (#3)
          * The standard maps of graphs are guaranteed to be
            reference maps (#190)
        * Miscellaneous
          * Various doc improvements
          * Improved 0.x -> 1.x converter script

        * Several bugfixes (compared to release 1.0):
          #170: Bugfix SmartDigraph::split()
          #171: Bugfix in SmartGraph::restoreSnapshot()
          #172: Extended test cases for graphs and digraphs
          #173: Bugfix in Random
                * operator()s always return a double now
                * the faulty real<Num>(Num) and real<Num>(Num,Num)
                  have been removed
          #187: Remove DijkstraWidestPathOperationTraits
          #61:  Bugfix in DfsVisit
          #193: Bugfix in GraphReader::skipSection()
          #195: Bugfix in ConEdgeIt()
          #197: Bugfix in heap unionfind
                * This bug affects Edmond's general matching algorithms
          #207: Fix 'make install' without 'make html' using CMAKE
          #208: Suppress or fix VS2008 compilation warnings
          ----: Update the LEMON icon
          ----: Enable the component-based installer
                (in installers made by CPACK)
          ----: Set the proper version for CMAKE in the tarballs
                (made by autotools)
          ----: Minor clarification in the LICENSE file
          ----: Add missing unistd.h include to time_measure.h
          #204: Compilation bug fixed in graph_to_eps.h with VS2005
          #214,#215: windows.h should never be included by LEMON headers
          #230: Build systems check the availability of 'long long' type
          #229: Default implementation of Tolerance<> is used for integer types
          #211,#212: Various fixes for compiling on AIX
          ----: Improvements in CMAKE config
                - docs is installed in share/doc/
                - detects newer versions of Ghostscript
          #239: Fix missing 'inline' specifier in time_measure.h
          #274,#280: Install lemon/config.h
          #275: Prefix macro names with LEMON_ in lemon/config.h
          ----: Small script for making the release tarballs added
          ----: Minor improvement in unify-sources.sh (a76f55d7d397)

2009-03-27 LEMON joins to the COIN-OR initiative

        COIN-OR (Computational Infrastructure for Operations Research,
        http://www.coin-or.org) project is an initiative to spur the
        development of open-source software for the operations research
        community.

2008-10-13 Version 1.0 released

        This is the first stable release of LEMON. Compared to the 0.x
        release series, it features a considerably smaller but more
        matured set of tools. The API has also completely revised and
        changed in several places.

        * The major name changes compared to the 0.x series (see the
          Migration Guide in the doc for more details)
          * Graph -> Digraph, UGraph -> Graph
          * Edge -> Arc, UEdge -> Edge
          * source(UEdge)/target(UEdge) -> u(Edge)/v(Edge)
        * Other improvements
          * Better documentation
          * Reviewed and cleaned up codebase
          * CMake based build system (along with the autotools based one)
        * Contents of the library (ported from 0.x)
          * Algorithms
            * breadth-first search (bfs.h)
            * depth-first search (dfs.h)
            * Dijkstra's algorithm (dijkstra.h)
            * Kruskal's algorithm (kruskal.h)
          * Data structures
            * graph data structures (list_graph.h, smart_graph.h)
            * path data structures (path.h)
            * binary heap data structure (bin_heap.h)
            * union-find data structures (unionfind.h)
            * miscellaneous property maps (maps.h)
            * two dimensional vector and bounding box (dim2.h)
          * Concepts
            * graph structure concepts (concepts/digraph.h, concepts/graph.h,
              concepts/graph_components.h)
            * concepts for other structures (concepts/heap.h, concepts/maps.h,
              concepts/path.h)
          * Tools
            * Mersenne twister random number generator (random.h)
            * tools for measuring cpu and wall clock time (time_measure.h)
            * tools for counting steps and events (counter.h)
            * tool for parsing command line arguments (arg_parser.h)
            * tool for visualizing graphs (graph_to_eps.h)
            * tools for reading and writing data in LEMON Graph Format
              (lgf_reader.h, lgf_writer.h)
            * tools to handle the anomalies of calculations with
              floating point numbers (tolerance.h)
            * tools to manage RGB colors (color.h)
          * Infrastructure
            * extended assertion handling (assert.h)
            * exception classes and error handling (error.h)
            * concept checking (concept_check.h)
            * commonly used mathematical constants (math.h)