Future of Wireless Systems
  • Home
  • O konferencji
  • Poprzednie edycje
    • Edycja 2021
    • Edycje 2010-2017
  • Kontakt
  • Partnerzy
  • Blog
    • Telekomunikacja
    • Informatyka kwantowa – KN Qubit

Wstęp

Spis treści

  • Wstęp
  • przedstawienie platform do uruchamiania algorytmów kwantowych
    • IBM quantum experience
    • Rigetti
    • Microsoft
    • Google Quantum AI
    • Xanadu Quantum Computing
    • Podsumowanie
  • Uruchomienie przykładowego algorytmu kwantowego na komputerze kwantowym
    • Autorzy

Z poniższego artykułu dowiesz się z jakich platform można korzystać, by uruchomić algorytmy kwantowe. Artykuł został opracowany przez działaczy KN Qubit.

przedstawienie platform do uruchamiania algorytmów kwantowych

     Praktycznie wszystkie firmy zajmujące się informatyką kwantową udostępniają na swoich portalach materiały do nauki oraz poradniki o tym, jak korzystać z udostępnionych przez nie narzędzi- czyli najczęściej bibliotek do tworzenia algorytmów kwantowych oraz interakcji z komputerami kwantowymi. W poniższym artykule opiszę niektóre z nich.

IBM quantum experience

Na stronie IBM Quantum Experience znajdują się poradniki uczące zagadnień dotyczącej informatyki kwantowej oraz komputerów kwantowych. Można stworzyć również własny układ metodą wizualizacji. IBM stworzyło framework Qiskit napisany w języku Python, który zawiera w sobie biblioteki do programowania niskopoziomowego komputerów kwantowych (qiskit terra), nauczania maszynowego, kwantowej chemii, finansów, problemów optymalizacyjnych (qiskit aqua), oraz korekcji błędów (qiskit ignis). Firma IBM sama konstruuje komputery kwantowe, do których można się połączyć za pomocą biblioteki qiskit aer. W dokumentacji Qiskit oprócz jej technicznej części można znaleźć wiele szczegółowych poradników, o tym jak działają poszczególne algorytmy kwantowe np. algorytm Grovera lub VQE wraz z implementacją.

 

Rigetti

Rigetti to kolejna firma tworząca kwantowe układy scalone. Do interakcji z komputerami kwantowymi używa opracowanego przez siebie języka Quil, do którego jest dostępne API napisane w Pythonie o nazwie PyQuil. Rigetti opracowuje również własną platformę chmurową o nazwie Forest, oraz wydajny symulator komputerów kwantowych – QVM. Rigetti nie posiada na stronie takich zasobów, jak więksi konkurenci, dlatego nie warto przykładać dużej uwagi do tej platformy na początku przygody z informatyką kwantową. Najwięcej zasobów dotyczących uruchamiania algorytmów można znaleźć w dokumentacji biblioteki PyQuil.

 

Microsoft

Microsoft również stworzyło swój własny zestaw narzędzi deweloperskich Quantum Development Kit, oraz język Q#. Zapewniają wiele materiałów do nauki informatyki kwantowej na stronie Quantum Katas oraz w dokumentacji QDK. Niestety w odróżnieniu od IBM oraz Google, Microsoft nie buduje jeszcze swoich własnych kwantowych komputerów. Postanowili za to, stworzyć najbardziej innowacyjną platformę chmurową do uruchamiania algorytmów kwantowych Azure Quantum, która została niedawno otwarta. Pozwala ona na uruchamianie algorytmów kwantowych przygotowanych za pomocą QDK w różnych specjalistycznych środowiskach zapewnionych przez takich producentów jak Honeywell, IONQ, Toshiba, 1QBit, Quantum Circuits oraz oczywiście Microsoft.

Google Quantum AI

Google posiada zaawansowane laboratorium kwantowe, a ich naukowcy jako pierwsi stworzyli pracę ogłaszającą „kwantową supremację”, udowadniającą, że komputer kwantowy może być lepszy od komputera klasycznego. Całość usług Google’a zajmująca się komputerami kwantowymi nazywa się QCS- Quantum Computing Service. Podobnie jak IBM udostępniają oni część swojej architektury w chmurze. Możemy się do niej połączyć za pomocą biblioteki do informatyki kwantowej Cirq. Kwantowy framework Google’a zawiera podobne funkcjonalności, co Qiskit. Na repozytorium Cirq, możemy znaleźć informacje o tym, że biblioteka znajduje się w wersji alpha, a programiści nie zapewniają wstecznej kompatybilności projektowi. Obiecującym jest to, że Google wspiera najpopularniejszą bibliotekę do nauczania głębokiego Tensorflow oraz jej kwantową wersję Tensorflow Quantum.

Xanadu Quantum Computing

Xanadu jest firmą pochodzącą z Kanady zajmującą się informatyką kwantową, zarówno od strony hardware’u jak i software’u. Listę badań, w których brało udział Xanadu można znaleźć tutaj. Pennylane to biblioteka, która zapewnia podobne funkcjonalności jak Cirq, czy Qiskit, lecz szczególną uwagę zwraca na kwantowe nauczanie maszynowe. Bardzo łatwo za jej pomocą tworzyć złożone układy kwantowe, z których można korzystać za pomocą tych samych interfejsów, z których korzysta się podczas nauki sieci neuronowych. Dane mogą być prezentowane w formie klas z bibliotek PyTorch lub Tensorflow- najpopularniejszych rozwiązań stworzonych do nauczania głębokiego. Biblioteka zapewnia również niezależność od hardware’u. Oznacza to, że algorytmy kwantowe możemy uruchamiać nie tylko na sprzęcie udostępnionym w chmurze przez Xanadu, lecz podobnie jak w przypadku Azure Quantum możemy korzystać z platform innych firm takich jak Amazon Braket, Rigetti Forest, D-Wave, Pasqal itd. Mało tego, biblioteka pozwala również na niezależność od frontendu. Możemy pisać kod w innej bibliotece takiej jak np. Qiskit, a następnie za pomocą Pennylane połączyć się z backendem innej organizacji i tam go uruchomić. Dzięki elastycznemu podejściu, świetnym poradnikom, oraz interfejsom ułatwiającym budowanie obwodów kwantowych popularność tej biblioteki gwałtownie rośnie. Oprócz Pennylane, firma wspiera osobną bibliotekę stworzoną do kwantowej fotoniki- Strawberry Fields.

Podsumowanie

Wszystkie biblioteki opisane powyżej są otwartym oprogramowaniem, co oznacza, że możemy przeglądać ich kod, a także pomagać w tworzeniu nowych funkcjonalności. Społeczności zebrane wokół wyżej wymienionych systemów są stosunkowo młode i otwarte, dzięki czemu łatwo do nich dołączyć. Rigetti zaprasza nas na swojego Slacka, a do cotygodniowych spotkań z projektów Google, takich jak Tensorflow Quantum, może dołączyć każdy. Wystarczy dopisać się do odpowiedniej grupy mailingowej, aby otrzymywać powiadomienia o spotkaniach.

Uruchomienie przykładowego algorytmu kwantowego na komputerze kwantowym

Po nauce podstaw informatyki kwantowej, oraz przedstawieniu platform, na których można uruchamiać własne algorytmy, nadszedł czas, aby taki algorytm napisać i uruchomić na komputerze kwantowym. Do jego napisania zostanie wykorzystana biblioteka Pennylane. Celem będzie utworzenie stanu Bella o następującej formie.

Stany bella są najprostszymi stanami kwantowymi, w których zachodzi splątanie. Składają się one tylko z dwóch kubitów, powyższy stan jest jednym z nich.

Pierwszym krokiem będzie zainstalowanie interpretera Pythona, abyśmy mogli pisać kod w tym języku. Wersje do pobrania na różne platformy znajdują się na tej stronie. Na różnych dystrybucjach linuxa python często instalowany jest domyślnie; aby sprawdzić czy jest zainstalowany należy wpisać komendę „python3” w terminalu, a w przypadku Windowsa komendę „python”.

 
Rysunek 12: Pomyślnie zainstalowany Python na windowsie

Jeżeli na Windowsie po instalacji wyświetla się komunikat o tym, że komenda „python” nie jest wykrywana- należy dodać ścieżkę do interpretera w zmiennej środowiskowej „Path”.  Do zmiennych środowiskowych można dotrzeć przez pasek wyszukiwania.

Rysunek 14: Dodanie ścieżki Python do zmiennej "Path"- można ją dodać dla poszczególnego użytkownika lub całego systemu

Następnie instalujemy za pomocą systemu zarządzania pakietami „pip” biblioteki potrzebne do skryptu, czyli pennylane oraz pennylane-qiskit, za pomocą komendy pip install pennylane pennylane-qiskit.

Po pobraniu paczek możemy zacząć programować w wybranym przez nas edytorze tekstu np. Visual Studio Code. Pierwszym krokiem będzie zaimportowanie paczek, aby móc korzystać z ich funkcji.

 

Następnie tworzymy obiekt klasy Device z biblioteki pennylane, który reprezentuje urządzenie, na którym będzie uruchamiany obwód kwantowy. Na początku użyjemy podstawowego symulatora default.qubit, parametr wires równy 2 oznacza, że urządzenie będzie działało na dwóch kubitach.

 

Kolejnym krokiem będzie utworzenie obwodu, który zostanie uruchomiony na urządzeniu. Aby utworzyć stan Bella, najpierw stosujemy bramkę Hadamarda na pierwszym kubicie, a następnie bramkę CNOT kontrolującą drugi kubit z pierwszego kubitu. Na końcu mierzymy prawdopodobieństwo pomiaru kubitów w danym stanie za pomocą funkcji qml.probs. Linia @qml.qnode(device) zamienia zwykłą funkcję języka Python w obiekt QNode, który uruchamia obwód kwantowy zdefiniowany w funkcji circuit() na urządzeniu device. Ostatnia linia kodu wywołuje wyżej zdefiniowany QNode.

 

Wynikiem jest obiekt tensor z biblioteki Numpy, który zawiera prawdopodobieństwo zmierzenia danych wartości kubitu w porządku leksykograficznym, czyli 00-01-10-11.

Jak widać otrzymano 50% pomiaru dwóch kubitów jako 0, oraz 50% pomiaru dwóch kubitów jako 1, czyli otrzymano stan opisany powyżej. Następnym krokiem będzie uruchomienie algorytmu nie na symulatorze, lecz na komputerze kwantowym, za pomocą platformy IBM Q Experience.

Aby móc uruchamiać algorytmy na kwantowych komputerach IBM, najpierw musimy zalogować się do ich portalu, aby zdobyć token, dzięki któremu będziemy mogli z nich korzystać. Token można skopiować od razu po zalogowaniu na portal, co zostało pokazane na poniższym zdjęciu.

 

Następnym krokiem jest zapisanie konta do API używając skopiowanego tokena. Odpowiedzialna jest za to poniższa linijka kodu.

 
 

Od tej pory możemy tworzyć obiekty klasy Device używające backendów z platformy IBM, jako przykład użyjemy komputera ibmq_lima. Lista wszystkich dostępnych usług znajduję się w zakładce Services. Teraz wystarczy stworzyć nowy obiekt klasy Device, który nazwiemy quantum_device oraz podmienić go nad funkcją odpowiadającą za obwód.

Generowanie wyniku może trwać długo, ze względu na to, że inni też mogą zlecać wykonywanie swoich algorytmów. Liczbę trwających prac można zobaczyć w zakładce Services po kliknięciu na pasujący nam komputer. Cały kod użyty w artykule dostępny jest na repozytorium.

Jeśli zainteresowała Cię tematyka informatyki kwantowej – przeczytaj pozostałe wpisy:

  • Informatyka kwantowa – wprowadzenie
  • Komputery kwantowe – gdzie są wykorzystywane?
  • Porównanie bramek klasycznych i kwantowych

Autorzy

  • Konrad Mickiewicz
  • Jakub Opala
  • Jakub Oszust
  • Paulina Prusik

Wireless Group

ul. Janiszewskiego 7
Wrocław 50-372
Budynek C-16, p. 3.7

wirelessgroup.pwr1@gmail.com

https://www.facebook.com/WirelessGroup

WIGGOR

ul. Kamienna 57,
Wrocław 50-307

kontakt@wiggor.pl
https://wiggor.pl/