Valuta il circuito booleano su batch di ingressi simili


10

Supponiamo di avere un circuito booleano che calcola alcune funzioni f : { 0 , 1 } n{ 0 , 1 } . Supponiamo che il circuito sia composto da AND, OR e NOT gate con fan-in e fan-out al massimo 2.Cf:{0,1}n{0,1}

Sia un dato input. Dati C e x , voglio valutare C sugli n ingressi che differiscono da x in una posizione a singolo bit, ovvero calcolare i valori n C ( x 1 ) , C ( x 2 ) , , C ( x n ) dove x i è uguale a x tranne che è ix{0,1}nCxCnxnC(x1),C(x2),,C(xn)xixiil bit viene capovolto.

C'è un modo per farlo che è più efficiente che valutare in modo indipendente n volte su n diversi input?C nn

Assumere contiene m cancelli. Quindi la valutazione indipendente di C su tutti gli n ingressi richiederà tempo O ( m n ) . C'è un modo per calcolare C ( x 1 ) , C ( x 2 ) , , C ( x n ) in o ( m n ) tempo?CmCnO(mn)C(x1),C(x2),,C(xn)o(mn)


Contesto facoltativo: se avessimo un circuito aritmetico (le cui porte sono moltiplicazione, addizione e negazione) su , allora sarebbe possibile calcolare le n derivate direzionali fRninO(m)tempo. Fondamentalmente, potremmo usare metodi standard per il calcolo del gradiente (back-propagation / chain rule), inO(m)time. Funziona perché la funzione corrispondente è continua e differenziabile. Mi chiedo se si possa fare qualcosa di simile per i circuiti booleani. I circuiti booleani non sono continui e differenziabili, quindi non puoi fare lo stesso trucco, ma forse c'è qualche altra tecnica intelligente che puoi usare? Forse una specie di trucco di Fourier o qualcosa del genere?fxi(x)O(m)O(m)

(Domanda variante: se abbiamo porte booleane con fan-in illimitato e fan-out limitato, puoi fare asintoticamente meglio che valutare n volte?)C n


1
Poiché Andrew ha risposto abbastanza bene alla tua domanda, lascerò solo un commento. Se è grande (come O ( 2 n / n ) ) e stai valutando C su molti input (fino a 2 o ( n / log n ) ) allora c'è un C di dimensione solo O ( 2 n / n ) che può valutare C su qualsiasi mmO(2n/n)C2o(n/logn)CO(2n/n)Cmingressi. (Il problema è anche chiamato "produzione di massa" in letteratura.) Vedi Uhlig, "Sulla sintesi di schemi di auto-correzione da elementi funzionali con un piccolo numero di elementi affidabili". Math.Notes Acad.Sci. URSS 15, 558-562. Quindi in alcuni casi puoi fare di meglio con la non uniformità.
Ryan Williams,

Risposte:


10

Considererei improbabile che un simile trucco sia facile da trovare e / o ti dia guadagni significativi, in quanto darebbe algoritmi di non soddisfacibilità non banali. Ecco come:

Prima di tutto, sebbene apparentemente più semplice, il tuo problema può effettivamente risolvere il problema più generale di, dato un circuito e N ingressi x 0 , ... , x N - 1 , valutare C in tutti gli ingressi più velocemente di ˜ O ( N | C | ) tempo. Il motivo è che possiamo modificare C in un circuito C di dimensione | C | + ˜ O ( N n ) che, sull'ingresso 0CNx0,,xN1CO~(N|C|)CC|C|+O~(Nn) , uscite C ( x i ) . Fondamentalmente, facciamo appena un po tabella di ricerca che manda 0 i 10 N - 1 - i di x i , e il filo in C .0i10N1iC(xi)0i10N1ixiC

Gli algoritmi non banali per la valutazione batch dei circuiti booleani possono quindi essere utilizzati per creare algoritmi di soddisfacibilità rapida. Ecco un esempio nel caso semplice in cui supponiamo di avere un algoritmo che esegue la valutazione nel tempo per qualsiasi costante ϵ > 0 . All'ingresso di un circuito C , possiamo decidere la soddisfacibilità espandendo C in un circuito CO~(|C|2ϵ+(N|C|)1ϵ/2+N2ϵ)ϵ>0CC taglia 2 n / 2| C | che è solo l'OR su tutte le possibili scelte dei primi n / 2 ingressi su C (lasciando liberi gli altri ingressi). Quindi valutiamo in batch C su tutti i suoi 2 n / 2 input. Il risultato finale è che troviamo un'assegnazione soddisfacente a C se C è soddisfacente. Il tempo di esecuzione è ˜ O ( 2 ( n / 2 ) ( 2 - ϵC2n/2|C|n/2CC2n/2CC.O~(2(n/2)(2ϵ)|C|2ϵ)=O~(2n(1ϵ/2)poly(|C|))

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.