"Tri, Tri again": Finding Triangles and Small Subgraphs in a Distributed
Setting
Let G=(V,E) be an n-vertex graph and M_d a d-vertex graph, for some constant d. Is M_d a subgraph of G? We consider this problem in a model where all n processes are connected to all other processes, and each message contains up to O(log n) bits. A simple deterministic algorithm that requires O(n^((d-2)/d)/log n) communication rounds is presented. For the special case that M_d is a triangle, we present a probabilistic algorithm that requires an expected O(n^(1/3)/(t^(2/3)+1)) rounds of communication, where t is the number of triangles in the graph, and O(min{n^(1/3)*log^(2/3)n/(t^(2/3)+1),n^(1/3)}) with high probability. We also present an arboricity-based algorithm, specially suited for sparse graphs, featuring a round complexity of O((A^2\log_(2+n/A^2) n)/n) \subset O(|E|/n+log n), where A denotes the arboricity of G.
View on arXiv