L'aggiunta può essere eseguita in meno della profondità 5?


21

Usando l'algoritmo carry look ahead possiamo calcolare l'aggiunta usando una famiglia di circuiti profondità di dimensione polinomiale 5 (o 4?) . È possibile ridurre la profondità? Possiamo calcolare l'aggiunta di due numeri binari usando una famiglia di circuiti di dimensioni polinomiali con profondità inferiore a quella ottenuta dall'algoritmo carry look ahead?AC0

Esistono limiti inferiori super polinomiali per le dimensioni delle famiglie di circuiti che calcolano l'aggiunta dove è 2 o 3? dACd0d

Per profondità intendo profondità di alternanza.


Puoi dirci il tuo nome? Chi sei? Da circa un mese le persone creano un nuovo nome utente qui, fanno una domanda e poi cancellano quel nome utente!
Tayfun paga il

14
@Geekster, in genere le persone non sono tenute a creare un account o utilizzare i loro nomi reali (tuttavia è incoraggiato a farlo per vari motivi). Se hai una preoccupazione generale riguardo a qualcosa, per favore usa la Meta teorica dell'informatica per sollevarla.
Kaveh,

4
Questo potrebbe essere costretto bruta verificando che non depth AC circuito può calcolare la somma bit di due ingressi -bit per qualche fisso ; ci sono solo molte funzioni booleane dei bit di input che possono apparire ad ogni profondità. 0 ( m + 1 ) m m40(m+1)mm
mjqxxxx,

5
@mjqxxxx: come si impone il vincolo di dimensione polinomiale sui circuiti AC0 durante la forzatura bruta per un m fisso? @ OP: l'attuale profondità del circuito è la migliore 4 o la profondità 5?
Robin Kothari,

14
@mjqxxxx: ogni funzione booleana è calcolabile da circuiti di profondità . Supponiamo ora di trovare per il tuo fisso un circuito di taglia . Come giudichi se ci sono circuiti di dimensione per ogni , dove , o se ci sono solo circuiti di dimensione , dove ? Semplicemente non c'è modo di dedurre informazioni asintotiche da un esempio finito. m s c n n c = s / m 2 ϵ n ϵ = ( log s ) / m2mscnnc=s/m2ϵnϵ=(logs)/m
Emil Jeřábek sostiene Monica il

Risposte:


13

Secondo il Teorema 3.1 di Alexis Maciel e Denis Therien Threshold Circuits of Small Majority-Depth esiste effettivamente un circuito di profondità 3 per calcolare l'aggiunta di due numeri.

Il limite preciso è dove sono problemi che hanno circuiti depth-2 con entrambi i circuiti in alto e i sono circuiti di profondità uno (vedere il documento per una spiegazione dettagliata della notazione). Δ 2 = Σ 2Π 2 A C 0, N C 0 1 N C 0Δ2NC10Δ2=Σ2Π2AC0,NC10NC0

Le principali idee di prova sono:

  • Innanzitutto, esprimi il circuito Carry-lookahead comeNC0Δ2NC0
  • Quindi, invoca le proprietà di chiusura di per scrivere questo comeΔ 2N C 0Δ2Δ2NC0
  • Infine, usa il fatto (dimostrato anche nel documento) cheNC0Δ1NC10

9

I circuiti di profondità 2 richiedono dimensioni esponenziali per calcolare l'aggiunta poiché un circuito di profondità 2 deve essere DNF o CNF ed è facile verificare che ci siano esponenzialmente molti minterm e maxterm.

Attenzione : la parte sotto è difettosa . Vedi i commenti sotto la risposta.

Per come lo conto, l'addizione può essere effettuata in profondità 3. Supponiamo che e siano bit i due numeri, dove è l'indice dell'LSB e dell'MSB. b i i 0 naibii0n

Calcoliamo l' bit della somma, in modo standard con carry look ahead:s iisi

si=aibici

dove è XOR e è il carry calcolato come:c ici

ci=jj<i(gjpj)

e mezzi che il esima posizione "generato" il riporto: jgjj

gj=(ajbj)

e significa che il carry viene propagato da a : j ipjji

pj=kj<k<i(ajbj)

Contando la profondità, è la profondità 2 e è la profondità 3. Mentre sembrerebbe che sia la profondità 4 o 5, in realtà è anche solo la profondità 3 poiché si tratta di un calcolo fanin limitato dei circuiti di profondità 3, quindi si può spingere il primi due livelli in basso usando le formule de-Morgan, mentre si soffia la dimensione del circuito di una quantità polinomiale.c i s ipjcisi


4
Non capisco bene come il calcolo limitato dei fan dei circuiti di profondità 3 sia automaticamente profondità 3. Se, per esempio, scrivi come , puoi fare in modo che il primo abbia disgiunto un circuito di profondità 3 con in cima, e il secondo abbia disgiunto un circuito di profondità 3 con in cima. Non vedo come spingere verso il basso la disgiunzione superiore senza aumentare la profondità di uno per tenere conto della mancata corrispondenza tra i tipi connettivi nelle due parti. Questo può essere risolto osservando che può anche essere calcolato in modo diverso da un circuito di profondità 3 ... ( c i¬ ( a ib i ) ) ( ¬ c i( a ib i ) ) c isi(ci¬(aibi))(¬ci(aibi))ci
Emil Jeřábek supporta Monica il

1
... con in cima. D'altra parte, tutti i circuiti di profondità 3 hanno limitato il fan-in inferiore, quindi li definirei profondità 2 1/2.
Emil Jeřábek sostiene Monica il

1
Questo è ovvio. Quello che sto sottolineando è che, come scritto, non hai qui un OR di due circuiti di profondità con AND in alto. Hai un OR di due circuiti di profondità , uno dei quali ha AND nella parte superiore e l'altro ha OR nella parte superiore. Dubito che tali circuiti possano essere convertiti in profondità in generale. Pensa ai fan-in polinomiali AND e OR come quantificatori. Puoi esprimere come prenex formula con blocchi quantificatori, ma hai bisogno di blocchi per esprimere ...d d ( x 1x 2Q x d ϕ ( x 1 , , x d ) ) ( x 1x 2Q x d ψ ( x 1 , , x d ) ) d d + 1ddd(x1x2Qxdϕ(x1,,xd))(x1x2Qxdψ(x1,,xd))dd+1
Emil Jeřábek supporta Monica

1
... la formula . (x1x2Qxdϕ(x1,,xd))(x1x2Q¯xdϕ(x1,,xd))
Emil Jeřábek sostiene Monica il

5
fn(x1,,xn)ACd0dx0fnACd0Cn(x0,,xn)Cnx0=1ACd0¬fnACd0fn
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.