Một số thuật toán hiệu quả để xác định xem một đa thức bậc hai có một giải pháp là gì không?


8

Tôi biết rằng nói chung, sự thỏa mãn đa thức đa biến tương đương với 3-SAT; tuy nhiên, tôi tự hỏi liệu có bất kỳ kỹ thuật tốt trong trường hợp bậc hai, đặc biệt nếu có một giải pháp thời gian đa thức.

Tôi đoán câu hỏi chung hơn sẽ là, có bất kỳ loại đa thức đa biến nào mà vấn đề thỏa mãn có thể giải quyết một cách hiệu quả không?


1
vấn đề thỏa đáng cho đa thức là gì?
Sasho Nikolov

Có lẽ "Có sự gán giá trị cho các biến làm cho đa thức sau bằng 0 không?"
Jeffε

2
Bạn có thể cho chúng tôi biết gì về phạm vi thông số điển hình mà bạn quan tâm? Các tham số quan trọng bao gồm nn (số lượng biến) và FF (trường bạn đang làm việc). Nếu bạn được cung cấp nhiều đa thức mà tất cả phải hài lòng, điều đó cũng có liên quan (nó thay đổi vấn đề).
DW

đã thêm một giải pháp cho vấn đề không ràng buộc trên thực tế. tuy nhiên, việc thêm các ràng buộc tuyến tính thậm chí làm cho vấn đề NP-hard trở nên khó khăn, và như @DW đã đề cập, vấn đề cũng là vấn đề. ví dụ: tôi không biết làm thế nào để câu trả lời của mình hoạt động trên một trường hữu hạn, trong đó những thứ như bán chính xác và SVD không có ý nghĩa.
Sasho Nikolov

Theo tính thỏa đáng, ý tôi là cái mà tôi nghĩ thường được gọi là tính khả thi, cụ thể là câu hỏi liệu một hệ phương trình đa thức có giải pháp trên một số lĩnh vực hay không.
Nick

Câu trả lời:


9

Bạn có thể quyết định nếu một đa thức bậc hai p : R nRp:RnR có gốc thực với một số đại số tuyến tính. Như bạn lưu ý, trường hợp chung nên khó khăn.

Quan sát đầu tiên mà p ( x ) 0p(x)0 cho tất cả x R nxRn nếu một trong hai p ( x ) > 0p(x)>0 hoặc p ( x ) < 0p(x)<0 cho tất cả xx (điều này sau bằng cách liên tục). Vậy là đủ để có thể quyết định nếu p ( x ) > 0p(x)>0 cho tất cả xx . Nói chung, điều này có liên quan đến các phiên bản lý thuyết phức tạp của bài toán thứ 17 của Hilbert: một đa thức p ( x )p(x)là dương so với thực tế khi và chỉ khi bạn có thể viết pp là tổng bình phương của các hàm hữu tỷ và hằng số dương cc (đây là một định lý của Artin). Nhìn chung, việc tìm ra sự phân rã hoặc giải quyết vấn đề quyết định này rất khó, nhưng trường hợp bậc hai thì dễ, bởi vì sự kỳ diệu của định lý phổ. Để biết thêm thông tin về trường hợp chung, hãy xem khảo sát của Devanur, Lipton, VishnoiMonique Laurent .

Hãy để chúng tôi viết p ( x ) = p 2 ( x ) + p 1 ( x ) + cp(x)=p2(x)+p1(x)+c trong đó p 2p2 là đồng nhất của mức 2, p 1p1 là tuyến tính và cc là một hằng số. Hãy để chúng tôi xác định q ( x 0 , x ) = p 2 ( x ) + x 0 p 1 ( x ) + c x 2 0q(x0,x)=p2(x)+x0p1(x)+cx20là đồng nhất hóa của pp , trong đó x 0x0 là một biến bổ sung.

Yêu cầu . p ( x ) > 0 x 00 : q ( x 0 , x ) > 0p(x)>0x00:q(x0,x)>0

Hướng "nếu" là dễ dàng. Theo hướng không tầm thường, giả sử p ( x ) > 0 cho tất cả x và giả sử x 00 : q ( x 0 , x ) = x 2 0 q ( 1 , xp(x)>0xx00x 0 )=x20p(xx 0 )>0. QED

q(x0,x)=x20q(1,xx0)=x20p(xx0)>0.

Cũng thông báo rằng, vì q ( x 0 , x ) là liên tục, nếu p ( x ) > 0 cho tất cả x sau đó q ( x 0 , x ) 0 cho tất cả ( x 0 , x ) (bao gồm x 0 = 0 ) .q(x0,x)p(x)>0xq(x0,x)0(x0,x)x0=0

q là đồng nhất nên chúng ta có thể viết q ( x 0 , x ) = y T Q y , trong đó Q là ma trận đối xứng và y = ( x 0 , x ) . Theo như trên, nếu p ( x ) > 0 với mọi x , thì Q là semidefinite dương. Hơn nữa, q ( x 0 , x ) > 0 cho tất cả x 0qq(x0,x)=yTQyQy= ( X0, x )p(x)>0xQq(x0,x)>00 khi và chỉ khi hạt nhân của Q là tập con của siêu phẳng { y = ( 0 , x ) : x R n } . Cả hai điều kiện có thể được quyết định trong thời gian đa thức bằng cách tính toán SVD của Q .x00Q{y=(0,x):xRn}Q


Cảm ơn sp rất nhiều Sasho, tôi quá xa lạ với đa thức đã tự mình nghĩ ra phương pháp này. Có một câu hỏi khác mà tôi đã hỏi trên trang web này về việc phát hiện liệu ma trận hoán vị có nằm trong không gian vectơ trong thời gian đa thức hay không. Tôi đã tự giảm câu hỏi xuống để giải quyết vấn đề đa thức này, vì vậy kết hợp với câu trả lời của bạn giờ đây đã có một thuật toán thời gian đa thức để làm việc này. Bạn có thể xem câu hỏi tại liên kết này nếu bạn quan tâm
Nick

Nick, tôi đã thấy câu hỏi, và nó là một câu hỏi thú vị. Nhưng theo như tôi nhớ, sự giảm bớt của bạn ở đó (hiện không còn nữa, thật không may) đã làm giảm câu hỏi ma trận hoán vị của bạn để giải quyết một chủ đề đa thức bậc hai đối với các ràng buộc bất đẳng thức tuyến tính. Cụ thể, bạn cần xác định đường kính của một polytope. Tôi nghĩ rằng đây có thể là một vấn đề khó khăn. Giải pháp của tôi ở trên không xử lý các ràng buộc bất bình đẳng tuyến tính theo như tôi có thể nói.
Sasho Nikolov

2

Đây là một cách tiếp cận sẽ làm việc cho một số đa thức, nhưng không được đảm bảo để làm việc cho tất cả chúng.

Nó được đảm bảo để làm việc cho tất cả các đa thức bậc hai đa tuyến. Nó cũng được đảm bảo hoạt động nếu có bất kỳ biến x nào sao cho p ( , x , ) không chứa thuật ngữ x 2 . Tuy nhiên, đối với đa thức có dạng p ( x , , z ) = c xx 2 + + c zz 2 + p ' ( x , , z )xp(,x,)x2p(x,,z)=cxx2++czz2+p(x,,z)nơi p ' là một đa thức bậc hai đa tuyến (ví dụ, đa thức, nơi mọi biến xuất hiện bình phương), tôi chỉ là có thể trình bày một heuristic. Các heuristic thường có thể hoạt động tốt trong thực tế, nhưng tôi không có bằng chứng.p

(Tôi cảm thấy như phải có một giải pháp sạch hơn đang ẩn nấp ở đâu đó ....)


Đặt F là một trường. Giả sử p ( x , y , z , ) F [ x , y , z , ] là một đa thức bậc hai đa biến với hệ số trong lĩnh vực F . Yếu tố ra các yếu tố của x , để có đượcFp ( x , y, z,)F[x,y,z,]Fx

p ( x , y , z , ) = c x 2 + q ( y , z , ) x + r ( y , z , ) .

p(x,y,z,)=cx2+q(y,z,)x+r(y,z,).

Lưu ý rằng q phải là tuyến tính / affine, r phải là bậc hai và c phải là hằng số ( c F ). Chúng tôi muốn tìm một bài tập của các giá trị cho x , y , z , mà làm choqrccFx,y,z,

c x 2 + q ( y , z , ) x + r ( y , z , ) = 0.

cx2+q(y,z,)x+r(y,z,)=0.

Bây giờ hãy Δ biểu thị biệt thức của phương trình bậc hai này (trong x ), tức là,Δx

Δ ( y , z , ) = q ( y , z , ) 2 - 4 c r ( y , z , ) .

Δ(y,z,)=q(y,z,)24cr(y,z,).

Các đa thức ban đầu là satisfiable khi và chỉ khi bạn có thể tìm thấy một bài tập của các giá trị cho y , z , mà làm cho Δ ( y , z , ) là một hình vuông (ví dụ, một dư lượng bậc hai) tại F . Chú ý rằng Δ ( y , z , ) là chính nó là một đa thức bậc hai đa biến (kể từ q là affine và r là bậc hai).y,z,Δ(y,z,)FΔ(y,z,)qr

Tại thời điểm này, cách tiếp cận giải pháp của chúng tôi sẽ phân nhánh, dựa trên việc c = 0 (trường hợp dễ) hay c 0 (trường hợp khó hơn).c=0c0


Nếu c = 0 , việc giải phương trình này rất dễ: về cơ bản nó chỉ là một phương trình tuyến tính (nó là tuyến tính theo x , một khi bạn sửa tất cả các biến khác).c=0x

Kết quả là, có một loại đa thức đặc biệt trong đó vấn đề này đặc biệt dễ giải quyết: bất kỳ đa thức p nào tồn tại một biến - để đơn giản, chúng ta sẽ gọi nó là x - sao cho x 2 không xuất hiện trong p . Đối với lớp đó, bạn sẽ có c = 0 ở trên, và sau đó thuật toán sau đủ để giải quyết vấn đề:pxx2pc=0

  • Kiểm tra xem q có bất kỳ giao giá trị cho y , z , mà làm q ( y , z , ) 0 . Vì q là tuyến tính, điều này rất dễ kiểm tra.qy,z,q(y,z,)0q

    • Nếu có, sau đó chọn bất kỳ chuyển nhượng như vậy giá trị y , z , . Tiếp theo, đặt x = - r ( y , z , ) q ( y , z , ) - 1 . Theo định nghĩa, q ( y , z , ) 0 , do đó q ( y , z , ) có một nghịch đảo (kể từ khi chúng tôi đang làm việc trong một lĩnh vực), vì vậy đó là một giá trị của xy,z,x=r(y,z,)q(y,z,)1q(y,z,)0q(y,z,)xtồn tại Này ngay lập tức mang lại một giao giá trị cho x , y , z , mà làm cho p zero, và chúng tôi đang thực hiện.x,y,z,p

    • Nếu không, thì chúng ta biết p ( x , y , z , ) = r ( y , z , ) cho tất cả các phép gán giá trị có thể cho các biến của p . Thực tế, p không bao giờ phụ thuộc vào x ở vị trí đầu tiên, vì vậy thật sai lầm khi nghĩ về nó như là một hàm của x . Hoặc, đặt một cách khác, chúng tôi đã loại bỏ một biến khỏi p và chúng tôi nhận được một ví dụ mới của vấn đề ban đầu. Áp dụng đệ quy các phương thức của chúng tôi cho r ( y , z ,p(x,y,z,)=r(y,z,)ppxxp) . Ngoại lệ: nếu p là hàm của một biến duy nhất (nghĩa là p ( x ) ), thì trong trường hợp này bạn có thể kết luận rằng p không thỏa đáng (nó bằng 0 đối với tất cả các giá trị có thể có của các biến của nó).r(y,z,)pp(x)p

Thuật toán này xử lý trường hợp dễ dàng: cụ thể là đa thức trong đó tồn tại ít nhất một biến x xuất hiện trong p nhưng trong đó x 2 không xuất hiện trong p . Trong trường hợp này, thuật toán chạy trong thời gian đa thức và xác định xem có tồn tại sự gán giá trị cho các biến làm cho đa thức bằng không.xpx2p


Bây giờ trở lại trường hợp khó khăn. Nếu nó không rơi vào trường hợp dễ dàng, thì chúng ta phải có

p ( x , , z ) = c xx 2 + + c zz 2 + p ' ( x , , z ) .

p(x,,z)=cxx2++czz2+p(x,,z).

trong đó p ( x , , z ) không có số hạng bình phương (nó là đa tuyến). Chúng ta hãy xem những phương pháp nào chúng ta có thể sử dụng cho trường hợp này.p(x,,z)

Vâng, đây là một tình huống mà chúng ta có thể giải quyết điều này. Giả sử tồn tại một cặp biến x , y sao cho - c x / c y là một hình vuông (phần dư bậc hai) trong F , giả sử, - c x / c y = α 2 . Sau đó, chúng ta có thể áp dụng thay đổi các biến y = y + α x . Thuận tiện, chúng tôi cóx,ycx/cyFcx/cy=α2y=y+αx

(y)2=(y+αx)2=y2+2αxy+α2x2=y2+2αcdotxycx/cyx2.(y)2=(y+αx)2=y2+2αxy+α2x2=y2+2αcdotxycx/cyx2.$

Plugging this change of variables into pp, we get

p(x,y,)=cxx2+cyy2+2αcyxycy(cx/cy)x2+,

p(x,y,)=cxx2+cyy2+2αcyxycy(cx/cy)x2+,

i.e.,

p(x,y,)=cyy2+2αcyxy+

p(x,y,)=cyy2+2αcyxy+

where the omitted part does not contain a x2x2 term (since the cxx2cxx2 and α2cyx2α2cyx2 terms cancel). Effectively, we have eliminated the x2x2 term, so now we can apply the method above to p(x,y,)p(x,y,). Notice that p(x,y,)=0p(x,y,)=0 is satisfiable if and only if p(x,y,)=0p(x,y,)=0 is. When we find a solution that makes this zero, we can back-solve for yy, and we obtain an assignment to x,y,z,x,y,z, that makes p(x,y,z,)=0p(x,y,z,)=0.

Is it possible that no pair of variables allows us to eliminate a squared-term? If 11 is a quadratic residue (a square) in FF, and if we have at least 3 variables, then that is not possible: cx/cz=(1)×(cx/cy)×(cy/cz)cx/cz=(1)×(cx/cy)×(cy/cz), and since the product of a quadratic non-residue and a quadratic non-residue is a quadratic residue, we are guaranteed that at least one of cx/czcx/cz, cy/czcy/cz, or cx/czcx/cz is a quadratic residue so at least one of the squared terms can be cancelled. However, if 11 is a quadratic non-residue, or we have only 1 or 2 variables, then it might not be possible to eliminate a squared-term. That's the remaining difficult case. (The situation with only 1 or 2 variables is not difficult to handle, so really the difficult case is where 11 is a quadratic non-residue, and where each variable appears squared in pp.) I have no general solution for this difficult case.


However, I can suggest a heuristic that may often work, even for this difficult case.

In any field FF, approximately half of all field elements are squares (quadratic residues); if you pick a random field element, it will be a square with probability about 1/21/2. Therefore, if we pick values for y,z,y,z, randomly, we can predict that (heuristically) Δ(y,z,)Δ(y,z,) should be a square with probability 1/21/2, if Δ(y,z,)Δ(y,z,) acts like a random function. This suggests the following heuristic algorithm:

  1. Randomly pick a variable to eliminate, say xx.

  2. Pick values for y,z,y,z, randomly.

  3. If Δ(y,z,)Δ(y,z,) is a square in FF, then the equation p(x,y,z,)=0p(x,y,z,)=0 has a solution for xx, namely x=(q(y,z,)±Δ(y,z,))/(2c)x=(q(y,z,)±Δ(y,z,))/(2c) (assuming FF does not have characteristic 2). This gives us an assignment to the variables x,y,z,x,y,z, that makes p(x,y,z,)=0p(x,y,z,)=0, so we're done.

  4. If Δ(y,z,)Δ(y,z,) is not a square, go back to step 1.

If after many steps, you do not find any solution, then you might guess that the equation is unsatisfiable (but this is a heuristic, so your guess could be wrong).

This algorithm might work well for many of the remaining difficult polynomials, but I have no proof that it will always work. In particular, there is a risk that all the possible discriminant polynomials Δ()Δ() might have the property that their values are always non-squares (quadratic non-residues), in which case the algorithm above will fail.


This seems ok for pp a multilinear polynomial, but in general there might be a x2x2 term and the decomposition will be x2+xq+rx2+xq+r, where qq and rr are as in your answer
Sasho Nikolov

Oh, right. Thank you, @SashoNikolov. I've added a heuristic algorithm that may work for some polynomials that contain a x2x2 term, but not all of them.
D.W.

I think I actually have a solution over the reals, with some known tricks.
Sasho Nikolov

1

Your question does not specify the field you are working in. Sasho Nikolov has given an excellent answer if you are working over RR, but it does not extend to finite fields -- so I think it remains interesting to look at your problem, for the case of a finite field FF. I do not have a complete solution, but here is an algorithm will work for all multilinear quadratic polynomials except for one specific class of polynomials (which I do not know how to handle yet). It feels close: If we could find some extension to solve this problem for all bivariate polynomials, the techniques below could take care of the rest.


If pp is univariate, i.e., p(x)=ax2+bx+cp(x)=ax2+bx+c, then the problem is easy: simply test whether b24acb24ac is a square in FF.


If pp is bivariate, i.e., p(x,y)=ax2+by2+cxy+dx+ey+fp(x,y)=ax2+by2+cxy+dx+ey+f, then we can use the following procedure:

We will first make some transformations to "force" aa to zero, since this is particularly convenient for what follows:

  • If a=0a=0 already, then there is nothing to do.

  • If b=0b=0, we can swap the role of xx and yy.

  • Alternatively, suppose a0a0 and b0b0. If b/ab/a is a non-square in FF I am screwed, and I don't have a solution (in this case I give up and go home). Otherwise, apply a change of variables x=b/axx=b/ax, y=x+yy=x+y and define p(x,y)=p(x,y)p(x,y)=p(x,y), noticing that p(x,y)p(x,y) has no x2x2 term (it cancels after the change of variables). Notice that pp is equisatisfiable with pp (any solution to p(x,y)p(x,y) can be immediately translated to a solution to p(x,y)p(x,y) by applying the change of variables, and vice versa).

After this step, we have a polynomial with no x2x2 term. So, without loss of generality we can assume a=0a=0 (p(x,y)p(x,y) has no x2x2 term).

Since pp has no x2x2 term, we can rewrite it as

p(x,y)=q(y)x+r(y).

p(x,y)=q(y)x+r(y).

Conveniently, this is a linear function of xx. So, we can test whether there is a solution to p(x,y)=0p(x,y)=0, as follows:

  • Check whether there exists yy such q(y)0q(y)0. Conveniently, degree considerations ensure that q(y)q(y) is linear/affine, so this is easy to check.

    • If yes, then let yy be any value such that q(y)0q(y)0. Now we can let x=r(y)q(y)1x=r(y)q(y)1. Since q(y)0q(y)0, the inverse is sure to exist, so this gives an assignment x,yx,y that makes pp zero, and we're done.

    • If no, then we know that p(x,y)=r(y)p(x,y)=r(y). By degree considerations, rr must be a quadratic polynomial. Therefore, we can recursively apply our algorithm to rr (which has one fewer variable). There will be a solution to p(x,y)=0p(x,y)=0 if and only if there is a solution to r(y)=0r(y)=0.

This algorithm handles all bivariate polynomials except for the unfortunate case where b/ab/a is a non-square.


Next, suppose we have a trivariate quadratic polynomial. Strangely, this case is actually easier.

p(x,y,z)=ax2+by2+cz2+.

p(x,y,z)=ax2+by2+cz2+.

If all of a,b,ca,b,c are non-zero, we will eliminate the x2x2 term using a cute trick. Find α,βFα,βF such that bβ2+cγ2=abβ2+cγ2=a (e.g., using the algorithm here; such β,γβ,γ are always guaranteed to exist). Now apply the change-of-variable transformation x=xx=x, y=βx+yy=βx+y, z=γx+zz=γx+z, yielding the polynomial p(x,y,z)=p(x,y,z)p(x,y,z)=p(x,y,z). Notice that, thanks to the careful choice of the transformation, p(x,y,z)p(x,y,z) has no x2x2 term.

It's smooth sailing from here. We can write

p(x,y,z)=q(y,z)x+r(y,z),

p(x,y,z)=q(y,z)x+r(y,z),

where qq is linear and rr is quadratic. If qq is identically zero, we recurse on rr. Otherwise, we can pick any values of y,zy,z that make q(y,z)0q(y,z)0 and then immediately solve for xx, as before.

(Isn't it interesting that the case of 2 variables seems to be harder than the case of 3 variables or 1 variable?)

I'm sure you can see how to extend these ideas to a multivariate quadratic polynomial with more than three variables.


This algorithm runs in polynomial time. Unfortunately, there is a class of unfortunate polynomials where I am screwed and I am forced to give up. Can anyone see how to handle the remaining class of bivariate quadratic polynomials?


0

This does not give a full answer for the question, but provides an interesting way to understand the space of potential solutions to an multivariate quadratic polynomial.

Let xTAx+bTx+c=0xTAx+bTx+c=0 be a multivariate quadratic polynomial equation. Note that (Dx+h)T(Dx+h)=xTDTDx+xTDTh+hTDx+hTh(Dx+h)T(Dx+h)=xTDTDx+xTDTh+hTDx+hTh. If D is a diagonal matrix, this gives:

(Dx+h)T(Dx+h)=xTD2x+2hTDx+hTh

(Dx+h)T(Dx+h)=xTD2x+2hTDx+hTh

Returning to our original equation, xTAx+bTx+c=0xTAx+bTx+c=0, note that without loss of generality we can assume that AA is symmetric, then it has a unique positive definite square root which may be computed in polynomial time. Call this root DD, then we have:

xTAx+bTx+c=0xTDTDx+bTx+bT(D1)2b4=bT(D1)2b4c

xTAx+bTx+c=0xTDTDx+bTx+bT(D1)2b4=bT(D1)2b4c

Therefore,

(Dx+bTD12)T(Dx+bTD12)=bT(D1)2b4c

(Dx+bTD12)T(Dx+bTD12)=bT(D1)2b4c

So the solutions xx may be obtained by applying an affine transformation to vectors of norm bT(D1)2b4c=bTA1b4cbT(D1)2b4c=bTA1b4c.


Can't DD be complex valued?
Sasho Nikolov

That's a good point, it seems I didn't think enough about it. But I do like the fact that you can solve so explicitly for solutions.
Nick

but if DD is complex, then you only know there exists a complex solution, and such a solution always exists (because of the fundamental theorem of algebra). so i am not sure you are actually learning anything here
Sasho Nikolov

Agreed, it really just gives a description of the solution space as an affine transformation applied to some sphere. Perhaps that may provide a jumping off point for other ways of solving the problem.
Nick
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.