Kvanttiohjelmointi

Kvanttiohjelmointikielet ovat ohjelmointikieliä , jotka mahdollistavat kvanttialgoritmien  ilmaisemisen korkean tason rakenteilla. Heidän tavoitteenaan ei ole vain luoda työkalu ohjelmoijille, vaan tarjota tutkijoille keino helpottaa kvanttilaskennan toiminnan ymmärtämistä .

Olemassa olevat kvanttiohjelmointikielet: QPL [1] [2] , QCL [3] [4] , Haskellin kaltainen QML [5] , Quipper [6] , Q# [7] , Q [8] , qGCL [8] , cQPL [8] .

Kvanttitietokonesimulaatiokirjastot (kvanttivirtuaalikoneet, Quantum-virtuaalikone ): en:libquantum , qlib .

Ohjelmistokehityksen yksinkertaistaminen kvanttilaskentaa varten

IBM on julkaissut kehittäjän työkalupakin nimeltä Qiskit. Ja ensi vuonna IBM lupaa tarjota työkaluja, joiden avulla ohjelmoijien on helpompi luoda ohjelmistoja, jotka sisältävät sekä kvanttilaskentaa että perinteisiä laskentaelementtejä yhdessä ohjelmassa. Sitten vuodesta 2023 alkaen IBM aikoo tarjota asiakkailleen valmiiksi rakennettujen kvanttialgoritmien kirjastoja, joita ohjelmoijat voivat käyttää yksinkertaisen pilvipohjaisen API : n kautta . Tämä mahdollistaa kvanttitietokoneohjelmistojen kehittämisen kehittäjien jo tuntemilla ohjelmointikielillä ilman tarvetta opetella uutta kieltä. IBM sanoi, että se haluaa yritysohjelmoijien "voivan tutkia kvanttilaskentamalleja itsenäisesti ilman, että heidän tarvitsee ajatella kvanttifysiikkaa". Ja vuoteen 2025 mennessä IBM:n mukaan se pystyy tarjoamaan kvanttilaskentaan työkaluja, joiden avulla ohjelmoijien ei enää tarvitse miettiä mitä kvanttitietokonetta (koska jotkut käyttävät suprajohtimia , toiset fotoneja ja toiset on rakennettu ansoihin) . ioneille ) koodi suoritetaan tai jopa mikä ohjelman osa suoritetaan kvanttijärjestelmässä, ei perinteisessä palvelimessa [9] .

QCL-koodiesimerkki

QCL, Quantum computing Language  on yksi ensimmäisistä kvanttiohjelmointikielen toteutuksista. Lähellä C-kieltä ja klassisia tietotyyppejä. Mahdollistaa klassisen ja kvanttikoodin sekoittamisen yhdessä lähdetiedostossa.

Peruskvanttitietotyyppi on qureg (kvanttirekisteri). Se voidaan esittää kubittien (kvanttibittien) joukkona.

qreg x1[2]; // kahden qubitin kvanttirekisteri x1 qregx2[2]; // kahden qubitin kvanttirekisteri x2 H(x1); // Hadamard-operaatio x1:llä H(x2[1]); // Hadamard-operaatio rekisterin x2 ensimmäisellä qubitillä

Koska qcl-tulkki käyttää qlib-simulaatiokirjastoa, on mahdollista tarkkailla kvanttitietokoneen sisäistä tilaa suorituksen aikana:

qcl> dump  : TILA: 4/32 kvbittiä varattu, 28/32 kubittia vapaana 0,35355 |0> + 0,35355 |1> + 0,35355 |2> + 0,35355 |3> + 0,35355 |8> + 0,35355 |9> + 0,35355 |10> + 0,35355 |11>

Muistiinpanot

  1. Peter Selinger. Tietojenkäsittelytieteen matemaattiset rakenteet . - 2004 Cambridge University Press, 2004. - V. 14, no. 4. - S. 527-586.
  2. Peter Selinger. Kohti kvanttiohjelmointikieltä . Haettu 16. maaliskuuta 2019. Arkistoitu alkuperäisestä 30. huhtikuuta 2016.
  3. Bernhard Omer. QCL-ohjelmointikieli . Haettu 16. maaliskuuta 2019. Arkistoitu alkuperäisestä 8. lokakuuta 2003.
  4. QCL - ohjelmointikieli kvanttitietokoneille . tuwien.ac.at . Haettu 20. heinäkuuta 2017. Arkistoitu alkuperäisestä 8. lokakuuta 2003.
  5. QML: Funktionaalinen kvanttiohjelmointikieli . Haettu: 26. syyskuuta 2007.
  6. Quipper: skaalautuva kvanttiohjelmointikieli Arkistoitu 15. tammikuuta 2018 Wayback Machinessa /PLDI '13 Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation Sivut 333-342
  7. Arkistoitu kopio . Haettu 14. tammikuuta 2018. Arkistoitu alkuperäisestä 14. tammikuuta 2018.
  8. ↑ 1 2 3 Kvanttiohjelmointikieli . Quantiki (6. joulukuuta 2015). Haettu 14. tammikuuta 2018. Arkistoitu alkuperäisestä 22. heinäkuuta 2018.
  9. IBM esitteli suunnitelman kvanttilaskennan ohjelmistojen kehittämisen yksinkertaistamiseksi  (venäjäksi)  ? . ServerNews.ru (8. helmikuuta 2021). Haettu 11. tammikuuta 2022. Arkistoitu alkuperäisestä 22. tammikuuta 2022.

Linkit