Kvanttialgoritmi on algoritmi , joka on suunniteltu toimimaan kvanttitietokoneessa .
Kvanttialgoritmi on klassinen algoritmi, joka määrittää sekvenssin yhtenäisiä operaatioita (portit tai portit) ja ilmoittaa, mille qubiteille ne on suoritettava. Kvanttialgoritmi määritellään joko tällaisten komentojen sanallisen kuvauksen muodossa tai niiden graafisen merkinnän avulla porttijärjestelmän (kvanttiporttitaulukko) muodossa.
Kvanttialgoritmin tulos on todennäköisyys [1] . Algoritmin operaatioiden määrän pienestä kasvusta johtuen voidaan mielivaltaisesti nostaa oikean tuloksen saamisen todennäköisyys yhteen.
Ongelmajoukot, jotka voidaan ratkaista kvanttitietokoneella ja klassisella tietokoneella, ovat samat. Kvanttitietokone ei siis lisää algoritmisesti ratkaistavien ongelmien määrää. Kvanttitietokoneen käyttötarkoitus on, että se voi ratkaista joitakin ongelmia paljon nopeammin kuin mikään klassisista. Tätä varten kvanttialgoritmin on generoitava ja käytettävä kietoutuneet kvanttitilat laskennan aikana (katso Kvanttisuperpositio ja Kvanttikietoutuminen ).
Mikä tahansa kvanttialgoritmilla ratkaistava ongelma voidaan ratkaista myös klassisella tietokoneella laskemalla suoraan eksponentiaalimittaisia unitaarisia matriiseja, jolloin saadaan kvanttitilojen eksplisiittinen muoto. Erityisesti ongelmat, joita ei voida ratkaista klassisilla tietokoneilla (kuten pysäytysongelma ), pysyvät ratkaisemattomina myös kvanttitietokoneissa. Mutta tällainen suora simulointi vaatii eksponentiaalista aikaa, ja siksi on mahdollista nopeuttaa joitain klassisia algoritmeja kvanttitietokoneella [2] .
Kvanttitietokoneen kiihtyvyys ei liity prosessorin kellotaajuuteen. Se perustuu kvanttirinnalleisuuteen. Yksi kvanttilaskennan vaihe tekee paljon enemmän työtä kuin yksi askel klassisessa laskennassa. Olisi kuitenkin virhe rinnastaa kvanttilaskenta rinnakkaiseen klassiseen laskemiseen. Esimerkiksi kvanttitietokone ei pysty ratkaisemaan laskentatehtävää nopeammin kuin missä on deterministisen klassisen laskenta-algoritmin käyntiaika (katso [3] ), kun taas ei-deterministinen klassinen algoritmi ratkaisee sen ajassa . Mutta ei-deterministinen klassinen algoritmi vaatii eksponentiaalista muistiresurssia, eli se ei ole fyysisesti toteutettavissa, kun taas kvanttialgoritmi ei ole ristiriidassa tunnettujen luonnonlakien kanssa.
Kvanttilaskenta on erityinen prosessi. Se käyttää erityistä fyysistä resurssia: kvanttikietoisia tiloja , mikä mahdollistaa joissain tapauksissa uskomattomien hyötyjen saavuttamisen ajassa. Tällaisia tapauksia kutsutaan klassisen laskennan kvanttikiihtyvyydeksi.
Kvanttikiihtyvyyden tapaukset klassisten algoritmien yleisen massan taustalla ovat erittäin harvinaisia (katso [4] ). Tämä ei kuitenkaan vähennä kvanttilaskennan perustavaa laatua olevaa merkitystä, koska ne pystyvät perusteellisesti nopeuttamaan raa'an voiman tehtävien suorittamista.
Kvanttialgoritmien kiihdyttämien ongelmien päätyypit ovat raakavoima-ongelmat. Ne voidaan jakaa 2 pääryhmään:
Tyyppiä 1) edustaa Zalka-Wiesner-algoritmi hiukkasten kvanttijärjestelmien unitaaridynamiikan mallintamiseen lähes reaaliajassa ja lineaarisella muistilla. Tämä algoritmi käyttää kvantti-Fourier-muunnoksen Shor-mallia.
Tyyppi 2) esitetty:
Tyyppi 1) on eniten kiinnostava kvanttitietokoneen lisäsovellusten kannalta.
Kvanttialgoritmien luokittelu voidaan suorittaa algoritmin käyttämien kvanttimuunnosten tyypin mukaan. Yleisesti käytettyjä muunnoksia ovat: en:phase kick-back , vaiheestimointi , en:quantum Fourier-muunnos , en:quantum walk , en:amplitudivahvistus , en:topologinen kvanttikenttäteoria . Kvanttialgoritmit on myös mahdollista ryhmitellä niiden ratkaisemien ongelmien tyypin mukaan. [5]
Sanakirjat ja tietosanakirjat |
---|
Kvanttialgoritmit | |
---|---|
kvanttiinformatiikka | |||||||||
---|---|---|---|---|---|---|---|---|---|
Yleiset käsitteet |
| ||||||||
kvanttiviestintä |
| ||||||||
Kvanttialgoritmit |
| ||||||||
Kvanttikompleksiteoria |
| ||||||||
Kvanttilaskentamallit |
| ||||||||
Epäkoherenssin ehkäisy |
| ||||||||
Fyysiset toteutukset |
|