The Input/Output Complexity of Triangle Enumeration
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 be the number of edges, the size of internal memory, and the block size. The best results obtained previously are sort I/Os (Dementiev, PhD thesis 2006) and I/Os (Hu et al., SIGMOD 2013), where sort denotes the number of I/Os for sorting items. We improve the I/O complexity to expected I/Os, which improves the previous bounds by a factor . Our algorithm is cache-oblivious and also I/O optimal: We show that any algorithm enumerating distinct triangles must always use I/Os, and there are graphs for which . Finally, we give a deterministic cache-aware algorithm using I/Os assuming for a constant . Our results are based on a new color coding technique, which may be of independent interest.
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