"Tri, Tri again": Finding Triangles and Small Subgraphs in a Distributed Setting (1201.6652v3)
Abstract: 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(ceil(n1/3 / (t2/3 + 1))) rounds of communication, where t is the number of triangles in the graph, and O(min{n1/3 log2/3 n / (t2/3 + 1), n1/3}) with high probability. We also present deterministic algorithms specially suited for sparse graphs. In any graph of maximum degree Delta, we can test for arbitrary subgraphs of diameter D in O(ceil(DeltaD+1 / n)) rounds. For triangles, we devise an algorithm featuring a round complexity of O(A2 / n + log_(2+n/A2) n), where A denotes the arboricity of G.