Tôi cảm thấy câu trả lời này chủ yếu dựa vào sự hiểu lầm tiềm ẩn về ý nghĩa của việc "mô phỏng" một cái gì đó.
Nói chung, để "mô phỏng" một hệ thống phức tạp có nghĩa là tái tạo một số tính năng nhất định của hệ thống đó với một nền tảng dễ kiểm soát hơn (thường, nhưng không phải lúc nào cũng là máy tính cổ điển).
Do đó, câu hỏi liệu "người ta có thể mô phỏng một máy tính lượng tử trong một máy tính cổ điển" hay không được đặt ra. Nếu bạn muốn nói rằng bạn muốn sao chép mọi khía cạnh có thể có của một "máy tính lượng tử", thì điều đó sẽ không bao giờ xảy ra, giống như bạn sẽ không bao giờ có thể mô phỏng mọi khía cạnh của bất kỳ hệ thống cổ điển nào (trừ khi bạn sử dụng giống hệt nhau hệ thống tất nhiên).
Mặt khác, bạn chắc chắn có thể mô phỏng nhiều khía cạnh của một thiết bị phức tạp như "máy tính lượng tử". Ví dụ, người ta có thể muốn mô phỏng sự tiến hóa của một trạng thái trong mạch lượng tử. Thật vậy, điều này có thể cực kỳ dễ làm! Ví dụ: nếu bạn có python trên máy tính của mình, chỉ cần chạy như sau
import numpy as np
identity_2d = np.diag([1, 1])
pauliX_gate = np.array([[0, 1], [1, 0]])
hadamard_gate = np.array([[1, 1], [1, -1]]) / np.sqrt(2)
cnot_gate = np.kron(identity_2d, pauliX_gate)
H1_gate = np.kron(hadamard_gate, identity_2d)
awesome_entangling_gate = np.dot(cnot_gate, H1_gate)
initial_state = np.array([1, 0, 0, 0])
final_state = np.dot(awesome_entangling_gate, initial_state)
print(final_state)
Xin chúc mừng, bạn chỉ "mô phỏng" sự tiến hóa của trạng thái hai qubit có thể tách rời thành trạng thái Bell!
n2n( 1 )( 2 )
Các câu trả lời khác đã chạm vào các khía cạnh khác nhau của độ cứng này và câu trả lời cho câu hỏi khác này đã đề cập đến nhiều nền tảng có sẵn để mô phỏng / mô phỏng các khía cạnh khác nhau của thuật toán lượng tử, vì vậy tôi sẽ không đến đó.
(1)
Một ví dụ thú vị về vấn đề này là vấn đề mô phỏng thiết bị lấy mẫu boson (đây không phải là thuật toán lượng tử theo nghĩa trạng thái phát triển qua một loạt cổng, nhưng dù sao đó cũng là một ví dụ về thiết bị lượng tử không cần thiết). BosonSampling là một vấn đề lấy mẫu , trong đó một có nhiệm vụ với các vấn đề về lấy mẫutừ một phân phối xác suất cụ thể, và điều này đã được thể hiện (theo các giả định có khả năng) là không thể thực hiện hiệu quả với một thiết bị cổ điển. Mặc dù nó chưa bao giờ được coi là một khía cạnh cơ bản của độ cứng này, nhưng một vấn đề chắc chắn không cần thiết liên quan đến việc mô phỏng thiết bị lấy mẫu boson là việc phải tính toán một số lượng lớn xác suất theo mẫu theo cấp số nhân. Tuy nhiên, gần đây đã cho thấy rằng thực sự người ta không cần phải tính toán toàn bộ xác suất để lấy mẫu từ chúng ( 1705.00686 và 1706.01260). Về nguyên tắc, điều này không quá xa so với việc mô phỏng sự tiến hóa của rất nhiều qubit trong mạch lượng tử mà không phải lưu trữ toàn bộ trạng thái của hệ thống tại bất kỳ điểm nào. Liên quan đến các mạch lượng tử trực tiếp hơn, các ví dụ về sự đột phá gần đây trong khả năng mô phỏng là 1704,01127
và 1710.05867 (cũng là một siêu gần đây, chưa được công bố, là 1802.06952 ).
(2)
Trên thực tế, nó đã được chứng minh (hay đúng hơn là bằng chứng mạnh mẽ đã được cung cấp cho thực tế) rằng không thể mô phỏng hiệu quả hầu hết các mạch lượng tử, xem 1504.07999 .