doc/groups.dox
author hegyi
Mon, 21 Nov 2005 18:03:20 +0000
changeset 1823 cb082cdf3667
parent 1639 aec340db8fc2
child 1847 7cbc12e42482
permissions -rw-r--r--
NewMapWin has become Dialog instead of Window. Therefore it is created dynamically, when there is need for it, instead of keeping one instance in memory. This solution is slower, but more correct than before.
alpar@814
     1
alpar@678
     2
/**
alpar@678
     3
@defgroup datas Data Structures
alpar@921
     4
This group describes the several graph structures implemented in LEMON.
alpar@678
     5
*/
alpar@430
     6
alpar@678
     7
/**
alpar@678
     8
@defgroup graphs Graph Structures
alpar@678
     9
@ingroup datas
alpar@921
    10
\brief Graph structures implemented in LEMON.
alpar@430
    11
marci@1172
    12
The implementation of combinatorial algorithms heavily relies on 
marci@1172
    13
efficient graph implementations. LEMON offers data structures which are 
marci@1172
    14
planned to be easily used in an experimental phase of implementation studies, 
marci@1172
    15
and thereafter the program code can be made efficient by small modifications. 
alpar@430
    16
marci@1172
    17
The most efficient implementation of diverse applications require the usage of different physical graph implementations. These differences appear in the size of 
marci@1172
    18
graph we require to handle, memory or time usage limitations or in 
marci@1172
    19
the set of operations through which the graph can be accessed. 
marci@1172
    20
LEMON provides several physical graph structures to meet the 
marci@1172
    21
diverging requirements of the possible users. 
marci@1172
    22
In order to save on running time or on memory usage, some structures may 
marci@1172
    23
fail to provide some graph features like edge or node deletion.
marci@1172
    24
marci@1172
    25
Alteration of standard containers need a very limited number of 
marci@1172
    26
operations, these together satisfy the everyday requirements. 
marci@1172
    27
In the case of graph strutures, different operations are needed which do 
marci@1172
    28
not alter the physical graph, but gives an other view. If some nodes or 
marci@1172
    29
edges have to be hidden or the reverse oriented graph have to be used, then 
marci@1172
    30
this is the case. It also may happen that in a flow implemenation 
marci@1172
    31
the residual graph can be accessed by an other algorithm, or a node-set 
marci@1172
    32
is to be shrunk for an other algorithm. 
marci@1172
    33
LEMON also provides a variety of graphs for these requirements called 
alpar@1401
    34
\ref graph_adaptors "graph adaptors". Adaptors cannot be used alone but only 
marci@1172
    35
in conjunction with other graph representation. 
alpar@430
    36
alpar@678
    37
You are free to use the graph structure that fit your requirements
alpar@678
    38
the best, most graph algorithms and auxiliary data structures can be used
marci@1172
    39
with any graph structures. 
alpar@678
    40
*/
alpar@430
    41
alpar@678
    42
/**
alpar@1043
    43
@defgroup maps Maps 
alpar@1043
    44
@ingroup datas
alpar@1043
    45
\brief Some special purpose map to make life easier.
alpar@1043
    46
alpar@1043
    47
LEMON provides several special maps that e.g. combine
alpar@1043
    48
new maps from existing ones.
alpar@1043
    49
*/
alpar@1043
    50
alpar@1402
    51
alpar@1402
    52
/**
alpar@1402
    53
@defgroup graph_maps Graph Maps 
alpar@1402
    54
@ingroup maps
alpar@1402
    55
\brief Special Graph-Related Maps.
alpar@1402
    56
alpar@1402
    57
These maps are specifically designed to assign values to the nodes and edges of
alpar@1402
    58
graphs.
alpar@1402
    59
*/
alpar@1402
    60
alpar@1402
    61
alpar@1402
    62
/**
alpar@1402
    63
\defgroup map_adaptors Map Adaptors
alpar@1402
    64
\ingroup maps
alpar@1402
    65
\brief Tools to create new maps from existing ones
alpar@1402
    66
alpar@1402
    67
Map adaptors are used to create "implicit" maps from other maps.
alpar@1402
    68
alpar@1536
    69
Most of them are \ref lemon::concept::ReadMap "ReadMap"s. They can
alpar@1402
    70
make arithmetic oprerations between one or two maps (negation, scalig,
alpar@1402
    71
addition, multiplication etc.) or e.g. convert a map to another one
alpar@1402
    72
of different Value type.
alpar@1402
    73
*/
alpar@1402
    74
alpar@1043
    75
/**
alpar@678
    76
@defgroup auxdat Auxiliary Data Structures
alpar@678
    77
@ingroup datas
alpar@921
    78
\brief Some data structures implemented in LEMON.
alpar@406
    79
alpar@921
    80
This group describes the data structures implemented in LEMON in
alpar@678
    81
order to make it easier to implement combinatorial algorithms.
alpar@678
    82
*/
alpar@406
    83
alpar@678
    84
/**
alpar@785
    85
@defgroup graphmapfactory Tools to Make It Easier to Make Graph Maps
alpar@785
    86
@ingroup auxdat
alpar@785
    87
\brief Tools to Make It Easier to Make Graph Maps.
alpar@785
    88
alpar@785
    89
This group describes the tools that makes it easier to make graph maps that
alpar@785
    90
dynamically update with the graph changes.
alpar@785
    91
*/
alpar@785
    92
alpar@785
    93
/**
alpar@678
    94
@defgroup galgs Graph Algorithms
alpar@678
    95
\brief This group describes the several graph algorithms
alpar@921
    96
implemented in LEMON.
alpar@947
    97
alpar@947
    98
This group describes the several graph algorithms
alpar@947
    99
implemented in LEMON.
alpar@947
   100
*/
alpar@947
   101
alpar@947
   102
/**
alpar@947
   103
@defgroup gutils General Graph Utilities
alpar@947
   104
\brief This group describes some simple general graph utilities.
alpar@947
   105
@ingroup galgs
alpar@947
   106
alpar@947
   107
This group describes some simple general graph utilities.
alpar@678
   108
*/
alpar@678
   109
alpar@678
   110
/**
alpar@1329
   111
@defgroup gen_opt_group General Optimization Tools
alpar@1329
   112
\brief This group describes some general optimization frameworks
alpar@1329
   113
implemented in LEMON.
alpar@1329
   114
alpar@1329
   115
\brief This group describes some general optimization frameworks
alpar@1329
   116
implemented in LEMON.
alpar@1329
   117
alpar@1329
   118
*/
alpar@1329
   119
alpar@1329
   120
/**
alpar@758
   121
@defgroup flowalgs Path and Flow Algorithms
alpar@678
   122
@ingroup galgs
alpar@758
   123
\brief This group describes the algorithms
alpar@758
   124
for finding paths and flows in graphs.
alpar@678
   125
*/
alpar@678
   126
alpar@678
   127
/**
deba@1750
   128
@defgroup topology Topology related algorithms
deba@1750
   129
@ingroup galgs
deba@1750
   130
\brief This group describes the algorithms
deba@1750
   131
for discover the topology of the graphs.
deba@1750
   132
*/
deba@1750
   133
deba@1750
   134
/**
alpar@1151
   135
@defgroup exceptions Exceptions
alpar@1151
   136
This group contains the exceptions thrown by LEMON library
alpar@1151
   137
*/
alpar@1151
   138
alpar@1151
   139
/**
alpar@678
   140
@defgroup misc Miscellaneous Tools
alpar@678
   141
Here you can find several useful tools for development,
alpar@678
   142
debugging and testing.
alpar@678
   143
*/
alpar@678
   144
alpar@678
   145
/**
alpar@1287
   146
@defgroup io_group Input Output
alpar@1287
   147
Here you can find tools for imporing and exporting graphs and graph related
alpar@1287
   148
data
alpar@1287
   149
*/
alpar@1287
   150
alpar@1287
   151
/**
klao@1030
   152
@defgroup concept Concepts
klao@959
   153
\brief Skeleton classes and concept checking classes
alpar@794
   154
klao@959
   155
This group describes the data/algorithm skeletons and concept checking
klao@1030
   156
classes implemented in LEMON.
klao@1030
   157
klao@1030
   158
One aim of these classes is to make it easier to check if a certain
klao@1030
   159
class or template function is correctly implemented.
klao@1030
   160
klao@1030
   161
The other (sometimes even more important) aim is to document the concepts.
klao@1030
   162
alpar@794
   163
*/
alpar@794
   164
klao@1030
   165
/**
klao@1030
   166
@defgroup graph_concepts Graph Structure Concepts
klao@1030
   167
@ingroup concept
klao@1030
   168
\brief Skeleton and concept checking classes for graph structures
klao@1030
   169
klao@1030
   170
This group contains the skeletons and concept checking classes of LEMON's
klao@1030
   171
graph structures and helper classes used to implement these.
klao@1030
   172
*/
alpar@794
   173
alpar@1587
   174
/* --- Unused group
alpar@678
   175
@defgroup experimental Experimental Structures and Algorithms
alpar@678
   176
This group contains some Experimental structures and algorithms.
alpar@678
   177
The stuff here is subject to change.
alpar@678
   178
*/
alpar@1151
   179
alpar@1558
   180
/**
athos@1582
   181
\anchor demoprograms
athos@1582
   182
alpar@1558
   183
@defgroup demos Demo programs
alpar@1558
   184
alpar@1559
   185
Some demo programs are listed here. Their full source codes can be found in
alpar@1558
   186
the \c demo subdirectory of the source tree.
alpar@1558
   187
ladanyi@1639
   188
The standard compilation procedure (<tt>./configure;make</tt>) will compile
ladanyi@1639
   189
them, as well. 
alpar@1558
   190
alpar@1558
   191
*/
alpar@1558
   192