Powiedzieć o technologii, że rozwija się w szalonym tempie, to jak nic nie powiedzieć. W informatyce dość znane jest empiryczne prawo Moore'a, który swego czasu stwierdził (lub przynajmniej jemu się to przypisuje), że liczba tranzystorów, z których zbudowane są procesory, zwiększa się dwukrotnie co 18 miesięcy. Dzisiaj już wiemy, że rzeczywistość jest trochę inna, ale i tak takie porównanie działa na wyobraźnię. Jednak postęp technologiczny odbywa się dwutorowo - z jednej strony mamy zwiększanie tego, co już jest, a z drugiej - tworzenie czegoś z nowych materiałów. Tak jest też w informatyce.
Jesteśmy przyzwyczajeni do tego, że komputery mają jakieś bity, elektronikę, układy scalone i tym podobne wynalazki. Ale pewnie większość z nas wie też, że od wielu lat trwają poszukiwania innego sposobu przeprowadzania obliczeń i "napędów" komputerowych. Wśród nich najbardziej obiecujący i najgorącej rozpalający wyobraźnię jest projekt komputera kwantowego. Jednak o ile niejednokrotnie słyszeliśmy ten termin, o tyle nie jestem pewien, czy w równie wielu przypadkach wiemy w ogóle, co kryje się pod pojęciem takiej maszyny i w czym może pomóc. Dlatego przybliżymy sobie dzisiaj podstawowe informacje związane właśnie z komputerami kwantowymi.
Jak działa przechowywanie informacji w "zwykłym" komputerze?
Na początku warto może wyjaśnić lub przypomnieć, na czym polega działanie i z czego wynikają ograniczenia maszyny działającej na tranzystorach. To na nich opierają się praktycznie wszystkie urządzenia, na których to czytacie, pracujecie lub gracie. Na pewno też każdy z Was słyszał dwa słowa: bit oraz bajt. Zacznijmy od tego pierwszego.
Bit to skrót od binary digit, czyli cyfry zapisanej w systemie dwójkowym. Wyobraźmy sobie, że każda informacja (lub jej porcja) jest reprezentowana przez żarówkę i może ona znajdować się w dwóch stanach - zapalona lub zgaszona. Jeśli zapalenie żarówki przyrównamy do "1" (lub wartości "prawdy"), to widzimy już zasadę działania bitów. To właśnie na podstawie "zapalonych" bitów komputer wie, jakie informacje przetwarza, co powinien zrobić, które liczby wziąć do obliczeń itd. To także z tego powodu informatykom tak bliski jest system dwójkowy, a przy szukaniu podzespołów komputerowych ciągle widzimy wartości w rodzaju 16, 32, 64, 128 itd.
Jednak, jak się pewnie domyślacie, 1 bit to dość mało informacji. W ten sposób nie jesteśmy w stanie nawet przechować wieku danej osoby - co najwyżej to, czy jej liczba lat jest większa od X, czy nie. Dlatego bity łączy się ze sobą i w ten sposób tworzy bajty, które są najmniejszą adresowalną (czyli taką, którą możemy wskazać) jednostką informacji pamięci komputerowej. 1 bajt to 8 bitów, co oznacza maksymalnie wartość równą 255. Skąd to wiemy? 8 bitów razem może dać maksymalną liczbę równą 28 - 1
, a więc 255. Pamiętajmy, że liczymy od zera (a więc sytuacji, kiedy wszystkie bity są "zgaszone") - stąd to -1
na końcu. Bajty następnie łączą się w kilobajty, megabajty itd. tworząc już znacznie większe obszary pamięci.
O systemie dwójkowym można opowiedzieć znacznie więcej i pokazać dokładniej, jak liczone są w nim wartości, a następnie konwertowane na "normalny" system dziesiętny, ale w tym artykule chciałem zaznaczyć tylko ogólną koncepcję bitów i bajtów, gdyż zaraz będzie nam to potrzebne do porównania z jednostką informacji wykorzystującą kwanty.
Czym jest kubit i dlaczego pozwala na szybsze obliczenia?
Bity są ograniczające ze względu na to, że musimy mieć ich dużo, aby przetwarzać ogromną masę informacji, co oznacza albo miniaturyzowanie układów, albo ich zwiększenie, a domyślamy się, że mimo wszystko gdzieś jest granica. Dlatego komputery kwantowe wykorzystują jednostkę zwaną kubitem (od ang. quantum bit). Co ciekawe, na pierwszy rzut oka nie różni się ona znacząco od bitu, gdyż także tutaj mamy do czynienia z zerem i jedynką. Natomiast nie jest to tylko 0 lub tylko 1 - to wartości od 0 do 1. A zatem możemy mieć kubit, który w 60% jest zerem, a w 40% - jedynką. Takie "rozwidlenie" wartości z pewnym prawdopodobieństwem nazywamy superpozycją. Czyli tak - kubit może być jednocześnie trochę zerem i trochę jedynką.
Jest to możliwe dzięki mechanice kwantowej, która jednak sama w sobie nie jest tematem tego tekstu. Także z niej pochodzi termin splątania, dzięki któremu komputery kwantowe mają tak duże możliwości. Jeśli jeden kubit może występować we wszystkich stanach jednocześnie, to również dwa kubity (nawet oddalone od siebie o znaczną odległość) mogą występować we wszystkich stanach jednocześnie. Co za tym idzie - dowolna liczba kubitów N może występować jednocześnie w 2n stanach. W takim układzie nie rozpatruje sie już pojedynczych kubitów osobno, tylko są one splątane w jeden rejestr kwantowy oraz traktowane jako całość.
To właśnie ta równoległość jest powodem, dla którego zainteresowanie komputerami kwantowymi przybiera na sile. Jeśli bowiem w tradycyjnym komputerze mielibyśmy rozpatrywać 1024 różne stany w danej przestrzeni możliwych stanów, to jak najbardziej jesteśmy w stanie to zrobić, tylko że musimy je rozpatrywać sekwencyjnie, jeden po drugim. Oczywiście, możemy łączyć komputery ze sobą i tworzyć nawet superkomputery, natomiast to nie zmienia faktu, że w celu sprawdzenia kolejnego stanu, trzeba najpierw skończyć sprawdzać poprzedni. Tymczasem w komputerach kwantowych możemy sprawdzać je jednocześnie. To trochę tak, jakby klasyczny szachista, zastanawiający się nad ruchem i mający cztery możliwe posunięcia, musiał w głowie rozpatrywać je (oraz możliwe konsekwencje) po kolei, a następnie dopiero po prześledzeniu każdego z czterech wariantów wybrać jeden. Z kolei kwantowy szachista mógłby rozważyć wszystkie posunięcia jednocześnie, skracając czas myślenia czterokrotnie. Oczywiście, upraszczam to teraz, ale na tym polega nauka - trochę "oszukujemy" i banalizujemy problem, aby można było go zrozumieć, a następnie dokładany kolejne cegiełki przybliżające ucznia do rzeczywistości.
Co ciekawe, ponieważ wchodzi tutaj zaawansowana probabilistyka (rachunek prawdopodobieństwa), przyjęło się, że działanie algorytmów kwantowych jest przeprowadzane kilkukrotnie, a wyniki są uśredniane. Odpowiednio wiele razy przeprowadzone obliczenia w konsekwencji dają większą pewność wyniku. Nie jest to duża cena - te same problemy, które chcemy rozwiązywać na "kwantówkach", rozwiązywane na klasycznych komputerach i tak wiązałyby się z wprowadzeniem pewnej probabilistyki, jeśli chcielibyśmy dożyć wyświetlenia wyniku.
Do czego mogą być stosowane komputery kwantowe?
Nie da się ukryć, że ta konstrukcja maszyn leży w zainteresowaniu wielu instytucji, także tych naukowych. Omawiane komputery sprawdzą się najlepiej tam, gdzie należy sprawdzić i zasymulować ogromną liczbę możliwości. Wśród nich można wymienić:
- kryptografię (a więc tematy związane z cyberbezpieczeństwem i (de)szyfrowaniem),
- obliczenia bioinformatyczne (np. związane z DNA i białkami), skutkujące stworzeniem lepszych leków,
- symulowanie zjawisk naturalnych,
- symulowanie rozwoju choroby i szukania rozwiązań na nie,
- symulacje finansowe,
- tworzenie planów w logistyce,
- metody uczenia maszynowego dla dużych zbiorów parametrów,
- przesyłanie danych na odległość,
- obsługę gigantycznych baz danych.
A to zapewne tylko garść zastosowań, do których docelowo można wykorzystać komputery kwantowe. Można powiedzieć, iż są to dziedziny, w których przetworzenie ogromnych kombinacji danych zajęłoby nieopłacalnie dużo czasu na tradycyjnych maszynach, nawet superkomputerach w najbardziej zaawansowanych centrach badawczych.
Z tego powodu na ten moment nie mówi się o wykorzystaniu komputerów kwantowych do celów osobistych, aby np. przyspieszyć obsługę dużych arkuszy kalkulacyjnych, montaż wideo lub wyświetlanie grafiki w grach wideo. Tutaj nie chodzi o przyspieszenie obliczeń, które muszą pozostać sekwencyjne - maszyny oparte o kubity nie sprawią, że procesor o taktowaniu 3 GHz nagle osiągnie 300 GHz. Choć trzeba przyznać, że pewnie obszar komputerów osobistych również zostanie zagospodarowany i już trwają ku temu starania.
Jaki jest haczyk w komputerach kwantowych?
Skoro wizja jest taka piękna i komputery kwantowe mogłyby pomóc nauce oraz dużemu biznesowi, to dlaczego to się jeszcze nie dzieje na masową skalę? Tym razem nie chodzi tylko o pieniądze, ale także o ograniczenia techniczne. Pamiętajmy, że nadal jest to mechanika kwantowa - krnąbna, dla wielu niezrozumiała i niedająca się ustabilizować, o czym doskonale wie każdy, kto uważał w szkole na fizyce lub oglądał Hejt Park z prof. Andrzejem Draganem. Tak jest też z komputerami.
Superpozycja nie jest stanem stabilnym. To oznacza, że jakiekolwiek zakłócenia z zewnątrz potrafią całkowicie "rozstroić" urządzenie i w efekcie kubity zachowują się niezwykle chaotycznie. Mówiąc bardziej obrazowo, tradycyjne komputery będą działać poprawnie nawet po lekkim uderzeniu ich w obudowę. W przypadku maszyn kwantowych błędy w obliczeniach mogą wystąpić nawet wtedy, kiedy będziemy mocniej oddychać w odległości kilku metrów od centrum wydarzeń. Dlatego komputery kwantowe muszą działać w ściśle kontrolowanym środowisku, z uwzględnieniem nawet temperatury bliskiej zera bezwzględnego (ok. -273℃, a więc 0 K (kelwinów)).
Kłopotliwe jest też odczytywanie wyników, co w końcu kiedyś musi nastąpić. Z uwagi na to, że samo wyświetlenie rezultatu już jest naruszeniem warunków środowiska, nie będziemy w stanie zaobserwować stanów pośrednich, a jedynie zera i jedynki, czyli klasyczne wartości w systemie dwójkowym. Krótko mówiąc - najmniejsza ingerencja w proces obliczeń może skutkować tzw. dekoherencją kwantową, a więc rozpadem stanu splątania.
Czy komputery kwantowe już istnieją?
Najbardziej precyzyjnie będzie napisać, że istnieją maszyny, które są nazywane komputerami kwantowymi i mają ich właściwości. Niekoniecznie są to stricte komputery kwantowe, na co zwracają uwagę fizycy.
Tym niemniej, za pierwszą tego typu zintegrowaną maszynę do zastosowań komercyjnych uznaje się Quantum System One autorstwa firmy IBM i mieści się ona w Niemczech. Oferuje moc obliczeniową równą 27 kubitom (w niektórych źródłach podawane są 20) i jest możliwy do wynajęcia za skromne 12 000 euro miesięcznie. Nie jest to jedyny taki komputer, gdyż podobne powstały już w innych ośrodkach na świecie.
Oczywiście, w to wszystko włączyło się Google, które jakiś czas temu zaproponowało swój procesor kwantowy Sycamore o mocy 53 kubitów. O mocy tego układu niech świadczy fakt, że ten procesor w 2019 roku pozwolił ukończyć w 200 sekund zadanie, którego czas realizacji w publikacji naukowej w "Nature" był prognozowany na superkomputerach na 10 000 lat.
Natomiast same układy kwantowe były znane już wcześniej, a we wczesnych badaniach swój udział miał nasz rodak - prof. Artur Ekert. W 1995 miały miejsce pierwsze kontrolowane obliczenia kwantowe, w 2001 istniał już komputer kwantowy z 7 kubitami (owoc pracy IBM i Uniwersytetu Stanford), a od 2007 firma D-Wave Systems zaprezentowała kilka koncepcji i działających urządzeń w oparciu o mechanikę kwantową.
Czy można programować na komputery kwantowe?
To, że komputery kwantowe nie są dostępne dla zwykłego śmiertelnika nie oznacza, że nie powstały symulatory oraz technologie umożliwiające programowanie na te futurystyczne maszyny. Jest to ważne, gdyż sposób pisania algorytmów jest już znany, można się go uczyć i przygotowywać na przyszłość, a ze względu na równoległą naturę komputerów kwantowych, należy do tego podchodzić inaczej niż przy klasycznych obliczeniach.
Najbardziej znaną technologią, w której można pisać tego typu programy, jest Qiskit, jednak nie jest jedyną - część z nich oraz początkowe tutoriale można przejrzeć na stronie Full Stack Quantum Computation.
Jakie są inne ścieżki rozwoju komputerów?
Faktem jest, że technologia kwantowa od wielu lat jest najbardziej "gorąca", gdyż jesteśmy najbliżej jej praktycznego wykorzystania. Jednak nie jest jedyna - istnieją komputery DNA, które opierają swoje działanie na reakcjach chemicznych zachodzących pomiędzy rzeczonymi cząsteczkami DNA i właśnie w bioinformatyce wiąże się z nimi największe nadzieje. Istnieje też koncepcja komputera optycznego, który znacznie podniósłby możliwości obliczeniowe, wykorzystując do tego światło. Tym niemniej, to w komputerach kwantowych obecnie upatrywane są największe szansę na duży skok technologiczny w przeprowadzaniu obliczeń.
Podsumowanie
Mimo że technologia pośrednio już istnieje, to nie da się ukryć, że komputery kwantowe są jeszcze w pewnym stopniu pieśnią przyszłości i póki co nie są masowo wykorzystywane komercyjnie. Tym niemniej, tematem warto się interesować - nie tylko z czystej ciekawości, ale też dlatego, że specjaliści, którzy mogliby działać i programować na takie maszyny, za jakiś czas rzeczywiście mogą być potrzebni. Powstają już nawet odpowiednie kierunki na uczelniach wyższych. Podobnie, jak nie wierzono w to, że komputery osobiste PC zagoszczą w każdym domu i znajdą powszechne zastosowanie, tak obecnie podobnie błędnie możemy oceniać inne rodzaje komputerów. A szkoda byłoby przegapić rewolucję technologiczną, która dzieje sie na naszych oczach i którego możemy być częścią, nawet, jeśli na ten moment dzieje się to wszystko bardzo powoli.
Pozdrawiam i dziękuję - Jakub Rojek.
Bibliografia i ciekawe linki
- https://www.gry-online.pl/hardware/na-rynek-trafil-pierwszy-przenosny-komputer-kwantowy-za-niemal-40/ze23afb
- https://nano.komputronik.pl/n/komputer-kwantowy-jak-dziala-ile-kosztuje/
- https://www.komputerswiat.pl/artykuly/redakcyjne/komputery-kwantowe-wyjasniamy-w-prostych-slowach-czym-jest-najbardziej-skomplikowana/e3dd948
- https://www.benchmark.pl/aktualnosci/co-to-jest-komputer-kwantowy-podstawy-wideo.html
- https://dih4.ai/pl/news/38/czym-sa-komputery-kwantowe
- https://www.nexio.pl/blog/komputer-kwantowy/
- https://naukawpolsce.pl/aktualnosci/news,77973,uw-kwantowa-interferencja-pomoze-przetwarzac-duze-zbiory-danych.html
- https://pl.wikipedia.org/wiki/Komputer_kwantowy
- https://naukatolubie.pl/komputer-na-swiatlo/