class Flow(Cut):
A flow of a given graph.
This is a simple class used to represent flows returned by Graph.maxflow
. It has the following attributes:
- graph - the graph on which this flow is defined
- value - the value (capacity) of the flow
- flow - the flow values on each edge. For directed graphs, this is simply a list where element i corresponds to the flow on edge i. For undirected graphs, the direction of the flow is not constrained (since the edges are undirected), hence positive flow always means a flow from the smaller vertex ID to the larger, while negative flow means a flow from the larger vertex ID to the smaller.
- cut - edge IDs in the minimal cut corresponding to the flow.
- partition - vertex IDs in the parts created after removing edges in the cut
- es - an edge selector restricted to the edges in the cut.
This class is usually not instantiated directly, everything is taken care of by Graph.maxflow
.
Examples:
>>> from igraph import Graph >>> g = Graph.Ring(20) >>> mf = g.maxflow(0, 10) >>> print(mf.value) 2.0 >>> mf.es["color"] = "red"
Method | __init__ |
Initializes the flow. |
Method | __repr__ |
Undocumented |
Method | __str__ |
Undocumented |
Property | flow |
Returns the flow values for each edge. |
Instance Variable | _flow |
Undocumented |
Inherited from Cut
:
Property | cut |
Returns the edge IDs in the cut |
Property | es |
Returns an edge selector restricted to the cut |
Property | partition |
Returns the vertex IDs partitioned according to the cut |
Property | value |
Returns the sum of edge capacities in the cut |
Instance Variable | _cut |
Undocumented |
Instance Variable | _partition |
Undocumented |
Instance Variable | _value |
Undocumented |
Inherited from VertexClustering
(via Cut
):
Class Method |
|
Creates a vertex clustering based on the value of a vertex attribute. |
Method | __plot__ |
Plots the clustering to the given Cairo context in the given bounding box. |
Method | as |
Returns a VertexCover that contains the same clusters as this clustering. |
Method | cluster |
Returns a graph where each cluster is contracted into a single vertex. |
Method | crossing |
Returns a boolean vector where element i is True iff edge i lies between clusters, False otherwise. |
Method | giant |
Returns the largest cluster of the clustered graph. |
Method | recalculate |
Recalculates the stored modularity value. |
Method | subgraph |
Get the subgraph belonging to a given cluster. |
Method | subgraphs |
Gets all the subgraphs belonging to each of the clusters. |
Property | graph |
Returns the graph belonging to this object |
Property | modularity |
Returns the modularity score |
Method | _formatted |
Iterates over the clusters and formats them into a string to be presented in the summary. |
Method | _recalculate |
Recalculates the stored modularity value and swallows all exceptions raised by the modularity function (if any). |
Class Variable | _default |
Undocumented |
Instance Variable | _graph |
Undocumented |
Instance Variable | _modularity |
Undocumented |
Instance Variable | _modularity |
Undocumented |
Instance Variable | _modularity |
Undocumented |
Inherited from Clustering
(via Cut
, VertexClustering
):
Method | __getitem__ |
Returns the members of the specified cluster. |
Method | __iter__ |
Iterates over the clusters in this clustering. |
Method | __len__ |
Returns the number of clusters. |
Method | compare |
Compares this clustering to another one using some similarity or distance metric. |
Method | size |
Returns the size of a given cluster. |
Method | size |
Returns the histogram of cluster sizes. |
Method | sizes |
Returns the size of given clusters. |
Method | summary |
Returns the summary of the clustering. |
Property | membership |
Returns the membership vector. |
Property | n |
Returns the number of elements covered by this clustering. |
Instance Variable | _len |
Undocumented |
Instance Variable | _membership |
Undocumented |
igraph.cut.Cut.__init__
Initializes the flow.
This should not be called directly, everything is taken care of by Graph.maxflow
.
Returns the flow values for each edge.
For directed graphs, this is simply a list where element i corresponds to the flow on edge i. For undirected graphs, the direction of the flow is not constrained (since the edges are undirected), hence positive flow always means a flow from the smaller vertex ID to the larger, while negative flow means a flow from the larger vertex ID to the smaller.