COIN-OR::LEMON - Graph Library

Changeset 1401:9588dcef6793 in lemon-0.x for doc

05/04/05 15:07:10 (14 years ago)
Alpar Juttner

wrapper -> adaptor

2 edited
1 moved


  • doc/

    r1400 r1401  
    99        demoprograms.dox graphs.dox undir_graphs.dox named-param.dox \
    1010        maps.dox coding_style.dox groups.dox namespaces.dox license.dox \
    11         developers_interface.dox graph_io.dox dirs.dox gwrappers.dox
     11        developers_interface.dox graph_io.dox dirs.dox graph-adaptors.dox
  • doc/graph-adaptors.dox

    r1252 r1401  
    2    @defgroup gwrappers Wrapper Classes for Graphs
    3    \brief This group contains several wrapper classes for graphs
     2   @defgroup graph_adaptors Adaptor Classes for Graphs
     3   \brief This group contains several adaptor classes for graphs
    44   @ingroup graphs
    66   The main parts of LEMON are the different graph structures,
    77   generic graph algorithms, graph concepts which couple these, and
    8    graph wrappers. While the previous notions are more or less clear, the
     8   graph adaptors. While the previous notions are more or less clear, the
    99   latter one needs further explanation.
    10    Graph wrappers are graph classes which serve for considering graph
     10   Graph adaptors are graph classes which serve for considering graph
    1111   structures in different ways.
    1919   It may be expensive (in time or in memory usage) to copy
    2020   \c g with the reversed orientation.
    21    In this case, a wrapper class is used, which
     21   In this case, an adaptor class is used, which
    2222   (according to LEMON graph concepts) works as a graph.
    23    The wrapper uses
     23   The adaptor uses
    2424   the original graph structure and graph operations when methods of the
    2525   reversed oriented graph are called.
    26    This means that the wrapper have minor memory usage,
     26   This means that the adaptor have minor memory usage,
    2727   and do not perform sophisticated algorithmic actions.
    2828   The purpose of it is to give a tool for the cases when
    3030   If this alteration is obtained by a usual construction
    3131   like filtering the edge-set or considering a new orientation, then
    32    a wrapper is worthwhile to use.
     32   an adaptor is worthwhile to use.
    3333   To come back to the reversed oriented graph, in this situation
    34    \code template<typename Graph> class RevGraphWrapper; \endcode
     34   \code template<typename Graph> class RevGraphAdaptor; \endcode
    3535   template class can be used.
    3636   The code looks as follows
    3737   \code
    3838   ListGraph g;
    39    RevGraphWrapper<ListGraph> rgw(g);
     39   RevGraphAdaptor<ListGraph> rgw(g);
    4040   int result=algorithm(rgw);
    4141   \endcode
    4343   is untouched.
    4444   This techniques gives rise to an elegant code, and
    45    based on stable graph wrappers, complex algorithms can be
     45   based on stable graph adaptors, complex algorithms can be
    4646   implemented easily.
    4848   In flow, circulation and bipartite matching problems, the residual
    49    graph is of particular importance. Combining a wrapper implementing
     49   graph is of particular importance. Combining an adaptor implementing
    5050   this, shortest path algorithms and minimum mean cycle algorithms,
    5151   a range of weighted and cardinality optimization algorithms can be
    5353   For other examples,
    5454   the interested user is referred to the detailed documentation of
    55    particular wrappers.
     55   particular adaptors.
    57    The behavior of graph wrappers can be very different. Some of them keep
     57   The behavior of graph adaptors can be very different. Some of them keep
    5858   capabilities of the original graph while in other cases this would be
    5959   meaningless. This means that the concepts that they are models of depend
    60    on the graph wrapper, and the wrapped graph(s).
     60   on the graph adaptor, and the wrapped graph(s).
    6161   If an edge of \c rgw is deleted, this is carried out by
    62    deleting the corresponding edge of \c g, thus the wrapper modifies the
     62   deleting the corresponding edge of \c g, thus the adaptor modifies the
    6363   original graph.
    6464   But for a residual
    6565   graph, this operation has no sense.
    6666   Let us stand one more example here to simplify your work.
    67    RevGraphWrapper has constructor
     67   RevGraphAdaptor has constructor
    6868   \code
    69    RevGraphWrapper(Graph& _g);
     69   RevGraphAdaptor(Graph& _g);
    7070   \endcode
    7171   This means that in a situation,
    7474   \code
    7575   int algorithm1(const ListGraph& g) {
    76    RevGraphWrapper<const ListGraph> rgw(g);
     76   RevGraphAdaptor<const ListGraph> rgw(g);
    7777   return algorithm2(rgw);
    7878   }
  • doc/groups.dox

    r1329 r1401  
    3232is to be shrunk for an other algorithm.
    3333LEMON also provides a variety of graphs for these requirements called
    34 \ref gwrappers "graph wrappers". Wrappers cannot be used alone but only
     34\ref graph_adaptors "graph adaptors". Adaptors cannot be used alone but only
    3535in conjunction with other graph representation.
Note: See TracChangeset for help on using the changeset viewer.