Pemetaan
Tonton video tentang pemetaan daripada Olivia Lanes, atau buka video dalam tetingkap berasingan di YouTube.
Pengenalanโ
Dalam pelajaran ini, kita akan memberi tumpuan kepada langkah pertama dan sering paling mencabar dalam mentakrifkan program kuantum: memetakan masalah untuk dijalankan pada komputer kuantum. Langkah ini merangkumi cara pengguna bermula dengan masalah pengkomputeran dan menterjemahkannya kepada sesuatu yang boleh diselesaikan pada komputer kuantum.
Dalam Pelajaran 2 dan 3 kursus ini, kita menyebut bahawa peringkat pemetaan adalah yang pertama daripada empat jumlah langkah dalam rangka kerja corak Qiskit. Dari pelajaran-pelajaran ini, anda mungkin ingat bahawa matlamat pemetaan adalah untuk menterjemah atau menulis semula masalah pengkomputeran menjadi fungsi kos atau nilai jangkaan yang boleh kita nilai menggunakan komputer kuantum.
Dalam Pelajaran 3 kita membincangkan satu contoh konkrit dengan Max-Cut, satu masalah yang sukar dari segi pengkomputeran, tetapi sangat biasa, dalam pengoptimuman kombinatorial. Dalam contoh itu, kita melalui beberapa langkah untuk menterjemah masalah graf awal kepada masalah yang boleh diselesaikan pada komputer kuantum. Kita mengubah masalah mencari bilangan maksimum potongan dalam graf menjadi fungsi kos, menulis semula fungsi kos itu sebagai Hamiltonian, dan kemudian menyediakan keadaan kuantum percubaan yang keadaan dasarnya sepadan dengan potongan maksimum. Akhirnya, kita membina Circuit kuantum yang mewakili keadaan kuantum percubaan yang diminati, dan kemudian menambah Gate khusus untuk membolehkan keadaan berevolusi dari masa ke masa. Urutan langkah ini adalah sebahagian daripada pemetaan. Walaupun langkah tepatnya adalah unik untuk masalah Max-Cut, prosedur umum yang sama boleh digunakan untuk banyak aplikasi lain, seperti kimia kuantum dan simulasi kuantum.
Pemetaan boleh menjadi sukar. Tidak ada strategi satu-saiz-untuk-semua untuk setiap masalah, jadi ia boleh menakutkan. Dalam pelajaran ini, kita akan melihat beberapa pertimbangan umum untuk pemetaan, dan kemudian menyelami beberapa masalah contoh yang mewakili untuk menunjukkan pelbagai cara memetakan masalah ke komputer kuantum.
Pertimbangan umumโ
Walaupun strategi tepat yang digunakan seseorang untuk memetakan masalah ke komputer kuantum bergantung kepada masalah yang ada, ia biasanya mencapai beberapa perkara utama.
Pertama, anda mungkin perlu memudahkan masalah untuk menjadikannya boleh dilaksanakan. Ini bukan unik kepada kuantum โ semua disiplin saintifik menggunakan model yang dipermudahkan untuk mengkaji fenomena yang mereka minati, sambil mengabaikan butiran yang tidak relevan. Dalam fizik, terdapat ungkapan terkenal yang mengambil prinsip ini ke peringkat ekstrem: "anggap lembu berbentuk sfera." Ia sering terlalu sukar untuk menggambarkan sistem tepat seperti yang kelihatan, tetapi kita boleh membuat penyederhanaan yang munasabah yang masih boleh membawa kepada penyelesaian yang berguna. Beberapa contoh cara kita mungkin melakukan ini dalam pengkomputeran kuantum adalah untuk mengehadkan saiz atau kedalaman Circuit dengan memilih ansatz yang cekap perkakasan, memotong evolusi masa yang kompleks, atau mengabaikan terma Hamiltonian yang menyumbang sedikit kepada tenaga akhir keadaan kuantum.
Kedua, pemetaan melibatkan penulisan masalah dengan cara yang boleh difahami oleh komputer kuantum. Sering kali itu melibatkan pertanyaan tiga soalan ini:
- Apakah yang qubit kita akan wakili dalam model kita?
- Adakah masalah kita berterusan? Oleh kerana komputer kuantum adalah digital, jika masalahnya adalah berterusan, kita perlu mencari cara untuk mendiskreasikannya.
- Akhirnya, adakah topologi masalah sejajar dengan topologi perkakasan? Jika tidak, kita mungkin perlu melaksanakan beberapa helah untuk membuatnya berfungsi.
Mari kita atasi soalan pertama, yang berada di inti banyak kesukaran memahami pemetaan: Apakah yang boleh diwakili oleh qubit?
Qubit boleh digunakan untuk mewakili banyak perkara. Yang pertama, dan mungkin paling mudah, adalah nod pada graf. Graf digunakan untuk menunjukkan sambungan dalam banyak jenis masalah matematik yang berbeza, dan nod adalah elemen asas yang mewakili titik atau entiti dalam rangkaian. Bergantung pada apa yang seluruh rangkaian mewakili, itu boleh menjadi bandar, seseorang, atau feromagnet dalam kekisi.
Qubit juga boleh digunakan untuk mewakili boson dan fermion, walaupun saya perlu memberi amaran di sini bahawa satu qubit tunggal tidak sama persis dengan satu boson atau satu fermion โ ia sedikit lebih rumit daripada itu, seperti yang akan kita bincangkan lebih lanjut dalam pelajaran.
Sekarang kita mendapat contoh yang sedikit lebih rumit. Untuk model-model ini, tidak masuk akal lagi untuk bercakap dalam terma qubit tunggal, sebaliknya kita memerlukan kumpulan qubit untuk membentuk sesuatu yang fizikal. Sebagai contoh, sekumpulan qubit, di sini diwakili pada topologi heksagon berat, boleh digunakan untuk mewakili lokasi geometri asid amino; rantai polimer. Contoh lain adalah simulasi penyebaran hadron dalam model fizik tenaga tinggi, yang boleh dilakukan dengan mensimulasi evolusi masa paket gelombang hadronik. Dalam kes ini, daftar qubit boleh digunakan untuk mengekod keadaan berbeza medan kuantum; keadaan vakum medan itu, atau paket gelombang yang merambat di atas vakum itu.
Tetapi pada ketika ini kita telah bercakap secara abstrak yang cukup tentang cabaran di hadapan kita. Mari kita lihat contoh-contoh ini secara terperinci.
Contoh pemetaanโ
Max-Cutโ
Mari kita mulakan dengan contoh pertama kita. Salah satu masalah pemetaan yang paling mudah adalah yang telah kita liputi secara mendalam: contoh Max-Cut. Dalam masalah itu pemetaannya agak mudah untuk kita kerana satu qubit bersamaan dengan satu nod pada graf kita.
Ingat bahawa, untuk memetakan masalah Max-Cut, kita nyatakan fungsi kos sebagai Hamiltonian menggunakan formulasi QUBO. Fungsi kos Hamiltonian adalah fungsi yang mengekod penyelesaian optimum masalah dalam keadaan dasar Hamiltonian. Untuk membina Hamiltonian kos, kita menggunakan kelas SparsePauliOp dalam Qiskit untuk menentukan sambungan graf kita, dan peringkat pemetaan ke operator kuantum telah selesai. Dan Circuit kuantum hanyalah ansatz QAOA. Untuk ulasan, rujuk kepada pelajaran Utility-scale QAOA, di mana kita menjalaninya semua dengan lebih terperinci.
Dalam pelajaran itu, walaupun dalam contoh berskala utiliti 100-qubit, sambungan graf sudah pun sepadan dengan topologi perkakasan pengalir super kita. Jadi kita tidak perlu memikirkan cara menangani topologi yang berbeza. Tetapi itu tidak selalu berlaku. Jika kita mempunyai graf yang lebih rumit atau lebih padat sambungannya berbanding contoh yang kita tonjolkan setakat ini, kita perlu melaksanakan satu siri Gate SWAP untuk mengubah sambungan berkesan perkakasan. Ini dikendalikan pada langkah kedua corak Qiskit, transpilasi, tetapi perlu diingat walaupun dalam langkah pemetaan.
Lipatan proteinโ
Seterusnya, mari kita terokai contoh yang dimodelkan dalam makalah yang bertajuk "Resource-efficient quantum algorithm for protein folding," yang ditulis oleh IBMยฎ dan rakan sekerja di University of New South Wales.
Sedikit latar belakang biokimia: Protein adalah makromolekul yang terdiri daripada rantai panjang asid amino. Rantai ini dilipat menjadi struktur kompleks yang melaksanakan pelbagai fungsi biologi. Menentukan struktur protein dalam ruang tiga dimensi, dan memahami hubungan antara struktur dan fungsi, adalah antara masalah yang paling mencabar dalam biokimia hari ini. Protein dilipat ke dalam struktur yang berguna disebabkan interaksi antara asid amino. Apabila struktur memusing dan melipat, asid amino yang jauh dari satu sama lain sepanjang rantai mungkin akhirnya bersebelahan dan berinteraksi dengan kuat.
Untuk memodelkan ini pada komputer kuantum, kita memerlukan Hamiltonian yang menggambarkan semua interaksi antara asid amino ini. Kemudian, kita boleh meramalkan struktur akhir dengan mencari keadaan yang akan meminimumkan tenaga Hamiltonian kita. Di sini, kita akan memberi tumpuan kepada cara rantai asid amino boleh dimodelkan pada komputer kuantum dan cara kita boleh mendapatkan jarak antara asid amino untuk pengiraan tenaga interaksi. Dengan ini, kita akan mengumpulkan semua sumbangan yang diperlukan kepada Hamiltonian yang perlu untuk mensimulasikannya pada komputer kuantum.
Dalam protein sebenar, asid amino boleh menduduki kontinum lokasi yang mungkin. Walau bagaimanapun, kita akan menggunakan penyederhanaan dan menyekatnya menggunakan model kekisi, di mana setiap asid amino menduduki satu titik pada grid. Di sini, para penulis menggunakan kekisi tetrahedra. Nota ringkas: di sini, kita mengekod arah tepi, bukan nod itu sendiri seperti dalam masalah Max-Cut. Setiap qubit mewakili laluan satu langkah yang mungkin di sepanjang grid tetrahedra. Perhatikan bahawa tapak bersebelahan telah dilabelkan sebagai A atau B kerana orientasi berbeza mereka dalam kekisi.
Rantai protein diwakili sebagai satu siri giliran atau arah pada kekisi ini. Setiap giliran antara asid amino boleh dalam salah satu daripada empat arah, sepadan dengan tepi tetrahedron. Empat giliran yang mungkin ini dikodkan menggunakan empat qubit ke dalam keadaan 0001, 0010, 0100, atau 1000.

Mari kita lihat contoh dalam rajah di atas. Mari kita letakkan asid amino pertama kita pada titik yang dilabelkan "B" yang dibulatkan dalam merah dalam kekisi tetrahedra kita. Arah ke asid amino pertama ke asid amino kedua adalah sewenang-wenang kerana sistem sentiasa boleh diputar untuk membuat tepi itu menunjuk ke arah mana pun yang kita suka. Jadi, kita boleh meletakkan asid amino kedua kita pada titik di bawah yang pertama yang dilabelkan "A". Tidak semudah itu dilihat, tetapi laluan dari kedua ke ketiga juga adalah sewenang-wenang. Semua tiga pilihan akan menghasilkan kita mempunyai dua tepi dengan sudut kira-kira 109.5 darjah di antara mereka. Memilih tepi kedua ini hanya menentukan orientasi protein kita dalam ruang. Jadi, tanpa kehilangan keumuman, kita boleh memilih dua giliran pertama menjadi sahaja 0001 dan 0010.
Dengan penyederhanaan ini, konfigurasi rantai asid amino diberikan oleh ungkapan ini:
Setakat ini, kita telah memetakan tepi tetrahedron ke qubit, dan Circuit kuantum kita akan menjadi ansatz. Sekarang kita perlu mempertimbangkan cara mengekod tenaga masalah ke dalam Hamiltonian, supaya keadaan dasarnya memberikan kita corak lipatan optimum.
Untuk sebarang konfigurasi yang diberikan, akan ada tenaga yang berkaitan disebabkan interaksi antara asid amino. Interaksi ini adalah terkuat apabila dua asid amino berhampiran antara satu sama lain. Jelas sekali, asid amino yang bersebelahan dalam tulang belakang rantai akan sentiasa berinteraksi antara satu sama lain. Tetapi kerana protein boleh memusing dan melipat, pasangan asid amino lain juga boleh berinteraksi. Asid amino 10 dan 20 mungkin akhirnya berada pada tapak bersebelahan selepas protein dilipat, sebagai contoh. Jadi, kita memerlukan formula untuk menggambarkan jarak antara asid amino dan menggunakan maklumat yang dikodkan pada qubit konfigurasi. Dengan cara itu kita boleh menggunakan jarak pemisahan mereka untuk menentukan betapa kuatnya mereka berinteraksi.
Pertama, mari kita perkenalkan fungsi yang menunjukkan sama ada tepi digunakan atau tidak untuk giliran pada asid amino . Di sini boleh mengambil mana-mana daripada empat arah yang mungkin. Berdasarkan konfigurasi yang kita mulakan di atas, kita boleh menulis fungsi-fungsi ini:
Kemudian kita boleh mentakrifkan perbezaan dalam bilangan giliran berlabel pada kekisi A dan B dari indeks ke indeks sebagai :
Mengapa kita melakukan ini? Nah, ternyata bahawa giliran dari tapak kekisi A ke B dibatalkan tepat oleh giliran dari tapak kekisi B ke A. Jadi untuk mengetahui jarak asid amino pada tapak dari yang ada pada tapak , kita hanya perlu mencari perbezaan antara langkah yang dibuat di sepanjang tepi dari tapak A dan tapak B. Oleh kerana tapak A dan B semestinya berselang-seli di sepanjang tulang belakang protein, ini ditangkap dalam . Hujah yang sama ini berlaku untuk kesemua empat jenis tepi. Jadi, jumlah jarak antara asid amino dalam langkah kekisi tetrahedra boleh dikira dengan ungkapan ini:
Tetapi bagaimana kita mendapatkan Hamiltonian daripada persamaan panjang ini untuk jumlah jarak antara asid amino? Pertama, kita boleh menukar dari jarak dalam langkah kekisi ke ruang Euclidean dengan beberapa geometri mudah:
Kemudian, jarak-jarak ini akan digunakan dalam mengira tenaga konfigurasi protein. Bergantung pada tujuan kita, kita mungkin menetapkan jarak potongan di mana anda menganggap pasangan berinteraksi, atau anda mungkin melakukan sesuatu yang lebih rumit.
Mungkin tidak ketara, tetapi kita sebenarnya sudah selesai dengan peringkat pemetaan dengan melakukan ini. Keadaan qubit menunjukkan "giliran" protein pada setiap tapak kekisi, dan koleksi giliran menentukan jarak antara mana-mana pasangan asid amino. Pasangan pelbagai spesies asid amino mempunyai interaksi yang berbeza, ada yang menarik, ada yang menolak. Jika anda menggunakan konfigurasi dan jarak untuk sekadar menentukan sama ada interaksi asid amino yang diketahui adalah "aktif" atau "tidak aktif", kekuatan ini sudah dikira dan boleh sekadar dicari dalam jadual seperti ini:

Ringkasnya, dalam contoh ini, qubit digunakan untuk menandai langkah-langkah dalam laluan sepanjang kekisi, yang bersama-sama, membentuk rantai asid amino. Dengan mensimulasi cara mereka membengkok dan melipat kita boleh berharap menemukan hasil yang lebih baik dalam penyelidikan perubatan. Kita melangkau cara mengira beberapa terma Hamiltonian ini kerana ia sangat khusus untuk masalah ini, sementara mentakrifkan arah pada kekisi boleh digunakan dengan lebih umum. Kini setelah anda mempunyai Hamiltonian umum, anda sentiasa ingin menterjemahkannya ke dalam operator Pauli, yang asli kepada komputer kuantum. Itulah yang akan kita bincangkan seterusnya.
Transformasi Jordan-Wignerโ
Sekarang mari kita terokai cara menterjemah sistem zarah subatom ke dalam operator Pauli.
Zarah subatom dibahagikan kepada dua kategori โ boson dan fermion. Boson, seperti foton atau Higgs, mematuhi satu set peraturan statistik tertentu. Fermion, seperti elektron atau neutrino, mematuhi yang lain. Perbezaan utama antara mereka adalah bahawa boson dibenarkan untuk menduduki keadaan yang sama โ tidak ada had berapa banyak boson yang boleh berada dalam keadaan dasar atau mana-mana keadaan teruja. Fermion, sebaliknya, adalah mementingkan diri sendiri โ mereka menuntut bahawa setiap zarah tunggal mempunyai keadaan kuantumnya sendiri.
Boson juga mempunyai spin integer sementara fermion mempunyai spin separuh-integer, seperti elektron spin-1/2, dan zarah spin-3/2 yang lebih eksotik. Untuk menggambarkan sistem zarah, kita memerlukan penerangan tentang tenaga mereka. Mari kita fokus pada fermion. Kita boleh mulakan dengan Hamiltonian yang ditulis dalam terma apa yang kita panggil operator c. Ini pada dasarnya adalah objek matematik yang sepadan dengan penciptaan atau pemusnahan fermion dari keadaan dalam sistem. Ini sering ditulis sebagai dan , di mana adalah operator yang mencipta fermion dalam keadaan dan adalah operator yang memusnahkan fermion dalam keadaan .
Tetapi ingat, komputer kuantum biasanya beroperasi dalam asas qubit dengan peraturan khusus untuk mewakili sistem fermonik; mereka tidak secara wujudnya berfungsi dalam bahasa operator fermonik. Untuk merapatkan jurang ini, kita perlu memetakan notasi fermonik ini ke operator Pauli, yang secara semula jadi sepadan dengan Gate kuantum.
Terdapat beberapa transformasi tersebut untuk fermion. Pilihan yang biasa adalah transformasi Jordan-Wigner. Pemetaan Bravyi-Kitaev dan pariti adalah pengekodean fermonik yang lebih baru. Operator bosonik boleh ditransformasikan menggunakan transformasi Holstein-Primakoff atau dengan memetakan terus keadaan Fock ke sub-asas mod bosonik yang tersedia, antara pilihan lain. Pengekodean lain juga sedang aktif dikaji. Buat masa ini, kita hanya akan memberi tumpuan kepada transformasi Jordan-Wigner.
Transformasi Jordan-Wigner melibatkan pemetaan fermion tunggal ke banyak qubit. Mengapa kita tidak boleh hanya menetapkan satu qubit untuk mewakili setiap elektron? Ini berkaitan dengan kebolehbezaan fermion yang identik. Qubit boleh dibezakan dan elektron tidak boleh. Sebagai contoh, kita boleh dengan mudah melabel dan mengenal pasti qubit individu pada mana-mana peranti. Tetapi ketidakbolehbezaan elektron bermaksud kita tidak boleh melabelkan mereka sama sekali. Oleh itu, kita sebenarnya perlu melabel operator mengikut orbital yang diduduki, seperti 1s, 2p, 2p, dsb., bukannya elektron tertentu. Jadi, setiap qubit memainkan kira-kira peranan orbital dalam molekul yang sama ada diduduki atau tidak diduduki. Tetapi cara kita melakukan itu adalah sedikit lebih rumit. Pemetaan Jordan-Wigner menjejaki anti-simetri dan memastikan statistik yang betul bagi sistem fermonik keseluruhan. Pemetaan Jordan-Wigner menyatakan operator fermonik dalam terma operator Pauli menggunakan hubungan ini:
Pemetaan Jordan-Wigner adalah mudah secara konseptual kerana surat-menyurat satu-ke-satu antara orbital dan qubit. Terdapat pemetaan lain yang mencapai matlamat yang serupa, termasuk pemetaan pariti. Pengiraan pariti sesuatu keadaan memerlukan pertimbangan beberapa qubit. Dalam pemetaan pariti (dan beberapa yang lain) tafsiran satu qubit sepadan dengan satu orbital tidak dipegang. Sekarang mari kita melalui contoh mudah. Katakan kita ingin mengira interaksi qubit tunggal . Kita mulakan dengan memasukkan definisi kita untuk operator penciptaan dan pemusnahan.
Komutator . Jadi, ungkapan akhir menjadi:
Jadi, kita telah berjaya menulis semula ungkapan fermonik dalam terma operator Pauli yang boleh difahami oleh komputer kuantum kita.
Mari kita bincangkan secara ringkas cara kita melaksanakan pemetaan Jordan-Wigner dalam Qiskit. Adalah penting untuk memahami cara transformasi jenis ini berfungsi, tetapi adalah tidak praktikal untuk mengiranya secara manual setiap kali โ terutamanya untuk sistem bersaiz besar. Nasib baik, Qiskit memudahkan ini untuk kita dengan fungsi SparsePauliOp.
Pada tahap tinggi, langkah-langkahnya adalah:
- Gunakan fungsi
from_listSparsePauliOp untuk mencipta operator identiti yang sepadan dengan saiz ruang parameter yang akan dipetakan. - Mengikut definisi operator penciptaan dan pemusnahan yang ditunjukkan sebelumnya, gunakan fungsi
from_listSparsePauliOp untuk mentakrifkan operator Pauli , , . Ini akan memetakan operator penciptaan dan pemusnahan fermonik ke operator spin qubit, mengekod nombor pendudukan fermonik ke dalam asas pengiraan qubit. - Jana Hamiltonian yang dikehendaki dalam asas Pauli dengan menggunakan operator di atas ke orbital yang diminati. Ini biasanya sepadan dengan penciptaan matriks identiti yang mewakili orbital teras (tidak berinteraksi) dan kemudian menggunakan operator penciptaan dan pemusnahan ke ruang aktif, dengan pemberat yang sepadan dengan spesifik masalah yang ada.
Kini setelah kita memahami sepenuhnya skim pemetaan Jordan-Wigner, mari kita lihat contoh yang lebih rumit. Anda mungkin ingat makalah yang bertajuk, "Scalable Circuits for Preparing Ground States on Digital Quantum Computers: The Schwinger Model Vacuum on 100 Qubits" dari pelajaran sebelumnya. Kita tidak akan melalui makalah itu secara terperinci lagiโkita hanya akan memberi tumpuan kepada pemetaan Jordan-Wigner, yang digunakan untuk menyatakan Hamiltonian tapak kekisi dengan tapak untuk model Schwinger dalam ketiadaan medan elektrik.
Di sini, lebih sukar untuk menentukan dengan tepat apa yang satu qubit mewakili dalam model ini kerana hanya koleksi qubit bersama-sama yang membentuk sesuatu yang fizikal, dalam kes ini, paket gelombang. Sebaliknya, anda boleh lebih kurang memikirkan qubit sebagai kepingan ruang yang didiskreasi. Di sini, adalah isipadu kekisi di mana setiap elemen (sel unit) terdiri daripada dua qubit. Operator fermonik yang kita lihat dalam slaid sebelumnya menggambarkan amplitud fungsi gelombang pada tapak tertentu. Jadi, Hamiltonian kita mengandungi operator penciptaan dan pemusnahan fermonik ini. Jadi, kita menggunakan transformasi Jordan-Wigner untuk memetakan operator-operator ini ke dalam operator Pauli.
di mana adalah operator Pauli dan adalah Setelah kita mempunyai Hamiltonian yang ditulis dalam format ini, bahagian yang sukar daripada peringkat pemetaan telah selesai, dan ia kini boleh ditulis dengan mudah ke Circuit dalam operator Pauli.
Kesimpulanโ
Kita telah membincangkan empat contoh cara teknik pemetaan khusus telah digunakan baru-baru ini dalam bidang pengkomputeran kuantum, bermula dari yang paling mudah dan bekerja ke arah menggunakan transformasi Jordan-Wigner kepada dinamik hadron. Kebanyakan bahan ini sangat teknikal, dan jika anda belum pernah melihatnya sebelum ini, ia boleh kelihatan sangat menakutkan. Tetapi ia menjadi lebih mudah semakin banyak masa yang anda habiskan untuk berlatih โ itulah sebabnya kursus ini dipanggil Pengkomputeran Kuantum dalam Praktik. Ini bukan sesuatu yang sesiapa pun boleh hanya ambil dan terus lari dengannya dari awal โ ia memerlukan beberapa kajian, beberapa menggaruk kepala, dan mungkin beberapa masa yang mengecewakan. Tetapi saya menggalakkan anda untuk duduk dengan ketidakselesaan itu dan benar-benar meneroka soalan yang timbul apabila anda terus. Itulah satu-satunya cara untuk belajar.