English

The Input/Output Complexity of Triangle Enumeration

Data Structures and Algorithms 2014-03-25 v2

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))\Omega(t/(\sqrt{M} B)) I/Os, and there are graphs for which t=Ω(E3/2)t=\Omega(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 MEε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.

Keywords

Cite

@article{arxiv.1312.0723,
  title  = {The Input/Output Complexity of Triangle Enumeration},
  author = {Rasmus Pagh and Francesco Silvestri},
  journal= {arXiv preprint arXiv:1312.0723},
  year   = {2014}
}

Comments

Proceedings of the 33rd ACM SIGMOD-SIGACT-SIGART Symposium on Principles of Database Systems, PODS 2014

R2 v1 2026-06-22T02:19:33.472Z