The Input/Output Complexity of Triangle Enumeration

preprint2014arXivOpen access

Abstract

We consider the well-known problem of enumerating all triangles of an undirected graph. Our focus is on determining the input/output (I/O) complexity of this problem. Let EE be the number of edges, M<EM<E the size of internal memory, and BB the block size. The best results obtained previously are sort(E3/2)(E^{3/2}) I/Os (Dementiev, PhD thesis 2006) and O(E2/(MB))O(E^2/(MB)) I/Os (Hu et al., SIGMOD 2013), where sort(n)(n) denotes the number of I/Os for sorting nn items. We improve the I/O complexity to O(E3/2/(MB))O(E^{3/2}/(\sqrt{M} B)) expected I/Os, which improves the previous bounds by a factor min⁡(E/M,M)\min(\sqrt{E/M},\sqrt{M}). Our algorithm is cache-oblivious and also I/O optimal: We show that any algorithm enumerating tt distinct triangles must always use Ω(t/(MB))Ω(t/(\sqrt{M} B)) I/Os, and there are graphs for which t=Ω(E3/2)t=Ω(E^{3/2}). Finally, we give a deterministic cache-aware algorithm using O(E3/2/(MB))O(E^{3/2}/(\sqrt{M} B)) I/Os assuming M≥EεM\geq E^\varepsilon for a constant ε>0\varepsilon > 0. Our results are based on a new color coding technique, which may be of independent interest.

Explore this paper’s authors, topics and related work.

Building this map preview

BZPEER is loading the nearby papers, people, topics and institutions for this page.

Reviews 0

Write a reviewWrite

No reviews yet.

Discussion 0

Add a commentWrite

No comments yet.