Theory of Computing
-------------------
Title     : Regularity Lemmas and Combinatorial Algorithms
Authors   : Nikhil Bansal and R. Ryan Williams
Volume    : 8
Number    : 4
Pages     : 69-94
URL       : https://theoryofcomputing.org/articles/v008a004

Abstract
--------

We present new combinatorial algorithms for Boolean matrix
multiplication (BMM) and preprocessing a graph to answer
independent set queries. We give the first asymptotic improvements
on combinatorial algorithms for dense BMM in many years, improving
on the "Four Russians" O(n^3/(w log n)) bound for machine models
with wordsize w. (For a pointer machine, we can set w = log n.) The
algorithms utilize notions from Regularity Lemmas for graphs in a
novel way.

 - We give two randomized combinatorial algorithms for BMM. The first
algorithm is essentially a reduction from BMM to the Triangle
Removal Lemma. The best known bounds for the Triangle Removal Lemma
only imply an O((n^3 log beta )/(beta w log n)) time algorithm for
BMM where beta = (log* n)^{delta} for some delta > 0, but
improvements on the Triangle Removal Lemma would yield
corresponding runtime improvements. The second algorithm applies
the Weak Regularity Lemma of Frieze and Kannan along with several
information compression ideas, running in 
O(n^3 (log log n)^2/(log n)^{9/4})) time with probability
exponentially close to 1. When w >= log n, it can be implemented 
in O(n^3 (log log n)/(w log n)^{7/6})) time. Our results immediately 
imply improved combinatorial methods for CFG parsing, detecting 
triangle-freeness, and transitive closure.

 - Using Weak Regularity, we also give an algorithm for answering
queries of the form "is S \subseteq V an independent set?" in a
graph. Improving on prior work, we show how to randomly preprocess
a graph in O(n^{2+epsilon}) time (for all epsilon > 0) so that with
high probability, all subsequent batches of log n independent set
queries can be answered deterministically in 
O(n^2 (log log n)^2/((log n)^{5/4})) time. When w >= log n, w queries 
can be answered in O(n^2 (log log n)^2/((log n)^{7/6})) time. In 
addition to its several applications, this problem is interesting 
in that it is not known how to do better than O(n^2) using "algebraic"
methods.