Numero di gate binari necessari per calcolare AND e OR di n bit di input contemporaneamente


16

Qual è il numero minimo di gate binari necessari per calcolare AND e OR di bit di input contemporaneamente? Il limite superiore banale è . Credo che sia ottimale, ma come dimostrarlo? La tecnica standard di eliminazione del gate non funziona qui poiché assegnando una costante a una qualsiasi delle variabili di input si banalizza una delle uscite.n2n2

Il problema è anche presentato come esercizio 5.12 nel libro "Complessità delle funzioni booleane" di Ingo Wegener in una forma leggermente diversa: "Let . Con il metodo di eliminazione si può provare solo un limite inferiore di dimensione . Provare a dimostrare limiti inferiori più grandi. "fn(x)=x1xnx¯1x¯nn+Ω(1)


1
@Ryan: la domanda non riguarda AND di OR ma di AND e OR. Tuttavia, non conosco la risposta alla domanda di Sasha.
Tsuyoshi Ito,

1
@TsuyoshiIto Grazie, in qualche modo sono riuscito a analizzarlo in modo errato. È sicuramente un problema non banale - si potrebbe immaginare di usare altri tipi di porte per ottenere un vantaggio su . 2n2
Ryan Williams,

2
@Sasha, hai provato ad applicare solutori SAT a piccoli esempi (come ), come in alcuni dei tuoi precedenti lavori? n=4
Ryan Williams,

2
@Ryan Sì, certo. Quello che sappiamo è che , C 4 = 5 , C 57 . Questo è per la funzione dal libro (è 1 se tutti gli n bit di input sono uguali). Questo cresce come 2 n - 3 . E un circuito di dimensioni 2 n - 3 è facile da costruire: prima calcola x ix i + 1 per tutti i = 1 , ... , n -C3=3C4=5C571n2n32n3xixi+1 ( ( n - 1 ) porte), quindi calcola la congiunzione di esse ( ( n - 2 ) porte). i=1,,n1(n1)(n2)
Alexander S. Kulikov,

1
@Tsuyoshi: penso che la funzione gate di Sasha sia la seconda funzione della domanda ( f n ( x ) = x 1x nˉ x 1ˉ x n ) che può essere costruita con n - 1 porte XNOR (applicate a x i , x i + 1 ) e n - 2 porte AND applicate alle XNOR. 2n3fn(x)=x1xnx¯1x¯nn1xi,xi+1n2
Marzio De Biasi,

Risposte:


14

Questo documento di Blum & Seysen può essere utile:

N.Blum, M. Seysen. Caratterizzazione di tutte le reti ottimali per un calcolo simultaneo di AND e NOR . Acta Inf. 21: 171-181 (1984)

Ho pensato che per 2 n - c il limite inferiore può essere ottenuto usando i metodi di Blum & Seysen, ma sembra che non sia così.x1xnx¯1x¯n 2nc


1
È disponibile una versione pdf pubblica del documento Blum e Seysen?
Marzio De Biasi,

@Vladimir, grazie per il riferimento! Cercherò di verificare se i loro metodi sono applicabili in questo caso quando trovo l'articolo.
Alexander S. Kulikov,

3
@Vladimir, grazie ancora! In realtà, questo documento contiene esattamente la risposta alla mia domanda e ancora di più: dice che per calcolare AND e OR contemporaneamente sono necessari e qualsiasi circuito di queste dimensioni calcola AND e OR in modo indipendente (questo è interessante!). Inoltre, non è difficile dimostrare che C ( f n ) C ( A N D , O R ) - c 2 n - c . 2n2C(fn)C(AND,OR)c2nc
Alexander S. Kulikov,

@Sasha, sì, mi mancava questa semplice costruzione. Per chiarire le cose, nel documento sono considerate le funzioni AND e NOR, quindi per AND e OR otteniamo un limite inferiore di modificando un gate e per x 1x nˉ x 1ˉ x n --- 2 n - 52n2x1xnx¯1x¯n2n5
Vladimir Lysikov,

1
Solo un promemoria @SashaK. se ti piace la risposta, per favore "accettala" facendo clic sul segno di spunta sotto il conteggio dei voti.
Suresh Venkat,

3

La tua domanda è correlata alla nota domanda sul calcolo del minimo e massimo di un elenco contemporaneamente utilizzando il numero minimo di confronti. In tal caso la risposta è .3n/2

L'algoritmo intelligente che prova il limite superiore si traduce in un circuito AND / OR con lo stesso limite ottenuto, poiché uno dei confronti calcola sia un minimo che un massimo.

Tuttavia, il limite inferiore (dato da un argomento avversario) sembra tradursi, almeno nel caso dei circuiti monotoni (poiché un circuito AND / OR si traduce in un algoritmo max / min). Ciò implicherebbe un limite inferiore di . Forse un limite inferiore stretto può essere ottenuto analizzando l'argomento avversario.3n/2

Il limite superiore appare in "Introduzione agli algoritmi", dove puoi anche trovare l'argomento semplice che mostra che i circuiti di confronto max / min sono validi se funzionano per input booleani (usa una soglia appropriata). Il limite inferiore può essere trovato ad es . Qui .


2
Nota nella domanda di Sasha, tutte le funzioni booleane a 2 bit possono essere utilizzate per costruire il circuito.
Ryan Williams,

Sì, non è chiaro come il limite inferiore possa essere tradotto nel caso di tutte le funzioni binarie.
Alexander S. Kulikov,
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.