Valutare la multilinearizzazione di un circuito aritmetico?


13

Let p ( x 1 , ... , x n ) un polinomio multivariata con coefficienti su un campo F . La multilinearization di p , indicato con p , è il risultato di sostituire ripetutamente ogni x d i con d > 1 per x i . Il risultato è ovviamente un polinomio multilineare.p(x1,,xn)Fpp^xdid>1xi

Si consideri il seguente problema: dato un circuito aritmetico C ( x 1 , ... , x n ) su F e dato campo elementi a 1 , ... , un n , calcolare C ( un 1 , ... , un n ) .C(x1,,xn)Fa1,,anC^(a1,,an)

Domanda: Supponendo che l'aritmetica di campo possa essere eseguita in unità di tempo, esiste un algoritmo del tempo polinomiale per questo? Aggiunto in seguito: sarei anche interessato al caso speciale in cui C è in realtà una formula (un circuito di fan-out 1 ).C1


1
Perché sarebbe equivalente al calcolo dell'uscita di un circuito chiuso? Il problema che sto affrontando è che il circuito può avere percorsi disgiunti da un input x i a diversi nodi di moltiplicazione interni e la valutazione di ciascuno di quei nodi di moltiplicazione interna richiederebbe la sostituzione di x i con una i in un percorso e di 1 nell'altro . In un circuito con un numero esponenziale di percorsi, sembra che ci sia un numero esponenziale di casi di cui occuparsi. xixiai1
slimton,

2
@Kaveh: non capisco. Guarda il circuito ( x x ) . Se si sostituisce semplicemente il nodo di input x con un nodo con valore a e si valuta nel modo standard si finisce per restituire un 2 anziché un . Modello di calcolo: solo tempo polinomiale normale su macchine di Turing. Pensa al campo come Z / 3 Z per concretezza, se vuoi. (xx)xaa2aZ/3Z
slimton,

2
@Kaveh: Non capisco come un tale algoritmo implichi ciò che dici, ma ciò contraddice in effetti un'ipotesi comune nella complessità del circuito aritmetico: che il Permanente non ha circuiti aritmetici polivalenti (su campi diversi da F_2). Considera il polinomio p = i ( j x i j y j ) . La parte multilinea q di questo polinomio ha la proprietà che la sua parte di grado più alto ( = 2 n ) è solo r = y 1 y 2y n P e r ( xp=i(jxijyj)q=2n 11 ,, x n n ) . Se esiste un piccolo circuito aritmetico che calcola q , allora si può dimostrare che esiste un piccolo circuito aritmetico che calcola r . r=y1y2ynPer(x11,,xnn)qr
Srikanth,

1
@Srikanth: non ho visto il tuo commento prima di pubblicare la mia risposta (che si è rivelata la stessa costruzione che hai dato nel tuo commento). Da allora ho cancellato la mia risposta e dovresti pubblicare il tuo commento come risposta.
Joshua Grochow,

2
@Joshua: Non ho aggiunto il mio commento come risposta poiché non capisco perché i lavori di costruzione di Kaveh. Vedo che il circuito aritmetico calcola un polinomio che concorda con la multilinearizzazione su tutti gli input, ma non sono sicuro che calcoli formalmente la multilinearizzazione del polinomio dato (vedi i miei commenti dopo la risposta di Kaveh). La mia costruzione (e la tua) presuppone che la multilinearizzazione sia calcolata formalmente.
Srikanth,

Risposte:


12

Nel caso in cui il campo F abbia una dimensione di almeno 2 n , penso che questo problema sia difficile. Più specificamente, penso che se quanto sopra può essere risolto in modo efficiente per F così grande, allora CNF-SAT ha algoritmi randomizzati efficienti. Supponiamo che ci venga data una formula CNF φ . Si può facilmente creare un circuito aritmetico C che calcola una `` aritmetizzazione '' p di φ , in cui il polinomio p concorda con la formula φ su 0 - 1 ingressi. Si consideri che la multilinearizzazione q è d' accordo con p e quindi φF2nFφCpφpφ01q di p . Si noti che qpqpφ su { 0 , 1 } n .{0,1}n

Dichiaro che q è diverso da zero se φ è soddisfacente. Chiaramente, se q = 0 , allora φ non può essere soddisfatto. Per il contrario, si può dimostrare che qualsiasi polinomio multilineare diverso da zero non può svanire su tutti { 0 , 1 } n . Ciò implica che un q diverso da zero (e quindi il corrispondente φ ) non svanisce con qualche input in { 0 , 1 } n .qφq=0φ{0,1}nqφ{0,1}n

Pertanto, verificare la soddisfacibilità di φ equivale a verificare se q è diverso da zero. Dire, ora, che abbiamo potuto valutare q su un grande campo F . Quindi, usando Schwartz-Zippel Lemma, potremmo testare l'identità q usando un algoritmo randomizzato efficiente e verificare se è il polinomio zero (la dimensione diφqqFqFF is used to upper bound the error in the Schwartz-Zippel Lemma).


Mi sembra che F sia un campo fisso perché non c'è nulla nell'input che specifica F. Si noti inoltre che la domanda presuppone che le operazioni sul campo richiedano tempo unitario.
Kaveh,

Thanks Srikanth. As Kaveh guessed I was indeed interested in the fixed finite field case, but this answer you gave helps me understand the question a bit better.
slimton

3

Assume that there is polytime algorithm that given C(x)F(x)C(x⃗ )F(x⃗ ) and aa⃗  computed the result of the multi-linearization of CC on aa⃗ . (w.l.o.g. I will assume that the output bb⃗  will be a vector of pp-bit binary numbers bibi is kk iff the bi,kbi,k is one.)

Since PP/polyPP/poly, there is a polysize boolean circuit that given the encoding of the arithmetic circuit and the values for the variables computes the multi-linearization of the arithmetic circuit on the inputs. Let call this circuit MM.

Let CC be an arbitrary arithmetic circuit. Fix the variables of the boolean circuit MM which describe the arithmetic circuit, so we have a boolean circuit computing the multi-linearization of CC on given inputs.

We can turn this circuit into an arithmetic circuit over FpFp by noting that xp1xp1 is 11 for all values but 00 so first raise all inputs to the power p1p1. Replace each fgfg gate by multiplication f.gf.g, each fgfg gate by f+gf.gf+gf.g and each ¬f¬f gate by 1f1f.

By the assumption we made above about the format of the output, we can turn the output from binary to values over FpFp. Take the output for bibi and combine them to get 0kp1kbi,k0kp1kbi,k.

We can also convert the input given as values over FpFp to binary form since there are polynomials passing through any finite number of points. E.g. if we are working in mod3mod3, consider the polynomials 2x(x+1)2x(x+1) and 2x(x+2)2x(x+2) which give the first and the second bits of the input xF3xF3.

Combining these we have an arithmetic circuit over FpFp computing the multi-linearization of CC with size polynomail in the size of CC.


2
It is not clear to me why the arithmetic circuit you have described computes the multilinearization of CC, or indeed even a multilinear polynomial. I am only able to see that the arithmetic circuit computes some polynomial that agrees with the multilinearization of CC on 00-11 inputs.
Srikanth

@Srikanth: the arithmetic version of the boolean circuit MM (with some inputs fixed) computes the multilinear version of CC, it doesn't need to be a multilinear. Then the only problem is that input/output are in binary not values over FpFp, so I just need to fix the encoding for input/output from binary to original input and output values. The resulting circuit is an arithmetic circuit that gets the values for variables of CC, encodes them in binary, computes the value of the multilinearization of CC over those inputs and output the answer in binary, and then translate them back to FpFp.
Kaveh

[continued] The result it is an arithmetic circuit with the same variables that CC has, and with the same outputs, and it is computing the multilinearization of CC.
Kaveh

2
@Kaveh: Have you assumed that the input to the boolean circuit MM is of the same form as the output of MM? In any case, I am still not convinced. It is perfectly possible for an arithmetic circuit to compute a polynomial f that agrees with a polynomial g at all inputs from the field and yet fg. For example, the polynomial xp agrees with x at all inputs, and yet they are not equal as polynomials. How do you know that the circuit M is not simply computing a non-multilinear polynomial that agrees with the multilinearization of C at all inputs?
Srikanth

@Srikanth: I have described the form of input and output in my answer. The input to M is in binary, the output of M is in the form stated above. I haven't said that it is multilinear, I have only said that it computes the multilinearization of the C.
Kaveh
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.