NEWS
author alpar
Tue, 31 Oct 2006 08:28:55 +0000
changeset 2277 a7896017fc7d
parent 2265 5bb8867a9351
child 2278 a61b7f4534c7
permissions -rw-r--r--
icpc-9.0 compilation bugfix
hegyi@2265
     1
2006-10-27  Version 0.6 Released
hegyi@2265
     2
hegyi@2266
     3
#Renamed:
hegyi@2266
     4
  *Undir -> U
hegyi@2266
     5
  *Minimum -> Min
hegyi@2266
     6
  *Work -> Aux
hegyi@2266
     7
  *UGraphExtender -> UndirectGraphExtender
hegyi@2266
     8
    -UGraphExtenders with changed meaning
hegyi@2266
     9
  *GridGraph -> GridUGraph
hegyi@2266
    10
  *UNDIRGRAPH_TYPEDEFS -> UGRAPH_TYPEDEFS
hegyi@2266
    11
  *LinearHeap -> BucketHeap
hegyi@2266
    12
  *UGraphBaseExtender -> UndirGraphExtender
hegyi@2266
    13
  *BpUGraphBaseExtender merged into BpUGraphExtender
hegyi@2266
    14
  *StaticGraph to Graph
hegyi@2266
    15
  *ColorSet to Palette
hegyi@2266
    16
  *xy -> dim2::Point
hegyi@2266
    17
  *DirPath to Path
hegyi@2266
    18
  *concept -> concepts (namespace & directory)
hegyi@2266
    19
hegyi@2266
    20
#Reorganized:
hegyi@2266
    21
  *bootstrap: quiet option
hegyi@2266
    22
  *utility, invalid and traits moved to bits
hegyi@2266
    23
  *section readers moved to own group
hegyi@2266
    24
  *separate group for matrices
hegyi@2266
    25
  *single makefile
hegyi@2266
    26
  *glemon is moved to own repository
hegyi@2266
    27
  *graph_component.h -> graph_components.h
hegyi@2266
    28
  *reference to modules added
hegyi@2266
    29
  *disable assertions in default behaviour
hegyi@2266
    30
  *BiVariant moved to lemon/bits/variant.h
hegyi@2266
    31
  *using abort() instead of exit(1)
hegyi@2266
    32
hegyi@2266
    33
#Taken out:
hegyi@2266
    34
  *SplitGraph is temporarly deleted
hegyi@2266
    35
  *SubBidirGraphAdaptor
hegyi@2266
    36
  *obsolote "id" map handling
hegyi@2266
    37
  *concepts for extendable and erasable graphs
hegyi@2266
    38
  *exceptionName()
hegyi@2266
    39
  *bezier.h
hegyi@2266
    40
  *functional interfaces
hegyi@2266
    41
  *UPath
hegyi@2266
    42
hegyi@2266
    43
#Rewritten, modificated, improved
hegyi@2266
    44
  *UnionFindEnum revision
hegyi@2266
    45
  *countItems
hegyi@2266
    46
  *findEdges
hegyi@2266
    47
  *IncEdgeIt goes through on loop edges twice.
hegyi@2266
    48
  *mining of the clear in heaps
hegyi@2266
    49
  *SplitGraphAdaptor
hegyi@2266
    50
  *item sets are written in the order sorted by the labels
hegyi@2266
    51
  *make explicit constructors
hegyi@2266
    52
  *snapshot
hegyi@2266
    53
    -rewritten
hegyi@2266
    54
    -implemented for SmartUGraph an SmartBpUGraph
hegyi@2266
    55
  *Node/Edge::operator<() is required by the concept
hegyi@2266
    56
  *Graph Component concepts
hegyi@2266
    57
  *disabled the copy constructor and operator- of {List|Smart}[U]Graph.
hegyi@2266
    58
  *modificated interface: colType() functions
hegyi@2266
    59
  *made public what() in NodeSetError
hegyi@2266
    60
  *improvment in exception handling
hegyi@2266
    61
    -exception safe erase and clear handler
hegyi@2266
    62
    -proper exception handling in the SmartEdgeSet
hegyi@2266
    63
    -rethrow of exception missing 
hegyi@2266
    64
  *signaling alterations in BpUGraphs
hegyi@2266
    65
  *UnionFind
hegyi@2266
    66
    -takes less space
hegyi@2266
    67
    -UnionFindEnum
hegyi@2266
    68
      -changed interface
hegyi@2266
    69
  *updated the Path concept
hegyi@2266
    70
  *item readers and writers
hegyi@2266
    71
hegyi@2265
    72
#New
hegyi@2265
    73
  *functor usage for writeable map adaptors
hegyi@2265
    74
  *MIP support
hegyi@2265
    75
    -interface to the cplex MIP solver
hegyi@2265
    76
  *data structures
hegyi@2265
    77
    -ListBpUGraph
hegyi@2265
    78
    -SmartEdgeset
hegyi@2265
    79
    -RefPtr: a reference counted pointer class
hegyi@2265
    80
    -two state variant
hegyi@2265
    81
    -Polinomial template class
hegyi@2265
    82
    -SimpleBucketHeap  
hegyi@2265
    83
      -even a smaller version
hegyi@2265
    84
    -tolerance class
hegyi@2265
    85
      -Tolerance<unsigned int> and Tolerance<unsigned long long int> added
hegyi@2265
    86
    -the extender system
hegyi@2265
    87
      -some UGraphExtender /SubUGraphExtenders, DirectUGraphExtender/
hegyi@2265
    88
    -adaptor related
hegyi@2265
    89
      -ResGraphAdaptor with Tolerance
hegyi@2265
    90
      -SwapBpUGraphAdaptor which swaps the two nodeset of the bipartite graph
hegyi@2265
    91
    -map related
hegyi@2265
    92
      -SimpleMap and SimpleWriteMap
hegyi@2265
    93
      -new map type based on array map for debugging purpose
hegyi@2265
    94
      -DynamicAsymMatrixMap
hegyi@2265
    95
      -MatrixMapTraits
hegyi@2265
    96
  *functions
hegyi@2265
    97
    -optimality test on random graph
hegyi@2265
    98
    -implementation of the drand48 functions
hegyi@2265
    99
    -negative cycle to path converter
hegyi@2265
   100
    -reserveNode function
hegyi@2265
   101
    -Mersenne Twister random number generator
hegyi@2265
   102
    -EdgeLookUp and AllEdgeLookUp
hegyi@2265
   103
  *scripts
hegyi@2265
   104
    -script that lists all the header files included directly or indirectly by a certain header file
hegyi@2265
   105
    -script creates/updates the copyright header of a source file
hegyi@2265
   106
  *algorithms
hegyi@2265
   107
    -algorithm group for matchings
hegyi@2265
   108
      -Bipartite Graph Max Cardinality Matching (Hopcroft-Karp)
hegyi@2265
   109
      -MaxWeightedBipartiteMatching
hegyi@2265
   110
      -MinCostMaxBipartiteMatching
hegyi@2265
   111
    -MaxCardinalitySearch
hegyi@2265
   112
    -MinimalCut in UGraph
hegyi@2265
   113
    -tabu search
hegyi@2265
   114
    -Minimum Cost Arborescence algorithm 
hegyi@2265
   115
      -dual solution computation and interface for algorithm
hegyi@2265
   116
      -Edmonds-Karp MaxFlow
hegyi@2265
   117
    -Hao-Orlin algorithm
hegyi@2265
   118
hegyi@2265
   119
#Progress in already existing objects:
hegyi@2265
   120
  *radix sort to ansi compatible
hegyi@2265
   121
  *map creation based on virtual base class is possible
hegyi@2265
   122
  *default constructor which allocates empty graphs
hegyi@2265
   123
  *defaultMap is introdouced, graph maps should not be inherited from the ObserverBase.
hegyi@2265
   124
  *clarifing alteration observing system
hegyi@2265
   125
  *resize for static size graph
hegyi@2265
   126
  *an additional simplier interface for static size graphs.
hegyi@2265
   127
  *Node operator()(int) for getting node by index
hegyi@2265
   128
  *int index(Node node) for getting index by node
hegyi@2265
   129
  *traits for alteration notifiers
hegyi@2265
   130
  *graph adadptors can be alteration observed
hegyi@2265
   131
  *count ANodes-BNodes in bipartite graphs
hegyi@2265
   132
  *the template assign operators and map iterators can be used for adaptors also
hegyi@2265
   133
  *writeable extension of some maps
hegyi@2265
   134
  *rot180() added to xy.h
hegyi@2265
   135
  *change source and target for the bipartite list graph
hegyi@2265
   136
  *findEdge extension also for the BpUGraphs
hegyi@2265
   137
  *proper handling of loop edges in the UGraph::findUEdge
hegyi@2265
   138
  *exported interface to the Graph class
hegyi@2265
   139
  *new random interface
hegyi@2265
   140
  *graph imlementations actually provide ReferenceMaps
hegyi@2265
   141
  *lgf2ps:
hegyi@2265
   142
    -RGB color related stuff is in color.h now
hegyi@2265
   143
    -simple class to create .eps figures (eps.h)
hegyi@2265
   144
    -"Node shapes" added
hegyi@2265
   145
    -some color constants added (BLACK, WHITE, RED etc)
hegyi@2265
   146
    -absolute/relative node size/link width scaling
hegyi@2265
   147
hegyi@2265
   148
#Compatibility issues:
hegyi@2265
   149
  *compilation with G++ -ansi
hegyi@2265
   150
  *gcc-4.1
hegyi@2265
   151
  *NaN checking to be conform to MinGW32
hegyi@2265
   152
  *MinGW, MinGW32
hegyi@2265
   153
  *long long just for gnu compilers
hegyi@2265
   154
  *CPLEX 9.x support
hegyi@2265
   155
  *turned off 32bit specific tests.
hegyi@2265
   156
hegyi@2265
   157
#Beyond the aboves several bugfix and documentation improvement is made, new demos, benchmarks are implemented.
hegyi@2265
   158
athos@2075
   159
2006-02-03  Version 0.5 Released
klao@1945
   160
	* New features:
klao@1945
   161
	  - Bfs/Dfs/Dijkstra
klao@1945
   162
	    + query functions for the next node/edge to be processed
klao@1945
   163
	    + visitor interface for dfs
klao@1945
   164
	  - topology.h: small functions for discovering graph topology
klao@1945
   165
	    + connected components, strongly connected components
klao@1945
   166
	    + bipartiteness testing
klao@1945
   167
	  - Shortest paths algorithms:
klao@1945
   168
	    bellman_ford.h, floyd_warshall.h, johnson.h
klao@1945
   169
	  - Euler tour iterator for directed and undirected graphs
klao@1945
   170
	  - Other algorithms:
klao@1945
   171
	    + dag_shortest_path.h
klao@1945
   172
	    + fredman_tarjan.h and prim.h for min cost trees
klao@1945
   173
	  - Bipartite graph concept and implementations
klao@1945
   174
	  - Graph maps:
klao@1945
   175
	    + template assign operator
klao@1945
   176
	    + specialized iterable bool map
athos@2075
   177
	    + potential difference map
klao@1945
   178
	    + NodeMatrixMap -- Matrix over the nodes
klao@1945
   179
	  - Maps:
klao@1945
   180
	    + IterableIntMap
klao@1945
   181
	  - GUI:
klao@1945
   182
	    + NewMap window in MapSelector
klao@1945
   183
	    + Algorithm window and some algorithms (eg. Kruskal) added
klao@1945
   184
	  - LemonReader:
klao@1945
   185
	    + exception on non-existent files
klao@1945
   186
	  - LP interface:
klao@1945
   187
	    + (Dual)Expr::simplify(double tolerance) added
klao@1945
   188
	    + getDual()
klao@1945
   189
	  - GraphToEps:
klao@1945
   190
	    + negateY() opt
klao@1945
   191
	    + male/female node shapes :)
alpar@1947
   192
	    + correct %%BoundingBox handling
klao@1945
   193
	  - Tools:
klao@1945
   194
	    + Timer can be stop()ed and (re)start()ed
alpar@1947
   195
	    + radix sort algorithm
klao@1945
   196
	    + tolerance.h for working with imprecise numbers
alpar@1947
   197
	* Backward incompatibilities/changed namings:
alpar@1713
   198
	  - Access functions of TimeStamp/Timer
alpar@1947
   199
	  - Undir graph interface: findUEdge, ConUEdgeIt
klao@1945
   200
	  - pred -> predEdge renaming in search algorithms
klao@1945
   201
	  - SnapShot -> Snapshot in {List,Smart}Graph
klao@1945
   202
	  - NewEdgeSetAdaptor -> ListEdgeSet
klao@1945
   203
	  - LP: set{Obj,Row,Col}() -> {obj,row,col}()
klao@1945
   204
	  - "label" instead of "id" inside the LGF files
klao@1945
   205
	  - UndirGraph -> UGraph, UndirEdge* -> UEdge*
klao@1945
   206
	  - BipartiteGraph -> BpGraph, Lower/UpperNode* -> A/BNode*
athos@2075
   207
	* Bugfixes in
alpar@1668
   208
	  - DFS
alpar@1668
   209
	  - Preflow
klao@1945
   210
	  - x86_64 connected bugfixes (lemon_reader.h)
klao@1945
   211
	  - lp.h
klao@1945
   212
	* New demos, benchmarks and tools:
klao@1945
   213
	  - graph_orientation.cc: A thoroughly documented demo application
klao@1945
   214
	  - runningTimeTest(): a tool to measure running times more precisely
klao@1945
   215
	  - Demo for topology
athos@2075
   216
	  - counter.h: a tool to measure the number of steps of algorithms
klao@1945
   217
	  - Some useful scripts: check-compiler, check-integrity
klao@1945
   218
	* Other changes:
klao@1945
   219
	  - Demos and benchmarks are not built by default now. They can be
klao@1945
   220
	    enabled with the --enable-demo and --enable-benchmark
klao@1945
   221
	    configure flags.
klao@1945
   222
	  - GCC 4.0.3 and ICC 9.0 compatibility
alpar@1713
   223
	  
alpar@1668
   224
2005-08-27  Version 0.4 Released
alpar@1668
   225
	* List of new features and changes	
alpar@1713
   226
	  * Changed namings:
alpar@1668
   227
	    Wrapper -> Adaptor
alpar@1668
   228
	    kruskalEdgeMap() -> kruskal()
alpar@1668
   229
	    kruskalEdgeMap_IteratorOut() -> kruskal()
alpar@1668
   230
	  * BoundinBox<>
alpar@1668
   231
	    * operator+=() -> add()
alpar@1668
   232
	    + clear()
alpar@1668
   233
	  + More and better graph I/O functionalities
alpar@1668
   234
	  + High level uniform LP solver interface to CPLEX and GLKP
alpar@1668
   235
	  * graphToEps()
alpar@1668
   236
	    + Automatic node size and edge width scaling
alpar@1668
   237
	    + Simple color palette tool (ColorSet)
alpar@1668
   238
	  * Bfs/Dfs/Dijkstra
alpar@1668
   239
	    + Step-by-step execution
alpar@1668
   240
	    + Run from multiple sources
alpar@1668
   241
	    + Used define stop condition
alpar@1668
   242
	    + Improved "named parameters"
alpar@1668
   243
	  * Preflow
alpar@1668
   244
	    + Function type interface
alpar@1668
   245
	    + Changed interface
alpar@1668
   246
	  * ListGraph/SmarGraph
ladanyi@1670
   247
	    + split() splits a node
alpar@1668
   248
	    + SnapShot
alpar@1668
   249
	  + New map adaptors
ladanyi@1670
   250
	  + New convenience maps
alpar@1668
   251
	    + IdMap, DescriptorMap
alpar@1668
   252
	    + InDegMap, OutDegMap
alpar@1668
   253
	    + XMap, YMap
alpar@1668
   254
	  + Default graph maps are iterable
alpar@1668
   255
	  + glemon: a graph editor
alpar@1668
   256
	  + Some new demo codes added, the old ones got polished.
alpar@1668
   257
	  * Better documentation
alpar@1668
   258
	  * Several important bugfixes
alpar@1668
   259
	  * Now lemon should compile without warnings with
alpar@1668
   260
	    * gcc 3.3, 3.4, 4.0
alpar@1668
   261
	    * Intel C++ Compiler v9.0 
alpar@1668
   262
alpar@1668
   263
2005-03-19  Version 0.3.1 Released
alpar@1668
   264
	* This release fixes a compilation failure bug under cygwin. 
alpar@1668
   265
alpar@1668
   266
2005-02-21  Version 0.3 released
alpar@1668
   267
	* List of new features and changes	
alpar@1668
   268
	  * Redesigned Graph infrastructures
alpar@1668
   269
	  + Standardized LEMON exceptions
alpar@1668
   270
	  + Undirected Graph
alpar@1668
   271
	  + Standard graph file format, input and output classes for it.
alpar@1668
   272
	  * head() -> target(), tail() -> source()
alpar@1668
   273
	  * Some standard namings have changes:
alpar@1668
   274
	    ValueType -> Value, 
alpar@1668
   275
	    KeyType -> Key,
alpar@1668
   276
	    ReferenceType ->Reference,
alpar@1668
   277
	    PointerType -> Pointer
alpar@1668
   278
	  + GraphToEps: A simple graph drawer
alpar@1668
   279
	  * Better documentation
alpar@1668
   280
	
alpar@1668
   281
2004-09-30  Version 0.2 released
alpar@1668
   282