Local-Access Generators for Basic Random Graph Models
Consider a computation on a massive random graph: Does one need to generate the whole random graph up front, prior to performing the computation? Or, is it possible to provide an oracle to answer queries to the random graph "on-the-fly" in a much more efficient manner overall? That is, to provide a local access generator which incrementally constructs the random graph locally, at the queried portions, in a manner consistent with the random graph model and all previous choices. Local access generators can be useful when studying the local behavior of specific random graph models. Our goal is to design local access generators whose required resource overhead for answering each query is significantly more efficient than generating the whole random graph. Our results focus on undirected graphs with independent edge probabilities, that is, each edge is chosen as an independent Bernoulli random variable. We provide a general implementation for generators in this model. Then, we use this construction to obtain the first efficient local implementations for the Erdös-Rényi G(n,p) model, and the Stochastic Block model. As in previous local-access implementations for random graphs, we support vertex-pair, next-neighbor queries, and all-neighbors queries. In addition, we introduce a new random-neighbor query. We also give the first local-access generation procedure for all-neighbors queries in the (sparse and directed) Kleinberg's Small-World model. Note that, in the sparse case, an all-neighbors query can be used to simulate the other types of queries efficiently. All of our generators require no pre-processing time, and answer each query using polylog(n) time, random bits, and additional space.
READ FULL TEXT