# Algorithmic Lovász local lemma

In theoretical computer science, the algorithmic Lovász local lemma gives an algorithmic way of constructing objects that obey a system of constraints with limited dependence.
Given a finite set of bad events {A$_1$, ..., A$_n$} in a probability space with limited dependence amongst the A$_i$s and with specific bounds on their respective probabilities, the Lovász local lemma proves that with non-zero probability all of these events can be avoided. However, the lemma is non-constructive in that it does not provide any insight on how to avoid the bad events.
If the events {A$_1$, ..., A$_n$} are determined by a finite collection of mutually independent random variables, a simple Las Vegas algorithm with expected polynomial runtime proposed by Robin Moser and Gábor Tardos can compute an assignment to the random variables such that all events are avoided.

## Review of Lovász local lemma

The Lovász Local Lemma is a powerful tool commonly used in the probabilistic method to prove the existence of certain complex mathematical objects with a set of prescribed features. A typical proof proceeds by operating on the complex object in a random manner and uses the Lovász Local Lemma to bound the probability that any of the features is missing. The absence of a feature is considered a bad event and if it can be shown that all such bad events can be avoided simultaneously with non-zero probability, the existence follows. The lemma itself reads as follows:
   Let ${\mathcal {A}}=\{A_{1},\ldots ,A_{n}\}$ be a finite set of events in the probability space Ω. For $A\in {\mathcal {A}}$ let $\Gamma (A)$ denote a subset of ${\mathcal {A}}$ such that $A$ is independent from the collection of events ${\mathcal {A}}\setminus (\{A\}\cup \Gamma (A))$. If there exists an assignment of reals $x:{\mathcal {A}}\rightarrow (0,1)$ to the events such that
       $\forall A\in {\mathcal {A}}:\Pr[A]\leq x(A)\prod _{B\in \Gamma (A)}(1-x(B))$
   then the probability of avoiding all events in ${\mathcal {A}}$ is positive, in particular
       $\Pr \left[\,{\overline {A_{1}}}\wedge \cdots \wedge {\overline {A_{n}}}\,\right]\geq \prod _{A\in {\mathcal {A}}}(1-x(A)).$

## Algorithmic version of the Lovász local lemma

The Lovász Local Lemma is non-constructive because it only allows us to conclude the existence of structural properties or complex objects but does not indicate how these can be found or constructed efficiently in practice. Note that random sampling from the probability space Ω is likely to be inefficient, since the probability of the event of interest
    $\Pr \left[{\overline {A_{1}}}\wedge \cdots \wedge {\overline {A_{n}}}\right]$
is only bounded by a product of small numbers
    $\prod _{A\in {\mathcal {A}}}(1-x(A))$
and therefore likely to be very small.
Under the assumption that all of the events in ${\mathcal {A}}$ are determined by a finite collection of mutually independent random variables ${\mathcal {P}}$ in Ω, Robin Moser and Gábor Tardos proposed an efficient randomized algorithm that computes an assignment to the random variables in ${\mathcal {P}}$ such that all events in ${\mathcal {A}}$ are avoided.
Hence, this algorithm can be used to efficiently construct witnesses of complex objects with prescribed features for most problems to which the Lovász Local Lemma applies.

### History

Prior to the recent work of Moser and Tardos, earlier work had also made progress in developing algorithmic versions of the Lovász Local Lemma. József Beck in 1991 first gave proof that an algorithmic version was possible. In this breakthrough result, a stricter requirement was imposed upon the problem formulation than in the original non-constructive definition. Beck's approach required that for each $A\in {\mathcal {A}}$, the number of dependencies of A was bounded above with $|\Gamma (A)|<2^{n/48}$ (approximately). The existential version of the Local Lemma permits a larger upper bound on dependencies:
    $|\Gamma (A)|<{\frac {2^{n}}{e}},$
This bound is known to be tight. Since the initial algorithm, work has been done to push algorithmic versions of the Local Lemma closer to this tight value. Moser and Tardos's recent work are the most recent in this chain, and provide an algorithm that achieves this tight bound.

### Algorithm

Let us first introduce some concepts that are used in the algorithm.
For any random variable $P\in {\mathcal {P}},v_{P}$ denotes the current assignment (evaluation) of P. An assignment (evaluation) to all random variables is denoted $(v_{P})_{\mathcal {P}}$.
The unique minimal subset of random variables in ${\mathcal {P}}$ that determine the event A is denoted by vbl(A).
If the event A is true under an evaluation $(v_{P})_{\mathcal {P}}$, we say that $(v_{P})_{\mathcal {P}}$ satisfies A, otherwise it avoids A.
Given a set of bad events ${\mathcal {A}}$ we wish to avoid that is determined by a collection of mutually independent random variables ${\mathcal {P}}$, the algorithm proceeds as follows:
* $\forall P\in {\mathcal {P}}$: $v_{P}\leftarrow$ a random evaluation of P
* while $\exists A\in {\mathcal {A}}$ such that A is satisfied by $(v_{P})_{\mathcal {P}}$
** pick an arbitrary satisfied event $A\in {\mathcal {A}}$
** $\forall P\in {\text{vbl}}(A)$: $v_{P}\leftarrow$ a new random evaluation of P
* return $(v_{P})_{\mathcal {P}}$
In the first step, the algorithm randomly initializes the current assignment v$_P$ for each random variable $P\in {\mathcal {P}}$. This means that an assignment v$_P$ is sampled randomly and independently according to the distribution of the random variable P.
The algorithm then enters the main loop which is executed until all events in ${\mathcal {A}}$ are avoided, at which point the algorithm returns the current assignment. At each iteration of the main loop, the algorithm picks an arbitrary satisfied event A (either randomly or deterministically) and resamples all the random variables that determine A.

### Main theorem

Let ${\mathcal {P}}$ be a finite set of mutually independent random variables in the probability space Ω. Let ${\mathcal {A}}$ be a finite set of events determined by these variables. If there exists an assignment of reals $x:{\mathcal {A}}\to (0,1)$ to the events such that
    $\forall A\in {\mathcal {A}}:\Pr[A]\leq x(A)\prod _{B\in \Gamma (A)}(1-x(B))$
then there exists an assignment of values to the variables ${\mathcal {P}}$ avoiding all of the events in ${\mathcal {A}}$.
Moreover, the randomized algorithm described above resamples an event $A\in {\mathcal {A}}$ at most an expected
    ${\frac {x(A)}{1-x(A)}}$
times before it finds such an evaluation. Thus the expected total number of resampling steps and therefore the expected runtime of the algorithm is at most
    $\sum _{A\in {\mathcal {A}}}{\frac {x(A)}{1-x(A)}}.$
The proof of this theorem using the method of entropy compression can be found in the paper by Moser and Tardos

### Symmetric version

The requirement of an assignment function x satisfying a set of inequalities in the theorem above is complex and not intuitive. But this requirement can be replaced by three simple conditions:
* $\forall A\in {\mathcal {A}}:|\Gamma (A)|\leq D$, i.e. each event A depends on at most D other events,
* $\forall A\in {\mathcal {A}}:\Pr[A]\leq p$, i.e. the probability of each event A is at most p,
* $ep(D+1)\leq 1$, where e is the base of the natural logarithm.
The version of the Lovász Local Lemma with these three conditions instead of the assignment function x is called the Symmetric Lovász Local Lemma. We can also state the Symmetric Algorithmic Lovász Local Lemma:
Let ${\mathcal {P}}$ be a finite set of mutually independent random variables and ${\mathcal {A}}$ be a finite set of events determined by these variables as before. If the above three conditions hold then there exists an assignment of values to the variables ${\mathcal {P}}$ avoiding all of the events in ${\mathcal {A}}$.
Moreover, the randomized algorithm described above resamples an event $A\in {\mathcal {A}}$ at most an expected ${\frac {1}{D}}$ times before it finds such an evaluation. Thus the expected total number of resampling steps and therefore the expected runtime of the algorithm is at most ${\frac {n}{D}}$.

## Example

The following example illustrates how the algorithmic version of the Lovász Local Lemma can be applied to a simple problem.
Let Φ be a CNF formula over variables X$_1$, ..., X$_n$, containing n clauses, and with at least k literals in each clause, and with each variable X$_i$ appearing in at most ${\frac {2^{k}}{ke}}$ clauses. Then, Φ is satisfiable.
This statement can be proven easily using the symmetric version of the Algorithmic Lovász Local Lemma. Let X$_1$, ..., X$_n$ be the set of mutually independent random variables ${\mathcal {P}}$ which are sampled uniformly at random.
Firstly, we truncate each clause in Φ to contain exactly k literals. Since each clause is a disjunction, this does not harm satisfiability, for if we can find a satisfying assignment for the truncated formula, it can easily be extended to a satisfying assignment for the original formula by reinserting the truncated literals.
Now, define a bad event A$_j$ for each clause in Φ, where A$_j$ is the event that clause j in Φ is unsatisfied by the current assignment. Since each clause contains k literals (and therefore k variables) and since all variables are sampled uniformly at random, we can bound the probability of each bad event by
    $\Pr[A_{j}]=p=2^{-k}.$
Since each variable can appear in at most ${\frac {2^{k}}{ke}}$ clauses and there are k variables in each clause, each bad event A$_j$ can depend on at most
    $D=k\left({\frac {2^{k}}{ke}}-1\right)\leq {\frac {2^{k}}{e}}-1$
other events. Therefore:
    $D+1\leq {\frac {2^{k}}{e}},$
multiplying both sides by ep we get:
    $ep(D+1)\leq e2^{-k}{\frac {2^{k}}{e}}=1$
it follows by the symmetric Lovász Local Lemma that the probability of a random assignment to X$_1$, ..., X$_n$ satisfying all clauses in Φ is non-zero and hence such an assignment must exist.
Now, the Algorithmic Lovász Local Lemma actually allows us to efficiently compute such an assignment by applying the algorithm described above. The algorithm proceeds as follows:
It starts with a random truth value assignment to the variables X$_1$, ..., X$_n$ sampled uniformly at random. While there exists a clause in Φ that is unsatisfied, it randomly picks an unsatisfied clause C in Φ and assigns a new truth value to all variables that appear in C chosen uniformly at random. Once all clauses in Φ are satisfied, the algorithm returns the current assignment. Hence, the Algorithmic Lovász Local Lemma proves that this algorithm has an expected runtime of at most
    ${\frac {n}{{\frac {2^{k}}{e}}-k}}$
steps on CNF formulas that satisfy the two conditions above. A stronger version of the above statement is proven by Moser, see also Berman, Karpinski and Scott.
The algorithm is similar to WalkSAT which is used to solve general boolean satisfiability problems. The main difference is that in WalkSAT, after the unsatisfied clause C is selected, a single variable in C is selected at random and has its value flipped (which can be viewed as selecting uniformly among only $k$ rather than all $2^{k}$ value assignments to C).

## Applications

As mentioned before, the Algorithmic Version of the Lovász Local Lemma applies to most problems for which the general Lovász Local Lemma is used as a proof technique. Some of these problems are discussed in the following articles:
* Probabilistic proofs of non-probabilistic theorems
* Random graph

## Parallel version

The algorithm described above lends itself well to parallelization, since resampling two independent events $A,B\in {\mathcal {A}}$, i.e. $\operatorname {vbl} (A)\cap \operatorname {vbl} (B)=\emptyset$, in parallel is equivalent to resampling A, B sequentially. Hence, at each iteration of the main loop one can determine the maximal set of independent and satisfied events S and resample all events in S in parallel.
Under the assumption that the assignment function x satisfies the slightly stronger conditions:
    $\forall A\in {\mathcal {A}}:\Pr[A]\leq (1-\varepsilon )x(A)\prod _{B\in \Gamma (A)}(1-x(B))$
for some ε > 0 Moser and Tardos proved that the parallel algorithm achieves a better runtime complexity. In this case, the parallel version of the algorithm takes an expected
    $O\left({\frac {1}{\varepsilon }}\log \sum _{A\in {\mathcal {A}}}{\frac {x(A)}{1-x(A)}}\right)$
steps before it terminates. The parallel version of the algorithm can be seen as a special case of the sequential algorithm shown above, and so this result also holds for the sequential case.