Jak samodzielnie wypróbować komputer kwantowy? Możesz to zrobić dzięki IBM Quantum
Pojęcie kwantowego komputera, podobnie jak przez wiele lat pojęcie mechaniki kwantowej, jest ostatnio rozpowszechniane przez popkulturę. Pojawiają się mniej lub bardziej udane portrety tego urządzenia w filmach, serialach oraz książkach.
Dla przykładu, w mającym niedawno premierę serialu HBO Devs widzimy grupę programistów pracujących nad czymś, co nazywają komputerem kwantowym - jednak w rzeczywistości urządzenie ukazane w serialu jest bliższe koncepcji tzw. demona Laplace’a.
Demon Laplace’a to fikcyjna istota lub urządzenie, które jest w stanie przewidzieć przyszłość i poznać przeszłość, ponieważ dysponuje wiedzą o wszystkich cząstkach elementarnych Wszechświata, ich położeniu, zwrocie i działających na nie siłach. W newtonowskiej wizji świata to wystarczyło, aby wiedzieć wszystko o całym Wszechświecie. Niestety, poznana później zasada nieoznaczoności mówi, że nie jesteśmy w stanie poznać dokładnie stanu cząstki bez wpływania na jej stan.
Mimo to Devs to ciekawy serial, pokazujący intrygujące paradoksy związane z wolną wolą i poznawaniem przyszłości, choć większość informacji o kwantowych komputerach w nim zawartej jest nieścisła.
Trochę historii
Aby zrozumieć istotę komputera kwantowego, musimy cofnąć się do lat 40., kiedy to amerykański matematyk i inżynier Claude E. Shannon (tak, to ten od algorytmu kompresji bezstratnej), stworzył zaczątki teorii informacji. To od niego pochodzi pojęcie najmniejszej jednostki informacji, czyli bitu oraz analiza jakości informacji i jej entropii.
I tutaj w całej historii pojawia się polski wątek. Teoria Shannona zainspirowała polskiego fizyka Romana Stanisława Ingardena (powszechnie zresztą mylonego w angielskojęzycznych źródłach ze swoim ojcem Romanem Witoldem - przedwojennym filozofem). Ingarden w 1976 roku opublikował na łamach czasopisma Reports on Mathematical Physics swoją pracę pt. Quantum information theory. To właśnie tam narodziła się kwantowa teoria informacji. Ingarden w swoim artykule wskazuje, że teoria informacji Shannona jest jedną z możliwych teorii, z ogólniejszą teorią kwantową.
W 1980 r. amerykański fizyk Paul Benioff opisuje, jak mógłby wyglądać teoretyczny komputer kwantowy, który później rozwinie w odpowiednik kwantowej maszyny Turinga.
Do stworzenia pierwszej prawdziwej implementacji komputera kwantowego pozostawała jeszcze długa droga - pierwszy dwukubitowy komputer został zaprezentowany w 1998 r.
To o co właściwie chodzi z tym komputerem kwantowym?
Teoria mechaniki kwantowej opisuje, jak funkcjonuje nasz świat na najbardziej podstawowym poziomie – protonów, elektronów i innych cząstek elementarnych. Najbardziej obiecującą implementacją tej teorii jest właśnie komputer kwantowy.
Jak komputer kwantowy różni się od komputera klasycznego?
Klasyczny komputer koduje informacje w bitach, gdzie każdy bit może reprezentować jeden z dwóch stanów: może to być np. prawda lub fałsz, ale najczęściej reprezentuje cyfrę binarną 0 lub 1. Bity działają jak przełączniki, kodujące informacje, realizujące różne funkcje. Dla przykładu w standardzie ASCII znak ‘A’ jest zakodowany jako 8 bitów: 01000001.
W odróżnieniu od bitów klasycznych komputer kwantowy posiada bity kwantowe, czyli kubity (ang. qubits). Istota ich działania polega na tym, że korzystają one z unikalnych własności mikroskopijnego świata kwantowego: superpozycji (ang. superposition) i stanu splątanego (ang. entanglement). Dzięki temu:
- kubit może przyjąć stan ‘0’, stan ‘1’ lub stan superpozycji będący jednocześnie ‘0’ i ‘1’,
- kubity mogą pozostać splątane z innymi, dzięki czemu jesteśmy w stanie - pomimo braku informacji o ich stanie - poznać wartość o stanie całego układu (czyli splątanych kubitów).
Jak te pojęcia przekładają się na rozwiązywanie problemów przez komputery?
Wyobraźmy sobie proste zadanie: w talii czterech kart mamy 3 walety i jedną damę. Zadaniem algorytmu jest znalezienie damy. Klasyczny komputer rozwiązuje ten problem przez odkrywanie kolejnych kart i dochodzi do rozwiązania w jednym, dwóch, trzech lub czterech krokach. Wyjątkowość działania komputera kwantowego polega na tym, że rozwiązuje on ten problem zawsze w jednym kroku. W przypadku talii składającej się z 1000 kart (999 waletów i jedna dama) komputer kwantowy również rozwiąże ten problem w jednym kroku, podczas gdy klasycznemu komputerowi odkrycie Damy może zająć w najgorszym razie nawet 1000 kroków.
Na tym prostym przykładzie widać, że nie chodzi tu po prostu o budowanie szybszych komputerów. Komputery kwantowe przedstawiają sobą fundamentalnie inne podejście do rozwiązywania problemów obliczeniowych. Dlatego też przemysł klasycznych komputerów nie powinien czuć się w żaden sposób zagrożony, komputery kwantowe dokonujące swoich superszybkich obliczeń będą bardzo zależne od komputerów klasycznych.
Chcesz pobawić się komputerem kwantowym? Oto narzędzia dla ciebie
IBM oferuje inżynierom i naukowcom dwa darmowe narzędzia do szybkiego wejścia w świat obliczeń kwantowych.
Pierwszym jest platforma Quantum Experience. Platforma oferuje możliwość skorzystania z prawdziwych komputerów kwantowych (tych znajdujących się w lodówce w temperaturze -273,135 stopni Celsjusza). Na tej stronie poznamy przede wszystkim podstawy, jest tam też wciągający samouczek prezentujący kwantowe bramki, operacje i pomiary, które są możliwe na komputerze IBM Quantum. Dostępna jest też przystępna dokumentacja, z której możemy poznać model matematyczny wykorzystywany w obliczeniach kwantowych. Następnie możemy tworzyć swoje własne programy, korzystając bardzo przyjaznego interfejsu graficznego lub z języka OpenQASM.
Drugim ważnym narzędziem, wspieranym przez IBM, jest biblioteka Qiskit, w której budujemy modele kwantowe za pomocą języka Python. Można też korzystać z plików notatników w standardzie Jupyter Notebook. Qiskit bardzo szybko się rozwija, w oparciu o tę bibliotekę powstają kwantowe gry, naukowe opracowania dotyczące kwantowych komputerów, a także zastosowania IBM Quantum w biznesie.
Pisząc programy za pomocą Qiskit mamy dwie opcje do wyboru: możemy uruchamiać nasze modele na symulatorze komputera kwantowego na laptopie, ale też możemy wysyłać kod pythonowy do wykonania na rzeczywistym komputerze kwantowym na platformie Quantum Experience.
Qiskit zawiera mnóstwo gotowych rozwiązań, które możemy je podejrzeć, żeby się zainspirować i rozpocząć poważniejszy projekt. Możemy zajrzeć do na przykład do modułu Qiskit-aqua i przeanalizować proste przykłady rozwiązań w obszarach chemii, finansów, machine learning i optymalizacji.
Dla osób, którym odpowiada bardziej interaktywny tryb poznawania danej technologii, jest dostępna seria tutoriali na YouTubie:
Co nam może dać komputer kwantowy?
Komputer kwantowy może pomóc nam w rozwiązaniu problemów, w których złożoność rośnie w tempie wykładniczym. Klasycznym przykładem jest tu problem optymalizacji. Złożoność obliczeniowa takiego problemu szybko rośnie i staje się trudna do okiełznania dla klasycznego komputera.
Prosty przykład problemu optymalizacji? Wyobraźmy sobie wszystkie możliwości posadzenia dziesięciu osób przy jednym stole. Wydaje się, że 10 to mała liczba, ale wszystkie konfiguracje w tym przypadku to 10! (silnia liczby 10), czyli 3 628 800 konfiguracji, w każdej z nich goście będą posadzeni w inny sposób.
Komputery kwantowe mogą się przydać w przeprowadzeniu dokładnych symulacji w dziedzinie chemii, gdzie używając klasycznych komputerów jesteśmy w stanie symulować jedynie bardzo małe molekuły i w konsekwencji jesteśmy zdani na mniej dokładne techniki.
Jak widać, komputer kwantowy ma potencjał do rozwiązania części problemów NP (niedeterministycznie wielomianowych) i sama obietnica ich rozwiązania w przyszłości powoduje olbrzymie inwestycje w tym obszarze.
Gdzie w praktyce znajdujemy problemy NP? Dlaczego ich rozwiązanie jest dla nas takie ważne?
Problemy trudne do rozwiązania tradycyjnymi metodami za pomocą klasycznego komputera, można znaleźć w każdej dziedzinie życia. Jako przykład weźmy grę w szachy. Komputery klasyczne osiągnęły tu już bardzo dużo. Upowszechnione w latach 90 programy do gry w szachy na komputerach PC doprowadziły do dramatycznego wzrostu ilości mistrzów szachowych na całym świecie. A jednak złożoność tej gry jest na tyle duża, że nie możemy powiedzieć, że wiemy o niej wszystko. Dla przykładu, biorąc pod uwagę konkretną partię, nie jesteśmy w stanie odpowiedzieć na pytanie, czy ruch, który chcemy wykonać jest najlepszym możliwym ruchem. Komputer klasyczny musiałby rozegrać wszystkie możliwe konfiguracje gry zaczynając od zadanego miejsca, a następnie porównać ich wyniki, aby to ustalić. Komputer kwantowy może zmienić to podejście.
W ten sam sposób możemy podejść do obszarów klimatu, giełdy, ekonomii, tworzenia nowych materiałów, do problemu rozprzestrzeniania się wirusów lub wydajnego szukania najskuteczniejszych szczepionek. Obecnie na świecie stawiamy czoła wielu problemom, gdzie do tej pory byliśmy zdani na szacowanie wyniku, bądź w ogóle nie znaliśmy odpowiedzi. Komputery kwantowe mogą tu przyjść z konkretnymi wynikami.
Komputery kwantowe to już teraźniejszość
Działające komputery kwantowe są na wyciągnięcie ręki. W jaki sposób? Dzięki usługom kwantowym w chmurze, które IBM udostępnia za darmo.
Do naszej dyspozycji pozostaje np. 15 kubitowy komputer w Melbourne, czy pięciokubitowe maszyny znajdujące się w Rzymie, Londynie czy Essex. Możemy też przeprowadzić testy naszego rozwiązania na symulatorze o pojemności do 32 kubitów.
IBM w kwestii komputerów kwantowych rozwinął swoją unikalną technologię i w wielu obszarach dość mocno wyprzedził konkurencję. IBM oferuje komputer kwantowy ‘in a box’, czyli w postaci dość tradycyjnie wyglądającego serwera. IBM Quantum System One to pierwszy komercyjny komputer kwantowy o pojemności 52 kubitów.
Wracając do platformy IBM Quantum Experience, prezentujemy przykład, jak zabrać się do napisania kwantowego ‘hello word’. Po zarejestrowaniu się w IBM Quantum, kierujemy się pod adres https://quantum-computing.ibm.com/
Z bocznego menu wybieramy Curcuit composer, czyli editor obwodów.
Na górze po prawej stronie okna widzimy dostępne bramki. Są to odpowiedniki tradycyjnych bramek logicznych w formie ich kwantowej wersji. Wstawmy bramkę X - negującą wartość kubita (czyli zamieniającą 0 na 1 i odwrotnie). Pełna nazwa bramki: Bramka X Pauliego.
Następnie zakończmy ten prosty przebieg bramką pomiaru. Jest to nieodwracalny proces ustalenia prawdopodobieństwa stanów kubitów. Obwód czytamy od lewej do prawej - na początku mamy ustalenie wartości kubita (0), później negację za pomocą bramki X Pauliego, a na końcu pomiar stanu.
Jesteśmy gotowi do uruchomienia naszego prostego eksperymentu. Wybieramy uruchomienie na prawdziwym 16 kubitowym komputerze kwantowym w Melbourne. Wybieramy 1024 uruchomienia w celu ustalenia prawdopodobieństw. Następnie klikamy Run.
Po kilku lub kilkunastu minutach czekania, zależnie od obciążenia komputera, który wybraliśmy, możemy obejrzeć wyniki.
Jak widać, otrzymaliśmy to, czego się spodziewaliśmy - większość pomiarów wskazuje na negację początkowego zera, czyli wartość 1.
Sam eksperyment nie jest może wyjątkowo imponujący - ale sam fakt, że uruchomiliśmy go na prawdziwym komputerze kwantowym, jest dość niesamowity. Do niedawna dostęp do takich technologii mieli naukowcy pracujący na uczelniach - dziś, dzięki rejestracji na IBM Quantum Experience, możemy popróbować obliczeń na komputerze kwantowym samodzielnie.