Triangle Centrality
Triangle centrality is introduced for finding important vertices in a graph based on the concentration of triangles surrounding each vertex. An important vertex in triangle centrality is at the center of many triangles, and therefore it may be in many triangles or none at all. We give optimal algorithms that compute triangle centrality in O(m^3/2) time and O(m+n) space. Using fast matrix multiplication it takes n^ω+o(1) time where ω is the matrix product exponent. On a Concurrent Read Exclusive Write (CREW) Parallel Random Access Memory (PRAM) machine, we give a near work-optimal algorithm that takes O(log n) time using O(m√(m)) CREW PRAM processors. In MapReduce, we show it takes four rounds using O(m√(m)) communication bits, and is therefore optimal. We also give a deterministic algorithm to find the triangle neighborhood and triangle count of each vertex in O(m√(m)) time and O(m+n) space. It can be also easily be computed in O(mδ̅(G)) expected time, where δ̅(G) is the average graph degeneracy and is related to the arboricity. We leave it as an open problem to deterministically compute triangle neighbors in O(mδ̅(G)) time and O(m+n) space. Our empirical results demonstrate that triangle centrality uniquely identified central vertices thirty-percent of the time in comparison to five other well-known centrality measures, while being asymptotically faster to compute on sparse graphs than all but the most trivial of these other measures.
READ FULL TEXT