Esercizio - Schwartz-Zippel su identità vere e false modulo 101
Testo. Si lavora nel campo (interi modulo ) con . Si vuole verificare, valutando in un punto casuale, le identità
- (I) ;
- (II) ;
- (III) .
- Valutare (I) e (II) nel punto .
- Per (II) e (III) scrivere il polinomio differenza, il suo grado, il bound di Schwartz-Zippel e il numero esatto di punti di in cui si annulla.
- Quante prove indipendenti servono per smascherare (II) con errore usando il bound? Quante servirebbero con la probabilità esatta?
- Per il polinomio in variabili, con , calcolare la probabilità esatta di annullamento e confrontarla con il bound.
Teoria: Union bound e verifica randomizzata - identità polinomiali e prodotti di matriciSpazi discreti richiamati; inclusione-esclusione (con le troncate di Bonferroni) e union bound Pr[unione] ≤ somma, valido senza indipendenza e stretto quando gli eventi sono rari (collisioni: C(n,2)/m). Principio delle decisioni differite: si fissa tutto tranne una scelta casuale e si limita la probabilità su quella. Lemma di Schwartz-Zippel: un polinomio non nullo di grado totale d, valutato in un punto di S^n scelto uniformemente, si annulla con prob ≤ d/|S| (induzione sul numero di variabili); test di identità polinomiale con errore unilaterale, ripetuto (d/|S|)^k. Freivalds: per verificare AB=C si controlla A(Br)=Cr con r in {0,1}^n in tempo O(n^2), errore ≤ 1/2 (stretto), 2^-k con k prove. Fingerprint: due stringhe di n bit si confrontano con a mod p per un primo casuale p ≤ M, errore ≤ n/π(M).Union bound e verifica randomizzata - identità polinomiali e prodotti di matrici → (sezione 3); CampiUn campo è un insieme di numeri con somma e prodotto che rispettano le regole usuali (associativa, commutativa, neutri, opposti, inversi, distributiva): è ciò che serve per risolvere le equazioni di primo grado. Esempi: Q, R, C e i campi finiti.Campi →.
Soluzione
Punto 1. : e .
- (I): lato destro . Coincidono (è vero per ogni punto: la differenza è il polinomio nullo).
- (II): . La differenza : l'identità (II) è dichiarata falsa, con certezza (un valore diverso prova che i polinomi sono diversi).
Punto 2.
- (II): differenza , grado totale , non nulla. Bound: . se e solo se oppure oppure (si usa che in un campo un prodotto è nullo solo se lo è un fattore). Le tre «rette» hanno punti ciascuna e si incontrano a coppie solo in : per inclusione-esclusione punti. Probabilità esatta , quasi uguale al bound: Schwartz-Zippel è quasi stretto.
- (III): , grado , bound . Zeri: o : punti, probabilità (ancora quasi stretto).
Punto 3. Con prove indipendenti l'errore (l'identità falsa sembra vera in tutte) è . Serve : , quindi . Con la probabilità esatta servono , anch'essi .
Punto 4. se almeno un fattore si annulla, cioè se per qualche . Le sono indipendenti e , quindi Il bound è : l'unione dei eventi è quasi disgiunta, il bound (che qui coincide con l'union bound) è molto vicino.
Risultati: (II) è smascherata in ; zeri esatti per (II) e per (III); prove; contro .
p = 101
print(pow(95, 3, p), (37**3 + 3 * 37**2 * 58 + 3 * 37 * 58**2 + 58**3) % p, (37**3 + 58**3) % p)
z2 = sum((3 * x * y * (x + y)) % p == 0 for x in range(p) for y in range(p))
z3 = sum((2 * x * y) % p == 0 for x in range(p) for y in range(p))
print(z2, z3, z2 / p**2, 3 / p, z3 / p**2, 2 / p)
print(1 - (1 - 1 / p)**5, 5 / p)Versione ripasso
- Lemma: di grado totale , uniforme: (Union bound e verifica randomizzata - identità polinomiali e prodotti di matriciSpazi discreti richiamati; inclusione-esclusione (con le troncate di Bonferroni) e union bound Pr[unione] ≤ somma, valido senza indipendenza e stretto quando gli eventi sono rari (collisioni: C(n,2)/m). Principio delle decisioni differite: si fissa tutto tranne una scelta casuale e si limita la probabilità su quella. Lemma di Schwartz-Zippel: un polinomio non nullo di grado totale d, valutato in un punto di S^n scelto uniformemente, si annulla con prob ≤ d/|S| (induzione sul numero di variabili); test di identità polinomiale con errore unilaterale, ripetuto (d/|S|)^k. Freivalds: per verificare AB=C si controlla A(Br)=Cr con r in {0,1}^n in tempo O(n^2), errore ≤ 1/2 (stretto), 2^-k con k prove. Fingerprint: due stringhe di n bit si confrontano con a mod p per un primo casuale p ≤ M, errore ≤ n/π(M).Union bound e verifica randomizzata - identità polinomiali e prodotti di matrici →). Valore diverso da zero prova ; zero non prova niente.
- Punto in : ; (I) lato destro , vera; (II) , falsa.
- (II): , , bound , zeri esatti su (). (III): , bound , zeri .
- Prove per : (anche con il valore esatto).
- : contro bound .
- Errori tipici: concludere «identità vera» da un solo zero; usare il grado in una variabile invece del grado totale; scegliere .