Hunter

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.

Hozzászólások

A témához csak regisztrált és bejelentkezett látogatók szólhatnak hozzá!
Bejelentkezéshez klikk ide
(Regisztráció a fórum nyitóoldalán)
  • Indestructible #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
  • fszrtkvltzttni #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.
  • fszrtkvltzttni #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.
  • kvp #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/
  • prybaby #10
    Hogy van a 'hello world' Quipper nyelven?
  • MasterMason #9
    Már értem, most megvilágosodtam.

    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

  • MasterMason #8
    Semantics of a Quantum Programming

    Ennyit találtam róla.
  • duke #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.
  • MasterMason #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



  • kvp #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.