Algorithms for graphs and networks.

These algorithms are divided into categories as follows:

- blockmodel: dividing graph elements (typically vertices) into equivalence classes, generally by topological properties (e.g. structural equivalence)
- cluster: identifying coherent (not necessarily disjoint) groups of elements (e.g. weakly connected components, edge betweenness clustering)
- filters: removing parts of a graph according to specified criteria
- flows: calculating properties relating to network flows (e.g. max flow/min cut)
- generators: creating graphs with certain properties
- importance (deprecated): assigning values to vertices/edges based on topological properties
- layout: arrangement of graph elements, generally for visualization
- metrics: calculating structural properties (triad census, structural holes)
- scoring: assigning values (denoting significance, influence, centrality, etc.) to vertices/edges based on topological properties, e.g. PageRank, HITS, betweenness centrality (replaces "importance", above)
- shortestpath: calculation of shortest paths between vertices
- util: low-level utility classes used in a variety of algorithms