Chúng ta có thể tăng tốc Thuật toán Grover bằng cách chạy các quy trình song song không?


10

Trong điện toán cổ điển, chúng ta có thể chạy tìm kiếm khóa (ví dụ AES) bằng cách chạy các nút tính toán song song càng nhiều càng tốt.

Rõ ràng là chúng ta cũng có thể chạy nhiều thuật toán của Grover.

Câu hỏi của tôi là ; có thể tăng tốc bằng cách sử dụng nhiều thuật toán của Grover như trong điện toán cổ điển không?

Câu trả lời:


6

Chắc chắn rồi! Hãy tưởng tượng bạn có bản sao của tìm kiếm mà bạn có thể sử dụng. Thông thường, bạn sẽ tìm kiếm bằng cách lặp lại hành động bắt đầu từ trạng thái ban đầu . Điều này cần có thời gian . (Tôi đang sử dụng để biểu thị ma trận danh tính .)K=2kUS

Hn(In2|00|n)HnUS,
(H|0)nΘ(N)In2n×2n

Bạn có thể thay thế bản này bằng bản sao song song, mỗi bản được lập chỉ mục bởi , sử dụng và bắt đầu từ trạng thái Thời gian cần thiết để chạy những thứ này sẽ giảm xuống , với chi phí yêu cầu không gian gấp lần.2kx{0,1}k

(IkH(nk))Ik(Ink2|00|(nk))(IkH(nk))US
|x(H|0)(nk)O(N/K)K

Theo nghĩa mở rộng, người ta có thể coi đây là một kết quả không liên quan. Nếu bạn có số lượng phép lạ cố định, , thì bạn sẽ có một cải tiến cố định ( ) (giống như, nếu bạn có lõi cổ điển song song, cải tiến tốt nhất bạn có thể nhận được là hệ số của ) và Điều đó không thay đổi tỷ lệ. Nhưng nó thay đổi thời gian chạy cơ bản. Chúng tôi biết rằng thuật toán của Grover là chính xác tối ưu. Phải mất thời gian tối thiểu tuyệt đối có thể với một lời sấm truyền. Vì vậy, khi biết rằng bạn sẽ có được một cải thiện trong thời gian là hữu ích liên quan đến rằng điểm chuẩn của một thời gian cụ thể chạy ở một giá trị cụ thể của .KKKKKN


Nhưng nếu bạn làm điều này, việc so sánh với hiệu suất cổ điển sẽ mất đi một số ý nghĩa của nó, phải không? Rốt cuộc, bạn cũng có thể tăng tốc tìm kiếm cổ điển bằng cách chạy thao tác kiểm tra xem cho có phải là mục tiêu song song trên tất cả các đầu vào không. Điều đó rõ ràng đòi hỏi các giả định bổ sung đối với các tài nguyên có sẵn, nhưng cùng một loại giả định được đưa ra trong cuộc tranh luận của bạnx
glS

1
N đi đến vô cùng nhưng thì không. Vấn đề của bạn trở nên lớn hơn nhưng tài nguyên của bạn vẫn còn ít. K
AHusain

1
Câu trả lời này là chính xác (mặc dù nó có thể không tối ưu, vì DaftWullie không cảnh báo). Đây là cùng một thái độ đối với sự song song như người ta có trong sự phức tạp của mạch cổ điển. Nếu bạn muốn tăng tốc do song song hóa, thì bạn hãy tìm đến độ sâu của mạch (vì việc phối hợp nhiều quy trình sẽ không làm giảm tổng công việc). Nó thậm chí không quan trọng nếu không đổi --- hoặc bạn quan tâm đến việc cải thiện độ sâu từ song song, hoặc bạn thì không. Như với tính toán lượng tử, chỉ đơn giản là ném thêm máy tính vào một vấn đề không làm cho mọi thứ trở nên nhanh chóng! K
Niel de Beaudrap

3

Theo một nghĩa nào đó, nếu chúng ta thực hiện song song trên các nút khác nhau, bạn sẽ tiết kiệm thời gian để chạy. Nhưng nếu chúng ta nói về sự phức tạp (đó là những gì chúng ta nói đến việc tăng tốc nói chung), chúng ta cần một chút phân tích.

Bạn đồng ý rằng chúng tôi cần các thao tác cho trường hợp không song song. Giả sử chúng tôi có hai nút và chúng tôi tách danh sách các phần tử N thành hai danh sách có kích thước . Việc tìm kiếm trong danh sách phụ mất khoảng .NN1,N2N1,N2

Tuy nhiên, chúng tôi có

N=N1+N2N1+N2

Và bạn vẫn sẽ cần xác minh đầu ra nào trong số những gì được trả về bởi các quy trình song song là đầu ra mà bạn tìm kiếm. Nó thêm một hằng số trong độ phức tạp vì vậy chúng ta thường ẩn nó vào ký hiệuO

Tuy nhiên, điều đó vẫn sẽ rất thú vị đặc biệt nếu chúng ta phải phân cụm phần cứng vì chúng ta bị giới hạn về số lượng qubit hoặc các hạn chế khác.


2
Với N1 = N2, nó vẫn là một bất đẳng thức: sqrt (2) * sqrt (N1) <2 * sqrt (N1)
Mariia Mykhailova

Ồ thật đấy. Trong đầu tôi $ \ sqrt {a b} = \ sqrt {a} \ sqrt {b} $ tôi nghĩ. Tôi nên ngừng trả lời câu trả lời ở đây lúc nửa đêm và khi mệt mỏi. Cảm ơn đã chỉ ra rằng.
cnada

3
@cnada: Có ít nhất hai khái niệm phức tạp khác nhau, cả hai đều liên quan đến việc tăng tốc. Một là độ phức tạp kích thước, và một là độ phức tạp sâu. Trừ khi có quy định khác, chúng tôi thường thích xem xét độ phức tạp kích thước, nhưng độ phức tạp sâu vẫn là điều rất được quan tâm về độ phức tạp tính toán lượng tử, ví dụ như trong MBQC [arXiv: quant-ph / 0301052 , arXiv: 0704.1736 ] và các kết quả gần đây trên phân tách độ sâu vô điều kiện [arXiv: 1704.00690 ].
Niel de Beaudrap

@NieldeBeaudrap Tôi nghĩ mọi người nhìn sâu hơn vào độ phức tạp. Nhưng đối với Grover, độ phức tạp của kích thước và độ sâu là về cùng một thứ tự. Đó là bậc hai về kích thước của vấn đề (thường được xem là kích thước của một danh sách các phần tử N). Bạn có nghĩ rằng cách tiếp cận của tôi ở đây là không đúng?
cnada

2
Bạn không nói bất cứ điều gì sai , tôi chỉ chỉ ra rằng bạn quá nhấn mạnh độ phức tạp của kích thước và không thực sự phát huy lợi ích cho độ phức tạp sâu. Không có nhiều điều thú vị xảy ra nếu bạn chỉ thực hiện các quy trình Grover song song của , nhưng như câu trả lời của DaftWullie gợi ý (và xem xét xử lý hậu cổ điển), độ phức tạp sâu đi từ đến cho các quy trình Grover song song , đây là một cải tiến theo hệ số (hệ số nhật ký xuất phát từ việc xác định mà nếu bất kỳ quá trình tìm thấy một giải pháp). kO(1) log(k)N k(N)Ohm(1)log(k)N/kk(N)Ω(1)k/log(k)
Niel de Beaudrap
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.