Tôi không biết tại sao / làm thế nào các tác giả của bài báo đó làm những gì họ làm. Tuy nhiên, đây là cách tôi thực hiện trong trường hợp đặc biệt này (và đây là trường hợp rất đặc biệt):
Bạn có thể viết Hamilton là một phân hủy Pauli
A = 15 I ⊗ I + 9 Z⊗ X+ 5 X⊗ Z- 3 Y⊗ Y.
Cập nhật: Nó phải là +3Y⊗Y . Nhưng tôi không muốn vẽ lại tất cả các sơ đồ của mình, v.v., vì vậy tôi sẽ để lại dấu hiệu tiêu cực.
Bây giờ, thật thú vị khi lưu ý rằng mỗi một trong những điều khoản này đi lại. Vì vậy, điều đó có nghĩa rằng
eiAθ=e15iθe9iθZ⊗Xe5iθX⊗Ze−3iθY⊗Y.
Bạn có thể tìm ra cách mô phỏng từng bước riêng lẻ, nhưng hãy để tôi thực hiện thêm một lần quan sát trước: các thuật ngữ đi lại này là các bộ ổn định của trạng thái cụm 2 qubit. Điều đó có thể có hoặc không có ý nghĩa gì với bạn, nhưng nó cho tôi biết rằng một điều thông minh cần làm là áp dụng cổng pha có kiểm soát.
CP⋅ Một ⋅ CP=15I⊗I+9I⊗X+5X⊗I−3X⊗X.
(Bạn có thể muốn kiểm tra dấu hiệu của thuật ngữ trước. Tôi đã không tính toán cẩn thận.) Vì vậy, nếu chúng ta bắt đầu và kết thúc chuỗi của mình bằng các cổng pha được kiểm soát, thì 2 thuật ngữ rất dễ để hiểu đúng: chúng ta xoay qubit đầu tiên về x trục bằng một góc 5θ , và qubit thứ hai về x trục bằng một góc 9θ .
Điều duy nhất chúng tôi là trái để có được quyền là X⊗X quay. Nếu bạn nghĩ về cấu trúc của e−3iθX⊗X , thì đây giống như một phép quay x trên cơ sở trạng thái {|00⟩,|11⟩} , và một số khác trên {|01⟩,|10⟩}. Một điều khiển - không chuyển đổi các căn cứ này thành các cơ sở qubit đơn được kiểm soát ngoài qubit mục tiêu. Nhưng vì cả hai đều thực hiện cùng một vòng quay được kiểm soát nhưng bị kiểm soát khỏi các giá trị ngược nhau, chúng tôi chỉ có thể loại bỏ điều khiển. Do đó, mạch tổng thể là:
Điều này đơn giản hóa một chút bằng cách kết hợp hai cổng được kiểm soát ở cuối:
Lưu ý rằng tôi chưa bao gồm thuật ngữ pha toàn cầu ở đây vì đó không phải là cách hợp lý để thực hiện. Khi bạn thực hiện controlled- ( eiAθ ), bạn áp dụng các "giai đoạn toàn cầu" như một z luân chuyển trên qubit kiểm soát.
optim_hamil.py
. Một cách thực tế để có được các giá trị / hệ số góc xoay chính xác là sử dụng một số loại thuật toán tối ưu hóa đa biến. Nensonee đã sử dụngscipy.optimize
mô-đun cho mục đích đó. Tuy nhiên, cá nhân tôi cũng muốn hiểu đúng thuật toán tối ưu hóa nhóm trưởng. Bài báo: arxiv.org/abs/1004.2242 quá mơ hồ!