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ϵ=(log⁡s)/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Δ2⋅NC10Δ2=Σ2∩Π2AC0∨,∧NC10NC0

Le principali idee di prova sono:

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

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=ai⊕bi⊕ci

dove è XOR e è il carry calcolato come:c i⊕ci

ci=⋁j∣j<i(gj∧pj)

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

gj=(aj∧bj)

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

pj=⋀k∣j<k<i(aj∨bj)

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 i ⊕ b i ) ) ∨ ( ¬ c i ∧ ( a i ⊕ b i ) ) ⋁ ⋀ c isi(ci∧¬(ai⊕bi))∨(¬ci∧(ai⊕bi))⋁⋀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 1 ∃ x 2 … Q x d ϕ ( x 1 , … , x d ) ) ∨ ( ∀ x 1 ∃ x 2 … Q x d ψ ( x 1 , … , x d ) ) d d + 1ddd(∀x1∃x2…Qxdϕ(x1,…,xd))∨(∀x1∃x2…Qxdψ(x1,…,xd))dd+1
— Emil Jeřábek supporta Monica

1
... la formula . (∀x1∃x2…Qxdϕ(x1,…,xd))∨(∃x1∀x2…Q¯xdϕ(x1,…,xd))
— Emil Jeřábek sostiene Monica il

5
fn(x1,…,xn)ACd0dx0⊕fnACd0Cn(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.