alpar@2278: 2006-10-31 Version 0.6 Released alpar@2278: * New Features alpar@2278: - Mixed Integer Programming (MIP) support alpar@2278: - interface to GLPK and CPLEX MIP solvers alpar@2278: - Data structures alpar@2278: - Bipatrite graph concepts and implementations alpar@2278: - a Polinomial template class alpar@2278: - RefPtr: a reference counted pointer class alpar@2278: - SimpleBucketHeap alpar@2278: - random.h: Mersenne Twister random number generator alpar@2278: - EdgeLookUp and AllEdgeLookUp alpar@2278: - Tools to find edges between to nodes in time O(log d) alpar@2278: - new matching algorithms alpar@2278: - Bipartite Graph Max Cardinality Matching (Hopcroft-Karp) alpar@2278: - MaxWeightedBipartiteMatching alpar@2278: - MinCostMaxBipartiteMatching alpar@2278: - MaxCardinalitySearch alpar@2278: - MinimalCut in UGraph alpar@2278: - Tabu Search framework alpar@2278: - Minimum Cost Arborescence algorithm alpar@2278: - Edmonds-Karp MaxFlow alpar@2278: - Hao-Orlin algorithm alpar@2278: - eps.h: A simple tool to create .eps pictures. alpar@2278: * Backward incompatibilities/changed namings: alpar@2278: - UndirXyz -> UXyz alpar@2278: - UNDIRGRAPH_TYPEDEFS -> UGRAPH_TYPEDEFS alpar@2278: - GridGraph -> GridUGraph alpar@2278: - LinearHeap -> BucketHeap alpar@2278: - ColorSet -> Palette alpar@2278: - xy -> dim2::Point alpar@2278: - DirPath -> Path alpar@2278: - concept -> concepts (namespace & directory) alpar@2278: - LpSolverBase alpar@2278: - ColName() -> colName alpar@2278: - Coeff() -> coeff() alpar@2278: - MinCostFlow -> SspMinCostFlow alpar@2278: * Repository reorganization: alpar@2278: - glemon has moved to an separate repository alpar@2278: - compilation is conducted by a single makefile alpar@2278: - internal building blocks are now in a separate directory alpar@2278: (lemon/bits) alpar@2278: * Major improvements many algorithms and data structures. alpar@2278: * Several bugfixes alpar@2278: * Compatibility issues: alpar@2278: - known to compile with alpar@2278: - GCC 3.3, 3.4, 4.0, 4.1 alpar@2278: - MinGW, MinGW32 alpar@2278: - Intel C++ 9.x support hegyi@2265: athos@2075: 2006-02-03 Version 0.5 Released klao@1945: * New features: klao@1945: - Bfs/Dfs/Dijkstra klao@1945: + query functions for the next node/edge to be processed klao@1945: + visitor interface for dfs klao@1945: - topology.h: small functions for discovering graph topology klao@1945: + connected components, strongly connected components klao@1945: + bipartiteness testing klao@1945: - Shortest paths algorithms: klao@1945: bellman_ford.h, floyd_warshall.h, johnson.h klao@1945: - Euler tour iterator for directed and undirected graphs klao@1945: - Other algorithms: klao@1945: + dag_shortest_path.h klao@1945: + fredman_tarjan.h and prim.h for min cost trees klao@1945: - Bipartite graph concept and implementations klao@1945: - Graph maps: klao@1945: + template assign operator klao@1945: + specialized iterable bool map athos@2075: + potential difference map klao@1945: + NodeMatrixMap -- Matrix over the nodes klao@1945: - Maps: klao@1945: + IterableIntMap klao@1945: - GUI: klao@1945: + NewMap window in MapSelector klao@1945: + Algorithm window and some algorithms (eg. Kruskal) added klao@1945: - LemonReader: klao@1945: + exception on non-existent files klao@1945: - LP interface: klao@1945: + (Dual)Expr::simplify(double tolerance) added klao@1945: + getDual() klao@1945: - GraphToEps: klao@1945: + negateY() opt klao@1945: + male/female node shapes :) alpar@1947: + correct %%BoundingBox handling klao@1945: - Tools: klao@1945: + Timer can be stop()ed and (re)start()ed alpar@1947: + radix sort algorithm klao@1945: + tolerance.h for working with imprecise numbers alpar@1947: * Backward incompatibilities/changed namings: alpar@1713: - Access functions of TimeStamp/Timer alpar@1947: - Undir graph interface: findUEdge, ConUEdgeIt klao@1945: - pred -> predEdge renaming in search algorithms klao@1945: - SnapShot -> Snapshot in {List,Smart}Graph klao@1945: - NewEdgeSetAdaptor -> ListEdgeSet klao@1945: - LP: set{Obj,Row,Col}() -> {obj,row,col}() klao@1945: - "label" instead of "id" inside the LGF files klao@1945: - UndirGraph -> UGraph, UndirEdge* -> UEdge* klao@1945: - BipartiteGraph -> BpGraph, Lower/UpperNode* -> A/BNode* athos@2075: * Bugfixes in alpar@1668: - DFS alpar@1668: - Preflow klao@1945: - x86_64 connected bugfixes (lemon_reader.h) klao@1945: - lp.h klao@1945: * New demos, benchmarks and tools: klao@1945: - graph_orientation.cc: A thoroughly documented demo application klao@1945: - runningTimeTest(): a tool to measure running times more precisely klao@1945: - Demo for topology athos@2075: - counter.h: a tool to measure the number of steps of algorithms klao@1945: - Some useful scripts: check-compiler, check-integrity klao@1945: * Other changes: klao@1945: - Demos and benchmarks are not built by default now. They can be klao@1945: enabled with the --enable-demo and --enable-benchmark klao@1945: configure flags. klao@1945: - GCC 4.0.3 and ICC 9.0 compatibility alpar@1713: alpar@1668: 2005-08-27 Version 0.4 Released alpar@1668: * List of new features and changes alpar@1713: * Changed namings: alpar@1668: Wrapper -> Adaptor alpar@1668: kruskalEdgeMap() -> kruskal() alpar@1668: kruskalEdgeMap_IteratorOut() -> kruskal() alpar@1668: * BoundinBox<> alpar@1668: * operator+=() -> add() alpar@1668: + clear() alpar@1668: + More and better graph I/O functionalities alpar@1668: + High level uniform LP solver interface to CPLEX and GLKP alpar@1668: * graphToEps() alpar@1668: + Automatic node size and edge width scaling alpar@1668: + Simple color palette tool (ColorSet) alpar@1668: * Bfs/Dfs/Dijkstra alpar@1668: + Step-by-step execution alpar@1668: + Run from multiple sources alpar@1668: + Used define stop condition alpar@1668: + Improved "named parameters" alpar@1668: * Preflow alpar@1668: + Function type interface alpar@1668: + Changed interface alpar@1668: * ListGraph/SmarGraph ladanyi@1670: + split() splits a node alpar@1668: + SnapShot alpar@1668: + New map adaptors ladanyi@1670: + New convenience maps alpar@1668: + IdMap, DescriptorMap alpar@1668: + InDegMap, OutDegMap alpar@1668: + XMap, YMap alpar@1668: + Default graph maps are iterable alpar@1668: + glemon: a graph editor alpar@1668: + Some new demo codes added, the old ones got polished. alpar@1668: * Better documentation alpar@1668: * Several important bugfixes alpar@1668: * Now lemon should compile without warnings with alpar@1668: * gcc 3.3, 3.4, 4.0 alpar@1668: * Intel C++ Compiler v9.0 alpar@1668: alpar@1668: 2005-03-19 Version 0.3.1 Released alpar@1668: * This release fixes a compilation failure bug under cygwin. alpar@1668: alpar@1668: 2005-02-21 Version 0.3 released alpar@1668: * List of new features and changes alpar@1668: * Redesigned Graph infrastructures alpar@1668: + Standardized LEMON exceptions alpar@1668: + Undirected Graph alpar@1668: + Standard graph file format, input and output classes for it. alpar@1668: * head() -> target(), tail() -> source() alpar@1668: * Some standard namings have changes: alpar@1668: ValueType -> Value, alpar@1668: KeyType -> Key, alpar@1668: ReferenceType ->Reference, alpar@1668: PointerType -> Pointer alpar@1668: + GraphToEps: A simple graph drawer alpar@1668: * Better documentation alpar@1668: alpar@1668: 2004-09-30 Version 0.2 released alpar@1668: