Lewati ke konten utama

Pemetaan

Tonton video tentang pemetaan dari Olivia Lanes, atau buka video di jendela terpisah di YouTube.

Pendahuluanโ€‹

Dalam pelajaran ini, kita akan berfokus pada langkah pertama dan sering kali paling menantang dalam mendefinisikan program kuantum: memetakan masalah untuk dijalankan pada komputer kuantum. Langkah ini mencakup bagaimana pengguna memulai dengan masalah komputasi dan menerjemahkannya ke sesuatu yang bisa diselesaikan di komputer kuantum.

Dalam Pelajaran 2 dan 3 kursus ini, kami menyebutkan bahwa tahap pemetaan adalah yang pertama dari empat langkah total dalam kerangka Qiskit patterns. Dari pelajaran-pelajaran ini, kamu mungkin ingat bahwa tujuan pemetaan adalah menerjemahkan atau menulis ulang masalah komputasi menjadi fungsi biaya atau nilai ekspektasi yang bisa kita evaluasi menggunakan komputer kuantum.

Dalam Pelajaran 3 kita membahas satu contoh konkret dengan Max-Cut, masalah yang sulit secara komputasi, tetapi sangat umum, dalam optimasi kombinatorial. Dalam contoh itu, kita melalui beberapa langkah untuk menerjemahkan masalah graf awal menjadi masalah yang bisa diselesaikan di komputer kuantum. Kita mengubah masalah menemukan jumlah potongan maksimum dalam graf menjadi fungsi biaya, menulis ulang fungsi biaya tersebut sebagai Hamiltonian, dan kemudian menyiapkan keadaan kuantum percobaan yang ground state-nya sesuai dengan potongan maksimum. Terakhir, kita membangun Circuit kuantum yang mewakili keadaan kuantum percobaan yang diminati, dan kemudian menambahkan Gate spesifik untuk memungkinkan keadaan berevolusi seiring waktu. Urutan langkah-langkah ini semuanya merupakan bagian dari pemetaan. Sementara langkah-langkah tepatnya unik untuk masalah Max-Cut, prosedur umum yang sama bisa diterapkan pada banyak aplikasi lain, seperti kimia kuantum dan simulasi kuantum.

Pemetaan bisa sulit. Tidak ada strategi satu ukuran untuk semua masalah, sehingga bisa terasa mengintimidasi. Dalam pelajaran ini, kita akan melihat beberapa pertimbangan umum untuk pemetaan, dan kemudian menyelami beberapa contoh masalah representatif untuk mendemonstrasikan berbagai cara memetakan masalah ke komputer kuantum.

Pertimbangan umumโ€‹

Sementara strategi yang digunakan seseorang untuk memetakan masalah ke komputer kuantum bergantung pada masalah yang ada, mereka umumnya mencapai beberapa hal utama.

Pertama, kamu mungkin perlu menyederhanakan masalah untuk membuatnya layak. Ini bukan hanya untuk kuantum โ€“ semua disiplin ilmu menggunakan model yang disederhanakan untuk mempelajari fenomena yang mereka minati, sambil mengabaikan detail yang tidak relevan. Dalam fisika, ada ekspresi terkenal yang mengambil prinsip ini ke ekstrem: "asumsikan seekor sapi berbentuk bola." Sering kali terlalu sulit untuk mendeskripsikan sistem persis seperti adanya, tetapi kita bisa membuat penyederhanaan yang wajar yang tetap bisa mengarah pada solusi yang berguna. Beberapa contoh bagaimana kita mungkin melakukan ini dalam komputasi kuantum adalah dengan membatasi ukuran atau kedalaman Circuit dengan memilih ansatz yang efisien untuk perangkat keras, memotong evolusi waktu yang kompleks, atau mengabaikan suku Hamiltonian yang berkontribusi sedikit pada energi akhir keadaan kuantum.

Kedua, pemetaan melibatkan penulisan masalah dengan cara yang bisa dipahami oleh komputer kuantum. Sering kali itu melibatkan mengajukan tiga pertanyaan ini:

  1. Apa yang akan diwakili qubit kita dalam model kita?
  2. Apakah masalah kita kontinu? Karena komputer kuantum bersifat digital, jika masalahnya kontinu, kita perlu menemukan cara untuk mendiskritkannya.
  3. Terakhir, apakah topologi masalah selaras dengan topologi perangkat keras? Jika tidak, kita mungkin perlu menerapkan beberapa trik agar bisa berfungsi.

Mari kita jawab pertanyaan pertama, yang ada di inti banyak kesulitan dalam memahami pemetaan: Apa yang bisa diwakili oleh qubit?

Qubit bisa digunakan untuk mewakili banyak hal. Yang pertama, dan mungkin paling sederhana, adalah node pada graf. Graf digunakan untuk menunjukkan konektivitas dalam banyak jenis masalah matematis yang berbeda, dan node adalah elemen fundamental yang mewakili titik atau entitas dalam jaringan. Bergantung pada apa yang diwakili seluruh jaringan, itu bisa berupa kota, orang, atau ferromagnet dalam kisi.

Qubit juga bisa digunakan untuk mewakili boson dan fermion, meskipun saya akan memperingatkan di sini bahwa satu qubit tidak persis sama dengan satu boson atau satu fermion โ€“ ini sedikit lebih rumit dari itu, seperti yang akan kita bahas lebih lanjut dalam pelajaran ini.

Sekarang kita mendapatkan contoh yang sedikit lebih rumit. Untuk model-model ini, sudah tidak masuk akal lagi untuk berbicara dalam hal qubit tunggal, sebaliknya kita memerlukan kelompok qubit untuk membentuk sesuatu yang fisik. Misalnya, sekelompok qubit, di sini direpresentasikan pada topologi heavy hexagonal, bisa digunakan untuk mewakili lokasi geometris asam amino; rantai polimer. Contoh lain adalah simulasi hamburan hadron dalam model fisika energi tinggi, yang bisa dilakukan dengan mensimulasikan evolusi waktu dari paket gelombang hadronik. Dalam kasus ini, register qubit bisa digunakan untuk mengkodekan berbagai keadaan bidang kuantum; keadaan vakum bidang tersebut, atau paket gelombang yang merambat di atas vakum tersebut.

Tapi pada titik ini kita sudah cukup berbicara secara abstrak tentang tantangan yang ada di hadapan kita. Mari kita lihat contoh-contoh ini secara detail.

Contoh pemetaanโ€‹

Max-Cutโ€‹

Mari kita mulai dengan contoh pertama. Salah satu masalah pemetaan yang paling lugas adalah yang sudah kita bahas secara mendalam: contoh Max-Cut. Dalam masalah itu, pemetaannya cukup mudah bagi kita karena satu qubit setara dengan satu node pada graf kita.

Ingat bahwa, untuk memetakan masalah Max-Cut, kita mengekspresikan fungsi biaya sebagai Hamiltonian menggunakan formulasi QUBO. Fungsi biaya Hamiltonian adalah fungsi yang mengkodekan solusi optimal dari masalah dalam ground state Hamiltonian. Untuk membangun Hamiltonian biaya, kita menggunakan kelas SparsePauliOp dalam Qiskit untuk menentukan konektivitas graf kita, dan tahap pemetaan ke operator kuantum selesai. Dan Circuit kuantum hanyalah ansatz QAOA. Untuk penyegaran, lihat pelajaran Utility-scale QAOA, di mana kita membahas ini semua dengan lebih rinci.

Dalam pelajaran itu, bahkan dalam contoh skala utilitas 100 qubit, konektivitas graf sudah cocok dengan topologi perangkat keras superkonduktor kita. Jadi kita tidak perlu memikirkan cara menangani topologi yang berbeda. Tapi itu tidak selalu demikian. Jika kita memiliki graf yang lebih rumit atau lebih padat terhubung dari contoh yang kita soroti sejauh ini, kita perlu menerapkan serangkaian SWAP Gate untuk memodifikasi konektivitas efektif perangkat keras. Ini ditangani pada langkah kedua Qiskit patterns, transpilasi, tetapi harus diingat bahkan dalam langkah pemetaan.

Pelipatan proteinโ€‹

Selanjutnya, mari kita jelajahi contoh yang dimodelkan dalam makalah berjudul "Resource-efficient quantum algorithm for protein folding," yang ditulis oleh IBMยฎ dan kolaborator di University of New South Wales.

Sedikit latar belakang biokimia: Protein adalah makromolekul yang terdiri dari rantai asam amino yang panjang. Rantai-rantai ini melipat menjadi struktur kompleks yang melakukan berbagai fungsi biologis. Menentukan struktur protein dalam ruang tiga dimensi, dan memahami hubungan antara struktur dan fungsi, adalah salah satu masalah paling menantang dalam biokimia saat ini. Protein melipat menjadi struktur yang berguna karena interaksi antara asam amino. Saat struktur memutar dan melipat, asam amino yang jauh satu sama lain di sepanjang rantai mungkin berakhir tepat di sebelah satu sama lain dan mungkin berinteraksi dengan kuat.

Untuk memodelkan ini di komputer kuantum, kita memerlukan Hamiltonian yang mendeskripsikan semua interaksi ini antara asam amino. Kemudian, kita bisa memprediksi struktur akhir dengan menemukan keadaan yang akan meminimalkan energi Hamiltonian kita. Di sini, kita akan berfokus pada bagaimana rantai asam amino bisa dimodelkan pada komputer kuantum dan bagaimana kita bisa mendapatkan jarak antar-asam amino untuk perhitungan energi interaksi. Dengan ini, kita akan mengumpulkan semua kontribusi yang diperlukan ke Hamiltonian yang diperlukan untuk mensimulasikannya pada komputer kuantum.

Dalam protein nyata, asam amino bisa menempati kontinum lokasi yang mungkin. Namun, kita akan menggunakan penyederhanaan dan membatasinya menggunakan model kisi, di mana setiap asam amino menempati titik pada grid. Di sini, para penulis menggunakan kisi tetrahedral. Catatan singkat: di sini, kita mengkodekan arah tepi, bukan node itu sendiri seperti dalam masalah Max-Cut. Setiap qubit mewakili kemungkinan jalur satu langkah di sepanjang grid tetrahedral. Perhatikan bahwa situs yang berdekatan telah diberi label A atau B karena orientasi mereka yang berbeda dalam kisi.

Rantai protein direpresentasikan sebagai serangkaian belokan atau arah pada kisi ini. Setiap belokan antara asam amino bisa dalam salah satu dari empat arah, sesuai dengan tepi tetrahedron. Empat kemungkinan belokan ini dikodekan menggunakan empat qubit ke dalam keadaan 0001, 0010, 0100, atau 1000.

Rantai asam amino pada kisi tetrahedral

Mari kita lihat contoh dalam gambar di atas. Mari kita tempatkan asam amino pertama kita pada titik berlabel "B" yang dilingkari merah dalam kisi tetrahedral kita. Arah ke asam amino pertama ke yang kedua bersifat sewenang-wenang karena sistem selalu bisa diputar untuk membuat tepi itu menunjuk ke arah mana pun yang kita suka. Jadi, kita bisa menempatkan asam amino kedua kita pada titik di bawah yang pertama berlabel "A". Tidak semudah dilihat, tetapi jalur dari yang kedua ke yang ketiga juga sewenang-wenang. Semua tiga pilihan akan menghasilkan dua tepi dengan sudut sekitar 109,5 derajat di antaranya. Memilih tepi kedua ini hanya menentukan orientasi protein kita dalam ruang. Jadi, tanpa kehilangan generalitas, kita bisa memilih dua belokan pertama menjadi 0001 dan 0010.

Dengan penyederhanaan ini, konfigurasi rantai asam amino diberikan oleh ekspresi ini:

(0001)(0010)(q9q10q11q12)โ‹ฏ(q4Nโˆ’3q4Nโˆ’2q4Nโˆ’1q4N)(0001)(0010)(q_9 q_{10} q_{11} q_{12}) \cdots (q_{4N-3} q_{4N-2} q_{4N-1} q_{4N})

Sejauh ini, kita telah memetakan tepi tetrahedron ke qubit, dan Circuit kuantum kita akan berupa ansatz. Sekarang kita perlu mempertimbangkan cara mengkodekan energi masalah ke dalam Hamiltonian, sehingga ground state-nya memberi kita pola pelipatan yang optimal.

Untuk konfigurasi tertentu, akan ada energi terkait karena interaksi antara asam amino. Interaksi ini paling kuat ketika dua asam amino berdekatan satu sama lain. Jelas, asam amino yang berdekatan dalam tulang punggung rantai akan selalu berinteraksi satu sama lain. Tetapi karena protein bisa memutar dan melipat, pasangan asam amino lainnya juga bisa berinteraksi. Asam amino 10 dan 20 mungkin berakhir berada di situs yang berdekatan setelah protein melipat, misalnya. Jadi, kita memerlukan rumus untuk mendeskripsikan jarak dd antara asam amino ii dan jj menggunakan informasi yang dikodekan pada qubit konfigurasi. Dengan cara itu kita bisa menggunakan jarak pemisahan mereka untuk menentukan seberapa kuat mereka berinteraksi.

Pertama, mari kita perkenalkan fungsi fa(i)f_a(i) yang menunjukkan apakah tepi aa digunakan untuk belokan pada asam amino ii atau tidak. Di sini aa bisa mengambil salah satu dari empat arah yang mungkin. Berdasarkan konfigurasi yang kita mulai di atas, kita bisa menulis fungsi-fungsi ini:

f0(i)=q4iโˆ’3f1(i)=q4iโˆ’2f2(i)=q4iโˆ’1f3(i)=q4i\begin{aligned} f_0(i) &= q_{4i-3} \\ f_1(i) &= q_{4i-2} \\ f_2(i) &= q_{4i-1} \\ f_3(i) &= q_{4i} \end{aligned}

Kemudian kita bisa mendefinisikan perbedaan dalam jumlah belokan berlabel aa pada kisi A dan B dari indeks ii ke indeks jj sebagai ฮ”n\Delta n:

ฮ”na(i,j)=โˆ‘k=ij(โˆ’1)kfa(k)\begin{aligned} \Delta n_a(i,j) &= \sum\limits_{k=i}^{j}{(-1)^k f_a(k)} \end{aligned}

Mengapa kita melakukan ini? Nah, ternyata belokan aa dari situs kisi A ke B dibatalkan persis dengan belokan aa dari situs kisi B ke A. Jadi untuk mengetahui jarak asam amino pada situs ii dari yang ada di situs jj, kita hanya perlu menemukan perbedaan antara langkah yang dibuat di sepanjang tepi aa dari situs A dan B. Karena situs A dan B secara keharusan bergantian di sepanjang tulang punggung protein, ini ditangkap dalam (โˆ’1)k(-1)^k. Argumen yang sama berlaku untuk semua empat jenis tepi. Jadi, total jarak antara asam amino dalam langkah kisi tetrahedral bisa dihitung dengan ekspresi ini:

d(i,j)=โˆ‘aโˆฃโˆฃฮ”na(i,j)โˆฃโˆฃ2=(ฮ”n0(i,j))2+(ฮ”n1(i,j))2+(ฮ”n2(i,j))2+(ฮ”n3(i,j))2\begin{aligned} d(i,j) &= \sum\limits_{a}{||\Delta n_a(i,j)||^2} \\ &= (\Delta n_0(i,j))^2 + (\Delta n_1(i,j))^2 + (\Delta n_2(i,j))^2 + (\Delta n_3(i,j))^2 \end{aligned}

Tapi bagaimana kita mendapatkan Hamiltonian dari persamaan panjang untuk total jarak antara asam amino ini? Pertama, kita bisa mengonversi dari jarak dalam langkah kisi ke ruang Euclidean dengan beberapa geometri sederhana:

d(i,j)=0โ†’rij=0d(i,j)=1โ†’rij=1d(i,j)=2โ†’rij=223โ‰ˆ1.63d(i,j)=3โ†’rij=113โ‰ˆ1.91d(i,j)=4โ†’rij=43โ‰ˆ2.31d(i,j)=5โ†’rij=193โ‰ˆ2.52\begin{aligned} d(i,j) &= 0 \rightarrow r_{ij} = 0 \\ d(i,j) &= 1 \rightarrow r_{ij} = 1 \\ d(i,j) &= 2 \rightarrow r_{ij} = 2\sqrt\frac{2}{3} \approx 1.63 \\ d(i,j) &= 3 \rightarrow r_{ij} = \sqrt\frac{11}{3} \approx 1.91 \\ d(i,j) &= 4 \rightarrow r_{ij} = \frac{4}{\sqrt{3}} \approx 2.31 \\ d(i,j) &= 5 \rightarrow r_{ij} = \sqrt\frac{19}{3} \approx 2.52 \end{aligned}

Kemudian, jarak-jarak ini akan digunakan dalam menghitung energi konfigurasi protein. Bergantung pada tujuan kita, kita mungkin menentukan jarak batas di bawah mana kamu menganggap pasangan berinteraksi, atau kamu mungkin melakukan sesuatu yang lebih rumit.

Mungkin tidak jelas, tetapi kita sebenarnya sudah selesai dengan tahap pemetaan dengan melakukan ini. keadaan qubit menunjukkan "belokan" protein di setiap situs kisi, dan kumpulan belokan menentukan jarak antara pasangan asam amino mana pun. Pasangan berbagai spesies asam amino memiliki interaksi yang berbeda, beberapa menarik, beberapa tolak-menolak. Jika kamu menggunakan konfigurasi dan jarak untuk sekadar menentukan apakah interaksi asam amino yang diketahui "aktif" atau "nonaktif", kekuatan interaksi ini sudah dikerjakan dan bisa dengan mudah dicari dalam tabel seperti ini:

Energi pengikatan asam amino

Singkatnya, dalam contoh ini, qubit digunakan untuk menandai langkah-langkah dalam jalur di sepanjang kisi, yang bersama-sama membentuk rantai asam amino. Dengan mensimulasikan bagaimana mereka menekuk dan melipat, kita berharap bisa menemukan hasil yang lebih baik dalam penelitian medis. Kita melewatkan cara menghitung beberapa suku Hamiltonian ini karena mereka sangat spesifik untuk masalah ini, sementara mendefinisikan arah pada kisi bisa diterapkan lebih umum. Sekarang setelah kamu memiliki Hamiltonian umum, kamu selalu ingin menerjemahkannya ke operator Pauli, yang merupakan native untuk komputer kuantum. Itulah yang akan kita bahas selanjutnya.

Transformasi Jordan-Wignerโ€‹

Sekarang mari kita jelajahi cara menerjemahkan sistem partikel subatomik ke operator Pauli.

Partikel subatomik dibagi menjadi dua kategori โ€“ boson dan fermion. Boson, seperti foton atau Higgs, mematuhi seperangkat aturan statistik tertentu. Fermion, seperti elektron atau neutrino, mematuhi aturan lainnya. Perbedaan utama di antara keduanya adalah bahwa boson diizinkan untuk menempati keadaan yang sama โ€“ tidak ada batasan berapa banyak boson yang bisa berada dalam ground state atau keadaan tereksitasi mana pun. Fermion, di sisi lain, bersifat egois โ€“ mereka menuntut bahwa setiap partikel tunggal memiliki keadaan kuantumnya sendiri.

Boson juga memiliki spin bilangan bulat sementara fermion memiliki spin setengah-bilangan bulat, seperti elektron spin-1/2, dan partikel spin-3/2 yang lebih eksotis. Untuk mendeskripsikan sistem partikel, kita memerlukan deskripsi energinya. Mari kita fokus pada fermion. Kita bisa mulai dengan Hamiltonian yang ditulis dalam hal apa yang kita sebut operator c. Ini pada dasarnya objek matematis yang bersesuaian dengan menciptakan atau menghilangkan fermion dari keadaan dalam sistem. Ini sering ditulis sebagai fiโ€ f_i^\dagger dan fjf_j, di mana fiโ€ f_i^\dagger adalah operator yang menciptakan fermion dalam keadaan ii dan fjf_j adalah operator yang menghancurkan fermion dalam keadaan jj.

Tapi ingat, komputer kuantum biasanya beroperasi dalam basis qubit dengan aturan khusus untuk merepresentasikan sistem fermionic; mereka tidak secara inheren bekerja dalam bahasa operator fermionic. Untuk menjembatani kesenjangan ini, kita perlu memetakan notasi fermionic ini ke operator Pauli, yang secara alami bersesuaian dengan Gate kuantum.

Ada beberapa transformasi seperti itu untuk fermion. Pilihan umum adalah transformasi Jordan-Wigner. Bravyi-Kitaev dan pemetaan paritas adalah pengkodean fermionic yang lebih baru. Operator bosonic bisa ditransformasi menggunakan transformasi Holstein-Primakoff atau dengan langsung memetakan keadaan Fock ke sub-basis dari mode bosonic yang tersedia, di antara opsi lainnya. Pengkodean lainnya juga secara aktif sedang diteliti. Untuk sekarang, kita hanya akan berfokus pada transformasi Jordan-Wigner.

Transformasi Jordan-Wigner melibatkan pemetaan satu fermion ke banyak qubit. Mengapa kita tidak bisa hanya menetapkan satu qubit untuk mewakili setiap elektron? Ini berkaitan dengan kemampuan dibedakannya fermion identik. Qubit bisa dibedakan dan elektron tidak. Misalnya, kita bisa dengan mudah memberi label dan mengidentifikasi qubit individual pada perangkat apa pun. Tetapi ketidakbedaan elektron berarti kita tidak bisa memberi label pada mereka sama sekali. Dengan demikian, kita sebenarnya perlu memberi label pada operator sesuai dengan orbital yang ditempati, seperti 1s, 2p, 2p, dll., alih-alih elektron spesifik. Jadi, setiap qubit memainkan peran kira-kira orbital dalam molekul yang ditempati atau tidak ditempati. Tapi bagaimana kita melakukannya sedikit lebih rumit. Pemetaan Jordan-Wigner melacak anti-simetri dan memastikan statistik yang benar dari sistem fermionic keseluruhan. Pemetaan Jordan-Wigner mengekspresikan operator fermionic dalam hal operator Pauli menggunakan relasi-relasi ini:

fjโ€ =(โˆk<j(โˆ’Zk))(Xj+iYj2)fj=(โˆk<j(โˆ’Zk))(Xjโˆ’iYj2)\begin{aligned} f_j^\dagger &= \Bigl( \prod\limits_{k \lt j}{(-Z_k)} \Bigr)\Bigl( \frac{X_j + i Y_j}{2} \Bigr) \\ f_j &= \Bigl( \prod\limits_{k \lt j}{(-Z_k)} \Bigr)\Bigl( \frac{X_j - i Y_j}{2} \Bigr) \end{aligned}

Pemetaan Jordan-Wigner secara konseptual sederhana karena korespondensi satu-ke-satu antara orbital dan qubit. Ada pemetaan lain yang mencapai tujuan serupa, termasuk pemetaan paritas. Perhitungan paritas suatu keadaan memerlukan pertimbangan beberapa qubit. Dalam pemetaan paritas (dan beberapa lainnya), interpretasi satu qubit sesuai satu orbital tidak berlaku. Sekarang mari kita lewati contoh sederhana. Misalkan kita ingin menghitung interaksi qubit tunggal f0โ€ f0f_0^\dagger f_0. Kita mulai dengan mengganti definisi kita untuk operator kreasi dan anihilasi.

f0โ€ f0=(โˆk<0(โˆ’Zk)2)(X0+iY02)(X0โˆ’iY02)=14(X02+iY0X0โˆ’X0Y0+Y02)=14(2Iโˆ’i[X0,Y0])\begin{aligned} f_0^\dagger f_0 &= \biggl( \prod_{k < 0} (-Z_k)^2 \biggr) \biggl( \frac{X_0 + i Y_0}{2} \biggr) \biggl( \frac{X_0 - i Y_0}{2} \biggr) \\ &= \frac{1}{4} (X_0^2 + i Y_0 X_0 - X_0 Y_0 + Y_0^2) \\ &= \frac{1}{4} (2 I - i[X_0,Y_0]) \end{aligned}

Komutator [X0,Y0]=2iZ0[X_0, Y_0] = 2i Z_0 . Jadi, ekspresi akhir menjadi:

f0โ€ f0=12(I+Z0)\begin{aligned} f_0^\dagger f_0 = \frac{1}{2}(I+Z_0) \end{aligned}

Jadi, kita berhasil menulis ulang ekspresi fermionic dalam hal operator Pauli yang bisa dipahami oleh komputer kuantum kita. Mari kita bahas secara singkat bagaimana kita mengimplementasikan pemetaan Jordan-Wigner dalam Qiskit. Penting untuk memahami bagaimana jenis transformasi ini bekerja, tetapi tidak praktis untuk mengerjakannya secara manual setiap saat โ€“ terutama untuk sistem berukuran besar. Untungnya, Qiskit memudahkan ini dengan fungsi SparsePauliOp.

Pada level tinggi, langkah-langkahnya adalah:

  1. Gunakan fungsi from_list SparsePauliOp untuk membuat operator identitas yang sesuai dengan ukuran ruang parameter yang akan dipetakan.
  2. Mengikuti definisi operator kreasi dan destruksi yang ditunjukkan sebelumnya, gunakan fungsi from_list SparsePauliOp untuk mendefinisikan operator Pauli XX, YY, ZZ. Ini akan memetakan operator kreasi dan anihilasi fermionic ke operator spin qubit, mengkodekan bilangan okupasi fermionic ke dalam basis komputasi qubit.
  3. Hasilkan Hamiltonian yang diinginkan dalam basis Pauli dengan menerapkan operator di atas ke orbital yang diminati. Ini biasanya bersesuaian dengan pembuatan matriks identitas yang mewakili orbital inti (non-interaksi) dan kemudian menerapkan operator kreasi dan anihilasi ke ruang aktif, dengan bobot yang bersesuaian dengan spesifik masalah yang ada.

Sekarang setelah kita sepenuhnya memahami skema pemetaan Jordan-Wigner, mari kita lihat contoh yang lebih rumit. Kamu mungkin ingat makalah berjudul "Scalable Circuits for Preparing Ground States on Digital Quantum Computers: The Schwinger Model Vacuum on 100 Qubits" dari pelajaran sebelumnya. Kita tidak akan membahas makalah secara detail lagiโ€”kita hanya akan berfokus pada pemetaan Jordan-Wigner, yang digunakan untuk mengekspresikan Hamiltonian situs kisi dengan LL situs untuk model Schwinger tanpa adanya medan listrik.

Di sini, jauh lebih sulit untuk secara spesifik menyebutkan apa yang diwakili satu qubit dalam model ini karena hanya kumpulan qubit bersama yang membentuk sesuatu yang fisik, dalam kasus ini, sebuah paket gelombang. Sebaliknya, kamu bisa secara kasar menganggap qubit sebagai potongan ruang yang didiskritkan. Di sini, LL adalah volume kisi di mana setiap elemen (sel satuan) terdiri dari dua qubit. Operator fermionic yang kita lihat di slide sebelumnya mendeskripsikan amplitudo fungsi gelombang pada situs tertentu. Jadi, Hamiltonian kita mengandung operator kreasi dan anihilasi fermionic ini. Jadi, kita menggunakan transformasi Jordan-Wigner untuk memetakan operator-operator ini ke operator Pauli.

H=Hm+Hkin+Hel=m2โˆ‘j=02Lโˆ’1[(โˆ’1)jZj+I]+12โˆ‘j=02Lโˆ’2(ฯƒj+ฯƒj+1โˆ’+h.c.)+g22โˆ‘j=02Lโˆ’2(โˆ‘kโ‰คjQk)2\begin{aligned} \cal{H} &= \cal{H}_m + \cal{H}_{kin} + \cal{H}_{el} \\ &= \frac{m}{2} \sum\limits_{j=0}^{2L-1} [(-1)^j Z_j + I] + \frac{1}{2} \sum\limits_{j=0}^{2L-2}(\sigma_j^+\sigma_{j+1}^- + h.c.) + \frac{g^2}{2} \sum\limits_{j=0}^{2L-2} \Bigl( \sum\limits_{k \le j} Q_k\Bigr)^2 \end{aligned}

di mana ฯƒ+\sigma_+ adalah operator Pauli X+iYX + iY dan ฯƒโˆ’\sigma_{-} adalah Xโˆ’iY.X - iY. Setelah kita memiliki Hamiltonian yang ditulis dalam format ini, bagian sulit dari tahap pemetaan sudah selesai, dan sekarang bisa dengan mudah ditulis ke sirkuit dalam operator Pauli.

Kesimpulanโ€‹

Kita telah membahas empat contoh bagaimana teknik pemetaan spesifik telah digunakan baru-baru ini di bidang komputasi kuantum, mulai dari yang paling sederhana dan bekerja hingga menerapkan transformasi Jordan-Wigner ke dinamika hadron. Banyak dari materi ini sangat teknis, dan jika kamu belum pernah melihatnya sebelumnya, bisa terasa sangat mengintimidasi. Tapi semakin mudah semakin banyak waktu yang kamu habiskan untuk berlatih โ€“ itulah mengapa kursus ini disebut Quantum Computing in Practice. Ini bukan sesuatu yang bisa langsung dipahami oleh siapa pun dari awal โ€“ ini memerlukan sedikit belajar, sedikit berpikir keras, dan mungkin beberapa saat yang membuat frustasi. Tapi saya mendorong kamu untuk duduk dengan ketidaknyamanan itu dan benar-benar mengeksplorasi pertanyaan-pertanyaan yang muncul saat kamu melanjutkan. Itu adalah satu-satunya cara untuk belajar.

Source: IBM Quantum docs โ€” updated 5 Mei 2026
English version on doQumentation โ€” updated 7 Mei 2026
This translation based on the English version of approx. 27 Mar 2026