#include <lemon/graph_wrapper.h>
Inheritance diagram for SubBidirGraphWrapper:
[legend]List of all members.
Detailed Description
template<typename _Graph, typename ForwardFilterMap, typename BackwardFilterMap>
class lemon::SubBidirGraphWrapper< _Graph, ForwardFilterMap, BackwardFilterMap >
A wrapper for composing a subgraph of a bidirected graph made from a directed one.
- Warning:
- Graph wrappers are in even more experimental state than the other parts of the lib. Use them at you own risk.
Let
be a directed graph and for each directed edge
, let
denote the edge obtained by reversing its orientation. We are given moreover two bool valued maps on the edge-set,
, and
. SubBidirGraphWrapper implements the graph structure with node-set
and edge-set
. The purpose of writing + instead of union is because parallel edges can arise. (Similarly, antiparallel edges also can arise). In other words, a subgraph of the bidirected graph obtained, which is given by orienting the edges of the original graph in both directions. As the oppositely directed edges are logically different, the maps are able to attach different values for them.
An example for such a construction is RevGraphWrapper
where the forward_filter is everywhere false and the backward_filter is everywhere true. We note that for sake of efficiency, RevGraphWrapper
is implemented in a different way. But BidirGraphWrapper is obtained from SubBidirGraphWrapper by considering everywhere true valued maps both for forward_filter and backward_filter. Finally, one of the most important applications of SubBidirGraphWrapper is ResGraphWrapper, which stands for the residual graph in directed flow and circulation problems. As wrappers usually, the SubBidirGraphWrapper implements the above mentioned graph structure without its physical storage, that is the whole stuff is stored in constant memory.
Definition at line 976 of file graph_wrapper.h.
The documentation for this class was generated from the following file:
Generated on Sat Mar 19 10:58:51 2005 for LEMON by
1.4.1