Lumaktaw sa pangunahing nilalaman

Mapping

Panoorin ang video tungkol sa mapping mula kay Olivia Lanes, o buksan ang video sa hiwalay na window sa YouTube.

Panimula

Sa araling ito, tututuon tayo sa una at madalas na pinaka-mapanghamon na hakbang sa pagtatakda ng isang quantum program: ang pag-map ng problema para patakbuhin sa isang quantum computer. Sinasaklaw ng hakbang na ito kung paano nagsisimula ang isang user mula sa isang computational problem at isinalin ito sa isang bagay na maaaring malutas sa isang quantum computer.

Sa Lessons 2 at 3 ng kursong ito, binanggit namin na ang yugto ng mapping ay ang una sa apat na kabuuang hakbang sa Qiskit patterns framework. Mula sa mga araling ito, maaari mong matandaan na ang layunin ng mapping ay isalin o isulat muli ang isang computational problem sa isang cost function o expectation value na maaari naming suriin gamit ang isang quantum computer.

Sa Lesson 3 tinalakay namin ang isang kongkretong halimbawa gamit ang Max-Cut, isang computationally hard ngunit napaka-karaniwang problema sa combinatorial optimization. Sa halimbawang iyon, dumaan tayo sa ilang mga hakbang upang isalin ang paunang graph problem sa isa na maaaring malutas sa isang quantum computer. Binago namin ang problema ng paghahanap ng maximum na bilang ng mga hiwa sa graph sa isang cost function, sinulat muli ang cost function na iyon bilang isang Hamiltonian, at pagkatapos ay naghanda ng isang trial quantum state na ang ground state ay naaayon sa maximum cut. Sa wakas, nagtatag kami ng isang quantum circuit na kumakatawan sa trial quantum state ng interes, at pagkatapos ay nagdagdag ng mga tiyak na gate upang hayaan ang estado na mag-evolve sa paglipas ng panahon. Ang pagkakasunud-sunod ng mga hakbang na ito ay bahagi ng mapping. Habang ang eksaktong mga hakbang ay natatangi sa Max-Cut problem, ang parehong pangkalahatang pamamaraan ay maaaring ilapat sa maraming iba pang mga aplikasyon, tulad ng quantum chemistry at quantum simulations.

Ang mapping ay maaaring mahirap. Walang isang-sukat-na-angkop-sa-lahat na estratehiya para sa bawat problema, kaya maaari itong nakakatakot. Sa araling ito, titingnan natin ang ilang pangkalahatang konsiderasyon para sa mapping, at pagkatapos ay sumisid sa ilang kinatawang halimbawa ng mga problema upang ipakita ang iba't ibang paraan ng pag-map ng problema sa isang quantum computer.

Mga pangkalahatang konsiderasyon

Habang ang eksaktong estratehiya na ginagamit ng isang tao upang i-map ang isang problema sa isang quantum computer ay nakasalalay sa problema sa kamay, karaniwang tinatamo nila ang ilang pangunahing bagay.

Una, maaaring kailangan mong pasimplehin ang problema upang gawing posible ito. Hindi ito natatangi sa quantum – lahat ng siyentipikong disiplina ay gumagamit ng mga pinasimpleng modelo upang pag-aralan ang mga penomenong interesado sila, habang binabalewala ang mga hindi nauugnay na detalye. Sa pisika, mayroong isang sikat na ekspresyon na dinadala ang prinsipyong ito sa sukdulan: "assume a spherical cow." Madalas na napakahirap na ilarawan ang isang sistema nang eksakto kung paano ito lumalabas, ngunit maaari tayong gumawa ng mga makatwirang pagpapasimple na maaari pa ring humantong sa mga kapaki-pakinabang na solusyon. Ilang halimbawa kung paano natin ito magagawa sa quantum computing ay ang limitahan ang laki o circuit depth sa pamamagitan ng pagpili ng hardware-efficient ansatz, pag-truncate ng mga kumplikadong time evolution, o pag-neglect ng mga Hamiltonian term na kaunti ang kontribusyon sa pangwakas na energy ng isang quantum state.

Pangalawa, ang mapping ay nagsasangkot ng pagsusulat ng problema sa paraang mauunawaan ng isang quantum computer. Kadalasan, kasama dito ang pagtatanong ng tatlong katanungang ito:

  1. Ano ang kukatawanin ng ating mga qubit sa ating modelo?
  2. Ang ating problema ba ay tuloy-tuloy? Dahil ang mga quantum computer ay digital, kung ang problema ay tuloy-tuloy, kakailanganin nating makahanap ng paraan upang i-discretize ito.
  3. Panghuli, naaayon ba ang topology ng problema sa topology ng hardware? Kung hindi, maaaring kailangan naming mag-implement ng ilang mga trick upang gumana ito.

Sagutin natin ang unang tanong, na nasa puso ng marami sa mga kahirapan sa pag-unawa sa mapping: Ano ang maaaring katawanin ng isang qubit?

Ang mga qubit ay maaaring gamitin upang kumatawan sa maraming bagay. Ang una, at marahil pinakamagaan, ay isang node sa isang graph. Ang mga graph ay ginagamit upang ipakita ang koneksyon sa maraming iba't ibang uri ng mga mathematical problem, at ang mga node ay isang pangunahing elemento na kumakatawan sa isang punto o entity sa loob ng isang network. Depende sa kung ano ang kinakatawan ng buong network, maaaring ito ay isang lungsod, isang tao, o isang ferromagnet sa isang lattice.

Ang mga qubit ay maaari ding gamitin upang kumatawan sa mga boson at fermion, bagama't babala ako dito na ang isang solong qubit ay hindi eksaktong katumbas ng isang boson o isang fermion – ito ay medyo mas kumplikado kaysa doon, tulad ng tatalakayin natin pa sa aralin.

Ngayon ay nakakahanap na tayo ng mga halimbawa na medyo mas kumplikado. Para sa mga modelong ito, hindi na makatuwirang magsalita sa mga tuntunin ng mga solong qubit, sa halip kailangan natin ang mga grupo ng mga ito upang bumuo ng isang bagay na pisikal. Halimbawa, ang isang grupo ng mga qubit, narito na kinakatawan sa isang heavy hexagonal topology, ay maaaring gamitin upang kumatawan sa mga geometrical na lokasyon ng mga amino acid; mga polymer chain. Ang isa pang halimbawa ay ang simulation ng hadron scattering sa mga high energy physics model, na maaaring gawin sa pamamagitan ng pag-simulate ng time evolution ng isang hadronic wave packet. Sa kasong ito, maaaring gamitin ang isang register ng mga qubit upang i-encode ang iba't ibang estado ng isang quantum field; ang vacuum state ng field na iyon, o isang wave packet na nagpapakalat sa ibabaw ng vacuum na iyon.

Ngunit sa puntong ito ay nagsalita na tayo nang sapat na abstract tungkol sa hamon sa harap natin. Tingnan natin ang mga halimbawang ito nang detalyado.

Mga halimbawa ng mapping

Max-Cut

Magsimula tayo sa ating unang halimbawa. Isa sa mga pinaka-straightforward na mapping problem ay ang isa na ating nasalipanan na nang malalalim: ang Max-Cut na halimbawa. Sa problemang iyon ang mapping ay medyo madali para sa atin dahil ang isang qubit ay katumbas ng isang node sa ating graph.

Alalahanin na, upang i-map ang Max-Cut problem, iprinasimple namin ang cost function bilang isang Hamiltonian gamit ang QUBO formulation. Ang Hamiltonian cost function ay isang function na ini-encode ang optimal na solusyon ng problema sa ground state ng Hamiltonian. Upang itayo ang cost Hamiltonian, ginamit namin ang SparsePauliOp class sa Qiskit upang tukuyin ang koneksyon ng ating graph, at tapos na ang mapping stage sa mga quantum operator. At ang quantum circuit ay simpleng ang QAOA ansatz. Para sa refresher, tingnan ang aralin na Utility-scale QAOA, kung saan tinalakay namin ang lahat ng ito nang mas detalyado.

Sa araling iyon, kahit sa 100-qubit, utility-scale na halimbawa, ang graph connectivity ay naaayon na sa topology ng ating superconducting hardware. Kaya hindi na namin kailangang mag-alala kung paano haharapin ang iba't ibang topology. Ngunit hindi palagi ganoon. Kung mayroon kaming mas kumplikado o mas siksik na konektadong graph kaysa sa mga halimbawang na-highlight namin sa ngayon, kakailangan naming mag-implement ng isang serye ng mga SWAP gate upang baguhin ang epektibong koneksyon ng hardware. Ito ay pinamamahalaan sa pangalawang hakbang ng Qiskit patterns, ang transpilation, ngunit dapat itong isaalang-alang kahit sa yugto ng mapping.

Protein folding

Susunod, tuklasin natin ang isang halimbawa na naka-modelo sa papel na pinamagatang "Resource-efficient quantum algorithm for protein folding," na isinulat ng IBM® at mga katuwang sa University of New South Wales.

Kaunting background sa biochemistry: Ang mga protina ay mga macromolecule na binubuo ng mahabang mga chain ng mga amino acid. Ang mga chain na ito ay nagtitiklop sa mga kumplikadong istraktura na gumaganap ng malawak na iba't ibang biological function. Ang pagtukoy sa istruktura ng isang protina sa three-dimensional na espasyo, at ang pag-unawa sa mga relasyon sa pagitan ng istruktura at tungkulin, ay kabilang sa mga pinaka-mapanghamon na problema sa biochemistry ngayon. Ang mga protina ay nagtitiklop sa mga kapaki-pakinabang na istraktura dahil sa mga pakikipag-ugnayan sa pagitan ng mga amino acid. Habang ang isang istruktura ay umiikot at nagtitiklop, ang mga amino acid na malayo sa isa't isa kasama ang chain ay maaaring maging katabi ng isa't isa at maaaring makipag-ugnayan nang malakas.

Upang i-modelo ito sa isang quantum computer, kailangan namin ng isang Hamiltonian na naglalarawan ng lahat ng pakikipag-ugnayang ito sa pagitan ng mga amino acid. Pagkatapos, maaari naming hulaan ang pangwakas na istruktura sa pamamagitan ng paghahanap ng estado na magpapababa ng energy ng ating Hamiltonian. Dito, tututuon tayo sa kung paano maaaring i-model ang mga amino acid chain sa isang quantum computer at kung paano tayo makakakuha ng inter-amino-acid na distansya para sa pagkalkula ng interaction energy. Sa pamamagitan nito, nakalap na tayo ng lahat ng kinakailangang kontribusyon sa Hamiltonian na kinakailangan upang i-simulate ito sa isang quantum computer.

Sa mga tunay na protina, ang mga amino acid ay maaaring sumasakop ng isang continuum ng mga posibleng lokasyon. Gayunpaman, gagamitin natin ang isang pagpapasimple at paghihigpitan ang mga ito gamit ang isang lattice model, kung saan ang bawat amino acid ay sumasakop ng isang punto sa isang grid. Dito, ginamit ng mga may-akda ang isang tetrahedral lattice. Mabilis na tala: dito, ine-encode namin ang direksyon ng mga gilid, hindi ang mga node mismo tulad ng sa Max-Cut problem. Ang bawat qubit ay kumakatawan sa isang posibleng single-step path kasama ang tetrahedral grid. Tandaan na ang mga katabing site ay may label na A o B dahil sa iba't ibang oryentasyon nila sa lattice.

Ang protein chain ay kinakatawan bilang isang serye ng mga palikaw o direksyon sa lattice na ito. Ang bawat palikaw sa pagitan ng mga amino acid ay maaaring nasa isa sa apat na direksyon, naaayon sa mga gilid ng tetrahedron. Ang apat na posibleng palikaw na ito ay naka-encode gamit ang apat na qubit sa mga estado na 0001, 0010, 0100, o 1000.

Amino acid chain on a tetrahedral lattice

Tingnan natin ang isang halimbawa sa figure sa itaas. Ilagay natin ang ating unang amino acid sa puntong may label na "B" na napaligiran ng pula sa ating tetrahedral lattice. Ang direksyon mula sa unang amino acid patungo sa pangalawa ay arbitrary dahil ang sistema ay palaging maaaring i-rotate upang ituro ang gilid na iyon sa anumang direksyon na gusto natin. Kaya, maaari naming ilagay ang ating pangalawang amino acid sa puntong nasa ibaba ng una na may label na "A". Hindi ito masyadong madaling makita, ngunit ang landas mula sa pangalawa patungo sa pangatlo ay arbitrary din. Ang lahat ng tatlong pagpipilian ay magreresulta sa pagkakaroon namin ng dalawang gilid na may anggulo ng humigit-kumulang 109.5 degrees sa pagitan nila. Ang pagpili ng pangalawang gilid na ito ay nagtatakda lamang ng oryentasyon ng ating protina sa espasyo. Kaya, nang walang pagkawala ng generalidad, maaari nating piliin na ang unang dalawang palikaw ay maging 0001 at 0010.

Sa mga pagpapasimpleng ito, ang configuration ng amino acid chain ay ibinibigay ng ekspresyong ito:

(0001)(0010)(q9q10q11q12)(q4N3q4N2q4N1q4N)(0001)(0010)(q_9 q_{10} q_{11} q_{12}) \cdots (q_{4N-3} q_{4N-2} q_{4N-1} q_{4N})

Sa ngayon, in-map na natin ang mga tetrahedron edge sa mga qubit, at ang ating quantum circuit ay magiging isang ansatz. Kailangan na nating isaalang-alang kung paano i-encode ang energy ng problema sa isang Hamiltonian, upang ang ground state nito ay magbigay sa atin ng optimal na folding pattern.

Para sa anumang ibinigay na configuration, magkakaroon ng kasamang energy dahil sa mga pakikipag-ugnayan sa pagitan ng mga amino acid. Ang mga pakikipag-ugnayang ito ay pinakamatipuno kapag ang dalawang amino acid ay malapit sa isa't isa. Malinaw naman, ang mga amino acid na magkakatabi sa backbone ng chain ay palaging makikipag-ugnayan sa isa't isa. Ngunit dahil ang protina ay maaaring umiikot at magtiklop, ang iba pang mga pares ng amino acid ay maaari ring makipag-ugnayan. Ang mga amino acid 10 at 20 ay maaaring maging magkakatabi na site pagkatapos magtiklop ang protina, halimbawa. Kaya, kailangan namin ng formula upang ilarawan ang distansya dd sa pagitan ng mga amino acid ii at jj gamit ang impormasyong naka-encode sa mga configuration qubit. Sa ganitong paraan maaari naming gamitin ang kanilang distansya ng paghihiwalay upang matukoy kung gaano kalakas ang kanilang pakikipag-ugnayan.

Una, ipakilala natin ang isang function na fa(i)f_a(i) na nagpapahiwatig kung ang isang gilid aa ay ginagamit para sa palikaw sa amino acid ii. Dito ang aa ay maaaring mangailangan ng alinman sa apat na posibleng direksyon. Batay sa configuration na sinimulan natin sa itaas, maaari tayong sumulat ng mga function na ito:

f0(i)=q4i3f1(i)=q4i2f2(i)=q4i1f3(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}

Pagkatapos ay maaari tayong tumukoy ng pagkakaiba sa bilang ng mga aa-labeled na palikaw sa A at B lattice mula sa index ii hanggang index jj bilang Δ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}

Bakit gagawin natin ito? Ang sagot ay ang isang palikaw ng aa mula sa lattice site A patungo sa B ay eksaktong kinakansela ng isang palikaw ng aa mula sa lattice site B patungo sa A. Kaya upang malaman ang distansya ng amino acid sa site ii mula sa isa sa site jj, kailangan lang nating hanapin ang pagkakaiba sa pagitan ng mga hakbang na ginawa kasama ang mga aa na gilid mula sa mga A site at B site. Dahil ang mga A at B site ay kinakailangang naghalili sa kahabaan ng protein backbone, ito ay nakuha sa (1)k(-1)^k. Ang parehong argumento ay naaangkop sa lahat ng apat na uri ng gilid. Kaya, ang kabuuang distansya sa pagitan ng mga amino acid sa mga tetrahedral lattice step ay maaaring kalkulahin sa pamamagitan ng ekspresyong ito:

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}

Ngunit paano tayo makakakuha ng Hamiltonian mula sa mahabang equation na ito para sa kabuuang distansya sa pagitan ng mga amino acid? Una, maaari tayong mag-convert mula sa distansya sa mga lattice step patungo sa Euclidean space gamit ang simpleng geometry:

d(i,j)=0rij=0d(i,j)=1rij=1d(i,j)=2rij=2231.63d(i,j)=3rij=1131.91d(i,j)=4rij=432.31d(i,j)=5rij=1932.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}

Pagkatapos, ang mga distansyang ito ay gagamitin sa pagkalkula ng energy ng protein configuration. Depende sa ating mga layunin, maaari tayong magtakda ng cutoff na distansya kung saan itinuturing mong nakikipag-ugnayan ang pares, o maaari kang gumawa ng mas kumplikadong bagay.

Maaaring hindi halata, ngunit tapos na tayo sa mapping stage sa pamamagitan ng paggawa nito. Ang mga estado ng mga qubit ay nagpapahiwatig ng "palikaw" ng protina sa bawat lattice site, at ang koleksyon ng mga palikaw ay nagtatakda ng distansya sa pagitan ng anumang pares ng mga amino acid. Ang mga pares ng iba't ibang uri ng amino acid ay may iba't ibang pakikipag-ugnayan, ang ilan ay kaakit-akit, ang ilan ay nagtatataboy. Kung ginagamit mo ang configuration at mga distansya upang matukoy lamang kung ang mga kilalang pakikipag-ugnayan ng amino acid ay "on" o "off", ang lakas ng mga ito ay naipagawa na at maaaring simpleng hanapin sa isang talahanayan tulad nito:

Binding energies of amino acids

Sa buod, sa halimbawang ito, ang mga qubit ay ginagamit upang markahan ang mga hakbang sa isang landas kasama ang isang lattice, na magkasama, bumubuo ng isang chain ng mga amino acid. Sa pamamagitan ng pag-simulate kung paano sila yumuyuko at nagtitiklop, umaasa tayong makahanap ng mas magandang resulta sa medikal na pananaliksik. Nilaktawan namin kung paano kalkulahin ang ilang mga termino ng Hamiltonian na ito dahil sila ay napaka-tiyak sa problemang ito, habang ang pagtukoy ng mga direksyon sa isang lattice ay maaaring mailapat nang mas malawak. Ngayon kapag mayroon ka nang pangkalahatang Hamiltonian, palagi mong gustong isalid ang mga Pauli operator, na natural sa quantum computer. Iyon ang tatalakayin natin susunod.

Jordan-Wigner transformation

Ngayon tuklasin natin kung paano isalin ang isang sistema ng mga subatomic na particle sa mga Pauli operator.

Ang mga subatomic na particle ay nahahati sa dalawang kategorya – mga boson at fermion. Ang mga boson, tulad ng mga photon o ang Higgs, ay sumusunod sa isang tiyak na hanay ng mga statistical na patakaran. Ang mga fermion, tulad ng mga electron o neutrino, ay sumusunod sa isa pa. Ang pangunahing pagkakaiba sa pagitan nila ay ang mga boson ay pinapayagang sumasakop ng parehong estado – walang limitasyon sa kung gaano karaming boson ang maaaring nasa ground state o anumang excited state. Ang mga fermion, sa kabilang banda, ay makasarili – hinihiling nila na ang bawat solong particle ay may sariling quantum state.

Ang mga boson ay mayroon ding integer spin habang ang mga fermion ay may half-integer spin, tulad ng spin-1/2 na electron, at mas exotic na spin-3/2 na mga particle. Upang ilarawan ang isang sistema ng mga particle, kailangan namin ng paglalarawan ng kanilang energy. Mag-focus tayo sa mga fermion. Maaari tayong magsimula sa isang Hamiltonian na nakasulat sa mga tuntunin ng tinatawag nating c operators. Ang mga ito ay karaniwang mga mathematical object na naaayon sa paglikha o pagwasak ng isang fermion mula sa isang estado sa sistema. Ang mga ito ay madalas na isinulat bilang fif_i^\dagger at fjf_j, kung saan ang fif_i^\dagger ay ang operator na lumilikha ng isang fermion sa estado ii at ang fjf_j ay ang operator na sumisira ng isang fermion sa estado jj.

Ngunit tandaan, ang mga quantum computer ay karaniwang nag-ooperate sa isang qubit basis na may mga tiyak na patakaran para sa pagkatawan ng mga fermionic system; hindi sila likas na gumagawa sa wika ng mga fermionic operator. Upang tulayin ang agwat na ito, kailangan naming i-map ang fermionic notation na ito sa mga Pauli operator, na natural na naaayon sa mga quantum gate.

Mayroong ilang mga ganitong transformation para sa mga fermion. Ang isang karaniwang pagpipilian ay ang Jordan-Wigner transformation. Ang Bravyi-Kitaev at parity mapping ay mas bagong fermionic encoding. Ang mga bosonic operator ay maaaring i-transform sa pamamagitan ng paggamit ng Holstein-Primakoff transformation o direktang pag-map ng mga Fock state sa isang sub-basis ng mga available na bosonic mode, bukod sa iba pang opsyon. Ang iba pang mga encoding ay aktibo ring pinananaliksik. Sa ngayon, tututuon lang tayo sa Jordan-Wigner transform.

Ang Jordan-Wigner transformation ay nagsasangkot ng pag-map ng isang fermion sa maraming qubit. Bakit hindi natin maaaring italaga ang isang qubit upang kumatawan sa bawat electron? Ito ay may kaugnayan sa distinguishability ng mga magkaparehong fermion. Ang mga qubit ay distinguishable at ang mga electron ay hindi. Halimbawa, madali tayong makapag-label at makakakilala ng mga indibidwal na qubit sa anumang device. Ngunit ang indistinguishability ng mga electron ay nangangahulugang hindi natin sila ma-label. Kaya, kailangan talaga nating i-label ang mga operator ayon sa mga occupied orbital, tulad ng 1s, 2p, 2p, atbp., sa halip na mga tiyak na electron. Kaya, ang bawat qubit ay gumaganap ng humigit-kumulang na papel ng isang orbital sa molekula na alinman ay occupied o unoccupied. Ngunit ang paraan kung paano natin ito ginagawa ay medyo mas kumplikado. Ang Jordan-Wigner mapping ay nagtatala ng anti-symmetry at tinitiyak ang tamang statistics ng pangkalahatang fermionic system. Ang Jordan-Wigner mapping ay nagpapahayag ng mga fermionic operator sa mga tuntunin ng mga Pauli operator gamit ang mga relasyong ito:

fj=(k<j(Zk))(Xj+iYj2)fj=(k<j(Zk))(XjiYj2)\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}

Ang Jordan-Wigner mapping ay konseptwal na simple dahil sa one-to-one correspondence sa pagitan ng mga orbital at qubit. Mayroon pang iba pang mga mapping na nagtatamo ng katulad na layunin, kabilang ang parity mapping. Ang pagkalkula ng parity ng isang estado ay nangangailangan ng pagsasaalang-alang ng maraming qubit. Sa parity mapping (at sa ilan pa) ang interpretasyon ng isang qubit na naaayon sa isang orbital ay hindi naaangkop. Ngayon lakad-tayo sa isang simpleng halimbawa. Ipagpalagay na gusto naming kalkulahin ang single qubit interaction na f0f0f_0^\dagger f_0. Nagsisimula tayo sa pamamagitan ng pag-plug in ng ating mga kahulugan para sa creation at annihilation operator.

f0f0=(k<0(Zk)2)(X0+iY02)(X0iY02)=14(X02+iY0X0X0Y0+Y02)=14(2Ii[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}

Ang commutator na [X0,Y0]=2iZ0[X_0, Y_0] = 2i Z_0. Kaya, ang pangwakas na ekspresyon ay nagiging:

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

Kaya, matagumpay naming naisulat muli ang isang fermionic expression sa mga tuntunin ng mga Pauli operator na mauunawaan ng ating quantum computer. Mabilis nating talakayin kung paano natin ipapatupad ang Jordan-Wigner mapping sa Qiskit. Mahalaga ang pag-unawa kung paano gumagana ang mga ganitong uri ng transform, ngunit hindi ito magiging praktikal na manu-manong gawin sa bawat oras – lalo na para sa malalaking sistema. Sa kabutihang palad, pinapadali ito para sa atin ng Qiskit gamit ang SparsePauliOp function.

Sa mataas na antas, ang mga hakbang ay:

  1. Gamitin ang from_list function ng SparsePauliOp upang lumikha ng identity operator na naaayon sa laki ng parameter space na imi-map.
  2. Sumusunod sa kahulugan ng mga creation at destruction operator na ipinakita dati, gamitin ang from_list function ng SparsePauliOp upang tukuyin ang mga XX, YY, ZZ na Pauli operator. Imi-map nito ang mga fermionic creation at annihilation operator sa mga qubit spin operator, ine-encode ang fermionic occupation number sa computation basis ng mga qubit.
  3. I-generate ang nais na Hamiltonian sa Pauli basis sa pamamagitan ng paglalapat ng mga operator sa itaas sa mga orbital ng interes. Ito ay karaniwang naaayon sa paglikha ng isang identity matrix na kumakatawan sa core (non-interacting) na mga orbital at pagkatapos ay ilalapat ang mga creation at annihilation operator sa active space, na may mga timbang na naaayon sa mga partikular ng problema sa kamay.

Ngayon na naiintindihan na natin nang buo ang Jordan-Wigner mapping scheme, tingnan natin ang isang mas kumplikadong halimbawa. Maaari mong matandaan ang papel na pinamagatang "Scalable Circuits for Preparing Ground States on Digital Quantum Computers: The Schwinger Model Vacuum on 100 Qubits" mula sa nakaraang aralin. Hindi na natin tatalakayin ang papel nang detalyado muli — tututuon lang tayo sa Jordan-Wigner mapping, na ginagamit upang ipahayag ang Hamiltonian ng mga lattice site na may LL na mga site para sa Schwinger model sa kawalan ng electric field.

Dito, mas mahirap na tiyakang ituro ang kung ano ang kumakatawan ng isang qubit sa modelong ito dahil ito ay ang koleksyon ng mga qubit na magkasama na gumagawa ng isang bagay na pisikal, sa kasong ito, isang wave packet. Sa halip, maaari mong roughly isipin ang mga qubit bilang mga discretized na piraso ng espasyo. Dito, ang LL ay ang lattice volume kung saan ang bawat elemento (unit cell) ay binubuo ng dalawang qubit. Ang mga fermionic operator na nakita natin sa nakaraang slide ay naglalarawan ng amplitude ng wave function sa isang partikular na site. Kaya, ang ating Hamiltonian ay naglalaman ng mga fermionic creation at annihilation operator na ito. Kaya, ginagamit namin ang Jordan-Wigner transformation upang i-map ang mga operator na ito sa mga Pauli operator.

H=Hm+Hkin+Hel=m2j=02L1[(1)jZj+I]+12j=02L2(σj+σj+1+h.c.)+g22j=02L2(kjQk)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}

kung saan ang σ+\sigma_+ ay ang Pauli operator na X+iYX + iY at ang σ\sigma_{-} ay XiY.X - iY. Kapag mayroon na kaming Hamiltonian na nakasulat sa format na ito, tapos na ang mahirap na bahagi ng mapping stage, at madali na itong masusulat sa isang circuit sa mga Pauli operator.

Konklusyon

Tinalakay natin ang apat na halimbawa kung paano ginagamit ang mga tiyak na mapping technique kamakailan sa larangan ng quantum computing, simula sa pinaka-madali at unti-unting pataas hanggang sa pag-apply ng Jordan-Wigner transformation sa hadron dynamics. Marami sa materyal na ito ay napaka-teknikal, at kung hindi mo pa ito nakita dati, maaaring mukhang nakakatakot. Ngunit nagiging mas madali ito habang mas maraming oras ang ginugugol mo sa pagsasanay – kaya naman ang kursong ito ay tinatawag na Quantum Computing in Practice. Hindi ito isang bagay na maaaring kunin ng sinuman at patakbuhin nang walang anumang paghahanda – nangangailangan ito ng ilang pag-aaral, ilang pagtataka, at malamang na ilang nakaka-frustrate na oras. Ngunit hinihikayat kita na manatili sa diskomfort na iyon at tunay na tuklasin ang mga tanong na lumitaw habang ikaw ay nagpapatuloy. Ito ang tanging paraan upang matuto.