Sono note funzioni esistenti con la seguente proprietà di somma diretta?


15

Questa domanda può essere posta nel quadro della complessità circuitale dei circuiti booleani, o nel quadro della teoria della complessità algebrica, o probabilmente in molti altri contesti. È facile dimostrare, contando gli argomenti, che esistono funzioni booleane su N input che richiedono esponenzialmente molte porte (anche se ovviamente non abbiamo esempi espliciti). Supponiamo di voler valutare la stessa funzione M volte, per alcuni numeri interi M, su M insiemi distinti di ingressi, in modo che il numero totale di ingressi sia MN. Cioè, vogliamo solo valutare per la stessa funzionefin ogni momento.f(x1,1,...,x1,N),f(x2,1,...,x2,N),...,f(xM,1,...,xM,N)f

La domanda è: è noto che esiste una sequenza di funzioni (una funzione per ogni N) tale che, per ogni N, per qualsiasi M, il numero totale di porte richiesto è almeno uguale a M volte una funzione esponenziale di N? Il semplice argomento del conteggio non sembra funzionare poiché vogliamo che questo risultato valga per tutti i M. Uno può trovare semplici analoghi di questa domanda nella teoria della complessità algebrica e in altre aree.f

Risposte:


13

Bene, questo è falso: è possibile valutare M copie di QUALSIASI f usando solo porte O (N (M + 2 ^ N)) che possono essere molto inferiori a M * exp (N) (in effetti, si ottiene ammortizzato lineare complessità per esponenziale M). Non ricordo un riferimento, ma penso che possa essere simile al seguente:

Per prima cosa aggiungi 2 ^ N input fittizi che sono solo costanti 0 ... 2 ^ N-1 e ora denotiamo l'i-esimo input N-bit di xi (quindi per i <= 2 ^ N abbiamo xi = i, e per 2 ^ N <i <= 2 ^ N + M abbiamo gli input originali). Ora creiamo una tripletta per ciascuno degli ingressi M + 2 ^ N: (i, xi, fi) dove fi è f (i) per i primi ingressi 2 ^ N (una costante cablata nel circuito) e fi = "*" altrimenti. Ora ordiniamo le terzine (i, xi, fi) in base alla chiave xi e lasciamo che la j'th triplet sia (i_j, x_j, f_j) da questa calcoliamo una tripletta (i_j, x_j, g_j) lasciando g_j be f_j se f_j non è un "*" e lasciare altrimenti g_j g_ (j-1). Ora riordina le nuove terzine in base alla chiave i_j e otterrai le risposte corrette nei posti corretti.


Intelligente! Una cosa minore: dobbiamo sistemare stabilmente le terzine (o in qualche altro metodo che garantisca che le terzine con fi ≠ “ ” vengano prima delle terzine con fi = “ ”).
Tsuyoshi Ito,

Molto intelligente e grazie. Qualcosa di simile funziona, tuttavia, nel contesto della complessità algebrica o no?
Matt Hastings

1
Immagino che un altro modo per dirlo nel caso in cui M vada all'infinito è che puoi investire 2 ^ N * 2 ^ N tempo per costruire una tabella hash per tutti i valori di f, e quindi puoi calcolare ogni copia in O (N ) tempo. Penso che ci sia un altro motivo per cui almeno non dovremmo sapere se qualcosa del genere è vero, anche per valori più lievi di N, che è che darebbe limiti inferiori migliori di quelli conosciuti. Saresti in grado di costruire una funzione con limite inferiore superlineare forzando il primo bruto a trovare una funzione su n '= log n (o forse n' = loglog n) input con grande complessità e quindi prendendo n / n'copie di esso .
Boaz Barak,

1
Nell'argomento sopra sul perché tali risultati portano a limiti più bassi, non so se il numero di ripetizioni sia davvero più mite, ma si applica anche a campi infiniti.
Boaz Barak,

Ciao Boaz, infatti il ​​tuo commento è proprio il motivo per cui ero interessato all'esistenza di queste funzioni. Tuttavia, c'è un punto sottile, la "forza bruta". Potrebbe essere (che è quello su cui mirava la mia domanda), che tali funzioni esistano ma che non abbiamo un algoritmo che ci permetterà di dimostrare che una determinata funzione ha questa proprietà. Dopotutto, non sembra esserci un modo per forzare la proprietà bruta che un limite così basso detiene per tutte le M, perché dovresti controllare un numero infinito di circuiti diversi. Quindi, forse tali funzioni esistono per infiniti campi ma non possiamo mostrarlo.
Hastings matt

10

O(2n/n)mmfm2n/n

"Reti informatiche funzioni booleane per più valori di input"

m=2o(n/logn)mfO(2n/n)m=1

Non riesco a trovare una copia non gated online o una home page per l'autore, ma mi sono imbattuto nel documento in questo procedimento:

Complessità booleana di funzioni (serie di note di lezione della London Mathematical Society)


Grazie! Non c'era una domanda che faceva domande sui paradossi nel TCS? Questo potrebbe anche servire da risposta lì :)
arnab,

Grazie anche per questa risposta. Non potendo leggere il procedimento, immagino che simile alla risposta precedente possa fare affidamento sul numero finito di possibili input, quindi di nuovo la stessa domanda di follow-up di cui sopra: che dire nel caso della complessità algebrica?
Matt Hastings,

In realtà, sembra che Shannon abbia dimostrato per la prima volta il limite superiore O (2 ^ n / n); Lupanov ha ottenuto la costante costante giusta. Ho corretto questo. I dettagli sono spiegati in "Revisione dei limiti sulla dimensione del circuito delle funzioni più difficili", di Frandsen e Miltersen.
Andy Drucker,

5

Per quanto riguarda la complessità algebrica, non conosco un esempio in cui la complessità esponenziale scende alla complessità ammortizzata sub-esponenziale, ma almeno c'è un semplice esempio che la complessità delle copie disgiunte M può essere significativamente inferiore a M volte la complessità di una singola copia :

Per una matrice "casuale" n * n, la complessità della forma bilineare definita da A, (la funzione f_A (x, y) = xAy, dove xey sono 2 vettori della lunghezza n) è Omega (n ^ 2 ) - questo può essere mostrato da un argomento di dimensione "simile a un conteggio" poiché sono necessarie n ^ 2 "posizioni" nel circuito per inserire le costanti. Tuttavia, date n diverse coppie di vettori (x ^ 1, y ^ 1) ... (x ^ n, y ^ n), puoi mettere le x nelle file di una matrice n * n X, e allo stesso modo le y nelle colonne di una matrice Y, quindi leggi tutte le risposte x ^ iAy ^ i dalla diagonale di XAY, dove questa viene calcolata in n ^ 2.3 (o giù di lì) operazioni usando la moltiplicazione della matrice veloce, significativamente inferiore a n * n ^ 2.


Grazie, conosco quell'esempio. Uno simile è che esistono polinomi di grado n in una variabile che richiedono tempo n per valutare in un dato punto (anche se non credo ci siano esempi espliciti, sbaglio?) Tuttavia, si può valutare un tale polinomio in n punti nel tempo n log ^ 2 (n).
Matt Hastings,

1
Ho trovato due articoli degli anni '80 sul problema della somma diretta algebrica: "Sulla validità della congettura della somma diretta" di Ja'ja e Takche, e "Sulla congettura della somma diretta estesa" di Bshouty. Non posso riassumere il loro contenuto, ma forse saranno utili.
Andy Drucker,

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.