SG.hu·

Programozási nyelvet kaptak a kvantum számítógépek

A kvantum számítógépek első gyakorlati, magas szintű programozási nyelvének megalkotásával végre elhagyhatja a kvantumprogramozás a sötét középkort.

Bár a mai kvantum számítógépek még nincsenek készen arra, hogy a gyakorlatban is bizonyítsanak, a Quipper nevű nyelv önmagában is segíthet utat mutatni ezeknek a futurisztikus gépeknek a kialakításában, valamint programozásuk könnyebbé tételében. "A kvantumszámításokra szabottan rendelkezik mindazokkal a hasznos jegyekkel, amikkel egy modern klasszikus programozási nyelv" - értékelt Bob Coecke, az Oxford Egyetem szakértője, aki nem vett részt a fejlesztésben.

A kvantum számítógépek egyik legfontosabb tulajdonsága, hogy bitjei, a kubitek egy időben rendelkezhetnek 0 és 1 értékekkel. Ez lehetővé teszi a számítógépnek egyszerre két vagy több számítás elvégzését, ennek a kvantum-párhuzamnak a kiaknázására alkalmas algoritmusokat azonban egyáltalán nem könnyű készíteni, ezért a kvantumprogramozás eddig elég alacsony szinten mozgott, főként a kubiteket vezérlő kvantum logikai kapuk instruálására korlátozódva.

Most azonban Peter Selinger és munkatársai a kanadai Dalhousie Egyetemen jelentős előrelépést éretek el ezen a területen a Quipper, az első magas szintű kvantum programozási nyelv megalkotásával. A Quipper az utasításokat nagyobb koncepciókban fejezi ki és könnyebbé teszi az algoritmusok moduláris úton történő összehozását.

A Quipper egy klasszikus programozási nyelven, a Haskell-en alapul, ami a fizikai alkalmazások programozására specializálódott és jelentősen különbözik a ma általánosan alkalmazott nyelvektől. Selinger csapata gyakorlatilag ezt a lambda-kalkulus alapú nyelvet alakította át a kubiteknek megfelelően, valamint elkészítettek egy Quipper kód-könyvtárat hét létező kvantum algoritmus végrehajtásához. A csapat reményei szerint további algoritmusokat adhatnak ehhez a könyvtárhoz, létrehozva egy készletet, ami lehetővé teszi a kvantum programozóknak, hogy modulok összeillesztésével építhessék fel szoftvereiket, mint azt a klasszikus programozók teszik például a Java-val. "Egy jól megtervezett programozási nyelv segít gondolkozásunk strukturálásában és információkat ad egy problémáról" - mondta Selinger. "Az új kvantum algoritmusok tervezésének hasznos eszközévé válhat"

"Az emberek a Quipper-hez hasonló nyelveket felhasználhatják a kvantum szoftver írásával kapcsolatos ötleteik és ismereteik teszteléséhez" - nyilatkozott Thorsten Altenkirch, a Nottingham Egyetem kutatója a New Scientistnek, hozzátéve, hogy különösnek tűnhet egy programozási nyelv megalkotása egy olyan gyermekcipőben járó hardver számára, mint a kvantum számítógép, a szoftver azonban ebben az esetben hatással lehet a jövő kvantum számítógépeinek fejlesztésére is.

A Quipper megalkotását az Egyesült Államok Hírszerzési Fejlett Kutatási Projektek Ügynöksége, az IARPA finanszírozta, hogy megállapítsák, mennyi kubitre lenne szüksége egy kvantum számítógépnek a klasszikus hardver felülmúlására adott feladatokban. Egy magas szintű programozási nyelven, esetünkben a Quipper-ben megírt programok egyértelműbbé teszik egy algoritmus hardver követelményeit, ami máris több meglepetést okozott. "Sokkal több erőforrásra lesz szükség, mint gondolták" - mondta Selinger, aki azonban nem beszélhetett a pontos eredményekről.

Várakozása szerint a műszaki tudományok fejlődésével, például a zaj csökkentésével egy gyakorlati kvantum számítógéphez szükséges kubitek száma idővel csökkenni fog.

Kapcsolódó cikkek és linkek

Hozzászólások

Jelentkezz be a hozzászóláshoz.

© Indestructible2013. 07. 18.. 21:41||#14
hol lehet ezekrõl a fogalmakról laikusoknak, olvasmányosan, élvezetesen olvasni? (klasszikus programozási nyelv; lineáris-algebra könyvtár; standard oszlopfolytonos formában várja a mátrixokat;
elagazasokat kezelni vagy ciklusokat futtatni; mai neumann szamitogepek matematikai egysegeinek megfelelo funkciora kepesek.;
elagazasi egyseg, a program memoria es meg par komponens; )

kösz
© fszrtkvltzttni2013. 07. 08.. 01:51||#13
Tudtommal elvileg ki lehetne alakitani a hagyományos logikai kapukat is, és lehetne belõle hagyományos általános számitogépet késziteni, csak nincs értelme, mert ezekre a feladatokra semmivel nem jobb mint a hagyományos számitógép, vagy nevezzük eredeti nevén: univerzális automata.
© fszrtkvltzttni2013. 07. 08.. 01:44||#12
Úgy, hogy jól meghatározott valószinûséggel vehet fel értékeket, és ezek a valószinûségek változnak minden lépésnél. N qbit esetén 2 az n-ediken különbözõ állapot van, mindnek jól meghatározott súlya, és ezek mind változnak egy n qubites mûveletnél. A végén pedig a mérésnél ezen statisztikai súlyok alapján kapsz valamit eredményként.
© kvp2013. 07. 08.. 00:44||#11
Ha jol latom a doksibol, akkor:

main :: IO ()

Viszont tovabbra is igaz, hogy ez a nyelv nem csak magat a kvantum szamitogepet programozza, hanem a hagyomanyos neumann elvu segedaramkoroket is, amik a tenyleges i/o-t vegzik. Maga a kavntum szamitogep bekapcsolasonkent csak 1 kiertekelest tud vegezni, ami egyetlen kvantum fuggveny kiszamitasa. A bemeneti valtozokat es az eredmenyt egy hagyomanyos gep kezeli. Tehat a tenyleges kvantum gep csak egyetlen alu-kent viselkedik egy sima neumann rendszeru gepben. Ez max. kvantum szamologep, de onallo szamitogepnek meg nem nevezheto.

Szamomra sokkal egyszerubb lenne c-ben programozni es csak a bemeneti es kimeneti matrixokat definialni, majd meghivni a kvantum egyseget egyetlen c-s fuggvennyel (run_generic_io). Gyakorlatilag quipper-ben is ez tortenik, csak egy kisse szokatlan nyelven, de ennek pusztan akademiai okai vannak. (a keszitoje szorakozasbol talal ki uj nyelveket, meg jokat lehet rola publikalni)

ps: http://www.mathstat.dal.ca/~selinger/quipper/
+1-1
© prybaby2013. 07. 07.. 19:00||#10
Hogy van a 'hello world' Quipper nyelven?
© MasterMason2013. 07. 07.. 07:18||#9
Már értem, most megvilágosodtam. <#nezze>

A <: B
∆, x : A ⊲ x : B
(ax 1)
!Ac <: B
∆ ⊲ c : B
(ax 2)
∆ ⊲ M : !
n
A
∆ ⊲ inj
l
(M) : !
n
(A ⊕ B)
(⊕.I1)
∆ ⊲ N : !
n
B
∆ ⊲ inj
r
(N) : !
n
(A ⊕ B)
(⊕.I2)
!∆, Γ1 ⊲ P : !
n
(A ⊕ B)
!∆, Γ2, x : !
n
A ⊲ M : C
!∆, Γ2, y : !
n
B ⊲ N : C
Γ1, Γ2, !∆ ⊲ match P with (x 7→ M | y 7→ N) : C
(⊕.E)
Γ1, !∆ ⊲ M : A⊸ B Γ2, !∆ ⊲ N : A
Γ1, Γ2, !∆ ⊲ MN : B
(app)
x : A,∆ ⊲ M : B
∆ ⊲ λx.M : A⊸ B
(λ1)
If F V (M) ∩ |Γ| = ∅:
Γ, !∆, x : A ⊲ M : B
Γ, !∆ ⊲ λx.M : !
n+1
(A ⊸ B)
(λ2)
!∆, Γ1 ⊲ M1 : !
n
A1 !∆, Γ2 ⊲ M2 : !
n
A2
!∆, Γ1, Γ2 ⊲ hM1, M2i : !
n
(A1 ⊗ A2)
(⊗.I)
∆ ⊲ ∗ : !
n

(⊤)
!∆, Γ1 ⊲ M : !
n
(A1 ⊗ A2) !∆, Γ2, x1:!
n
A1, x2:!
n
A2 ⊲ N : A
!∆, Γ1, Γ2 ⊲ let hx1, x2i = M in N : A
(⊗.E)
!∆, f : !(A ⊸ B), x : A ⊲ M : B !∆, Γ, f : !(A⊸ B) ⊲ N : C
!∆, Γ ⊲ let rec f x = M in N : C

<#banplz>
© MasterMason2013. 07. 07.. 07:07||#8
Semantics of a Quantum Programming

Ennyit találtam róla.
© duke2013. 07. 07.. 02:50||#7
" a kubitek egy idõben rendelkezhetnek 0 és 1 értékekkel. "

Elkepzelni sem tudom, hogy lehet egy olyan processzort programozni, aminek mondjuk egy regisztere barmikor barmilyen erteket felvehet. Hogy lehetne mar ettol barmilyen tervezett, ertelmes eredmenyt varni.
© MasterMason2013. 07. 06.. 23:11||#6
Hiába rendelkeznek a kubitek egy idõben 0 és 1 értékekkel, az önmagában olyan mint halottnak a csók, ugyanis a kubitek számával exponenciálisan nõ az értékeinek meghatározása és olyan számítási teljesítményt fog igényelni, hogy egy kvantum számítógép mûködtetéséhez egy másik kvantum számítógépre lesz szükség. :D

Ezért írták, hogy meglepõen számítás és erõforrás igényes a dolog :P



+1
© kvp2013. 07. 06.. 17:01||#5
A jelenlegi kvantum szamitogepek nem tudnak elagazasokat kezelni vagy ciklusokat futtatni. csak egyetlen jo bonyolult fuggvenyt kiertekelni. Azaz a mai neumann szamitogepek matematikai egysegeinek megfelelo funkciora kepesek. Viszony hianyzik beloluk az elagazasi egyseg, a program memoria es meg par komponens. Ebbol meg nem lesz rendes szamitogep, de matematikai szamitasokra mar talan jo. Ezeknek a definialasat konnyiti meg a mostani uj 'nyelv', ami egyebkent csak egy fuggveny konyvtar. Mondjuk egy funkcionalis nyelv eseten ez nem gond.
-1