source:lemon-0.x/doc/groups.dox@2081:94a7deb46c07

Last change on this file since 2081:94a7deb46c07 was 2072:224d3781b00b, checked in by Alpar Juttner, 14 years ago

Create a separate group for matrices

File size: 7.4 KB
Line
1
2/**
3@defgroup datas Data Structures
4This group describes the several graph structures implemented in LEMON.
5*/
6
7/**
8@defgroup graphs Graph Structures
9@ingroup datas
10\brief Graph structures implemented in LEMON.
11
12The implementation of combinatorial algorithms heavily relies on
13efficient graph implementations. LEMON offers data structures which are
14planned to be easily used in an experimental phase of implementation studies,
15and thereafter the program code can be made efficient by small modifications.
16
17The most efficient implementation of diverse applications require the usage of different physical graph implementations. These differences appear in the size of
18graph we require to handle, memory or time usage limitations or in
19the set of operations through which the graph can be accessed.
20LEMON provides several physical graph structures to meet the
21diverging requirements of the possible users.
22In order to save on running time or on memory usage, some structures may
23fail to provide some graph features like edge or node deletion.
24
25Alteration of standard containers need a very limited number of
26operations, these together satisfy the everyday requirements.
27In the case of graph strutures, different operations are needed which do
28not alter the physical graph, but gives another view. If some nodes or
29edges have to be hidden or the reverse oriented graph have to be used, then
30this is the case. It also may happen that in a flow implemenation
31the residual graph can be accessed by another algorithm, or a node-set
32is to be shrunk for another algorithm.
33LEMON also provides a variety of graphs for these requirements called
35in conjunction with other graph representation.
36
37You are free to use the graph structure that fit your requirements
38the best, most graph algorithms and auxiliary data structures can be used
39with any graph structures.
40*/
41
42/**
44@ingroup graphs
45\brief Graph types between real graphs and graph adaptors.
46
47Graph types between real graphs and graph adaptors. These classes
48wrap graphs to give new functionality as the adaptors do it. But the
49other way they are not light-weigth structures as the adaptors.
50*/
51
52/**
53@defgroup maps Maps
54@ingroup datas
55\brief Some special purpose map to make life easier.
56
57LEMON provides several special maps that e.g. combine
58new maps from existing ones.
59*/
60
61/**
62@defgroup graph_maps Graph Maps
63@ingroup maps
64\brief Special Graph-Related Maps.
65
66These maps are specifically designed to assign values to the nodes and edges of
67graphs.
68*/
69
70
71/**
73\ingroup maps
74\brief Tools to create new maps from existing ones
75
76Map adaptors are used to create "implicit" maps from other maps.
77
79make arithmetic oprerations between one or two maps (negation, scalig,
80addition, multiplication etc.) or e.g. convert a map to another one
81of different Value type.
82*/
83
84/**
85@defgroup matrices Matrices
86@ingroup datas
87\brief Two dimensional data storages.
88
89Two dimensional
90data storages.
91*/
92
93
94/**
95@defgroup auxdat Auxiliary Data Structures
96@ingroup datas
97\brief Some data structures implemented in LEMON.
98
99This group describes the data structures implemented in LEMON in
100order to make it easier to implement combinatorial algorithms.
101*/
102
103/**
104@defgroup graphbits Tools to Make It Easier to Make Graphs
105@ingroup auxdat
106\brief Tools to Make It Easier to Make Graphs.
107
108This group describes the tools that makes it easier to make graphs and
109the maps that dynamically update with the graph changes.
110*/
111
112/**
113@defgroup galgs Graph Algorithms
114\brief This group describes the several graph algorithms
115implemented in LEMON.
116
117This group describes the several graph algorithms
118implemented in LEMON.
119*/
120
121/**
122@defgroup gutils General Graph Utilities
123@ingroup galgs
124\brief This group describes some simple general graph utilities.
125
126This group describes some simple general graph utilities.
127*/
128
129/**
130@defgroup gen_opt_group General Optimization Tools
131\brief This group describes some general optimization frameworks
132implemented in LEMON.
133
134This group describes some general optimization frameworks
135implemented in LEMON.
136
137*/
138
139/**
140@defgroup flowalgs Path and Flow Algorithms
141@ingroup galgs
142\brief This group describes the algorithms
143for finding paths and flows in graphs.
144
145This group describes the algorithms
146for finding paths and flows in graphs.
147
148\image html flow.png
149\image latex flow.eps "Graph flow" width=\textwidth
150*/
151
152/**
153@defgroup topology Topology related algorithms
154@ingroup galgs
155\brief This group describes the algorithms
156for discover the topology of the graphs.
157
158This group describes the algorithms
159for discover the topology of the graphs.
160
161\image html edge_biconnected_components.png
162\image latex edge_biconnected_components.eps "bi-edge-connected components" width=\textwidth
163
164*/
165
166/**
167@defgroup matching Matching algorithms in graphs and bipartite graphs
168@ingroup galgs
169\brief This group describes the algorithms
170for find matchings in graphs and bipartite graphs.
171
172This group provides some algorithm objects and function
173to calculate matchings in graphs and bipartite graphs.
174
175\image html bipartite_matching.png
176\image latex bipartite_matching.eps "Bipartite Matching" width=\textwidth
177
178*/
179
180/**
181@defgroup exceptions Exceptions
182This group contains the exceptions thrown by LEMON library
183*/
184
185/**
186@defgroup misc Miscellaneous Tools
187Here you can find several useful tools for development,
188debugging and testing.
189*/
190
191/**
192@defgroup timecount Time measuring and Counting
193@ingroup misc
194Here you can find simple tools for measuring the performance
195of algorithms.
196*/
197
198/**
199@defgroup io_group Input-Output
200Here you can find tools for imporing and exporting graphs and graph related
201data
202*/
203
204/**
205@defgroup section_io Section readers and writers
206@ingroup io_group
207\brief Section readers and writers for lemon Input-Output.
208
209Here you can find which section readers and writers can attach to
211*/
212
213/**
214@defgroup item_io Item Readers and Writers
215@ingroup io_group
216\brief Item readers and writers for lemon Input-Output.
217
218The Input-Output classes can handle more data type by example
219as map or attribute value. Each of these should be written and
220read some way. The module make possible to do this.
221*/
222
223/**
224@defgroup concept Concepts
225\brief Skeleton classes and concept checking classes
226
227This group describes the data/algorithm skeletons and concept checking
228classes implemented in LEMON.
229
230One aim of these classes is to make it easier to check if a certain
231class or template function is correctly implemented.
232
233The other (sometimes even more important) aim is to document the concepts.
234
235*/
236
237/**
238@defgroup graph_concepts Graph Structure Concepts
239@ingroup concept
240\brief Skeleton and concept checking classes for graph structures
241
242This group contains the skeletons and concept checking classes of LEMON's
243graph structures and helper classes used to implement these.
244*/
245
246/* --- Unused group
247@defgroup experimental Experimental Structures and Algorithms
248This group contains some Experimental structures and algorithms.
249The stuff here is subject to change.
250*/
251
252/**
253\anchor demoprograms
254
255@defgroup demos Demo programs
256
257Some demo programs are listed here. Their full source codes can be found in
258the \c demo subdirectory of the source tree.
259
260The standard compilation procedure (<tt>./configure;make</tt>) will compile
261them, as well.
262
263*/
264
Note: See TracBrowser for help on using the repository browser.