Thuật toán của Grover và mối quan hệ của nó với các lớp phức tạp?


12

Tôi đang bị lẫn lộn về thuật toán của Grover và nó kết nối với các lớp phức tạp.

Của Grover thuật toán phát hiện và tố k trong một cơ sở dữ liệu của N=2n (ví dụ rằng f(k)=1 ) của các nguyên tố với

N=2n/2
cuộc gọi đến nhà tiên tri.

Vì vậy, chúng tôi có vấn đề sau đây:

Vấn đề: Tìm một k trong cơ sở dữ liệu sao cho f(k)=1

Bây giờ tôi biết rằng đây không phải là một vấn đề hóc búa và do đó các định nghĩa thông thường của chúng tôi về lớp phức tạp P , , NPv.v. không thực sự áp dụng. Nhưng tôi tò mò muốn biết làm thế nào chúng ta sẽ định nghĩa lớp phức tạp trong trường hợp như vậy - và thời tiết nó được thực hiện liên quan đến N hay n ?

Hơn nữa, thuật toán của Grover có thể được sử dụng như một chương trình con. Tôi đã đọc ở một số nơi rằng thuật toán của Grover không thay đổi lớp phức tạp thành một vấn đề - có một cách heuristic để thấy điều này.


Xem xét sử dụng \text{}để viết tên của các lớp phức tạp. Ví dụ \text{NP}hoặc\text{BQP}
Sanchayan Dutta

1
Tôi không chắc chắn những gì bạn đang hỏi ở đây. Các thuật toán không thể là thành viên của các lớp phức tạp, vì các lớp phức tạp chứa các vấn đề tính toán. Bạn đang hỏi liệu vấn đề được nêu trong câu hỏi có được chứa trong một lớp phức tạp 'đã biết' hay hoàn thành cho nó không? Bạn có hỏi liệu 'khám phá' thuật toán của Grover có dẫn đến một định lý về mối quan hệ giữa các lớp phức tạp đã biết không? Vui lòng làm rõ.
Thằn lằn rời rạc

Câu trả lời:


6

Tóm lược

  • Có một lý thuyết về sự phức tạp của các vấn đề tìm kiếm (còn được gọi là các vấn đề liên quan). Lý thuyết này bao gồm các lớp được gọi là FP , FNPFBQP , có hiệu quả trong việc giải quyết các vấn đề tìm kiếm với các loại tài nguyên khác nhau.
  • Từ các vấn đề tìm kiếm, bạn cũng có thể xác định các vấn đề quyết định, cho phép bạn liên hệ các vấn đề tìm kiếm với các lớp P , NPBQP thông thường .
  • Cho dù bạn xem xét phiên bản tìm kiếm của phiên bản quyết định của vấn đề, cách bạn xem xét đầu vào cho vấn đề Tìm kiếm không cấu trúc sẽ xác định giới hạn trên mà bạn có thể đặt vào mức độ phức tạp của nó.

Sự phức tạp của các vấn đề quan hệ

Như bạn lưu ý, vấn đề của Grover giải quyết vấn đề tìm kiếm , trong tài liệu phức tạp đôi khi còn được gọi là vấn đề quan hệ . Đó là một vấn đề thuộc loại sau:

Cấu trúc của một vấn đề tìm kiếm chung.
Cho đầu vào và quan hệ nhị phân R , tìm một y sao cho R ( x , y ) giữ.xRyR(x,y)

Các lớp phức tạp FPFNP được định nghĩa theo các vấn đề như vậy, trong đó cụ thể một người quan tâm đến trường hợp trong đó có độ dài nhiều nhất là hàm đa thức có độ dài của x và trong đó chính mối quan hệ R ( x , y ) có thể được tính trong một khoảng thời gian giới hạn bởi một số đa thức theo độ dài của ( x , y ) .yxR(x,y)(x,y)

Cụ thể: ví dụ về vấn đề 'tìm kiếm cơ sở dữ liệu' mà Tìm kiếm của Grover thường được áp dụng có thể được mô tả như sau.

Tìm kiếm phi cấu trúc.
Với một lời sấm đầu vào O | một | b = | một | b f ( một ) đối với một số chức năng f : { 0 , 1 } m{ 0 , 1 }O:H2m+1H2m+1O|a|b=|a|bf(a)f:{0,1}m{0,1} , hãy tìm một như rằng O | y | 0 = | y | 1y .O|y|0=|y|1

Ở đây, chính lời tiên tri là đầu vào của vấn đề: nó đóng vai trò của và mối quan hệ mà chúng ta đang tính toán là R ( O , y )x

R(O,y)[O|y|0=|y|1][f(y)=1].

Giả sử rằng, thay vì một lời sấm truyền, chúng tôi được cung cấp một đầu vào cụ thể mô tả cách tính hàm f , sau đó chúng tôi có thể xem xét lớp phức tạp này mà vấn đề này thuộc về. Như chỉ ra , lớp độ phức tạp phù hợp mà chúng ta thu được phụ thuộc vào cách cung cấp đầu vào.xfpyramids

  • Giả sử rằng chức năng đầu vào được cung cấp như một cơ sở dữ liệu (như các vấn đề đôi khi được mô tả), nơi mỗi mục cơ sở dữ liệu có một số chiều dài . Nếu n là chiều dài của chuỗi x dùng để mô tả toàn bộ cơ sở dữ liệu , sau đó cơ sở dữ liệu có N = n / mục. Sau đó, có thể tìm kiếm toàn bộ cơ sở dữ liệu bằng cách truy vấn từng mục N trong chuỗi và dừng lại nếu chúng ta tìm thấy một mục y sao cho f ( y ) = 1 . Giả sử rằng mỗi truy vấn vào cơ sở dữ liệu sẽ có một cái gì đó như O (nxN=n/Nyf(y)=1 thời gian, thủ tục này tạm dừng trong thời gian O ( N log N ) O ( n log n ) , do đó vấn đề là trongFP.O(logN)O(logn)O(NlogN)O(nlogn)

    Giả sử rằng việc tra cứu cơ sở dữ liệu có thể được thực hiện trong sự chồng chất nhất quán, thuật toán của Grover cho phép vấn đề này nằm trong FBQP . Tuy nhiên, với tư cách là FP  ⊆  FBQP , tìm kiếm toàn diện cổ điển cũng chứng minh rằng vấn đề này nằm ở FBQP . Tất cả những gì chúng tôi có được (tối đa các yếu tố nhật ký) là tăng tốc bậc hai do tiết kiệm số lượng truy vấn cơ sở dữ liệu.

  • Giả sử rằng hàm đầu vào được mô tả ngắn gọn, bằng thuật toán đa thức thời gian lấy một đặc tả và một đối số y { 0 , 1 } m và tính O :x{0,1}ny{0,1}mO:H2m+1H2m+1trên cơ sở tiêu chuẩn , nơi m có thể lớn hơn nhiều so với Ω ( log n ) . Một ví dụ sẽ là nơi x chỉ định dạng CNF của một số hàm boolean f : { 0 , 1 } m{ 0 , 1 } cho m O ( n|y|bmΩ(logn)xf:{0,1}m{0,1} , trong trường hợp đó chúng ta có thể đánh giá f ( y ) mộtcách hiệu quảtrên đầu vào y mO(n)f(y) và do đó đánh giá hiệu quả O trên các trạng thái cơ sở tiêu chuẩn. Điều này đặt vấn đề trongFNP.y{0,1}mO

    Đưa ra một thủ tục để đánh giá từ ( x , y ) trong thời gian O ( p ( n ) ) cho n = | x | , Grover của thuật toán giải quyết vấn đề của không có cấu trúc Tìm kiếm O trong thời gian O ( p ( n ) f(y)(x,y)O(p(n))n=|x|OO(p(n)O(p(n)2m) . Đây không phải là đa thức trongn, và do đó không đủ để đặt vấn đề này vàoFBQP: chúng tôi chỉ đạt được tốc độ tăng bậc hai - mặc dù đây vẫn là một khoản tiết kiệm rất lớn về thời gian tính toán, giả sử rằng lợi thế do thuật toán Grover cung cấp không bị mất chi phí cần thiết cho tính toán lượng tử chịu lỗi.O(p(n)2n)n

Trong cả hai trường hợp, sự phức tạp được xác định về độ dài của chuỗi x * mà quy định cụ thể như thế nào để tính toán oracle O . Trong trường hợp đó x đại diện cho một nhìn lên bảng, chúng ta có N = n / , trong trường hợp việc thực hiện như một chức năng của N cũng tương tự như việc thực hiện như một hàm của n ; nhưng trong trường hợp x xác định rõ ràng ON O ( 2 n / 2 ) , thông điệp hình ảnh lớn mà Grover giải quyết vấn đề trong OnxOxN=n/NnxONO(2n/2)các truy vấn che khuất thông điệp chi tiết hơn rằng thuật toán này vẫn là thời gian theo cấp số nhân của một máy tính lượng tử.O(N)

Quyết định phức tạp từ các vấn đề quan hệ

Có một cách đơn giản để có được các vấn đề quyết định từ các vấn đề liên quan, vốn nổi tiếng từ lý thuyết về các vấn đề NP -complete : biến vấn đề tìm kiếm thành một câu hỏi về sự tồn tại của một giải pháp hợp lệ.

Phiên bản quyết định của một vấn đề tìm kiếm chung.
Với một đầu vào và một mối quan hệ nhị phân R , xác định xem y : R ( x , y ) nắm giữ.xRy:R(x,y)

NP lớp phức tạp về cơ bản có thể được định nghĩa theo các vấn đề như vậy, khi mối quan hệ R có thể tính toán hiệu quả: các vấn đề NP -complete nổi tiếng nhất (CNF-SAT, HAMCYCLE, 3-COLORING) là về sự tồn tại của một giải pháp hợp lệ một vấn đề quan hệ có thể kiểm chứng hiệu quả. Việc chuyển đổi từ sản xuất giải pháp sang đơn giản là khẳng định sự tồn tại của các giải pháp cũng là điều cho phép chúng tôi mô tả các phiên bản của hệ số nguyên trong BQP (bằng cách hỏi liệu có tồn tại các yếu tố không tầm thường, thay vì hỏi các giá trị của các yếu tố không tầm thường) .

Trong trường hợp Tìm kiếm không có cấu trúc, một lần nữa lớp phức tạp nào mô tả đúng nhất vấn đề phụ thuộc vào cách cấu trúc đầu vào. Xác định liệu có tồn tại một giải pháp cho một vấn đề mối quan hệ có thể được giảm xuống để tìm và xác minh một giải pháp cho vấn đề đó. Do đó, trong trường hợp đầu vào là một chuỗi chỉ định orory là bảng tra cứu, vấn đề tìm kiếm phi cấu trúc nằm ở P ; và nói chung hơn nếu x chỉ định một phương tiện hiệu quả để đánh giá nhà tiên tri, thì vấn đề nằm ở NP . Cũng có thể có một cách để xác định liệu có tồn tạixx một giải pháp cho Tìm kiếm phi cấu trúc mà không thực sự tìm ra giải pháp, mặc dù nói chung không rõ làm thế nào để làm điều đó theo cách có thể mang lại lợi thế so với thực sự tìm ra giải pháp.

Sự phức tạp của Oracle

Tôi đã dễ thấy được chuyển từ nói về oracle , đến cách mà một đầu vào x có thể được dùng để xác định (và đánh giá) oracle O . Nhưng tất nhiên, cách chính mà chúng tôi coi thuật toán của Grover là kết quả tiên tri trong đó việc đánh giá nhà tiên tri chỉ mất một bước thời gian và không yêu cầu phải xác định. Làm thế nào để chúng ta xem xét sự phức tạp của vấn đề trong trường hợp này?OxO

Trong trường hợp này, chúng tôi đang xử lý một mô hình tính toán tương đối , trong đó việc đánh giá một lời tiên tri cụ thể (mà, hãy nhớ, là đầu vào của vấn đề) là một hoạt động nguyên thủy. Lời tiên tri này được xác định trên tất cả các kích thước đầu vào: để xem xét vấn đề tìm kiếm trên chuỗi có độ dài n , bạn phải xác định rằng bạn đang xem xét cách mà nhà tiên tri O hành động trên các đầu vào có độ dài n , một lần nữa sẽ được thực hiện bằng cách xem xét độ dài của một chuỗi boolean x lấy làm đầu vào. Trong trường hợp này, cách chúng tôi trình bày vấn đề có thể như sau.OnOnx

Không có cấu trúc tìm kiếm liên quan đến Oracle . O
Với một đầu vào có độ dài n ,x=111n

  • tìm một (vấn đề quan hệ) hoặcy{0,1}n

  • xác định xem có tồn tại một (vấn đề quyết định)y{0,1}n

sao cho .O|y|0=|y|1

Vấn đề này nằm ở (đối với vấn đề quyết định) hoặc F N P O (đối với vấn đề quan hệ), tùy thuộc vào phiên bản của vấn đề bạn muốn xem xét. Bởi vì Thuật toán Grover không phải là một thuật toán thời gian đa thức, vấn đề này không được biết đến là trong B Q P O hoặc F B Q P O . Trong thực tế, chúng ta có thể nói điều gì đó mạnh mẽ hơn, như chúng ta sẽ sớm thấy.NPOFNPOBQPOFBQPO

Lý do tại sao tôi lướt qua mô tả thực tế, dựa trên lời tiên tri của Tìm kiếm không cấu trúc là để chạm vào điểm phức tạp của bạn và đặc biệt là chạm vào câu hỏi về kích thước đầu vào . Sự phức tạp của các vấn đề chủ yếu được chi phối bởi cách thức đầu vào được chỉ định: như một đặc tả ngắn gọn (trong trường hợp cách một chức năng được chỉ định trong CNF-SAT), như một đặc điểm kỹ thuật rõ ràng (trong trường hợp bảng tra cứu cho hàm), hoặc thậm chí là một số nguyên được chỉ định trong unary, tức là độ dài của chuỗi 1s như trên (như trong "Tìm kiếm không cấu trúc so với Oracle " ở trên).O

Như chúng ta có thể thấy trong trường hợp sau, nếu chúng ta chỉ coi đầu vào là một lời tiên tri, thì tình huống có vẻ hơi không trực quan và chắc chắn không thể nói về những cách mà "cơ sở dữ liệu" có thể được nhận ra. Nhưng một ưu điểm của việc xem xét phiên bản tương đối của vấn đề, với một lời sấm truyền thực tế, là chúng ta có thể chứng minh những điều mà nếu không chúng ta không biết làm thế nào để chứng minh. Nếu chúng ta có thể chứng minh rằng phiên bản quyết định của vấn đề tìm kiếm không có cấu trúc cô đọng là trong BQP , thì chúng ta sẽ đứng ra nhận ra một bước đột phá to lớn trong tính toán thực tế; và nếu chúng tôi có thể chứng minh rằng vấn đề quyết định không thực sự có trong BQP , thì chúng tôi đã chỉ ra rằng P ≠ PSPACE , thì đó sẽ là một bước đột phá lớn trong sự phức tạp tính toán. Chúng tôi cũng không biết làm thế nào. Nhưng đối với vấn đề tương đối, chúng ta có thể chỉ ra rằng có các phép lạ mà phiên bản quyết định của "Tìm kiếm không cấu trúc liên quan đến O " nằm trong N P OOONPO nhưng không có trong . Điều này cho phép chúng tôi chứng minh rằng trong khi điện toán lượng tử có tiềm năng mạnh mẽ, có nhiều lý do để hy vọng rằng BQP có thể không chứa NP và đặc biệt là phiên bản quan hệ của Tìm kiếm không cấu trúc không thể được chứa trong FBQP mà không áp đặt các ràng buộc mạnh mẽ về cách thức đầu vào được đại diện.BQPO


2

Các lớp phức tạp thường được định nghĩa liên quan đến kích thước của đầu vào. Các kích thước có liên quan ở đây là (số lượng qubit mà bạn cho phép thuật toán của Grover hoạt động) và một số bạn chưa đề cập, gọi nó là m , các bit cần thiết để mô tả chương trình con thường được gọi là nhà tiên tri. Thông thường, nhà tiên tri sẽ được thực hiện một cách hiệu quả theo cách chia tỷ lệ đa thức trong n , ví dụ, nếu bạn mã hóa một vấn đề thỏa mãn boolean điển hình trong nhà tiên tri.nmn

Trong mọi trường hợp, bạn không đạt được mức độ phức tạp khi sử dụng thuật toán của Grover: Cần nhiều thao tác lượng tử theo cấp số nhân, thường là , để giải quyết vấn đề chúng ta có thể bắt bẻ theo nhiều cấp số nhân, điển hình là m 2 n - 1 , trên bất kỳ máy tính cổ điển nào. Điều này có nghĩa là các vấn đề đã biết (ví dụ EXPTIME) hoặc nghi ngờ (ví dụ NP) để thực hiện thời gian chạy theo cấp số nhân sẽ vẫn yêu cầu thời gian chạy theo cấp số nhân.m2n/2m2n1

However, physicists like to appeal to the notion that this is still an exponential speed-up with no known (or indeed readily conceivable) classical equivalent. This is most apparent in the database example where the oracle function is a database lookup and Grover's algorithm can cause one to need many fewer lookups than there are data in the database. In this sense, there is still a significant advantage, although it is completely lost in the complexity class picture.


"Các nhà vật lý muốn thu hút khái niệm rằng đây vẫn là một sự tăng tốc theo cấp số nhân mà không biết " ... bạn có nghĩa là viết " vẫn là một sự tăng tốc đa thức "?
glS

Không, nó thực sự là một sự tăng tốc theo cấp số nhân (chỉ không đủ để biến thời gian chạy theo cấp số nhân thành không có giá trị).
Kim tự tháp

2

n

NP

f(x) be a function that accepts an input x{0,1}n and returns a single bit value 0 or 1. The task is that you have to find whether a given value of x returns a 1. However, there is further structure to the problem: if f(x)=1, you are guaranteed that there exists a proof px (of size mpoly(n)) such that a function g(x,px)=1 only if f(x)=1, and the function g(x,px) is efficiently computable (i.e. it has a running time of poly(n).

Let me give a few examples (perhaps these are what you were asking for here?):

  • Parity: f(x) answers the question 'is x odd?'. This is so trivial (just take the least significant bit of x) that f(x) is efficiently computed directly, and therefore a proof is unnecessary, g(x,px)=f(x).

  • Composite numbers: f(x) answers the question 'is the decimal representation of x a composite number?'. One possible proof in the yes direction (you only have to prove that direction) is to give a pair of factors. e.g. x=72, px=(8,9). Then g(x,p) simply involves multiplying together the factors and checking they are equal to x.

  • Graph isomorphism: Given two graphs G1 and G2 (here x contains the description of both graphs), f(x) answers the question 'are the two graphs isomorphic?'. The proof px is a permutation: a statement of how the vertices in G1 map to those of G2. The function g(x,px) verifies that px is a valid permutation, permutes the vertices of G1 using the specified permutation, and verifies that the adjacency matrix is the same as that of G2.

  • Minesweeper: The old favourite game built into windows (and others) can be expressed like this. Imagine a minesweeper board that is partially uncovered, so some cells are unknown, and some cells have been uncovered to reveal how many mines are in the neighbouring cells. This is all built into the variable x. f(x) asks the question 'is there a valid assignment of mines on the uncovered region?'. The proof, px is simply one such assignment of mines. This is easily verified using g(x,px) which simply ensures consistency with every known constraint.

All of these problems are in NP because they fit the definition of an efficiently verifiable solution. Some of them are known to be in P as well: we've already stated that odd testing is in P. Composite numbers also is, because it is efficient to check if a number is prime using AKS primality testing.

Graph isomorphism and minesweeper are not known to be in P. Indeed, minesweeper is known to be NP-complete, i.e. if it can be solved efficiently, every problem in NP is in P. Many people suspect that PNP, and hence Minesweeper would have instances which take longer than polynomial time to solve.

One possible way to solve an NP problem is, for a fixed x, simply to test all possible proofs px up to a maximum length m=poly(n), and see if there's a satisfying solution, i.e. to search for a solution g(x,px)=1. Obviously, that takes time O(2mpoly(m)), as there are exponentially many items to search, each requiring a polynomial time to compute. This can be improved by implementing Grover's search: we just search for a solution g(x,px)=1 (i.e. the valid px becomes the marked item), and this takes a time O(2m/2poly(m)). This is massively faster, but does not change the assessment of whether the running time is polynomial or something worse; it has not become a polynomial time algorithm. For example, graph isomorphism would have to search over all possible permutations. Minesweeper would have to search over all possible assignments of mines on uncovered squares.

Of course, some of the time, additional structure in the problem permits different solutions that do not require the searching of all possible proofs. There, Grover's search is of less, or even no, use to us, but it might be that we can come up with a polynomial time algorithm in another way. For example, the case of composite testing: classically, finding the factors of a number appears to be hard: we can't do much better than testing all possible factors, so making use of that form of proof doesn't help much, but, as already mentioned, the question can be resolved efficiently via another route, AKS primality testing.


The classes P and NP are usually defined as classes of languages or decision problems, such as in the answer to this question. While these can be 'encoded' as functions with binary output as you do here, this is a bit non-standard in complexity theory.
Discrete lizard

@Discretelizard True, but I was aiming for pedagogical purposes to avoid having to introduce the extra terminology/technicality. I'm sure there are slight subtleties that my description is missing (e.g. I specified a function f(x) rather than a family of functions), again with the intent of not getting too bogged down, and trying to get to the point.
DaftWullie

You can to define things however you wish, but I think it is useful to mention that this isn't standard for when e.g. readers check other sources. Hence the comment.
Discrete lizard

-1

Forget about database. Grover's algorithm solves Boolean Satisfiability Problem, namely:

You have a boolean circuit with n inputs and a single output. The circuit outputs 1 for a single configuration of input bits, otherwise is outputs 0. Find the configuration of input bits.

The problem is known to be NP-complete.


3
There is an element of truth in what you're saying --- that one should almost always think of the oracle as evaluating a function rather than a database lookup; and that if that function can be evaluated in polynomial time, then it is effectively an instance of SAT, which is indeed NP-complete. But given that the speedup from Grover is at most quadratic, it's not clear that the NP-completeness of SAT is relevant to what Grover's algorithm actually does.
Niel de Beaudrap

2
Due to the ignorant or trolling downvoting I am not going to contribute this forum anymore.
kludg

@kludg I admit that one of the down votes is mine so let me explain; Your answer without further context or explanation does not answer any of the questions I posed in the OP. It makes an interesting point but as far tell this is not relevant to my specific questions. Now I could be wrong on this point and you answer actually is answering some of my questions - if this is the case I do not believe they are answered in any explicit way.
Quantum spaghettification
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.