2 Boolean circuits
2.1 Definitions. Complete bases
Boolean value: 0和1妒茬,ture or false
Boolean circuit:把一個(gè)給定的Boolean function表示成其他Boolean functions的組合,Boolean circuit是對上述過程的表示。
Boolean functioon:個(gè)變量
basis:由Boolean functions組成的固定集合辐宾。在
里的function會有不同數(shù)量的參數(shù)(different arity)沈条。
circuit components: 一個(gè)在上的circuit
是一系列assifgnments:
個(gè)輸入的變量
一些輔助(auxiliary)變量我磁。
第個(gè)賦值形如
,其中
是
中的function古拴,
是輸入變量或者是
之前的輔助變量。
最后一個(gè)輔助變量就是計(jì)算的result钱骂。有
個(gè)輸入的boolean citrcuit計(jì)算了一個(gè)boolean function
叔锐,如果對任意輸入
,都有
见秽。
在circuit中選擇個(gè)輔助比特作為輸出時(shí)愉烙,就可以定義由circuit計(jì)算多個(gè)輸出的函數(shù)
。
其中最頂端in-degree是0的頂點(diǎn)代表輸入齿梁;
其他頂點(diǎn)代表從basis中選出來的function,in-degree代表了輸入這個(gè)函數(shù)的變量個(gè)數(shù)肮蛹,match the arity of the function;
每一條進(jìn)入頂點(diǎn)的邊勺择,都代表了一個(gè)變量的輸入;
最下面的是輸出頂點(diǎn)伦忠。
graph = assignments省核。二者可以互相轉(zhuǎn)化。
Formula: 除了最后一個(gè)作為輸出的輔助變量之外昆码,其他的輔助變量都只用了一次气忠。但是輸入變量可以多次使用邻储。Formula的graph可以用樹來表示,葉子結(jié)點(diǎn)是輸入旧噪,一個(gè)輸入會出現(xiàn)多次吨娜。我們可以把一個(gè)formula表示成只有輸入,中的function和括號的表達(dá)式淘钟,且它的長度和assignments的長度差不多宦赠。如果是一般的boolean function,則長度可能會指數(shù)增長米母。
Complete basis: 基被稱作完備的勾扭,如果任意boolean function
,都存在基
上的circuit可以計(jì)算
铁瞒。
最常見的basis包含如下三種操作(negation, disjunction, conjunction):
定理2.1 The basis {NOT, OR, AND} = {
} is complete.
proof:假設(shè)function取值為1的自變量只有一種妙色,則它可以由literals的conjunction來計(jì)算;literals是或者
慧耍。例如
當(dāng)
時(shí)為真永品,則
更一般的昌腰,一個(gè)函數(shù)可以表達(dá)為如下形式:
其中
時(shí)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轉(zhuǎn)化為CNF。
根據(jù)identities找岖,basis{}是冗余的陨倡,只需要{
}或者{
}就可以構(gòu)成完備基(complete bases). {
}也是完備基。
Circuit complexity
size of circuit: 一個(gè)circuit中assignments的數(shù)量许布。
circuit complexity of : 在基
上的計(jì)算函數(shù)
的circuit的最小(minimal) size兴革,記為
。
此處的復(fù)雜度和基
的選取有關(guān)蜜唾。但從一個(gè)有限基變換到另一個(gè)基杂曲,對復(fù)雜度的改變最多只是一個(gè)常數(shù),所以有
袁余。 所以對基的選取并不是很重要擎勘,我們記
為circuit complexity of
with respect to some finite comloete basis。
2.2 Circuits versus Turing machines.
對于一個(gè)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欣硼,非均勻题翰,是說對不同的輸入長度,都有一個(gè)boolean circuit的size是多項(xiàng)式的分别。
定理2.2
.
proof: 取遍愿,證明
。
對來說耘斩,存在圖靈機(jī)
沼填,runs in polynomial time and space。對
長的輸入括授,step
坞笙,space
,所以可以拿一個(gè)space-time的圖表來表示荚虚。
其中每一個(gè)cell記錄了圖靈機(jī)在
step薛夜,
-th cell的symbol和圖靈機(jī)的狀態(tài)。因?yàn)閟ymbol和狀態(tài)都是有限且與
無關(guān)的版述,所以這些狀態(tài)可以編碼成二進(jìn)制串梯澜,長度與
無關(guān)。由于每次head位移最多是1渴析,所以每一個(gè)cell只由上面相鄰三個(gè)決定晚伙。這個(gè)決定關(guān)系可以看作是一個(gè)boolean function,而且可以由circuit of size O(1)計(jì)算俭茧。把這些circuits組合起來形成一個(gè)大的circuit咆疗,把上面的space-time diagram算完,這個(gè)大的circuit的size是
母债。
輸入部分需要assignment午磁,輸出部分只要看第一個(gè)cell就可以,
毡们。
總體來說迅皇,我們得到了一個(gè)-size的circuit計(jì)算了Boolean function
。
Remark2.1
衙熔,也就是說
是
的真子集登颓。
舉例:設(shè) 是任意函數(shù)。令predicate
青责。則
是一個(gè)常數(shù)函數(shù)挺据,
取具,所以
for any
。但對于noncomputable的函數(shù)
來說扁耐,
不可計(jì)算暇检,不屬于
。
Remark2.2
是對
很好的近似 for many purposes婉称。
事實(shí)上块仆,class 相對來說很小:size為
的circuit的數(shù)量不會超過
而輸入長度為
的Boolean function共有
個(gè)王暗。uniform和nonuniform computation的不同對于更大的復(fù)雜性類中非常重要悔据。
EXPTIME: the class of predicates decidable in time ,是一個(gè)非平凡的可計(jì)算類俗壹。然而科汗,把它類比到nonuniform之后,它就包含了所有的predicates.我們可以把所有的可能性編碼到指數(shù)線路中绷雏。
定理2.3 Alternative P Theorem:
Predicate 當(dāng)且僅當(dāng) 如下條件成立:
-
;
- Boolean functions
由polynomial-size的circuits
計(jì)算時(shí)有如下性質(zhì):存在一個(gè)圖靈機(jī)头滔,對每一個(gè)正整數(shù)輸入
(二進(jìn)制編碼,長度為
)涎显,運(yùn)行時(shí)間為
并且構(gòu)建了circuit
坤检。
A 列滿足上面性質(zhì)的被稱為polynomial-time uniform。
證明:左推右由定理2.2證明過程是顯然的期吓。
右推左早歇,(不理解定理第二條里面 圖靈機(jī)是干什么的)。