NC1L/polyNL/polyAC1NC^1\subseteq L/poly\subseteq NL/poly\subseteq AC^1.

The model of branching programs that give a precise characterization of L/polyL/poly and NL/polyNL/poly.

Deterministic / non-deterministic branching program

Boolean Branching Program

Deterministic

📖Definition 32. A Deterministic Boolean branching program BB with nn inputs consists of the following:

  • A directed acyclic graph D=(V,A)D=(V,A), where the out-degree of all nodes is in {0,1,2}\{0,1,2\}.
  • A partial labeling V:V{0,1,x1,,xn}\ell_V:V\to\{0,1,x_1,\cdots,x_n\} of the nodes of DD.
  • A partial labeling A:A{0,1}\ell_A:A\to\{0,1\} of the edges of DD.
  • An initial node sVs\in V.

When node vv is not labeled by V\ell_V, we say that vv is dummy.

If V(v){0,1}\ell_V(v)\in\{0,1\}, we say that vv is an output node.

The graph DD and the labeling function V,A\ell_V,\ell_A should satisfy:

  1. The node ss is not a dummy node.
  2. If V(v){x1,,xn}\ell_V(v)\in\{x_1,\cdots,x_n\}, the out-degree of vv is 22, and one outgoing edges of vv is labeled 00 and 11 by A\ell_A respectively.
  3. If V(v){0,1}\ell_V(v)\in\{0,1\}, i.e., vv is an output node, the out-degree of vv is 00.
  4. If vv is a dummy node, the in-degree of vv is not 00, the out-degree of vv is 11.

A branching program with nn inputs compute a Boolean function f:{0,1}n{0,1}f:\{0,1\}^n\to\{0,1\} in a natural way.

Given an input x{0,1}nx\in\{0,1\}^n, start in the initial node ss, follow a path to an output node, thereby giving the value of f(x)f(x).

When passing through dummy node, directly go through the unique path.

When passing through labeled node, go to 11-labeled edge if xi=1x_i=1, 00-labeled edge if xi=0x_i=0.

Non-deterministic

Simply modify the deterministic branching program:

  • label of vertices is V:V{0,1,,x1,,xn}\ell_V:V\to\{0,1,*,x_1,\cdots,x_n\}. If V(v)=\ell_V(v)=*, vv is called a choice node.
  • We require the out-degree of vv is 22 and outgoing edges are not labeled by A\ell_A.

For a given input x{0,1}nx\in\{0,1\}^n, traverse the branching program from ss, but at a choice node choose to follow an arbitrary arc.

We say that the non-deterministic branching program accepts xx if there exist such choices leading the path to an output node labeled 11.

📖Definition 33. The size of a branching program is the number of nodes in the branching program. The length of a branching program is the length of the longest path from ss to a node to out degree 00.

Then define complexity classes of languages computed by size-bounded branching programs.

📖Definition 34. Let S:NNS:\mathbb N\to\mathbb N. BPSIZE(S(n))BPSIZE(S(n)) is the class of languages computed by families of deterministic Boolean branching program of size O(S(n))O(S(n)). Similarly, NPBSIZE(S(n))NPBSIZE(S(n)) is the class of languages computed by families of non-deterministic Boolean branching program of size O(S(n))O(S(n)).

🤔Theorem 43. L/poly=BPSIZE(nO(1)),NL/poly=NBPSIZE(nO(1))L/poly=BPSIZE(n^{O(1)}),NL/poly=NBPSIZE(n^{O(1)}).

🤔Theorem 44. L=ULBPSIZE(nO(1)),NL=ULNBPSIZE(nO(1))L=U_L-BPSIZE(n^{O(1)}),NL=U_L-NBPSIZE(n^{O(1)}).

Programs over Monoids and Bounded Width Branching Programs

monoid 含幺半群

What if we restrict the width of branching programs?

Consider the width to be constant.

📖Definition 35. A branching program BB is in layered form, if there is a partition of the nodes of BB into layers V1,,Vl,V=V1VlV_1,\cdots ,V_l,V=V_1\cup\cdots\cup V_l, in such a way that every edge go between some pair of adjacent layers ViV_i and Vi+1V_{i+1}.

📖Definition 36. The width of a branching program with partition into layers V=V1VlV=V_1\cup\cdots\cup V_l is the size of the largest layer, maxiVimax_i|V_i|.

Then here comes new complexity classes.

📖Definition 37. BWBPBWBP is the class of languages computed by families of Boolean branching programs polynomial size and width O(1)O(1).

It’s easy to show AC0BWBPAC^0\subseteq BWBP (❓)

Conjecture: MAJ∉BWBPMAJ\not\in BWBP.

Fact: BWBP=NC1BWBP=NC^1.

Consider computation over finite algebraic structures, finite groups.

📖Definition 38. A monoid is a set MM closed under an associative binary operation s.t. MM has an identity element:

  1. For all x,yMx,y\in M, we have xyMxy\in M. 封闭性
  2. For all x,y,zMx,y,z\in M, we have x(yz)=(xy)zx(yz)=(xy)z. 结合律
  3. There is an element 1M1\in M s.t. 1x=x1=x1x=x1=x for all xMx\in M 含有幺元

The set of functions from a set SS to itself which forms a monoid, denoted TST_S.

The set of partial functions from a set SS to itself forms a monoid, denote PTSPT_S.

Commonsense: Any group is a monoid.

📖Definition 39. Let MM be a finite monoid. A program PP over MM with nn inputs consists of the following:

  1. A sequence I1,,IlI_1,\cdots,I_l of triples of the form i,g0,g1\langle i,g_0,g_1\rangle, where i{1,,n}i\in\{1,\cdots,n\} and g0,g1Mg_0,g_1\in M.
  2. An accepting set AMA\subseteq M.

The triples is called instructions of the program PP.

A program PP over MM with nn inputs define a Boolean function f:{0,1}n{0,1}f:\{0,1\}^n\to\{0,1\} in a natural way:

  • Let x{0,1}nx\in\{0,1\}^n.
  • The output of an instruction I=i,g0,g1I=\langle i,g_0,g_1\rangle is given by I(x)=gxiI(x)=g_{x_i}.
  • The output of the program is P(x)=j=1lIj(x)P(x)=\prod_{j=1}^lI_j(x).
  • Finally f(x)=1f(x)=1 iff P(x)AP(x)\in A.

📖Definition 40. The length of a program PP is the number of instructions of PP.

🤔Proposition 10: Let ff be a Boolean function computed by a family of polynomial length programs over a finite monoid MM. Then fNC1f\in NC^1.

🤔Proposition 11. BWBPNC1BWBP\subseteq NC^1.

Barrington’s Theorem

Any language in NC1NC^1 can be computed by polynomial size constant width branching programs.

Theorem 45 (Barrington’s Theorem). BWBP=NC1BWBP=NC^1.

By constructing polynomial length programs over group S5S_5 of permutations of 55 elements.

The width is fixed 55.

We denote the identity permutation by eS5e\in S_5.

📖Definition 41. Let PP be a program over S5S_5 and let σS5\sigma\in S_5 be a 55-cycle. We say that PP σ\sigma-computes a Boolean function ff if P(x)=σP(x)=\sigma when f(x)=1f(x)=1 and P(x)=eP(x)=e when f(x)=0f(x)=0. We can also simply say that PP 55-cycle computes ff.

🤔Lemma. Let σ\sigma and τ\tau be 55-cycles. If a program PP over S5S_5 of length ll σ\sigma-computes ff, then there is another program PP' of length ll over S5S_5 that τ\tau-computes ff.

🤔Lemma. If a program PP over S5S_5 of length ll 55-cycle computes ff, then there is another program PP' of length ll that 55-cycle computes ¬f\neg f.

📖Definition 42 (commutator 交换子). Let GG be a group and g,hGg,h\in G. The commutator [g,h][g,h] is the element g1h1ghg^{-1}h^{-1}gh.

🤔Lemma. There exists 55-cycles σ1\sigma_1 and σ2\sigma_2 s.t. their commutator [σ1,σ2][\sigma_1,\sigma_2], is also a 55-cycle.

σ1=(1,2,3,4,5),σ2=(1,3,5,4,2).\sigma_1=(1,2,3,4,5),\sigma_2=(1,3,5,4,2).

[σ1,σ2]=(1,2,5,3,4)[\sigma_1,\sigma_2]=(1,2,5,3,4)

🤔Proposition 12. Let CC be a fanin 22 circuit of depth dd. Then there exist a program PP of length at most 4d4^d that 55-cycle computes the output of CC.

By Proposition 11 and 12, we obtain Barrington’s Theorem.