经典计算:Lecture2 Boolean Circuits I
2 Boolean circuits
2.1 Definitions. Complete bases
Boolean value: 0和1,ture or false
Boolean circuit:把一个给定的Boolean function表示成其他Boolean functions的组合,Boolean circuit是对上述过程的表示。
Boolean functioon:个变量
basis:由Boolean functions组成的固定集合。在
里的function会有不同数量的参数(different arity)。
circuit components: 一个在上的circuit
是一系列assifgnments:
个输入的变量
一些辅助(auxiliary)变量。
第个赋值形如
,其中
是
中的function,
是输入变量或者是
之前的辅助变量。
最后一个辅助变量就是计算的result。有
个输入的boolean citrcuit计算了一个boolean function
,如果对任意输入
,都有
。
在circuit中选择个辅助比特作为输出时,就可以定义由circuit计算多个输出的函数
。

其中最顶端in-degree是0的顶点代表输入;
其他顶点代表从basis中选出来的function,in-degree代表了输入这个函数的变量个数,match the arity of the function;
每一条进入顶点的边,都代表了一个变量的输入;
最下面的是输出顶点。
graph = assignments。二者可以互相转化。
Formula: 除了最后一个作为输出的辅助变量之外,其他的辅助变量都只用了一次。但是输入变量可以多次使用。Formula的graph可以用树来表示,叶子结点是输入,一个输入会出现多次。我们可以把一个formula表示成只有输入,中的function和括号的表达式,且它的长度和assignments的长度差不多。如果是一般的boolean function,则长度可能会指数增长。
Complete basis: 基被称作完备的,如果任意boolean function
,都存在基
上的circuit可以计算
。
最常见的basis包含如下三种操作(negation, disjunction, conjunction):
定理2.1 The basis {NOT, OR, AND} = {
} is complete.
proof:假设function取值为1的自变量只有一种,则它可以由literals的conjunction来计算;literals是或者
。例如
当
时为真,则
更一般的,一个函数可以表达为如下形式:
其中
时01串;如果
,则有
,否则为0。
DNF(disjunctive normal form): 是a disjunction of conjunctions of literals。也就是
CNF(conjunctive normal form): 是a conjunction of disjunctions of literals。用De Morgan's identities 可以将上面DNF转化为CNF。
根据identities,basis{}是冗余的,只需要{
}或者{
}就可以构成完备基(complete bases). {
}也是完备基。
Circuit complexity
size of circuit: 一个circuit中assignments的数量。
circuit complexity of : 在基
上的计算函数
的circuit的最小(minimal) size,记为
。
此处的复杂度和基
的选取有关。但从一个有限基变换到另一个基,对复杂度的改变最多只是一个常数,所以有
。 所以对基的选取并不是很重要,我们记
为circuit complexity of
with respect to some finite comloete basis。
2.2 Circuits versus Turing machines.
对于一个predicate,可以固定他的输入长度为
,则我们可以得到如下的Boolean function:
从而,可以把predicate
看成是一列Boolean functions
类似的,partial function 也可以看作一列partial functions
。为了简单起见,后面的讨论集中于predicates。
定义2.1 P/ploy(nonuniform P):
A predicate belongs to the class P/poly if
此处的nonuniform,非均匀,是说对不同的输入长度,都有一个boolean circuit的size是多项式的。
定理2.2
.
proof: 取,证明
。
对来说,存在图灵机
,runs in polynomial time and space。对
长的输入,step
,space
,所以可以拿一个space-time的图表来表示。

其中每一个cell记录了图灵机在
step,
-th cell的symbol和图灵机的状态。因为symbol和状态都是有限且与
无关的,所以这些状态可以编码成二进制串,长度与
无关。由于每次head位移最多是1,所以每一个cell只由上面相邻三个决定。这个决定关系可以看作是一个boolean function,而且可以由circuit of size O(1)计算。把这些circuits组合起来形成一个大的circuit,把上面的space-time diagram算完,这个大的circuit的size是
。
输入部分需要assignment,输出部分只要看第一个cell就可以,
。
总体来说,我们得到了一个-size的circuit计算了Boolean function
。
Remark2.1
,也就是说
是
的真子集。
举例:设 是任意函数。令predicate
。则
是一个常数函数,
,所以
for any
。但对于noncomputable的函数
来说,
不可计算,不属于
。
Remark2.2
是对
很好的近似 for many purposes。
事实上,class 相对来说很小:size为
的circuit的数量不会超过
而输入长度为
的Boolean function共有
个。uniform和nonuniform computation的不同对于更大的复杂性类中非常重要。
EXPTIME: the class of predicates decidable in time ,是一个非平凡的可计算类。然而,把它类比到nonuniform之后,它就包含了所有的predicates.我们可以把所有的可能性编码到指数线路中。
定理2.3 Alternative P Theorem:
Predicate 当且仅当 如下条件成立:
-
;
- Boolean functions
由polynomial-size的circuits
计算时有如下性质:存在一个图灵机,对每一个正整数输入
(二进制编码,长度为
),运行时间为
并且构建了circuit
。
A 列满足上面性质的被称为polynomial-time uniform。
证明:左推右由定理2.2证明过程是显然的。
右推左,(不理解定理第二条里面 图灵机是干什么的)。