Kvantová superpozícia tigra a medveďa

Tu je obrázok tigra a medveďa, ktorý sa na seba prekrýva. Aj keď existuje veľa spôsobov, ako by sa niekto mohol pokúsiť dosiahnuť tento účinok, použil som dosť exotický spôsob: vytvoril som ich kvantovú superpozíciu na kvantovom počítači.

Predtým, ako sa dostaneme na to, čo sú kvantové počítače, poďme si pripraviť základný náter na tie známe. Normálne počítače sú zostavené z bitov: malé kúsky informácií, ktoré môžu mať hodnotu 0 alebo 1.

Bity je možné kombinovať aj na vytváranie bitových reťazcov, napríklad 0001 alebo 0010. Toto je účinný spôsob, ako zakódovať takmer všetky informácie. Najjednoduchší príklad je ich použitie pre čísla: 1 je 1, 10 je 2, 100 je 4 a tak ďalej pre všetky právomoci 2 a všetko medzi tým.

Kvantové počítače sú namiesto toho vyrobené z qubits. Rovnako ako bity, aj tieto môžu mať hodnoty 0 a 1 a môžeme ich skombinovať, aby sme vytvorili aj reťazce. Ak by sme chceli, mohli by sme ako alternatívny typ bitu použiť iba qubits.

Toto by bola dosť drahá vec, pretože vtáky potrebujú oveľa viac starostlivosti a pozornosti ako bity. Ale pretože IBM ponúka prototypové kvantové procesory zadarmo v cloude, nebudeme musieť platiť náklady my.

Takže napíšme pár vecí s qubits!

Najjednoduchšie je napísať čísla, ale sú trochu nudné. Takže poďme namiesto toho na text. Norma ASCII poskytuje spôsob priraďovania reťazcov písmen, číslic a interpunkcie do reťazcov bitov. To znamená, že môžeme použiť 16-bitové cloudové zariadenie IBM na zakódovanie niektorých emotikonov.

Tu je niekoľko emotikónových bitových reťazcov, ktoré by sme mohli použiť.

;) = 00111011 00101001 8) = 00111000 00101001

Samozrejme nezískavame plné výhody qubits, keď ich používame iba pre emotikony. Nepochádza to z toho, ako kódujeme informácie, ale ako s nimi manipulujeme. Namiesto toho, aby sme sa obmedzovali na štandardné logické brány v srdci bežných počítačov, dokážeme tiež robiť zložitejšie kvantové operácie.

V určitom zmysle tieto operácie môžu dovoliť, aby bol quit 0 aj 1 súčasne: kvantová superpozícia. Kvantové počítače potom môžu použiť tieto superpozície na vytvorenie interferenčných efektov, presne ako vidíme, kedy sa vlny prekrývajú. Tieto efekty sa potom dajú využiť v našich kvantových programoch, čo nám umožňuje nájsť kratšie cesty medzi vstupom a výstupom.

Ak sa však vrátime k rozoberaniu emotikonov, pomocou tejto funkcie môžeme vytvoriť superpozíciu;) a 8).

Keď to urobíme, extrahujeme výstup priamo zo superpozície. Z tohto dôvodu nevidíme žiadnu jemnosť zasahovania. Namiesto toho slúži iba ako generátor náhodných bitových reťazcov pre;) a 8). Tieto náhodné výstupy v kombinácii s Matplotlibom sa potom môžu použiť na vytvorenie obrazu, ktorý predstavuje superpozíciu.

Teraz použijeme ten istý princíp, ale urobme niečo zložitejšie ako len emotikony. Predstavme si fotografie!

Aby sme to dosiahli, musíme dať fotografiám binárne kódovanie. Pre danú množinu binárnych reťazcov priraďujeme každému obrazu určitý obraz. V podstate to znamená, že vezmeme veľa obrazových súborov a dáme im binárne reťazce ako názvy súborov.

Uvedenie autora na https://github.com/decodoku/Quantum_Programming_Tutorial/blob/master/image-superposer/images/Licencia

Rozhodol som sa použiť veľa obrázkov zvierat z Wikimedia Commons. S jednoduchými (ale nie príliš jednoduchými) reťazcami štyroch bitov môžeme mať 16 rôznych obrázkov.

Teraz potrebujeme len vybrať dva obrázky, ktoré sa majú superponovať. Napríklad som išiel na 0010 (medveď) a 0001 (tigr). Po výbere vieme, ktoré bitové reťazce potrebujeme na vytvorenie kvantovej superpozície.

Vytvorenie superpozície vyžaduje, aby sme povedali niektorým qubitom, čo máme robiť. Preto potrebujeme kvantový program. Musíme ho tiež poslať do kvantového procesora, pretože tam žijú qubity. Našťastie žiadna z týchto vecí nie je tak strašidelná, ako znejú!

Väčšina programovania je už pre vás nastavená v notebooku Jupyter. To nastaví úlohu a odošle ju na jedno z kvantových zariadení IBM pomocou kvantovej sady SDK QISKit.

Výsledok by mal ideálne vyplniť dva vybrané výsledky s pravdepodobnosťou 50/50. Ale namiesto spoliehania sa na matematiku predpovedať, čo bude kvantový počítač robiť, v skutočnosti ho donútime urobiť. Program spustíme mnohokrát a výsledky použijeme na odhad pravdepodobností. Tieto sa potom použijú na zmiešanie obrázkov do váženého priemeru, pričom sila každého obrázka je daná pravdepodobnosťou jeho názvu súboru.

Jedinou časťou, ktorá v notebooku chýba, je najdôležitejšia časť: nastavenie superpozície. Toto je kvantové srdce programu a je to časť, ktorú budete musieť zmeniť, ak chcete položiť iný pár obrázkov. Ale nebojte sa, urobil som hru, ktorá vám pomôže.

Režim superpozície obrázkov v tejto hre vám umožní vybrať názvy súborov a viesť vás procesom superponovania.

S týmto som napísal útržok kódu potrebný na vytvorenie môjho tigra a medvedeho superpozície. Potom som použil notebook Jupyter na odoslanie úlohy do skutočného kvantového zariadenia. A nakoniec som dostal obraz.

Polovica tigra a polovica medveďa alebo niekde inde. Kvôli šumu v súčasných kvantových zariadeniach existujú aj mierne stopy iných zvierat. Vyskytujú sa preto, že kvantový počítač občas omylom vyplivuje svoje názvy súborov. Najvýraznejším je nosorožca, ktorého roh možno vidieť tesne nad pravou labkou.

Teraz máte všetko, čo potrebujete na vytvorenie vlastného kvantového umenia. Ak sa vám nepáčia obrázky, ktoré som si vybral, jednoducho nájdite 16 svojich vlastných a namiesto toho im dajte binárne názvy súborov. Ale ak pošlete svoje miláčikovi kvantovú superpozíciu, dajte si pozor na fotobomby spôsobené kvantovým šumom!