Graph Analysis
One of the key features of yFiles is its collection of sophisticated algorithms for analyzing graph structures.
These algorithms are located in the namespace yfiles.analysis.
The following table provides an overview of the available analysis algorithm classes:
Topic | Algorithm | Description |
---|---|---|
Calculates a centrality value for nodes and edges based on how many shortest paths in the graph traverse them. |
||
Calculates a centrality value for nodes based on the number of their incoming and/or outgoing edges. |
||
Calculates a centrality value for nodes based on the added weights of their incoming and/or outgoing edges. |
||
Calculates a centrality value for nodes based on their shortest path distances to all other nodes. |
||
Calculates a centrality value for nodes based on the longest of their shortest path distances to all other nodes. |
||
Calculates a centrality value for nodes using a dominant eigenvector of the graph’s adjacency matrix. |
||
Calculates a rank value for nodes based on the rank of their predecessors. |
||
Partitions the graph into clusters that consist of biconnected components. |
||
Partitions the graph into a specified number of clusters that consist of components that are isolated after iteratively removing edges with the highest betweenness centrality. |
||
Partitions the graph into a hierarchy of clusters. Clusters are combined into a parent cluster based on the distances between the nodes in the child clusters. |
||
Partitions the graph into K clusters that consist of the nodes closest to the clusters' mean (or centroid). |
||
Detects the communities/clusters in the graph by applying the Louvain modularity method. |
||
Detects the communities/clusters in the graph by propagating virtual labels. |
||
Partitions the graph into components that consist of nodes which are all connected by undirected paths. |
||
Partitions the graph into components that consist of nodes which are all connected by undirected paths even if one of the nodes in a component were to be removed. |
||
Partitions the graph into components that consist of nodes which are all connected by directed paths. |
||
Partitions the graph into two sets of nodes such that all edges connect nodes in the first set with nodes in the second set. |
||
Partitions the graph into independent sets that consist of nodes that are not connected to each other. |
||
Calculates the subgraph components where each node has at least a user-specified degree. |
||
Finds the shortest path between two nodes. |
||
Finds all simple paths between multiple start and end nodes. |
||
Finds the shortest paths between one start node and multiple end nodes. |
||
Finds the shortest paths between multiple start and end nodes. |
||
Finds a cyclic path in the graph if one exists. |
||
Finds all edges that are part of at least one simple cycle in the graph. |
||
Finds all maximal paths in the graph where each inner node has only two attached edges. |
||
Finds the longest directed path in an acyclic graph. |
||
Finds all nodes that are reachable from one or more start nodes by a path. |
||
Analyzes a tree graph and calculates important properties of the tree structure. |
||
Finds a subset of edges that induce a tree connecting all nodes. |
||
Finds a subset of edges whose removal or reversal would make the graph acyclic. |
||
Finds the maximum flow from source to sink nodes through a network of edges where each edge has a specified maximum flow capacity. |
||
Finds the cheapest possible way of sending a certain amount of flow through a network of edges where each edge has a specified maximum flow capacity and flow costs. |
||
Finds all node pairs that are connected by a path but not by a single edge. |
||
Finds all edges that could be removed so that their source and target nodes are still connected by a path. |
||
Creates the transitive edges that connect the selected nodes of a graph. |
||
Structural |
Provides methods that check structural properties of the graph. |
|
Detects the cliques of the graph. A clique is a subset of nodes that are all adjacent to each other. |
||
Detects the subtrees of the graph. |
||
Detects the stars of the graph. A star consists of a node that is connected to multiple nodes with degree one. |
||
Detects the isolated cycles of the graph where at most one edge connects the cycle with the remaining graph. |
||
Detects the chains of the graph. |
||
Other |
Finds all nodes whose paths to one or multiple start nodes have at most a given number of edges. |
|
Provides layers that consist of nodes whose shortest paths to one or multiple start nodes have the same number of edges. |
||
Aggregates the nodes of a given graph and creates a hierarchical clustering structure subject to user-specified constraints. |
||
Solves the rank assignment problem using the simplex method. This method assigns a minimum rank to the nodes in an acyclic graph. |
||
Finds intersections and overlaps between nodes, edges, and labels in a graph. |
Note
|
If it is required to run analysis algorithms on an instance of LayoutGraph, please see class LayoutGraphAlgorithms. It offers static methods that work on LayoutGraph. Note that this should only be necessary if you implement your own ILayoutAlgorithm, ILayoutStage, or another customization of the layout part. |