Complessità circuitale della funzione di maggioranza


13

Sia f:{0,1}n{0,1} sia la funzione maggioritaria, ovvero f(X)=1 se e solo se Σio=1nXio>n/2 . Mi chiedevo se ci fosse una semplice prova del seguente fatto (per "semplice" intendo non fare affidamento sul metodo probabilistico come fece Valiant 84 o su reti di smistamento; preferibilmente fornire una costruzione esplicita e semplice del circuito):

può essere calcolata da una famiglia di circuiti diprofondità, dimensione poli (n), in cui le porte sono costituite da porte NON, porte OR a 2 ingressi e porte AND a 2 ingressi.fO(log(n))


6
Questo potrebbe essere interessante: Igor Sergeev, Limiti superiori per la dimensione della formula della funzione maggioritaria ; anche qui annuncia limiti superiori leggermente migliori. Tuttavia, se chiedi solo dei circuiti (non delle formule ), allora, come mi ha ricordato Igor, ogni funzione booleana simmetrica (non solo la maggioranza) ha un circuito di profondità e dimensione O ( n ) : basta calcolare la somma di 1 s, e realizza una funzione booleana delle variabili log 2 n . Per la maggior parte, quest'ultima funzione è un confronto con nO(logn)O(n)1log2n . n/2
Stasys

@Stasys, e calcolare il numero di quelli sta essenzialmente ordinando i bit.
Kaveh,

Risposte:


9

La risposta di Kaveh fornisce una risposta facendo la domanda come l'hai dichiarata (e questa è la solita prova per dimostrare che è contenuto in N C 1 ). Ma stavo pensando che potresti aver intenzione di porre una domanda leggermente diversa. Vale a dire per una formula monotona di dimensione polinomiale esplicita per la maggior parte.TC0NC1

Poiché la maggioranza è monotona, sappiamo che può essere calcolata con una formula monotona. Esistono due formule monotone di dimensioni polinomiali di costruzioni note, vale a dire le due citate, la costruzione probabilistica di Valiant e la costruzione tramite reti di smistamento. Per quanto ne so non abbiamo una costruzione deterministica più semplice di quella fornita dalle reti di smistamento.

In relazione a questo è anche il seguente. Si scopre che la maggioranza può essere calcolata con formule che consistono solo di porte (e nessuna costante!). La costruzione probabilistica di Valiant può essere adattata per fornire tali formule di profondità O ( log ( n ) ) . Comunque qui non abbiamo conosciuto nessuna costruzione deterministica. In particolare, le reti di smistamento non sono adatte a questo (motivo tecnico: fornirebbero tutte le funzioni di soglia e solo le funzioni di maggioranza possono essere calcolate da porte M A J 3 ). Vi sono tuttavia progressi recenti su questa domanda fornita nel documentoMAJ3O(log(n))MAJ3Protocolli multipartitici efficienti tramite formule di soglia di profondità di registro di Cohen et al. Qui tali formule sono costruzioni basate su ipotesi teoriche o crittografiche standard di complessità.


9

Il calcolo del gate di soglia limitato ( ) sta essenzialmente ordinando i bit di ingresso.ixik

Se è possibile ordinare i bit, è facile confrontare il risultato con e calcolare la soglia limitata.k

D'altra parte, supponiamo che abbiamo un circuito per calcolare la soglia limitata. Possiamo fare una ricerca parallela per trovare il numero di quelli nell'input e produrre l'elenco ordinato.

Questi preservano la profondità del circuito. Quindi, se ti viene in mente un nuovo circuito per calcolare la soglia limitata, si otterrà un circuito di classificazione della profondità O ( lg n ) . Quindi, se arriviamo a un semplice argomento per mostrare che la maggioranza è in N C 1, hai trovato un semplice circuito di ordinamento di profondità O ( lg n ) (diverso da quello basato sulla rete di ordinamento AKS).NC1O(lgn)NC1O(lgn)

Si noti che è facile implementare la soglia limitata usando la maggioranza aggiungendo nuovi ingressi 1 e 0 alla porta della maggioranza.


In precedenza questa risposta affermava che si poteva fare usando divide e conquistare e il fatto che l'aggiunta binaria fosse in . Ciò dimostra solo che la maggioranza è in A C 1 e N C 2 poiché abbiamo porte di fan-in illimitate nell'aggiunta binaria se lo facciamo direttamente. Tuttavia, può essere fatto con un po 'più di lavoro.AC0AC1NC2

Dobbiamo usare il trucco chiamato tre-per-due per rimanere in profondità .O(lgn)

aggiunta binaria tre per due:
dati tre numeri binari possiamo calcolare due numeri binari x , y in modo tale che a + b + c = x + y .a,b,cx,ya+b+c=x+y

Un altro metodo consiste nell'utilizzare la rappresentazione di cifre con segno di numeri interi in cui l'addizione può essere eseguita in profondità e fan-in 2. (L'idea è quella di utilizzare la flessibilità che un numero può essere rappresentato in più di un modo per assicurarsi che i carry non si propagano).O(1)

Vedi sezione 4 ed esercizio 4 in


O(lgn)O(lgn)

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.