Complessità Circuitale Profondità Costante: Lower Bound Esponenziale (Algebra Lineare + Metodo Probabilistico) Lezione 8 dal libro di Stasys Jukna: Extremal Combinatorics with applications in Computer Science
Teorema (Razborov'87) Circuiti di profondità costante con porte con fan-in illimitato di tipo AND, OR, NOT, e PARITA' richiedono dimensione esponenziale per calcolare la funzione maggioranza. Almeno la metà dei bit è uno Curiosità: 1)Esiste sempre un circuito di profondità costante e dimensione esponenziale per la maggioranza (Esercizio) 2) Esiste un circuito di dimensione lineare e profondità non costante per la maggioranza
Struttura Dimostrazione Funzione Soglia Polinomio Grado Basso Circuito Profondità Costante ≈ ci indovina spesso sbaglia spesso algebra lineare metodo probabilistic o
Funzione Soglia Polinomi di Grado Basso Funzione k-soglia f k Polinomio p se grado ≤ 2k – n – 1 Teorema: p(x) = 1f k (x) = 1 quante volte p sbaglia Sceglieremo k > n/2
Funzione Soglia Polinomi di Grado Basso Funzione k-soglia f k Polinomio p se grado ≤ 2k – n – 1 Teorema: matrice 0/1 opportuna input con k “1” input dove p sbaglia input con k “1” input dove p sbaglia voglio dimostrare #colonne ≥ #righe
Matrici rettangolari Allora m N Sia matrice 0/1 N m t.c. ogni vettore può essere ottenuto come combinazione lineare delle colonne N i vettori generano uno spazio di dimensione N le colonne generano ogni vettore e quindi lo stesso spazio la dimensione di uno spazio è il minimo numero di elementi per generarlo
Funzione Soglia Polinomi di Grado Basso matrice 0/1 opportuna se grado ≤ 2k – n – 1 Teorema: le colonne genereranno i vettori unitari c a M a c = 1 sse c a UNI a Claim: La somma di queste colonne è a dove sono gli 1 nella riga a
Dimostriamo il Claim a M a c = 1 sse c a UNI a Claim: La somma di queste colonne è a grado p < #1 in a ∧ b (dettagli dopo) b Tre ingredienti: c ∈ diff(f k,p) sse f k (c) + p(c) = 1 #1 in c
c ≤ a ∧ b Pezzo Mancante Se p è un monomio in d variabili p(c) = c i1 c i2 ⋯ c id Allora c'è una “variabile libera” i0 Ossia (a ∧ b) i0 = 1 e i0 non compare in p Dimostrazione: c i0 = 0c i0 = 1 Somma SX Somma DX Per ora diamo per scontato che a ∧ b ha un numero di “1” maggiore del grado di p Somma SX = Somma DX Stessa dimostrazione in generale Perchè?
Pezzo Mancante Per ora diamo per scontato che a ∧ b ha un numero di “1” maggiore del grado di p Rimane solo questo a b a ∧ b ha almeno 2q “1” p ha grado ≤ 2k – n – 1 = 2q - 1 Prendiamo k = n/2 + q
Funzione Soglia Polinomi di Grado Basso Funzione k-soglia f k Polinomio p se grado ≤ 2k – n – 1 Teorema: dove k = n/2 + q
Struttura Dimostrazione Funzione Soglia Polinomio Grado Basso Circuito Profondità Costante ≈ ci indovina spesso sbaglia spesso
Il grado del polinomio aumenta troppo... Circuito Polinomi Profondità ≈ Grado Costante Basso 1 + x 1 ¬x1¬x1 PARITY(x 1,..., x m ) x 1 + ⋯ + x m AND(x 1,..., x m ) x 1 x 2 ⋯ x m OR(x 1,..., x m ) ¬( AND( ¬ x 1,..., ¬ x m ))
Circuito Polinomi Profondità ≈ Grado Costante Basso Circuito c x1x1 xnxn Il grado del polinomio aumenta troppo... Grado 1 Grado n c
Circuito Polinomi Profondità ≈ Grado Costante Basso 1 + b 1 ¬b1¬b1 PARITY(b 1,..., b m ) b 1 + ⋯ + b m AND(b 1,..., b m ) b 1 b 2 ⋯ b m OR(b 1,..., b m ) ¬( AND( ¬ b 1,..., ¬ b m )) Approssimiamo AND
AND(b 1 ⋯ b m ) 1+(1 + b 1 ) + (1+ b 2 )+ ⋯ (1+b m ) Se AND(b 1 ⋯ b m )=1 la risposta è corretta Solo un sottoinsieme di variabili (scelte a caso) h S (b) := 1+(1 + b S1 ) + (1+ b S2 )+ ⋯ (1+b Ss ) Per ogni b 1 ⋯ b m Prob[h S (b 1 ⋯ b m ) ≠ AND(b 1 ⋯ b m )] ≤ 1/2 Esercizio! prendo b i con prob 1/2
Approssimiamo AND AND(b 1 ⋯ b m ) 1+(1 + b 1 ) + (1+ b 2 )+ ⋯ (1+b m ) Se AND(b 1 ⋯ b m )=1 la risposta è corretta Solo un sottoinsieme di variabili (scelte a caso) h S (b) := 1+(1 + b S1 ) + (1+ b S2 )+ ⋯ (1+b Ss ) Per ogni b 1 ⋯ b m Prob[h S (b 1 ⋯ b m ) ≠ AND(b 1 ⋯ b m )] ≤ 1/2 prendo b i con prob 1/2 Ripetiamo r volte!!
Approssimiamo AND AND(b 1 ⋯ b m ) Per ogni input b=b 1 ⋯ b m Prob[p S1,...,Sr (b) ≠ AND(b 1 ⋯ b m )] ≤ 1/2 r r sottoinsiemi S1,..., Sr di variabili (ognuno scelto come prima, in modo indipendente) h S1 (b), …, h Sr (b) Grado r (Esercizio) Esercizio
Approssimiamo AND Per ogni input b=b 1 ⋯ b m Prob[p S1,...,Sr (b) ≠ AND(b 1 ⋯ b m )] ≤ 1/2 r Per ogni input, molti dei nostri polinomi sono buoni! Vogliamo un polinomio che sbaglia su pochi input!
Approssimiamo AND Per ogni input b=b 1 ⋯ b m Prob[p S1,...,Sr (b) ≠ AND(b 1 ⋯ b m )] ≤ 1/2 r Per ogni b sia X b la variabile aleaoria “p S1,...Sr (b) ≠ AND(b)” Sommiamo su tutti i b in {0,1} n E[X] = b E[ X b ] ≤ 2 n /2 r Se ogni p sbagliasse su >2 n /2 r input allora X ha sempre valore >2 n /2 r e quindi E[X]>2 n /2 r
Approssimiamo AND Per ogni input b=b 1 ⋯ b m Prob[p S1,...,Sr (b) ≠ AND(b 1 ⋯ b m )] ≤ 1/2 r Input b Nostri Polinomi XbXb Evento “p(b) ≠ AND(b) Se tutti i polinomi sbagliano su >2 n /2 r input allora X assume sempre valore >2 n /2 r (impossibile!)
Approssimiamo AND Per ogni r esiste un polinomio p di grado r t.c. diff(p, AND) ≤ 2 n /2 r Input b Nostri Polinomi XbXb Evento “p(b) ≠ AND(b) Se tutti i polinomi sbagliano su >2 n /2 r input allora X assume sempre valore >2 n /2 r (impossibile!)
Per ogni r esiste un polinomio p di grado r t.c. diff(p, AND) ≤ 2 n /2 r Circuito Polinomi Profondità ≈ Grado Costante Basso Circuito c Grado 1 Grado r c uso AND approssimati x1x1 xnxn
Per ogni r esiste un polinomio p di grado r t.c. diff(p, AND) ≤ 2 n /2 r Circuito Polinomi Profondità ≈ Grado Costante Basso Circuito c D := dimensione circuito Quante volte sbaglio? Sbaglio su ≤ D 2 n /2 r input (Union Bound) x1x1 xnxn
Per ogni r esiste un polinomio p di grado r c t.c. diff(p, Circuito) ≤ D 2 n /2 r Circuito Polinomi Profondità ≈ Grado Costante Basso Circuito c D := dimensione circuito Sbaglio su ≤ D 2 n /2 r input (Union Bound) x1x1 xnxn
Struttura Dimostrazione Funzione k-Soglia Polinomio Grado Basso Circuito Profondità Costante ≈ ci indovina spesso sbaglia spesso
Struttura Dimostrazione Funzione k-Soglia Polinomio Grado Basso Circuito Profondità Costante ≈ se grado ≤ 2k – n – 1 dove k = n/2 + q con grado ≤ r c Circuito calcola k-Soglia
Struttura Dimostrazione Funzione k-Soglia Polinomio Grado Basso Circuito Profondità Costante ≈ se grado ≤ 2k – n – 1 dove k = n/2 + q con grado ≤ r c Circuito calcola k-Soglia 2q2q r = q 1/c q = n 1/2
Struttura Dimostrazione Funzione k-Soglia Polinomio Grado Basso Circuito Profondità Costante ≈ se grado ≤ 2k – n – 1 dove k = n/2 + q con grado ≤ r c Circuito calcola k-Soglia 2q2q r = q 1/c r = n 1/2c
Circuito calcola k-Soglia deve avere dimensione dove c è la profondità del circuito dopo SiNo Vuoi vedere i conteggi?
Esercizio Abbiamo dimostrato: Teorema: Ogni circuito di profondità c che calcola k- Soglia con k = n+ √n, deve avere dimensione Dimostra che calcolare la Maggioranza (k-Soglia con k = n/2) richiede dimensione esponenziale per circuiti di profondità costante.