算法和计算复杂度 8 Branching Programs and Barrington’s Theorem
.
The model of branching programs that give a precise characterization of and .
Deterministic / non-deterministic branching program
Boolean Branching Program
Deterministic
📖Definition 32. A Deterministic Boolean branching program with inputs consists of the following:
- A directed acyclic graph , where the out-degree of all nodes is in .
- A partial labeling of the nodes of .
- A partial labeling of the edges of .
- An initial node .
When node is not labeled by , we say that is dummy.
If , we say that is an output node.
The graph and the labeling function should satisfy:
- The node is not a dummy node.
- If , the out-degree of is , and one outgoing edges of is labeled and by respectively.
- If , i.e., is an output node, the out-degree of is .
- If is a dummy node, the in-degree of is not , the out-degree of is .
A branching program with inputs compute a Boolean function in a natural way.
Given an input , start in the initial node , follow a path to an output node, thereby giving the value of .
When passing through dummy node, directly go through the unique path.
When passing through labeled node, go to -labeled edge if , -labeled edge if .
Non-deterministic
Simply modify the deterministic branching program:
- label of vertices is . If , is called a choice node.
- We require the out-degree of is and outgoing edges are not labeled by .
For a given input , traverse the branching program from , but at a choice node choose to follow an arbitrary arc.
We say that the non-deterministic branching program accepts if there exist such choices leading the path to an output node labeled .
📖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 to a node to out degree .
Then define complexity classes of languages computed by size-bounded branching programs.
📖Definition 34. Let . is the class of languages computed by families of deterministic Boolean branching program of size . Similarly, is the class of languages computed by families of non-deterministic Boolean branching program of size .
🤔Theorem 43. .
🤔Theorem 44. .
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 is in layered form, if there is a partition of the nodes of into layers , in such a way that every edge go between some pair of adjacent layers and .
📖Definition 36. The width of a branching program with partition into layers is the size of the largest layer, .
Then here comes new complexity classes.
📖Definition 37. is the class of languages computed by families of Boolean branching programs polynomial size and width .
It’s easy to show (❓)
Conjecture: .
Fact: .
Consider computation over finite algebraic structures, finite groups.
📖Definition 38. A monoid is a set closed under an associative binary operation s.t. has an identity element:
- For all , we have . 封闭性
- For all , we have . 结合律
- There is an element s.t. for all 含有幺元
The set of functions from a set to itself which forms a monoid, denoted .
The set of partial functions from a set to itself forms a monoid, denote .
Commonsense: Any group is a monoid.
📖Definition 39. Let be a finite monoid. A program over with inputs consists of the following:
- A sequence of triples of the form , where and .
- An accepting set .
The triples is called instructions of the program .
A program over with inputs define a Boolean function in a natural way:
- Let .
- The output of an instruction is given by .
- The output of the program is .
- Finally iff .
📖Definition 40. The length of a program is the number of instructions of .
🤔Proposition 10: Let be a Boolean function computed by a family of polynomial length programs over a finite monoid . Then .
🤔Proposition 11. .
Barrington’s Theorem
Any language in can be computed by polynomial size constant width branching programs.
Theorem 45 (Barrington’s Theorem). .
By constructing polynomial length programs over group of permutations of elements.
The width is fixed .
We denote the identity permutation by .
📖Definition 41. Let be a program over and let be a -cycle. We say that -computes a Boolean function if when and when . We can also simply say that -cycle computes .
🤔Lemma. Let and be -cycles. If a program over of length -computes , then there is another program of length over that -computes .
🤔Lemma. If a program over of length -cycle computes , then there is another program of length that -cycle computes .
📖Definition 42 (commutator 交换子). Let be a group and . The commutator is the element .
🤔Lemma. There exists -cycles and s.t. their commutator , is also a -cycle.
🤔Proposition 12. Let be a fanin circuit of depth . Then there exist a program of length at most that -cycle computes the output of .
By Proposition 11 and 12, we obtain Barrington’s Theorem.