Il modo più efficiente per convertire un circuito


18

MODIFICA (22 agosto 2011):

Sto semplificando ulteriormente la domanda e attribuendo una generosità alla domanda. Forse questa domanda più semplice avrà una risposta facile. Sposterò anche tutte le parti della domanda originale che non sono più pertinenti. (Grazie a Stasys Jukna e Ryan O'Donnell per aver parzialmente risposto alla domanda originale!)


Sfondo:

Dato un circuito AC 0 con profondità k e dimensione S, esiste un altro circuito AC 0 che calcola la stessa funzione con profondità k e dimensione tale che il nuovo circuito abbia fanout = 1 per tutte le porte. In altre parole, il circuito si presenta come un albero (tranne che per gli ingressi, poiché gli ingressi possono svanire verso più di una porta). Un modo per farlo è duplicare tutte le porte con fanout> 1 fino a quando tutte le porte hanno fanout = 1.O(Sk)

Ma è questo il modo più efficiente per convertire AC 0 circuiti di AC 0 circuiti con fanout 1? Ho letto quanto segue nella lezione 14 degli appunti del corso di Ryan O'Donnell :

Supponiamo che C sia un circuito di profondità k di dimensione S che calcola la parità. È un esercizio per dimostrare che C può essere convertito in un circuito di profondità-k livellato, dove i livelli si alternano alle porte AND e OR, i fili di ingresso sono i letterali 2n e ogni gate ha fan-out 1 (cioè, è un albero ) - e la dimensione aumenta al massimo .(2kS)2O(S4)

Nota in calce: in realtà, questo è un esercizio leggermente complicato. È più facile se devi solo ottenere la dimensione , che è quasi la stessa per i nostri scopi se pensi a k ​​come una “costante”.O(Sk)

Questo significa che c'è un modo per prendere qualsiasi profondità k AC 0 circuito di dimensione S e convertirlo in un circuito AC 0 con fanout 1, profondità k e dimensione ? In tal caso, come viene fatto ed è questo il metodo più noto? (2kS)2

Domanda originale:

Dato un circuito AC 0 con profondità k e dimensione S, qual è il metodo più noto (in termini di riduzione al minimo delle dimensioni del circuito risultante) per convertirlo in un circuito AC 0 di profondità k e gate fanout 1? Ci sono limiti inferiori noti per questo?


Domanda più recente e più semplice:

Questa domanda è un rilassamento di quello originale in cui non insisto affinché il circuito risultante sia di profondità costante. Come spiegato sopra, esiste un modo per convertire un circuito AC 0 con profondità k, dimensione S in un circuito con dimensione tale che il nuovo circuito abbia fanout = 1 per tutte le porte. C'è una costruzione migliore?O(Sk)

Dato un circuito AC 0 con profondità k e dimensione S, qual è il metodo più noto (in termini di riduzione al minimo delle dimensioni del circuito risultante) per convertirlo in un circuito di qualsiasi profondità con gate fanout 1?


5
Il limite è ok Ma se il limite sarebbe per i circuiti arbitrari (non solo quelli che calcolano la funzione Parity), allora si potrebbe simulare ogni circuito fanin -2 di dimensione da un fan- 2 formula di dimensione : le porte fanin-2 sono sufficienti per simulare un gate di fanin illimitato. Quindi la formula potrebbe essere trasformata in una profondità (un risultato ben noto, erroneamente attribuito a Spira). Quindi, otterremmo che la profondità del circuito è la maggior parte di . Ma è troppo bello per essere vero: il limite superiore più noto per la profondità del circuito è soloO(Sk)(2kS)2SO(S5)SO(logS)O(logS)O(S/logS).
Stasys,

2
Btw vale anche per circuiti arbitrari , ma solo se permettiamo porte di fanin-2 (vedi, ad esempio, Thm. 4.1 nel libro di Wegener); quindi i circuiti possono ancora ricordare risultati intermedi. La situazione con fanin-1 è molto diversa: qui i circuiti non hanno memoria. Ma la domanda di Robin è molto interessante. Sarebbe anche interessante mostrare che i circuiti di profondità 3 di dimensione possono essere simulati con formule di profondità 3 di dimensione inferiore a . O(kS)2)SS2
Stasys,

4
Mi fiderei di ciò che Stas dice sopra; Non stavo molto attento in quelle note (scusate). D'altra parte, ricordo quando li scrivo essendo abbastanza frustrato dall'approvare il fatto - menzionato in molti articoli ma quasi mai con citazione - che si possono convertire circuiti arbitrari in circuiti a strati senza far esplodere le dimensioni "molto" . Mi piacerebbe vedere un puntatore al risultato più noto su questo argomento. AC0
Ryan O'Donnell,

2
@Ryan O'Donnell: in effetti, si può facilmente creare un circuito stratificato con Blow-up . Usiamo l'associatività per ottenere che ogni porta AND abbia solo porte OR come input e viceversa; la profondità rimane invariata. Quindi disponi le porte in base alla loro profondità e aggiungi, se necessario, banali porte OR e AND banali-1 per ottenere un circuito a strati; la profondità rimane la stessa e la dimensione aumenta solo di un fattore di k. Ma ho capito che Robin vuole che un circuito venga convertito in una formula (un circuito simile ad un albero, tranne per il fatto che i valori letterali di input possono avere una grande dissolvenza). O(kS)
Stasys,

2
@Ryan O'Donnell: Grazie per la risposta e per aver pubblicato gli appunti della lezione online! In particolare, i tuoi appunti sull'analisi delle funzioni booleane sono stati di grande aiuto.
Robin Kothari,

Risposte:


11

Proverò a riassumere i miei commenti precedenti.

Per prima cosa ignoriamo il fatto che il tuo circuito originale ha (costante) profondità ; basta assumere ha dimensione . Sia il numero più piccolo in modo tale che ogni dimensione di circuito di fanin illimitata possa essere trasformata in una formula di fanin illimitata di dimensione . Sostengo che il meglio che possiamo fare finora è ottenere . Ad esempio, non è nemmeno noto se un circuito (fanin-2) di dimensioni possa essere simulato con una formula di dimensioni inferiori a .kSASFO(SA)A=O(S/log2S)S=O(n)exp(n/logn)

Per mostrare l'affermazione, trasformiamo la formula in una formula fanin-2 di dimensione . È noto che la profondità di ogni formula può essere resa logaritmica nella sua dimensione, ovvero . [Questo è stato mostrato per la prima volta da Khrapchenko nel 1968, e poi la costante sotto big-O è stata migliorata in da diversi autori.] D'altra parte, il risultato più noto per i circuiti fanin-2 [Paterson e Valiant, TCS 2 (3), 397-400] afferma che . Quindi, avere una simulazione con molto più piccola diFFM=O(S2A)DFD=O(logM)=O(AlogS)D1.73log2MDepth=O(Size/logSize)AS/log2S migliorerebbe la simulazione dimensione-profondità più nota per i circuiti.

Questa, tuttavia, è solo una "parola di cautela" - non risponde alla tua domanda perché presumi che il tuo circuito originale abbia una profondità costante , il che implica che in questo caso possiamo semplicemente prendere (o se abbiamo una porta di uscita singola). Il potere della simulazione Paterson-Valiant è che si applica a circuiti arbitrari, anche molto sbilanciati, la cui profondità è quasi intera! Ma nella tua impostazione di profondità limitata, anche il caso non è chiaro: ogni circuito di profondità 3 della dimensione essere trasformato in una formula della profondità 3 molto più piccola dikA=kA=k1k=3SS2? Immagino che la risposta dovrebbe essere "no" (potrebbe essere un esercizio interessante per gli studenti). Una formula di profondità 3 è solo un grande OR di CNF. La domanda è trovare un OR di CNF che condividano molte clausole in comune, ma per il resto sono "molto diverse" per forzare una formula di grande profondità 3.

Il problema è che vogliamo ottenere una formula (un circuito fanout-1). Come indicato sopra, consentire porte di fanout-2 semplifica la simulazione: Hoover, Klawe e Pippenger [JACM 31 (1), 1980] mostrano che qualsiasi circuito fanin-2 di dimensioni e profondità ha un fanin-2 equivalente e fanout -2 circuito di dimensioni e profondità . Pertanto, se il fanin è illimitato, il circuito risultante avrà dimensione e profondità .SD3S2n2DO(S2)O(DlogS)

C'è ancora un altro risultato in qualche modo correlato alla tua domanda. Lozhkin (1981) ha dimostrato che se una funzione booleana può essere calcolata con una formula di profonditàfAC0 kSfDk1+log2SDklogSlogS

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.