# Changeset 1952:6150d1cf0825 in lemon-0.x

Ignore:
Timestamp:
02/03/06 15:22:45 (15 years ago)
Branch:
default
Phase:
public
Convert:
svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@2527
Message:

 r1951 /// edge-set. If the \c checked parameter is true then it filters the edgeset /// to do not get invalid edges without source or target. /// Let  \f$G=(V, A) \f$ be a directed graph /// Let \f$G=(V, A) \f$ be a directed graph /// and suppose that the graph instance \c g of type ListGraph /// implements  \f$G \f$ . /// Let moreover  \f$b_V \f$  and  \f$b_A \f$ be bool-valued functions resp. /// implements \f$G \f$. /// Let moreover \f$b_V \f$ and \f$b_A \f$ be bool-valued functions resp. /// on the node-set and edge-set. /// SubGraphAdaptor<...>::NodeIt iterates /// on the node-set  \f$\{v\in V : b_V(v)=true\} \f$ and /// on the node-set \f$\{v\in V : b_V(v)=true\} \f$ and /// SubGraphAdaptor<...>::EdgeIt iterates /// on the edge-set  \f$\{e\in A : b_A(e)=true\} \f$ . Similarly, /// on the edge-set \f$\{e\in A : b_A(e)=true\} \f$. Similarly, /// SubGraphAdaptor<...>::OutEdgeIt and /// SubGraphAdaptor<...>::InEdgeIt iterates ///parts of the lib. Use them at you own risk. /// /// Let  \f$G=(V, A) \f$ be a directed graph and for each directed edge ///  \f$e\in A \f$ , let  \f$\bar e \f$ denote the edge obtained by /// Let \f$G=(V, A) \f$ be a directed graph and for each directed edge ///\f$e\in A \f$, let \f$\bar e \f$ denote the edge obtained by /// reversing its orientation. We are given moreover two bool valued /// maps on the edge-set, ///  \f$forward\_filter \f$ , and  \f$backward\_filter \f$ . ///\f$forward\_filter \f$, and \f$backward\_filter \f$. /// SubBidirGraphAdaptor implements the graph structure with node-set ///  \f$V \f$ and edge-set ///  \f$\{e : e\in A \mbox{ and } forward\_filter(e) \mbox{ is true}\}+\{\bar e : e\in A \mbox{ and } backward\_filter(e) \mbox{ is true}\} \f$ . ///\f$V \f$ and edge-set ///\f$\{e : e\in A \mbox{ and } forward\_filter(e) \mbox{ is true}\}+\{\bar e : e\in A \mbox{ and } backward\_filter(e) \mbox{ is true}\} \f$. /// The purpose of writing + instead of union is because parallel /// edges can arise. (Similarly, antiparallel edges also can arise). ///An adaptor for composing the residual graph for ///directed flow and circulation problems. ///Let  \f$G=(V, A) \f$  be a directed graph and let  \f$F \f$ be a ///Let \f$G=(V, A) \f$ be a directed graph and let \f$F \f$ be a ///number type. Let moreover /// \f$f,c:A\to F \f$ , be functions on the edge-set. ///In the appications of ResGraphAdaptor,  \f$f \f$ usually stands for a flow ///and  \f$c \f$ for a capacity function. ///\f$f,c:A\to F \f$, be functions on the edge-set. ///In the appications of ResGraphAdaptor, \f$f \f$ usually stands for a flow ///and \f$c \f$ for a capacity function. ///Suppose that a graph instange \c g of type ///\c ListGraph implements  \f$G \f$  . ///\c ListGraph implements \f$G \f$. ///\code ///  ListGraph g; ///\endcode ///Then RevGraphAdaptor implements the graph structure with node-set /// \f$V \f$  and edge-set  \f$A_{forward}\cup A_{backward} \f$ , where /// \f$A_{forward}=\{uv : uv\in A, f(uv)0\} \f$ , ///\f$V \f$ and edge-set \f$A_{forward}\cup A_{backward} \f$, where ///\f$A_{forward}=\{uv : uv\in A, f(uv)0\} \f$, ///i.e. the so called residual graph. ///When we take the union  \f$A_{forward}\cup A_{backward} \f$ , ///When we take the union \f$A_{forward}\cup A_{backward} \f$, ///multilicities are counted, i.e. if an edge is in both /// \f$A_{forward} \f$  and  \f$A_{backward} \f$ , then in the adaptor it ///\f$A_{forward} \f$ and \f$A_{backward} \f$, then in the adaptor it ///appears twice. ///The following code shows how