Quando restrita a 00 - 11 entradas, cada { + , × }{+,×} -circuit F ( x 1 , ... , x n )F(x1,…,xn) calcula uma função F : { 0 , 1 } n → NF:{0,1}n→N . Para obter uma função booleana , podemos apenas adicionar um gate limiar fanin-1 como o gate de saída. Na entrada a ∈ { 0 , 1 } na∈{0,1}n , o limite resultante { + ,× }{+,×} - ocircuitoentão gera 11 se F ( a ) ≥ tF(a)≥t , e gera 00 se F ( a ) ≤ t - 1F(a)≤t−1 ; o limite t = t nt=tn pode ser qualquer número inteiro positivo, que pode depender de n,n mas não dos valores de entrada. O circuito resultante calcula algumafunção
booleana(monótona) F ′ : { 0 , 1 } n → { 0 ,1 }F′:{0,1}n→{0,1} .
Pergunta: Os limiares { + , × }{+,×} -circuitos podem ser eficientemente simulados por { ∨ , ∧ }{∨,∧} -circuitos?
Em "eficientemente", quero dizer "com no máximo um aumento polinomial de tamanho". A resposta é clara "sim" para o limiar t = 1t=1 : basta substituir ++ por ∨∨ , ×× por ∧∧ e remova a última porta do limiar. Ou seja, { ∨ , ∧ }{∨,∧} -circuitos são, de fato, limiar- 1 1
{ + , × }{+,×} -circuitos. Mas e quanto aos limites maiores, digamos, t = 2t=2 ?
Pode-se definir análogos aritméticos # C#C da maioria das classes de circuitos booleanos CC , usando + em+
vez de OR, × em× vez de AND e 1 - x i em1−xi vez de ˉ x ix¯i . Por exemplo, os circuitos # A C 0#AC0 são { + , × }{+,×} -circuitos de profundidade constante com fanin ilimitado ++ e ×× portas e entradas x ixi e 1 - x i1−xi .
Agrawal, Allender e Datta mostraram esse limite # A C 0#AC0 = T C 0TC0 . (Lembre-se de que A C 0 emAC0 si é um subconjunto adequado de T C 0TC0 ; tome, digamos, a função Maioria.) Em outras palavras, os circuitos de limiar de profundidade constante podem ser eficientemente simulados por profundidade constante { + , - , × }{+,−,×} - circuitos, com apenas um portão de limiar único! Note, no entanto, que minha pergunta é sobre circuitos monótonos (sem menos " -− " como portões e até mesmo 1 -x i como entradas). Um (último) portão de limiar também pode ser tão poderoso? Como não conheço essas coisas, qualquer sugestão relacionada é bem-vinda.
1−xi
NB Há ainda outro resultado interessante devido ao Arnold Rosenbloom: { + , × } -circuitos com apenas uma função monotônica g : N 2 → { 0 , 1 }, pois o gate de saída pode calcular cada função de fatia com O ( n ) gates. Uma função de fatia é uma função booleana monótona que, para alguns k fixos , gera 0 (resp. 1 ) em todas as entradas com menos (resp., Mais) que k{+,×}g:N2→{0,1}O(n)k01kuns. Por outro lado, a contagem fácil mostra que a maioria das funções de fatia exige circuitos gerais { ∨ , ∧ , ¬ } de tamanho exponencial. Assim, uma porta de saída adicional "inocente" pode tornar onipotentes os circuitos monotônicos! Minha pergunta pergunta se isso também pode acontecer quando g : N → { 0 , 1 } é um gate limiar fanin- 1 .
{∨,∧,¬}g:N→{0,1}1
ATUALIZAÇÃO (adicionada em
11/03/2014 ): Emil Jeřábek mostrou (por meio de uma construção incrivelmente simples, veja a resposta abaixo) que a resposta é "sim", desde que
t ≤ n c para uma constante
c . Portanto, a questão permanece em aberto apenas para limites
super polinomiais (em
n ).
t≤nccn
Geralmente, em aplicativos, apenas limiares grandes funcionam: geralmente precisamos de limiares no formato 2 n ϵ para ϵ > 0 . Por exemplo, se F : { 0 , 1 } n → N conta o número de s - t caminhos do gráfico especificado pelo 0 - uma entrada, em seguida, para t = m m 2 com m ≈ n 1 / 3 , o threshold- t versão de F resolve2nϵϵ>0F:{0,1}n→N st01t=mm2m≈n1/3tF a existência de um problema Hamiltoniano s - t path em gráficos m -vertex (ver, por exemplo, aqui ).
stm
(Adicionado em 11.11.2014): Como Emil respondeu grande parte da minha pergunta, e como o caso de limites exponenciais não está à vista, agora aceito a resposta (muito legal) de Emil.
Respostas:
The answer is “yes” if t=nO(1). More generally, a threshold {+,⋅}-circuit of size s with threshold t can be simulated by a {∨,∧}-circuit of size O(t2s).
First, observe that it is enough to evaluate the circuit in {0,…,t} with truncated addition and multiplication: in particular, if a,a′≥t, then a+b,a′+b≥t, and either ab,a′b≥t as well, or ab=a′b(=0).
With this in mind, we can simulate the circuit with a Boolean monotone circuit by replacing each node c with nodes c0,…,ct, where ci is intended to compute the predicate c≥i. (We need c0 only for notational convenience, it computes the constant 1 function.) If c is a Boolean input variable x, we take c1=x, c2=⋯=ct=0. If c is an addition gate, say c=a+b, we implement it via ci=⋁j,k≤tj+k≥i(aj∧bk).
This takes O(t3) gates per one gate of the original circuit. As a minor optimization, we can reduce it to O(t2) by putting ct=⋁j+k≥t(aj∧bk),ci=ci+1∨⋁j+k=i(aj∧bk),i<t,
fonte