NEWS
author hegyi
Mon, 07 Apr 2008 16:28:20 +0000
changeset 2600 e5530c0a018c
parent 2280 dc726706ea65
child 2601 054de623255b
permissions -rw-r--r--
NEWS file updated for Release 0.7
hegyi@2600
     1
2008-02-08 Version 0.7 released
hegyi@2600
     2
hegyi@2600
     3
	* added
hegyi@2600
     4
		- new data structures
hegyi@2600
     5
			classes
hegyi@2600
     6
				StaticGraphBase
hegyi@2600
     7
				ExtendFindEnum
hegyi@2600
     8
				BfsVisitor class
hegyi@2600
     9
					Bipartite partitions based on visitors
hegyi@2600
    10
			helper class for checking existence of a nested class
hegyi@2600
    11
			general mapping based variant type
hegyi@2600
    12
			IntegerMap
hegyi@2600
    13
		- new functions and tools
hegyi@2600
    14
			ArgParser, a command line argument parser
hegyi@2600
    15
			DistLog, a tool for measuring one and two dimensional distributions
hegyi@2600
    16
			undirected minimum cut benchmarking
hegyi@2600
    17
			tools/lgf-gen.cc, a random graph generator
hegyi@2600
    18
			BpUGraphReader and Writer
hegyi@2600
    19
			DynEdgeLookUp implementation based on splay trees
hegyi@2600
    20
			MACROS for debug map usage
hegyi@2600
    21
		- new algoritmhs
hegyi@2600
    22
			Lagrange relaxation based algorithm for the delay constrained least cost path problem
hegyi@2600
    23
			a preflow based general network circulation algorithm
hegyi@2600
    24
			2-approximation of Steiner-tree problem
hegyi@2600
    25
			two heuristics (http://www.avglab.com/andrew/pub/neci-tr-96-132.ps)
hegyi@2600
    26
			tsp2, a minimum spanning tree based TSP algorithm
hegyi@2600
    27
			Delaunay triangulation
hegyi@2600
    28
			Gomory-Hu tree algorithm
hegyi@2600
    29
			Edmond's Blossom shrinking algorithm
hegyi@2600
    30
			minimum mean cycle algorithm
hegyi@2600
    31
			Goldberg-Tarjan algorithm (Preflow with Dynamic Trees)
hegyi@2600
    32
			Dinitz-Sleator-Tarjan (Blocking flow with Dynamic Tree)
hegyi@2600
    33
		- new distributions (Gaussian, exponential, Gamma, two dimensional random, buffered bit generation)
hegyi@2600
    34
		- push-relabel type algorithm related additions
hegyi@2600
    35
			Elevator, a class for handling item labels in push-relabel type algorithms
hegyi@2600
    36
			a push/relabel type max cardinality matching implementation
hegyi@2600
    37
			some query function for push-relabel based matching
hegyi@2600
    38
		- LP related additions
hegyi@2600
    39
			Soplex support
hegyi@2600
    40
			ColIt class
hegyi@2600
    41
			new functions (simplify(), isFinite(), row and col getter function)
hegyi@2600
    42
			_setColCoeff and _setRowCoeff parameters
hegyi@2600
    43
			section reader and writer for lemon IO
hegyi@2600
    44
			equality-type constraint can now be added to a LP
hegyi@2600
    45
			virtual functions of class LpCplex
hegyi@2600
    46
			some query functions for GLPK
hegyi@2600
    47
		- demos
hegyi@2600
    48
			preflow based general network circulation demo
hegyi@2600
    49
			Steiner 2-approximation demo
hegyi@2600
    50
			demo for SAT problems
hegyi@2600
    51
			sample input for sat-2 and sat demos
hegyi@2600
    52
		- tests for
hegyi@2600
    53
			graph copies
hegyi@2600
    54
			random.h
hegyi@2600
    55
			max weighted matchings
hegyi@2600
    56
		- rename graphs script
hegyi@2600
    57
		- planarity related additions
hegyi@2600
    58
			checking and embedding
hegyi@2600
    59
			planar grid embedding
hegyi@2600
    60
			planar graph coloring
hegyi@2600
    61
		- administrative improvements
hegyi@2600
    62
			script for automatic checking of SVN commit's consistency
hegyi@2600
    63
			automatic doc generation from the SVN trunk
hegyi@2600
    64
			check for gcc version 3.3, 3.4, 4.0 and 4.1.2 as well
hegyi@2600
    65
			reorganization of the modules and groups
hegyi@2600
    66
			a tools directory added for useful executables codes
hegyi@2600
    67
			doxygen
hegyi@2600
    68
				renaming topology doxygen group to graph_prop doxygen group
hegyi@2600
    69
				introducing planar doxygen group
hegyi@2600
    70
		- bipartite matchings
hegyi@2600
    71
			common interface
hegyi@2600
    72
			Query functions: aMatching and bMatching
hegyi@2600
    73
			ANodeMap<UEdge> matching map
hegyi@2600
    74
			BNodeMap<bool> barrier map
hegyi@2600
    75
hegyi@2600
    76
	* changed, modified, improved
hegyi@2600
    77
		- redesigned
hegyi@2600
    78
			undirected edgesets (like the smart or ugraph)
hegyi@2600
    79
			interface of MaxMatching and UnionFindEnum
hegyi@2600
    80
			interface of maximum flow algorithms
hegyi@2600
    81
			Kruskal algorithm
hegyi@2600
    82
			augmenting path based bipartite matching
hegyi@2600
    83
		- min cost flows
hegyi@2600
    84
			various min cost flow solvers
hegyi@2600
    85
			redesigned CapacityScaling algorithm
hegyi@2600
    86
		- graph copy
hegyi@2600
    87
			preliminary support for static graphs
hegyi@2600
    88
			added BpUGraphCopy
hegyi@2600
    89
		- execution
hegyi@2600
    90
			conditional execution until the target is reached 
hegyi@2600
    91
			modified start() function in Dfs and Dijkstra classes to give back reached edge/node
hegyi@2600
    92
		- Dijkstra
hegyi@2600
    93
			return the temporary distance of the current node
hegyi@2600
    94
			using operation traits
hegyi@2600
    95
		- patch for retrieving reached/processed node in dijkstra, bfs and dfs
hegyi@2600
    96
		- prescaling can be turned off in GraphToEps
hegyi@2600
    97
		- better handling of inexact computation
hegyi@2600
    98
		- easier inverse
hegyi@2600
    99
		- faster geometric minimum spanning tree
hegyi@2600
   100
		- new implementation of undirected graphs
hegyi@2600
   101
		- Hao-Orlin algorithm became epsilon-safe
hegyi@2600
   102
		- LpSoplex
hegyi@2600
   103
			added getter functions
hegyi@2600
   104
			better m4 file
hegyi@2600
   105
			better handling of unsolved lps
hegyi@2600
   106
		- allowing 'string' type quoting
hegyi@2600
   107
		- clear() function for unionfinds
hegyi@2600
   108
		- integer parameters also converted to double
hegyi@2600
   109
		- hacking mip is possible without integer variables
hegyi@2600
   110
		- space reservation for SmartGraph
hegyi@2600
   111
		- path
hegyi@2600
   112
			PathNodeIt
hegyi@2600
   113
				PathWriter/Reader structures
hegyi@2600
   114
				Distinct MapSet readers and writers
hegyi@2600
   115
			more simple interface for PathDumper
hegyi@2600
   116
hegyi@2600
   117
	* updated
hegyi@2600
   118
		- tutorial for
hegyi@2600
   119
			algorithms
hegyi@2600
   120
			graph visualization
hegyi@2600
   121
		- documentation
hegyi@2600
   122
hegyi@2600
   123
	* rename
hegyi@2600
   124
		- min_cut.h => nagamochi_ibaraki.h
hegyi@2600
   125
		- clone => build
hegyi@2600
   126
		- RevIt => RevEdgeIt
hegyi@2600
   127
		- _FixId => LpId
hegyi@2600
   128
		- setObj => obj
hegyi@2600
   129
		- is_min => isMin
hegyi@2600
   130
		- is_max => isMax
hegyi@2600
   131
		- 'hugo' => 'lemon'
hegyi@2600
   132
		- ball2() => disc()
hegyi@2600
   133
		- state_enum => State
hegyi@2600
   134
		- getNotifier => notifier
hegyi@2600
   135
		- using LEMON_ASSERT instead of LogicError()
hegyi@2600
   136
		- uedgeset is an alias for edgeset
hegyi@2600
   137
		- CPXMIP_OPTIMAL_TOL status is considered as OPTIMAL too
hegyi@2600
   138
		- removed "Type" suffix from typedefs
hegyi@2600
   139
		- lower case local variables
hegyi@2600
   140
hegyi@2600
   141
	* removed
hegyi@2600
   142
		- template Map template parameter from InvertableMaps
hegyi@2600
   143
		- unionfind Item template parameter
hegyi@2600
   144
		- strict checking
hegyi@2600
   145
		- some automatic callback generation 
hegyi@2600
   146
		'-Wshadow' seemed too strict therefore removed
hegyi@2600
   147
hegyi@2600
   148
	* several bugfixes
hegyi@2600
   149
alpar@2278
   150
2006-10-31  Version 0.6 Released
alpar@2280
   151
	    * GLEMON has moved to a separate repository
alpar@2280
   152
              (https://hugo.cs.elte.hu/svn/glemon/trunk)
alpar@2278
   153
	    * New Features
alpar@2278
   154
  	      - Mixed Integer Programming (MIP) support
alpar@2278
   155
    	      	- interface to GLPK and CPLEX MIP solvers
alpar@2278
   156
  	      - Data structures
alpar@2278
   157
	        - Bipatrite graph concepts and implementations
alpar@2278
   158
    		- a Polinomial template class
alpar@2278
   159
    		- RefPtr: a reference counted pointer class
alpar@2278
   160
    		- SimpleBucketHeap  
alpar@2278
   161
	      - random.h: Mersenne Twister random number generator
alpar@2278
   162
              - EdgeLookUp and AllEdgeLookUp
alpar@2278
   163
	        - Tools to find edges between to nodes in time O(log d) 
alpar@2278
   164
    	      - new matching algorithms
alpar@2278
   165
      	        - Bipartite Graph Max Cardinality Matching (Hopcroft-Karp)
alpar@2278
   166
      	      	- MaxWeightedBipartiteMatching
alpar@2278
   167
	      	- MinCostMaxBipartiteMatching
alpar@2278
   168
	      	- MaxCardinalitySearch
alpar@2278
   169
    	      	- MinimalCut in UGraph
alpar@2278
   170
    	      - Tabu Search framework 
alpar@2278
   171
    	      - Minimum Cost Arborescence algorithm 
alpar@2278
   172
      	      - Edmonds-Karp MaxFlow
alpar@2278
   173
    	      - Hao-Orlin algorithm
alpar@2278
   174
	      - eps.h: A simple tool to create .eps pictures.
alpar@2278
   175
	    * Backward incompatibilities/changed namings:
alpar@2278
   176
	      - UndirXyz -> UXyz
alpar@2278
   177
	      - UNDIRGRAPH_TYPEDEFS -> UGRAPH_TYPEDEFS
alpar@2278
   178
	      - GridGraph -> GridUGraph
alpar@2278
   179
  	      - LinearHeap -> BucketHeap
alpar@2278
   180
  	      - ColorSet -> Palette
alpar@2278
   181
  	      - xy -> dim2::Point
alpar@2278
   182
  	      - DirPath -> Path
alpar@2278
   183
    	      - concept -> concepts (namespace & directory)
alpar@2278
   184
	      - LpSolverBase
alpar@2278
   185
	        - ColName() -> colName
alpar@2278
   186
		- Coeff() -> coeff()
alpar@2278
   187
	      - MinCostFlow -> SspMinCostFlow
alpar@2278
   188
	    * Repository reorganization:
alpar@2278
   189
  	      - compilation is conducted by a single makefile
alpar@2278
   190
	      - internal building blocks are now in a separate directory
alpar@2278
   191
                (lemon/bits)
alpar@2278
   192
	    * Major improvements many algorithms and data structures.
alpar@2278
   193
	    * Several bugfixes
alpar@2278
   194
	    * Compatibility issues:
alpar@2278
   195
	      - known to compile with
alpar@2278
   196
	        - GCC 3.3, 3.4, 4.0, 4.1 
alpar@2278
   197
		- MinGW, MinGW32
alpar@2278
   198
		- Intel C++ 9.x support
hegyi@2265
   199
athos@2075
   200
2006-02-03  Version 0.5 Released
klao@1945
   201
	* New features:
klao@1945
   202
	  - Bfs/Dfs/Dijkstra
klao@1945
   203
	    + query functions for the next node/edge to be processed
klao@1945
   204
	    + visitor interface for dfs
klao@1945
   205
	  - topology.h: small functions for discovering graph topology
klao@1945
   206
	    + connected components, strongly connected components
klao@1945
   207
	    + bipartiteness testing
klao@1945
   208
	  - Shortest paths algorithms:
klao@1945
   209
	    bellman_ford.h, floyd_warshall.h, johnson.h
klao@1945
   210
	  - Euler tour iterator for directed and undirected graphs
klao@1945
   211
	  - Other algorithms:
klao@1945
   212
	    + dag_shortest_path.h
klao@1945
   213
	    + fredman_tarjan.h and prim.h for min cost trees
klao@1945
   214
	  - Bipartite graph concept and implementations
klao@1945
   215
	  - Graph maps:
klao@1945
   216
	    + template assign operator
klao@1945
   217
	    + specialized iterable bool map
athos@2075
   218
	    + potential difference map
klao@1945
   219
	    + NodeMatrixMap -- Matrix over the nodes
klao@1945
   220
	  - Maps:
klao@1945
   221
	    + IterableIntMap
klao@1945
   222
	  - GUI:
klao@1945
   223
	    + NewMap window in MapSelector
klao@1945
   224
	    + Algorithm window and some algorithms (eg. Kruskal) added
klao@1945
   225
	  - LemonReader:
klao@1945
   226
	    + exception on non-existent files
klao@1945
   227
	  - LP interface:
klao@1945
   228
	    + (Dual)Expr::simplify(double tolerance) added
klao@1945
   229
	    + getDual()
klao@1945
   230
	  - GraphToEps:
klao@1945
   231
	    + negateY() opt
klao@1945
   232
	    + male/female node shapes :)
alpar@1947
   233
	    + correct %%BoundingBox handling
klao@1945
   234
	  - Tools:
klao@1945
   235
	    + Timer can be stop()ed and (re)start()ed
alpar@1947
   236
	    + radix sort algorithm
klao@1945
   237
	    + tolerance.h for working with imprecise numbers
alpar@1947
   238
	* Backward incompatibilities/changed namings:
alpar@1713
   239
	  - Access functions of TimeStamp/Timer
alpar@1947
   240
	  - Undir graph interface: findUEdge, ConUEdgeIt
klao@1945
   241
	  - pred -> predEdge renaming in search algorithms
klao@1945
   242
	  - SnapShot -> Snapshot in {List,Smart}Graph
klao@1945
   243
	  - NewEdgeSetAdaptor -> ListEdgeSet
klao@1945
   244
	  - LP: set{Obj,Row,Col}() -> {obj,row,col}()
klao@1945
   245
	  - "label" instead of "id" inside the LGF files
klao@1945
   246
	  - UndirGraph -> UGraph, UndirEdge* -> UEdge*
klao@1945
   247
	  - BipartiteGraph -> BpGraph, Lower/UpperNode* -> A/BNode*
athos@2075
   248
	* Bugfixes in
alpar@1668
   249
	  - DFS
alpar@1668
   250
	  - Preflow
klao@1945
   251
	  - x86_64 connected bugfixes (lemon_reader.h)
klao@1945
   252
	  - lp.h
klao@1945
   253
	* New demos, benchmarks and tools:
klao@1945
   254
	  - graph_orientation.cc: A thoroughly documented demo application
klao@1945
   255
	  - runningTimeTest(): a tool to measure running times more precisely
klao@1945
   256
	  - Demo for topology
athos@2075
   257
	  - counter.h: a tool to measure the number of steps of algorithms
klao@1945
   258
	  - Some useful scripts: check-compiler, check-integrity
klao@1945
   259
	* Other changes:
klao@1945
   260
	  - Demos and benchmarks are not built by default now. They can be
klao@1945
   261
	    enabled with the --enable-demo and --enable-benchmark
klao@1945
   262
	    configure flags.
klao@1945
   263
	  - GCC 4.0.3 and ICC 9.0 compatibility
alpar@1713
   264
	  
alpar@1668
   265
2005-08-27  Version 0.4 Released
alpar@1668
   266
	* List of new features and changes	
alpar@1713
   267
	  * Changed namings:
alpar@1668
   268
	    Wrapper -> Adaptor
alpar@1668
   269
	    kruskalEdgeMap() -> kruskal()
alpar@1668
   270
	    kruskalEdgeMap_IteratorOut() -> kruskal()
alpar@1668
   271
	  * BoundinBox<>
alpar@1668
   272
	    * operator+=() -> add()
alpar@1668
   273
	    + clear()
alpar@1668
   274
	  + More and better graph I/O functionalities
alpar@1668
   275
	  + High level uniform LP solver interface to CPLEX and GLKP
alpar@1668
   276
	  * graphToEps()
alpar@1668
   277
	    + Automatic node size and edge width scaling
alpar@1668
   278
	    + Simple color palette tool (ColorSet)
alpar@1668
   279
	  * Bfs/Dfs/Dijkstra
alpar@1668
   280
	    + Step-by-step execution
alpar@1668
   281
	    + Run from multiple sources
alpar@1668
   282
	    + Used define stop condition
alpar@1668
   283
	    + Improved "named parameters"
alpar@1668
   284
	  * Preflow
alpar@1668
   285
	    + Function type interface
alpar@1668
   286
	    + Changed interface
alpar@1668
   287
	  * ListGraph/SmarGraph
ladanyi@1670
   288
	    + split() splits a node
alpar@1668
   289
	    + SnapShot
alpar@1668
   290
	  + New map adaptors
ladanyi@1670
   291
	  + New convenience maps
alpar@1668
   292
	    + IdMap, DescriptorMap
alpar@1668
   293
	    + InDegMap, OutDegMap
alpar@1668
   294
	    + XMap, YMap
alpar@1668
   295
	  + Default graph maps are iterable
alpar@1668
   296
	  + glemon: a graph editor
alpar@1668
   297
	  + Some new demo codes added, the old ones got polished.
alpar@1668
   298
	  * Better documentation
alpar@1668
   299
	  * Several important bugfixes
alpar@1668
   300
	  * Now lemon should compile without warnings with
alpar@1668
   301
	    * gcc 3.3, 3.4, 4.0
alpar@1668
   302
	    * Intel C++ Compiler v9.0 
alpar@1668
   303
alpar@1668
   304
2005-03-19  Version 0.3.1 Released
alpar@1668
   305
	* This release fixes a compilation failure bug under cygwin. 
alpar@1668
   306
alpar@1668
   307
2005-02-21  Version 0.3 released
alpar@1668
   308
	* List of new features and changes	
alpar@1668
   309
	  * Redesigned Graph infrastructures
alpar@1668
   310
	  + Standardized LEMON exceptions
alpar@1668
   311
	  + Undirected Graph
alpar@1668
   312
	  + Standard graph file format, input and output classes for it.
alpar@1668
   313
	  * head() -> target(), tail() -> source()
alpar@1668
   314
	  * Some standard namings have changes:
alpar@1668
   315
	    ValueType -> Value, 
alpar@1668
   316
	    KeyType -> Key,
alpar@1668
   317
	    ReferenceType ->Reference,
alpar@1668
   318
	    PointerType -> Pointer
alpar@1668
   319
	  + GraphToEps: A simple graph drawer
alpar@1668
   320
	  * Better documentation
alpar@1668
   321
	
alpar@1668
   322
2004-09-30  Version 0.2 released
alpar@1668
   323