经典计算: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计算多个输出的函数。

电路也可以用无环有向图(Acyclic directed graph)表示。
Boolean circuits

其中最顶端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的图表来表示。

space-time diagram

其中每一个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 当且仅当 如下条件成立:

  1. ;
  2. Boolean functions 由polynomial-size的circuits 计算时有如下性质:存在一个图灵机,对每一个正整数输入(二进制编码,长度为),运行时间为 并且构建了circuit 。

A 列满足上面性质的被称为polynomial-time uniform。
证明:左推右由定理2.2证明过程是显然的。
右推左,(不理解定理第二条里面 图灵机是干什么的)

你可能感兴趣的:(经典计算:Lecture2 Boolean Circuits I)