HTML

Az élet kódjai

Csináld maga. Senki nem csinálja meg helyetted.

Friss topikok

Kódolom a kvantumszámítógépet

2022.12.14. 00:17 Travis.CG

Azért még mindig menőnek hangzik a legtöbb dolog, ha beletesszük a kvantum-izét, ezért nem is tudtam ellenállni a lehetőségnek, amikor a Wigner Jenő Központban meghírdettek egy kurzust, ahol kvantumszámítógépek programozását lehetett megismerni.

Milyen kvantumszámítógépet programozni? Az egész olyan, mint a régi viccben: Tudod, milyen a ló? Hát ez egyáltalán nem olyan. A kvantumszámítógép egyáltalán nem olyan, mint a hagyományos gépek, és egyáltalán nem olyan problémákra lehet használni, mint a hagyományos számítógépeket. (Bár van matematikai levezetés, amit azt bizonyítja, hogy a kvantumszámítógéppel minden olyan feladatot meg lehet oldani, amit hagyományos számítógéppel.)

Mivel még csak most kapargatom ezeknek az ismereteknek a felszínét, ezért az itt leírtakat tekintsétek még nagyobb fenntartással, mint az összes többit, amit eddig írtam.

Míg a hagyományos számítástechnika nagyon eltávolodott magától az elektronikus gépek működésétől, ezért manapság egy program tervezése során nyugodtan lehet gondolkodni egy magasabb absztrakciós szinten, nem kell azon agyalni, a tranzisztor milyen áramot enged át.

Mivel a kvantumszámítógépek még eléggé gyerek cipőben járnak, ezért ott ez a luxus nem adatik meg. Pontosan érteni kell, mi történik a kubitek szintjén, hogy értelmes kódot tudjunk írni. A kód, amit írunk, a kubitek kapcsolását adja meg. Valahogy úgy, mint az ENIAC-nál, ahol huzalozással programoztak. Annak idején konkrétan össze kellett kötni az elektronikus alkatrészeket. A kvantumszámítógépeknél is összekötjük őket, csak már nem kézzel, hanem egy Python kóddal. Szóval senki ne számítson arra, hogy Doom-ot portol rá a közeljövőben.

Mivel Python kóddal csak kapcsolásokat készítünk, ezért a végeredményt elég jól lehet emulálni hagyományos számítógépeken is (kevés kubit esetén az eredmény még gyorsabb is lesz, hahaha). Kérdezték is a kurzus során, honnan lehet tudni, hogy valódi kvantumszámítógépen fut-e a kódunk?

Onnan, hogy ezek a fránya kvantumszámítógépek nem általlanak zajosak lenni. Jön egy napkitörés, és azt sem tudja mennyi 2+2, sőt, minél több kubitet kapcsolunk össze, azok egymást is zavarni fogják.

Felmerülhet a kérdés, hogy ha még csak logikai elemeket kell összeilleszteni, akkor hogyan lehet hatékonyabb egy kvantumszámítógép? Nos, mindenben nem hatékonyabb. Viszont van néhány olyan terület, ahol jobb lehet. Az egyik terület a kriptográfia, a másik a mesterséges intelligencia. (A különböző fizikai szimulációkat most hagyjuk, mert az csak az emberek egy szűkebb körét érdekli csak.)

Ennek több oka van, de ami számomra a legérdekesebb, hogy a kubitek artimetikai műveletei között szerepel az állapotok valószínűsége is, emiatt a kubit aritmetika közelebb áll a mátrix műveletekhez, mint a hagyományos bitműveletekhez.

A gyakorlati feladatok között volt egy lineáris regressziós példa, ami bár nem volt szerencsés olyan tekintetben, hogy semmi használható eredményt nem adott (az előadó szerint nem megfelelő optimalizációt választott ), viszont remekül demonstrálta, hogy pár kubittel mindez véghezvihető!

Oké, de mindez hogyan néz ki a gyakorlatban?

Kvantumgép gyanánt az IBM ingyen elérhető felületét használtuk. Ez egy Jupyter Notebook-szerű felület, Python nyelven. A modul, amit használtunk a Qiskit. Mint említettem, a kvantumszámítógépet lehet emulálni, tehát bárki otthon is kipróbálhatja a kódokat.

A rendszer alapja a QuantumCircuit modul, amivel elkészíthejük a kubitek huzalozását. Ha összeállítottuk, amit szerettünk volna, akkor azt el kell küldenünk egy rendszernek az execute() utasítással, ami lefuttatja azt, hasonlóan egy job ütemezőhöz. Sőt, ez maga egy job ütemező, mert ha valódi kvantumszámítógépnek küldjük el a kódot, akkor egy várakozási sorba kerül, majd egy idő után lefut.

Ha már profik vagyunk a huzalozásban, akkor továbbléphetünk, mert vannak magasabb szintű modulok, ahol előre összeállított konfigurációkat is használhatunk.

Az a baj, hogy értelmes dologra nem használható, ezért olyan példát sem tudok adni, amit teljesen értenék. Értelmes alatt azt értem, hogy olyan problémára, ami egy átlagos programozót érdekelhet. Ez inkább csak amolyan érdekesség. Még. De idővel ez is biztosan olyan lesz, mint a mikróhullámú sütő.

Szólj hozzá!

Címkék: programozás

A bejegyzés trackback címe:

https://cybernetic.blog.hu/api/trackback/id/tr7217981400

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása