Saya mencoba membiasakan diri dengan IBM Q dengan menerapkan tiga algoritma qubit Grover tetapi mengalami kesulitan untuk mengimplementasikan oracle.
Bisakah Anda menunjukkan cara melakukan itu atau menyarankan beberapa sumber daya yang baik untuk membiasakan diri dengan pemrograman rangkaian Q IBM?
Yang ingin saya lakukan adalah menandai satu negara yang berubah-ubah dengan membalik tandanya seperti yang seharusnya dilakukan oracle.
Sebagai contoh, saya punya
.
dan saya ingin menandai dengan membalik tanda untuk - | 111 ⟩ . Saya entah bagaimana mengerti bahwa gerbang CCZ akan menyelesaikan masalah tetapi kami tidak memiliki gerbang CCZ di IBM Q. Kombinasi dari beberapa gerbang akan bertindak sama dengan CCZ tetapi saya belum yakin bagaimana melakukannya. Dan saya juga berjuang untuk kasus-kasus lain tidak hanya untuk | 111 ⟩ .
Dua kasus qubit cukup sederhana untuk saya terapkan, tetapi tiga perawatan qubit masih membingungkan bagi saya.
Jawaban:
Saya menjawab pertanyaan saya. Setelah beberapa pencarian google, saya menemukan gambar ini menunjukkan gerbang CCZ oleh CNOT, T belati, dan gerbang T. Saya mencoba ini pada IBM Q dan berhasil. Saya ingin mengeksplorasi mengapa ini berhasil tetapi itu adalah cerita lain.
Untuk seseorang yang tertarik, inilah rangkaian kuantum saya dari algoritma Grover yang menemukan | 111> dengan satu iterasi.
sumber
Saya menerapkan masalah yang sama untuk beberapa qubit menggunakan qiskit di sini .
...
Secara umum, idenya adalah untuk mensimulasikan gerbang CCZ menggunakan Hadamard pada bit target diikuti oleh gerbang CCX dan kemudian Hadamard lain pada bit target.
sumber