Kvanttilaskennan perusteiden simulointi Pythonilla
Pantsar, Marjo (2025)
Pantsar, Marjo
2025
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2025102026186
https://urn.fi/URN:NBN:fi:amk-2025102026186
Tiivistelmä
Insinöörityön tavoitteena oli perehtyä kvanttilaskennan perusteisiin ja siihen, kuinka kvanttilaskentaa voidaan simuloida Pythonin avulla. Työssä tarkoituksena oli aluksi kuvata lyhyesti, mutta ymmärrettävästi kvanttilaskennan oleellisimpia peruskäsitteitä. Käsitteiden lisäksi tavoitteena oli selvittää ja kuvata miten kvanttilaskentaa voidaan simuloida Python-ohjelmointikieltä käyttäen ja tarjota käytännön koodiesimerkkejä simuloinnista.
Kvanttilaskennan teoriaa selvitettiin kirjallisuuslähteiden perusteella. Työssä kuvattiin kvanttilaskennan oleellisimpia käsitteitä kuten kubitti, superpositio, lomittuminen, interferenssi sekä listattiin yleisimmät kvanttilaskennassa käytetyt portit. Insinöörityössä selvitettiin myös, mitä kirjastoja ja työkaluja on olemassa kvanttilaskennan simulointia varten.
Työtä varten selvitetyistä työkaluista valittiin IBM:n Qiskit Pythonilla toteutettavaa simulointia varten. Insinöörityössä asennettiin Qiskitin käyttöön tarvittavat ohjelmistot tietokoneelle ja rakennettiin kaksi eri Qiskit-simulointikoodia Jupyter notebook -tiedostoihin. Ensimmäisessä simuloinnissa mallinnettiin superpositiota sekä yksinkertaisen kvanttipiirin rakentamista. Toisena simulaatioesimerkkinä työssä havainnollistettiin salausavainten turvalliseen vaihtoon kuuluvaa BB84-kvanttiavaintenvaihtoprotokollaa.
Esimerkkisimulaatioiden ajojen tulokset vastasivat kvanttilaskennan teorian mukaisia odotettuja tuloksia. Qiskit osoittautui kattavan dokumentaation ja kirjallisuudesta löytyvien useiden esimerkkien ansiosta erittäin helpoksi lähtökohdaksi kvanttilaskennan käsitteisiin ja simulointiin tutustumisessa. Koska kvanttilaskentaan liittyy runsaasti matemaattista teoriaa, simuloinnin käyttäminen teorian havainnollistamiseen osoittautui selkeyttäväksi ja oppimista tukevaksi menetelmäksi.
Kvanttilaskennan teoriaa selvitettiin kirjallisuuslähteiden perusteella. Työssä kuvattiin kvanttilaskennan oleellisimpia käsitteitä kuten kubitti, superpositio, lomittuminen, interferenssi sekä listattiin yleisimmät kvanttilaskennassa käytetyt portit. Insinöörityössä selvitettiin myös, mitä kirjastoja ja työkaluja on olemassa kvanttilaskennan simulointia varten.
Työtä varten selvitetyistä työkaluista valittiin IBM:n Qiskit Pythonilla toteutettavaa simulointia varten. Insinöörityössä asennettiin Qiskitin käyttöön tarvittavat ohjelmistot tietokoneelle ja rakennettiin kaksi eri Qiskit-simulointikoodia Jupyter notebook -tiedostoihin. Ensimmäisessä simuloinnissa mallinnettiin superpositiota sekä yksinkertaisen kvanttipiirin rakentamista. Toisena simulaatioesimerkkinä työssä havainnollistettiin salausavainten turvalliseen vaihtoon kuuluvaa BB84-kvanttiavaintenvaihtoprotokollaa.
Esimerkkisimulaatioiden ajojen tulokset vastasivat kvanttilaskennan teorian mukaisia odotettuja tuloksia. Qiskit osoittautui kattavan dokumentaation ja kirjallisuudesta löytyvien useiden esimerkkien ansiosta erittäin helpoksi lähtökohdaksi kvanttilaskennan käsitteisiin ja simulointiin tutustumisessa. Koska kvanttilaskentaan liittyy runsaasti matemaattista teoriaa, simuloinnin käyttäminen teorian havainnollistamiseen osoittautui selkeyttäväksi ja oppimista tukevaksi menetelmäksi.
