Độ phức tạp của kiểm tra giá trị so với tính toán hàm


36

Nói chung, chúng ta biết rằng sự phức tạp của việc kiểm tra xem một hàm có lấy một giá trị cụ thể tại một đầu vào nhất định hay không dễ hơn so với việc đánh giá hàm tại đầu vào đó. Ví dụ:

  • Đánh giá độ vĩnh cửu của ma trận số nguyên không âm là # P-hard, tuy nhiên cho biết mức vĩnh viễn như vậy là 0 hay không khác nhau trong P (khớp bipartite)

  • Có n số thực a1,...,an , sao cho đa thức i=1n(xai) có các tính chất sau (thực sự hầu hết các tập hợp n số thực sẽ có các tính chất này). Đối với cho đầu vào x , thử nghiệm hay không đa thức này là không mất Θ(logn) phép nhân và so sánh (theo kết quả Ben-Hoặc của , kể từ khi thiết lập không có n thành phần), nhưng đánh giá đa thức trên phải mất ít nhất Ω(n)các bước, bởiPaterson-Stockmeyer.

  • Sắp xếp yêu cầu các bước Ω(nlogn) trên cây so sánh (cũng là Ω(nlogn) trên cây quyết định đại số thực, một lần nữa bằng kết quả của Ben-Or), nhưng kiểm tra nếu danh sách được sắp xếp chỉ sử dụng so sánh n1 .

Có các điều kiện chung về đa thức đủ để ngụ ý rằng độ phức tạp (đại số) của kiểm tra xem đa thức có bằng 0 hay không tương đương với độ phức tạp của việc đánh giá đa thức?

Tôi đang tìm kiếm các điều kiện không phụ thuộc vào việc biết trước sự phức tạp của các vấn đề.

( Làm rõ 27/10/2010 ) Để rõ ràng, đa thức không phải là một phần của đầu vào. Điều đó có nghĩa là, với một họ hàm cố định (một cho mỗi kích thước đầu vào (bitlength hoặc số lượng đầu vào)), tôi muốn so sánh độ phức tạp của vấn đề ngôn ngữ / quyết định { X : f n ( X ) = 0  trong đó  n  là "kích thước" của  X } với độ phức tạp của việc đánh giá các hàm { f n } .{fn} {X:fn(X)=0 where n is the "size" of X} {fn}


Làm rõ: Tôi đang hỏi về sự phức tạp tiệm cận của việc đánh giá / kiểm tra các họ của đa thức. Ví dụ: trên một trường cố định (hoặc vòng, chẳng hạn như ) "vĩnh viễn" không phải là một đa thức đơn lẻ, mà là một họ vô hạn { p e r m n : n 0 } trong đó p e r m n là vĩnh viễn của một n × n ma trận trên rằng lĩnh vực (hoặc vòng).Z{permn:n0}permnn×n


Không phải anwer cho câu hỏi của bạn không chỉ phụ thuộc vào chính đa thức, mà còn phụ thuộc vào đại diện của nó?
ilyaraz

@ilyaraz: Không chắc ý bạn là gì. Đa thức không phải là một phần của đầu vào.
arnab

Joshua, bạn có thể 'latexize' câu hỏi để dễ đọc hơn không?
Suresh Venkat

4
Tôi đã tìm thấy một bài báo của Valiant ( dx.doi.org/10.1016/0020-0190(76)90097-1 ) "Độ phức tạp tương đối của việc kiểm tra và đánh giá", về cơ bản xem xét cùng một câu hỏi nhưng trong cài đặt máy Turing tiêu chuẩn, thay vì một thiết lập đại số. Anh ấy không trả lời câu hỏi của tôi, nhưng nếu bạn thấy câu hỏi này thú vị, bạn cũng có thể thấy bài báo của anh ấy thú vị.
Joshua Grochow

1
"Việc sử dụng thuật toán của Định lý Feferman của Vef" của Makowski có thể có liên quan. Ông xác định các đa thức bằng cách tổng hợp các cấu trúc có thể xác định được MSOL trên các biểu đồ và cho thấy rằng chúng rất dễ đánh giá khi các biểu đồ được giới hạn chiều rộng của cây
Yaroslav Bulatov

Câu trả lời:


4

Trên , kiểm tra bằng 0 và đánh giá là "gần như" giống nhau theo nghĩa sau: Giả sử bạn có một cây quyết định kiểm tra xem một số đa thức f không thể thay đổi là khác không. Chúng tôi đang làm việc trên C , do đó chúng tôi chỉ có thể kiểm tra sự bình đẳng nhưng chúng tôi không có "<". Đó là sự khác biệt quan trọng đối với ví dụ thứ hai trong câu hỏi! Bây giờ đi theo đường dẫn điển hình, nghĩa là đường dẫn được thực hiện bởi hầu hết tất cả các đầu vào (chúng ta luôn đi theo " " -branch). Hơn nữa, đi theo con đường điển hình của tất cả các yếu tố trong giống V ( f ) . Đặt v là nút tại đó hai đường dẫn này lần đầu tiên có một nhánh khác nhau. Để h 1 ,CfCV(f)v là các đa thức được kiểm tra dọc theo tiền tố chung của hai đường dẫn. Vì V ( f ) được đóng, tất cả các phần tử nằm trong V ( f ) và đạt v cũng nằm trong V ( h m ) . Do đó, nếu f ( x ) = 0 , thì một trong số h i biến mất trên x . Chúng tôi áp dụng Nullstellensatz của Hilbert cho h 1h m và nhận được rằng f g =h1,,hmV(f)V(f)vV(hm)f(x)=0hixh1hmfg=h1hm for some polynomial g that's coprime to f. In short, while we are not computing f, when deciding whether f(x)=0, we have to compute fg for some coprime g.


So the complexity of testing f(x)=0 is essentially captured by the complexity of evaluating fg. Then since f is irreducible, the complexity of evaluating f is polynomially bounded by the complexity of evaluating fg, the degree of fg, and the number of variables. So if f has polynomial degree and testing f(x)=0 is sufficiently easy, then testing and evaluating are equivalent. (However, if either degf is large or if testing is difficult - say the degree of g is very large - then this says very little.)
Joshua Grochow

I don't get it: If you can evaluate f, then you can test for zero by just one more operation, namely, one equality test in the end. What could go wrong is that evaluating fg is cheaper than evaluating f for some reason. (Note: Evaluating f means evaluating at a generic point, that is, at an indeterminate.)
Markus Bläser

Precisely. Evaluating fg might be easier than evaluating f. (I know that evaluating f means evaluating at a generic point; I don't really understand why you thought your last parenthetical remark was necessary, but that may be besides the point.) What is it exactly that you don't get? Based on your last comment I'd say we both understand the situation and agree with one another's understanding... See also "The Complexity of Factors of Multivariate Polynomials" by Burgisser, which gives the same conclusion I stated in my previous comment.
Joshua Grochow

Additional interesting conclusion from this discussion: although testing if the permanent of a nonnegative matrix is zero or not is easy, testing if the permanent of an arbitrary complex matrix is zero is easy if and only if evaluating the permanent is easy.
Joshua Grochow

Sorry, I misunderstood your first comment. Everything is fine.
Markus Bläser

5

Makowski's "Algorithmic uses of the Feferman–Vaught Theorem" is possibly relevant. He defines polynomials by summing over MSOL-definable structures on graphs and shows that they are tractable to evaluate when graphs are tree-width bounded.

This doesn't say much about difference in complexity of testing/evaluation beyond being FPT. Testing for a value means asking if there exists a setting of variables such that given MSO2 formula on given graph evaluates to true, whereas evaluating involves enumerating over satisfying assignments of MSO2 formula. This seems to be related to the question of how complexity of counting SAT relates to complexity of SAT.

Edit 10/29 Another useful concept might be to look into Uniform Difficult Point Property. Apparently polynomials with this property are either easy to evaluate in all points, or hard to evaluate almost at every point. Makowski gives some references on slides 46-52 -- http://www.cs.technion.ac.il/admlogic/TR/2009/icla09-slides.pdf


3

I'm going to venture the idea that evaluating a polynomial q(x) in Fp for fixed prime p (or any finite field extension thereof, and with the coefficients restricted to the same field) will fit your criterion.

more concretely, lets consider a polynomial in F2[x]. We know that x2=x in F2, so if we assume that any polynomial is already in a reduced form when given as an input, we are left simply considering one of : 0,1,x,x+1 and accordingly evaluating any of these polynomials at either of 0 or 1 takes at most 2 arithmetic operations.

I believe that a similar "constant time via fixed number of arithmetic operations" statement applies more generally for Fq where q=pn where p is prime. note that if n isn't fixed, this statement no longer is valid


1
Carter: by your reasoning, which is technically correct, the same holds true for any finite set of polynomials. However, in order to be considering asymptotic complexity in any meaningful fashion, we must consider infinite families of polynomials. This implies working either over finite fields but allowing the field (size) to vary, or working over infinite fields. For example, when we say "the permanent" in fact we are talking about the infinite family {permn:n0}, where permn is the permanent of an n×n matrix.
Joshua Grochow

1
fair enough, lets clarify the question statement with "polynomials in an infinite field" rather than downvote an answer attempt that points out a needed clarification :) your example with the permanent doesn't make this obvious, because the matrices are still over some fixed ring or field. Also, in the case of F2, i am not actually restricting myself to considering only those 4 polynomials, but rather using the equivalence relation of x2=x to reduce any higher degree polynomial to one of those four in time linear in the polynomial's degree.
Carter Tazio Schonwald

1
Carter: I thought it was clear that I was asking about asymptotics, but I have now clarified. You could also use multivar polys where the num of vars is not fixed. Sorry for the downvote, but I don't think you deserve half the bounty (+25) for pointing out that finite sets of 1-var polys can be evaluated with O(1) ops. I know you were actually pointing out something less obvious, but that wasn't relevant to the question: as already pointed out in the comments on the Q, the poly is not part of the input. So over F_2 there are indeed only 4 1-var polys to consider (using x^2=x is unnecessary).
Joshua Grochow

umm, your clarification still is broken, you need to have a fixed ring or field for the permn stuff or its nonsense.
Carter Tazio Schonwald

1
I agree with you in general, so I fixed the clarification. Interestingly, in the case of polynomials with 0,1,-1 coeffs (such as perm and det), allowing the field to vary is not total nonsense. One could imagine a result such as: "Testing whether detn is 0 is as hard as evaluating detn by over Fpn" (for some specified sequence pn of prime powers, not necessarily all of the same characteristic). Admittedly though, this wouldn't be as natural a result as over a fixed field.
Joshua Grochow

3

I'm not sure if I understand the question correctly but let me attempt to shed some light.

Typically, evaluating a polynomial at certain values is easier than identity testing, especially when the representation of the polynomial is via a circuit (some succinct representation). However, there are lots of randomized identity testing algorithms (Schwarz-Zippel being the most straight-forward) that works on just evaluations.

In certain special cases, we have 'black-box' tests for identity testing where you can test if a polynomial is zero or not by just evaluating it at a predefined set of points. A simple example of this is if the polynomial is 'sparse' (just has nO(1) monomials). To make the exposition simpler, lets assume the polynomial is multilinear (each monomial is a product of distinct variables).

A natural way to send a multivariate multilinear polynomial to a univariate is via the substitution xiy2i. The resulting polynomial is say iSαiyai. This could be an exponential degree polynomial of course but let us go modulo yr1 for a small range of r's. Now an r would be "bad" for a pair of monomials if ya and yb get mapped to the same monomial modulo yr1. Or in other words, r divides ab. Thus as long as r does not divide i,jS(aiaj), this wouldn't happen. Hence it is sufficient to run over a polynomial range of r's. Thus, it suffices to evaluate the polynomial at some roots of unities and we can figure out of the polynomial is zero or not.

There has been more progress in black-box identity testing algorithms. Right now, most of then stand at restricted depth 3 circuits (sum of products of sums of variables). (FWIW) Some of this is mentioned in more details in Chapter 3 and 4 of my M.Sc thesis. And there has been further improvements by Saxena and Seshadri recently as well.


Unless I'm missing some connection with identity testing, I think you may have misunderstood. In addition to the fact that the polynomials are not part of the input for my question---I am rather interesting in a decision problem and a function problem defined by a family of polynomials---I am not asking about identity testing, but testing, given input x, whether f(x)=0. This is a priori easier than the general problem: given input x, evaluate f(x). Hopefully the clarification I just added to the question makes this more clear.
Joshua Grochow

Ah! I see... Thanks for the clarification; my answer is not too relevant in that case.
Ramprasad

1

Any #P problem, or even #P/poly, can be written as a polynomial: make a circuit out of NAND gates, write these as 1xy where x and y are 0-1 valued integers, and sum over all inputs. This gives a polynomial in Z[x1,...,xn] for inputs of size n. The decision problem is testing whether this is 0.


Yes. This is a slightly more general version of the example of the permanent. Such a decision problem is in NP (or NP/poly). It is thought that #P is significantly harder than NP (since it is as hard as the whole polynomial hierarchy). Do you know of a general condition on #P problems that, if satisfied by a #P function f implies that f is no harder than its decision version?
Joshua Grochow

There's a conjecture that the natural counting versions of NP-complete problems are always #P-complete, but I don't know any other relationship. A sort of trivial condition would be that the problem is self-reducible and f is bounded by a polynomial.
Colin McQuillan
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.