IBM Quantum Composer
Czym to jest?
IBM Quantum® Composer to graficzne narzędzie do programowania kwantowego, które umożliwia przeciąganie i upuszczanie operacji w celu budowania obwodów i uruchamiania ich na sprzęcie kwantowym.
Co potrafi?
Wizualizacja stanów kubitów
Obserwuj, jak zmiany w obwodzie wpływają na stany kubitu — widoczne jako interaktywna sfera-q lub histogramy przedstawiające prawdopodobieństwa pomiarów albo symulacje wektora stanu.
Uruchamianie na sprzęcie kwantowym
Uruchamiaj swój obwód na prawdziwym sprzęcie kwantowym, aby zrozumieć wpływ szumów urządzenia.
Automatyczne generowanie kodu
Zamiast pisać kod ręcznie, automatycznie generuj kod OpenQASM lub Python zachowujący się tak samo jak obwód utworzony w Composerze.
Przegląd interfejsu
IBM Quantum Composer dysponuje konfigurowalnym zestawem narzędzi umożliwiających budowanie, wizualizację i uruchamianie obwodów na kwantowych jednostkach przetwarzających (QPU). Użyj menu „Więcej opcji" w każdym oknie, aby uzyskać dostęp do dodatkowych narzędzi i akcji.
-
Katalog operacji — To są elementy składowe obwodu. Przeciągaj i upuszczaj te bramki oraz inne operacje na graficzny edytor obwodów. Różne typy bramek są pogrupowane kolorami. Na przykład klasyczne bramki są ciemnoniebieskie, bramki fazowe — jasnoniebieskie, a operacje nie-unitarne — szare.
Aby dowiedzieć się więcej o dostępnych bramkach i operacjach, kliknij prawym przyciskiem myszy operację i wybierz Info, aby przeczytać jej definicję.
-
Edytor kodu — Użyj menu Widok, aby otworzyć lub zamknąć edytor kodu, który umożliwia przeglądanie kodu OpenQASM lub Qiskit dla obwodu. Możesz edytować kod OpenQASM; kod Qiskit jest tylko do odczytu.
-
Graficzny edytor obwodów — Tu budujesz obwód. Przeciągaj bramki i inne operacje na poziome „przewody" kubitów tworzące twój rejestr kwantowy.
Aby usunąć bramkę z przewodu, zaznacz ją i kliknij ikonę kosza.
Aby edytować parametry i ustawienia bramki obsługujących edycję, zaznacz bramkę w edytorze graficznym i kliknij Edytuj.
-
Pasek narzędzi — Dostęp do często używanych narzędzi: cofania i ponawiania akcji, zmiany wyrównania bramek oraz przełączania trybu inspekcji. W trybie inspekcji widzisz krok po kroku widok stanów kubitu w trakcie ewolucji obliczeń obwodu. Aby dowiedzieć się więcej, zobacz Sprawdzaj swój obwód krok po kroku.
-
Dyski fazy — Faza wektora stanu kubitu w płaszczyźnie zespolonej jest reprezentowana przez linię biegnącą od środka diagramu do krawędzi szarego dysku (który obraca się przeciwnie do ruchu wskazówek zegara wokół środkowego punktu).
Użyj menu Widok, aby pokazać lub ukryć dyski fazy.
-
Wizualizacje — Wizualizacje charakteryzują twój obwód podczas jego budowania. Korzystają z symulatora wektora stanu na jedną próbę, który różni się od QPU określonego w ustawieniach „Uruchom obwód". Pamiętaj, że wizualizacje ignorują wszelkie dodane przez ciebie operacje pomiarowe. Zaloguj się i kliknij Uruchom obwód, aby uzyskać wyniki z określonego backend.
Dowiedz się więcej w sekcji Wizualizacje.
Budowanie, edytowanie i inspekcja obwodu
Jeśli chcesz kontynuować pracę z obwodem w późniejszym czasie, pobierz plik obwodu i zapisz go lokalnie przed wyjściem z bieżącej sesji Composera. Użyj linku „Zapisz plik" w prawym górnym rogu lub przejdź do menu Plik i wybierz „Zapisz plik". Gdy będziesz gotowy, aby ponownie pracować z obwodem, przejdź do menu Plik i wybierz „Wgraj plik .qasm", a następnie przejdź do pliku obwodu na swoim dysku lokalnym i kliknij Otwórz.
1. Otwórz IBM Quantum Composer
- (Opcjonalnie) Jeśli nie jesteś zalogowany do IBM Quantum, wybierz Zaloguj się w prawym górnym rogu. Następnie możesz się zalogować lub Utworzyć konto IBM Cloud.
Jeśli się nie zalogujesz, wizualizacje automatycznie pokazują symulowane wyniki dla maksymalnie czterech kubitów. Jeśli chcesz uruchomić obwód na komputerze kwantowym lub chcesz zwizualizować obwód z więcej niż czterema kubitami, musisz się zalogować.
-
Otwórz IBM Quantum Composer, klikając link na stronie nawigacyjnej Nauka. Obszar roboczy wyświetla pusty obwód bez nazwy. Możesz utworzyć nowy obwód lub wgrać plik .qasm, aby kontynuować pracę z obwodem, który już stworzyłeś.
-
Nazwij swój obwód, klikając napis Untitled circuit i wpisując nazwę. Kliknij znacznik wyboru, aby zapisać nazwę.
-
(Opcjonalnie) Dostosuj swój obszar roboczy:
- Użyj menu Widok, aby zmienić domyślny motyw na monochromatyczny. Możesz też wybrać, które panele mają być widoczne w obszarze roboczym, a następnie użyć menu w prawym rogu dowolnego panelu, aby uzyskać dostęp do dalszych opcji dostosowywania. Opcje pokazywania lub ukrywania dysków fazy, wyboru wyrównania kubitów w obwodzie oraz resetowania obszaru roboczego do wartości domyślnych znajdują się również w menu Widok.
- Przełączaj między ciemnym a jasnym motywem obszaru roboczego w prawym dolnym rogu stopki.
Aby zbudować obwód, możesz albo przeciągać i upuszczać operacje, albo wpisać kod OpenQASM do edytora kodu.
2. Budowanie obwodów metodą przeciągnij i upuść
Katalog operacji
Przeciągaj i upuszczaj operacje z katalogu operacji na rejestry kwantowe i klasyczne. Kliknij ikonę wyszukiwania i wpisz termin w pasku wyszukiwania, aby szybko znaleźć operację.
Zwijaj i rozwijaj katalog operacji, klikając ikonę w prawym górnym rogu panelu operacji. Kliknij ikonę obok niej, aby przełączać między widokiem siatki a widokiem listy katalogu.
Kliknij prawym przyciskiem myszy ikonę operacji i wybierz Info, aby wyświetlić definicję operacji wraz z jej referencją QASM.
Aby cofnąć lub ponowić akcję, użyj zakrzywionych strzałek na pasku narzędzi.
Wyrównanie
Wybierz wyrównanie swobodne (Freeform), aby umieszczać operacje w dowolnym miejscu obwodu. Aby uzyskać bardziej zwartą prezentację obwodu, wybierz wyrównanie lewe (Left). Aby zobaczyć kolejność wykonywania operacji, wybierz wyrównanie warstwowe (Layers), które zastosuje wyrównanie lewe i doda separatory kolumn wskazujące kolejność wykonywania — od lewej do prawej i od góry do dołu.
Gdy operacje są już umieszczone na obwodzie, możesz nadal przeciągać i upuszczać je w nowe miejsca.
Kopiowanie i wklejanie
Kliknij operację i użyj ikon w menu kontekstowym, aby ją skopiować i wkleić.
Zaznaczanie wielu operacji
Możesz zaznaczyć kilka operacji, aby je skopiować i wkleić, przeciągnąć w nowe miejsce lub zgrupować w niestandardową operację unitarną, która pojawi się w katalogu operacji i będzie działać jako pojedyncza bramka.
Aby zaznaczyć więcej niż jedną operację, umieść kursor tuż poza jedną z operacji, a następnie kliknij i przeciągnij przez obszar do zaznaczenia. Klikaj poszczególne operacje z wciśniętym Shift, aby je zaznaczać lub odznaczać. Przerywana linia obrysowuje zestaw zaznaczanych operacji, a każda operacja faktycznie należąca do zaznaczenia jest obrysowana niebieską linią.
Na przykład na poniższym obrazku zaznaczone są bramka Hadamarda na q1 oraz bramka CX. Bramka Hadamarda na q0 nie jest zaznaczona.
Wybierz Kopiuj z menu kontekstowego, aby skopiować grupę.
Aby wkleić grupę operacji, kliknij prawym przyciskiem myszy obwód i wybierz Wklej.
Budowanie niestandardowej operacji za pomocą funkcji grupowania
Aby zgrupować kilka operacji i zapisać je jako niestandardową operację, najpierw zaznacz operacje zgodnie z opisem powyżej, a następnie wybierz Grupuj z menu kontekstowego. Zostaniesz poproszony o nadanie nazwy niestandardowej operacji lub możesz zaakceptować domyślną nazwę. Kliknij OK, a niestandardowa operacja zostanie przedstawiona jako pojedyncze pole — zarówno w obwodzie, jak i w katalogu operacji.
Teraz możesz przeciągać i upuszczać nową operację w dowolne miejsce obwodu. Pamiętaj, że operacja jest zapisana w tym obwodzie i nie pojawia się w katalogu operacji innych obwodów.
Możesz również zbudować niestandardową operację bezpośrednio w edytorze kodu OpenQASM; więcej informacji znajdziesz w sekcji Tworzenie niestandardowej operacji w OpenQASM.
Rozgrupowywanie niestandardowej lub predefiniowanej operacji
Aby rozgrupować bramki wewnątrz niestandardowej lub predefiniowanej operacji, kliknij operację w Composerze i wybierz Rozgrupuj z menu kontekstowego. Teraz możesz przesuwać poszczególne operacje oddzielnie. Gdy rozgrupujesz operację, każdy element z poprzedniej grupy wykonuje się niezależnie, co może oznaczać, że wykona się w innej kolejności niż gdy był zgrupowany.
Rozwijanie definicji operacji
Aby wyświetlić operacje składające się na niestandardową lub predefiniowaną operację bez ich rozgrupowywania, kliknij Rozwiń definicję w menu kontekstowym, aby zobaczyć definiujące bramki. Kliknij ikonę ponownie, aby zwinąć definicję.
Zmiana nazwy lub usuwanie niestandardowej operacji
Aby zmienić nazwę lub usunąć niestandardową operację, kliknij ją prawym przyciskiem myszy w katalogu operacji i wybierz Zmień nazwę lub Usuń. Usunięcie niestandardowej operacji z katalogu operacji usuwa również wszystkie jej wystąpienia na obwodzie.
Usunięcie niestandardowej operacji z samego obwodu nie usuwa jej z katalogu operacji; niestandardową operację można usunąć z katalogu wyłącznie za pomocą prawego kliknięcia i wybrania opcji Usuń.
Dodawanie lub usuwanie rejestrów
Aby dodać lub usunąć rejestry kwantowe lub klasyczne, kliknij Edytuj → Zarządzaj rejestrami. Możesz zwiększyć lub zmniejszyć liczbę kubitów lub bitów w obwodzie i zmienić nazwy rejestrów. Kliknij OK, aby zastosować zmiany. Możesz też po prostu kliknąć nazwę rejestru (np. q[0]) i użyć opcji w menu kontekstowym, aby szybko dodać lub usunąć rejestry lub kubity.
Dodawanie warunku
Aby dodać warunek do bramki, przeciągnij operację if na bramkę i ustaw parametry w panelu Edytuj operację, który otworzy się automatycznie. Możesz też dwukrotnie kliknąć bramkę, aby uzyskać dostęp do panelu Edytuj operację, i w ten sposób ustawić parametry warunkowe.
Dodawanie modyfikatora sterującego
Modyfikator sterujący daje bramkę, której oryginalna operacja jest teraz uzależniona od stanu kubitu sterującego. Aby uzyskać więcej szczegółów, kliknij prawym przyciskiem myszy symbol modyfikatora sterującego w katalogu operacji, a następnie kliknij Info.
Przeciągnij modyfikator sterujący na bramkę, aby dodać do niej sterowanie. Na kubicie sterującym pojawi się kropka, a linia połączy go z kubitem docelowym. Aby edytować, który kubit jest sterującym, a który docelowym, kliknij bramkę i wybierz ikonę Edytuj operację (lub dwukrotnie kliknij bramkę), aby otworzyć panel Edytuj operację, a następnie określ parametry. W panelu Edytuj operację możesz też usunąć sterowanie z kubitu, klikając x obok jego nazwy.
Wizualizacja dyskami fazy w całym obwodzie
Aby zwizualizować stan wszystkich kubitów w dowolnym miejscu obwodu, przeciągnij ikonę dysku fazy z katalogu operacji i umieść ją w dowolnym miejscu obwodu. Zostanie dodana kolumna operacji bariery oraz kolumna dysków fazy (jedna operacja bariery i jeden dysk fazy na każdy kubit). Najedź kursorem na każdy dysk fazy, aby odczytać stan kubitu w tym punkcie obwodu. Pamiętaj, że dodanie dysków fazy nie zmienia obwodu; są one jedynie narzędziem wizualizacji.
Dowiedz się więcej o wizualizacji dysku fazy tutaj.
Eksportowanie obrazu obwodu
Aby wyeksportować obraz obwodu, wybierz Plik → Eksportuj obraz obwodu. Zostanie otwarte okno Opcje eksportu, w którym możesz wybrać motyw (jasny, ciemny, biały na czarnym lub czarny na białym), format (.svg lub .png) oraz to, czy chcesz zastosować zawijanie linii. Po wybraniu opcji kliknij Eksportuj.
3. Zbuduj swój obwód z użyciem kodu OpenQASM
IBM Quantum Composer obsługuje obecnie OpenQASM 2.0.
- Aby otworzyć edytor kodu, kliknij Widok → Panele → Edytor kodu.
- Zapoznaj się z słownikiem operacji Composera, gdzie znajdziesz odwołania do bramek i innych operacji w OpenQASM.
- Możesz definiować własne niestandardowe operacje; zobacz Utwórz niestandardową operację w OpenQASM.
- Więcej informacji na temat używania języka OpenQASM, w tym przykładowych linii kodu, znajdziesz w przewodniku Wprowadzenie do OpenQASM lub w oryginalnej pracy badawczej Open Quantum Assembly Language. Tabela instrukcji języka OpenQASM z tej pracy jest odtworzona poniżej. Gramatykę OpenQASM znajdziesz w Dodatku A tej pracy.
| Instrukcja | Opis | Przykład |
|---|---|---|
OPENQASM 2.0; | Oznacza plik w formacie OpenQASM (zob. [a]) | OPENQASM 2.0; |
qreg name[size]; | Deklaruje nazwany rejestr kubitów | qreg q[5]; |
creg name[size]; | Deklaruje nazwany rejestr bitów klasycznych | creg c[5]; |
include "filename"; | Otwiera i przetwarza inny plik źródłowy | include "qelib1.inc"; |
gate name(params) qargs | Deklaruje unitarną bramkę | (zob. treść pracy) |
opaque name(params) qargs; | Deklaruje nieprzezroczystą bramkę | (zob. treść pracy) |
// comment text | Komentuje linię tekstu | // oops! |
U(theta,phi,lambda) qubit|qreg; | Stosuje wbudowaną bramkę(-i) jednego kubitu (zob. [b]) | U(pi/2,2*pi/3,0) q[0]; |
CX qubit|qreg,qubit|qreg; | Stosuje wbudowaną bramkę(-i) CNOT | CX q[0],q[1]; |
measure qubit|qreg -> bit|creg; | Wykonuje pomiar(y) w bazie | measure q -> c; |
reset qubit|qreg; | Przygotowuje kubit(y) w stanie | reset q[0]; |
gatename(params) qargs; | Stosuje zdefiniowaną przez użytkownika unitarną bramkę | crz(pi/2) q[1],q[0]; |
if(creg==int) qop; | Warunkowo stosuje operację kwantową | if(c==5) CX q[0],q[1]; |
barrier qargs; | Zapobiega transformacjom ponad tą linią źródłową | barrier q[0],q[1]; |
[a] Musi to być pierwsza linia pliku niebędąca komentarzem.
[b] Parametry theta, phi i lambda są podawane jako wyrażenia parametryczne; więcej informacji znajdziesz na stronie 5 pracy oraz w Dodatku A.
Utwórz niestandardową operację w OpenQASM
Możesz definiować nowe operacje unitarne w edytorze kodu (przykład pokazano na poniższym rysunku). Operacje są stosowane za pomocą instrukcji name(params) qargs; — tak samo jak operacje wbudowane. Nawiasy są opcjonalne, jeśli nie ma żadnych parametrów.
Aby zdefiniować niestandardową operację, wprowadź ją w edytorze kodu OpenQASM w następującym formacie: gatename(params) qargs;. Jeśli klikniesz +Dodaj na liście operacji, zostaniesz poproszony o podanie nazwy swojej niestandardowej operacji, którą następnie możesz zbudować w edytorze kodu.
Po zdefiniowaniu niestandardowej operacji przeciągnij ją na edytor graficzny i użyj ikony edycji, aby doprecyzować parametry.
| Przykład niestandardowej operacji | |
|---|---|
| bramki do uwzględnienia w niestandardowej operacji: | |
| Kod dla nowej operacji: | |
| Nowa operacja w edytorze graficznym: |
4. Sprawdź swój obwód krok po kroku
Tryb inspekcji demistyfikuje wewnętrzne działanie tworzonych obwodów. Przechodzi przez symulację obwodu warstwa po warstwie, dzięki czemu możesz obserwować stan kubitów w miarę jak obliczenie ewoluuje.
-
W menu Widok wybierz panele z wizualizacjami, których chcesz używać.
-
Kliknij przełącznik Inspekcja na pasku narzędzi. Pamiętaj, że po włączeniu trybu inspekcji nie możesz dodawać żadnych operacji, dopóki nie zostanie on wyłączony.
-
Jeśli zbudowałeś swój obwód przy włączonym wyrównaniu swobodnym (Freeform), pamiętaj, że tryb inspekcji automatycznie włącza wyrównanie do lewej (Left).
-
Aby przechodzić krok po kroku przez wizualizacje komponentów obwodu, użyj przycisków do przodu i do tyłu.
-
Aby sprawdzić tylko wybrane operacje, kliknij operacje, które chcesz poddać inspekcji — nad każdą pojawi się kolorowa nakładka wskazująca, że zostaną uwzględnione podczas uruchomienia trybu inspekcji. Aby odznaczyć operację, kliknij ją ponownie — nakładka zniknie.
-
Aby dowiedzieć się więcej o interpretowaniu wizualizacji, zapoznaj się z sekcją Wizualizacje.
-
Aby wyjść z trybu inspekcji i wrócić do edycji obwodu, kliknij przełącznik Inspekcja na pasku narzędzi.
Symulator tworzy losowość, generując wyniki na podstawie ziarna (seed). Ziarno to wartość początkowa wprowadzana do algorytmu generującego liczby pseudolosowe. Numer ziarna możesz zobaczyć, wybierając „Visualizations seed" z menu Edycja. Możesz również samodzielnie ustawić ziarno, zmieniając wartość w polu.
Uruchamianie obwodów i przeglądanie wyników
Wykonaj poniższe kroki, aby uruchamiać kwantowe obwody na QPU i przeglądać wyniki.
Wybierz ustawienia zadania
Kliknij Uruchom obwód w prawym górnym rogu. W oknie, które się otworzy, wybierz dostępny QPU. Możesz też wybrać instancję powiązaną z planem (np. Open, Flex lub Premium). Wybrana instancja wpływa na to, które QPU są dla ciebie dostępne. Kliknij link „Wyświetl szczegóły" w tabeli QPU, aby uzyskać więcej informacji o każdym z nich.
Następnie możesz ustawić liczbę shotów (wykonań) obwodu, które backend wykona.
W tym panelu możesz też opcjonalnie nadać zadaniu nazwę i dodać tagi. Nie zmieni to nazwy obwodu. Wstępnie uzupełniony tag „Composer" ułatwia filtrowanie tabeli Workloads według zadań Composera. Możesz ten tag usunąć.
Gdy uruchamiasz obwód, jest on automatycznie wysyłany do najmniej obciążonego QPU, chyba że określisz QPU w ustawieniach uruchamiania. Jeśli uruchomisz ten sam obwód ponownie, okno wyboru QPU domyślnie przywróci twój poprzedni wybór.
Kliknij „Uruchom na (nazwa QPU)"
Postęp zadania możesz śledzić, klikając przycisk „Wyświetl zadania" w prawym górnym rogu — spowoduje to otwarcie strony Workloads w IBM Quantum Platform.
Przeglądaj wyniki
Po zakończeniu zadania szczegóły są aktualizowane w tabeli Workloads w IBM Quantum Platform.
Strona wyników zadań wyświetla szczegóły uruchomienia, diagramy oryginalnego i transpilowanego obwodu, histogram wyników oraz zakładki OpenQASM i Qiskit umożliwiające wyświetlenie zarówno oryginalnych, jak i transpilowanych obwodów w OpenQASM lub Qiskit.
Możesz pobrać obwody i histogram, klikając menu w prawym górnym rogu każdego diagramu, a następnie wybierając format pobierania (PNG, PDF lub SVG; ponadto histogram można wyeksportować jako plik CSV). obwody OpenQASM możesz otwierać bezpośrednio w Composerze.
Wizualizacje
Wizualizacje na żywo w IBM Quantum Composer pokazują różne widoki tego, jak kwantowe obwody wpływają na stan zbioru kubitów. Każdy typ wizualizacji na żywo jest szczegółowo opisany poniżej.
Wizualizacje na żywo pochodzą z symulatora wektora stanu opartego na jednym shocie, który różni się od QPU określonego w ustawieniach uruchamiania — ten ostatni może mieć wiele shotów. Symulator tworzy losowość, generując wyniki na podstawie ziarna (seed). Ziarno to wartość początkowa wprowadzana do algorytmu generującego liczby pseudolosowe. Numer ziarna możesz zobaczyć, wybierając „Visualizations seed" z menu Edycja. Możesz również samodzielnie ustawić ziarno, zmieniając wartość w polu.
Wyświetl wizualizacje
Wizualizacje na żywo są wyświetlane w oknach na dole przestrzeni roboczej Composera (z wyjątkiem dysku fazy, który pojawia się na końcu każdego przewodu kubitu). Możesz wybrać dowolną kombinację wizualizacji: wektora stanu, prawdopodobieństw i sfery Q, które mają pojawiać się na dole przestrzeni roboczej. Wybierz lub odznacz wizualizacje w menu Widok.
Pobieranie wizualizacji
Pobierz jedną z wizualizacji widocznych na dole obszaru roboczego Composera, klikając menu „Więcej opcji" w oknie wizualizacji. Wizualizacje możesz pobrać jako SVG, PNG lub CSV z danymi źródłowymi. Możesz też pobrać wizualizacje prawdopodobieństw pomiarów i histogramów wektora stanu jako plik PDF.
Dysk fazowy
Stan jednego kubitu można zapisać jako
gdzie to prawdopodobieństwo, że kubit jest w stanie , a to faza kwantowa. jest ścisłym analogiem klasycznego bitu probabilistycznego. Dla kubit jest w stanie , dla jest w stanie , a dla jest mieszaniną 50/50. Tę mieszaninę nazywamy superpozycją, ponieważ — w odróżnieniu od klasycznych bitów — może ona posiadać fazę kwantową. Dysk fazowy wizualizuje ten stan.
Dysk fazowy na końcu każdego kubitu w IBM Quantum Composer pokazuje lokalny stan każdego kubitu po zakończeniu obliczeń. Składowe dysku fazowego opisano poniżej.
Prawdopodobieństwo, że kubit jest w stanie
Prawdopodobieństwo, że kubit jest w stanie , jest reprezentowane przez niebieskie wypełnienie dysku.
Faza kwantowa
Fazę kwantową stanu kubitu wyznacza linia biegnąca od środka diagramu do krawędzi szarego dysku (obracająca się przeciwnie do ruchu wskazówek zegara wokół środka).
Przykład: dyski fazowe dla dwóch różnych qubitów

Dwa przykłady wizualizacji dysku fazowego. Pierwszy przykład przedstawia stan , a drugi — stan z niezerową fazą względną.
Związek ze sferą Blocha
Dysk fazowy zawiera wszystkie informacje zawarte w sferze Blocha i jest dwuwymiarową reprezentacją kubitu. Przeliczenie na reprezentację sfery Blocha: , , oraz .
Stany N-qubitowe: maksymalnie 15 qubitów
N-qubitowy stan kwantowy przyjmuje postać
gdzie to prawdopodobieństwo, że kubity są w stanie z fazą kwantową względem stanu . to prawdopodobieństwo, że kubity nie są w stanie podstawowym . Łatwo zauważyć, że dla N-qubitowego stanu kwantowego istnieje prawdopodobieństw i faz. Dysk fazowy nie jest w stanie w pełni reprezentować tego stanu — N-qubitowe dyski fazowe zawierałyby jedynie prawdopodobieństw i faz — wynika to z faktu, że większość stanów jest splątana i nie można ich rozłożyć na niezależne jednoqubitowe stany kwantowe. Aby zaznaczyć, że wizualizacja nie zawiera pełnej informacji, wprowadzamy zredukowaną czystość jako składową dysku fazowego.
Zredukowana czystość stanu qubitu
Promień czarnego pierścienia na dysku fazowym reprezentuje zredukowaną czystość stanu kubitu, która dla kubitu w N-qubitowym stanie wyraża się wzorem . Zredukowana czystość jednego kubitu mieści się w przedziale ; wartość jeden oznacza, że kubit nie jest splątany z żadną inną składową. Z kolei zredukowana czystość równa wskazuje, że kubit jest w stanie całkowicie mieszanym i wykazuje pewien poziom splątania z pozostałymi kubitami, a być może nawet ze środowiskiem.
Widok prawdopodobieństw
Limit 8 qubitów
Ten widok przedstawia prawdopodobieństwa stanu kwantowego w postaci wykresu słupkowego. Oś pozioma opisuje stany bazy obliczeniowej. Oś pionowa mierzy prawdopodobieństwa wyrażone w procentach. W tym widoku fazy kwantowe nie są reprezentowane, dlatego jest to reprezentacja niepełna. Jest ona jednak przydatna do przewidywania wyników pomiarów, gdy każdy kubit jest mierzony, a wynik zapisywany we własnym bicie klasycznym.
Rozważmy poniższy obwód kwantowy i odpowiadający mu widok prawdopodobieństw:
obwód wprowadza dwa kubity w stan Stany bazy obliczeniowej to oraz Prawdopodobieństwo każdego ze stanów obliczeniowych wynosi 1/4.
Widok sfery Q
Limit 5 qubitów
Sfera Q reprezentuje stan układu jednego lub więcej kubitów, przypisując każdemu stanowi bazy obliczeniowej punkt na powierzchni sfery. W każdym punkcie widoczny jest węzeł. Promień każdego węzła jest proporcjonalny do prawdopodobieństwa () jego stanu bazowego, natomiast kolor węzła wskazuje fazę kwantową ().
Węzły rozmieszczone są na sferze Q tak, że stan bazowy ze wszystkimi zerami (np. ) znajduje się na jej biegunie północnym, a stan bazowy ze wszystkimi jedynkami (np. ) — na biegunie południowym. Stany bazowe z tą samą liczbą zer (lub jedynek) leżą na tej samej szerokości geograficznej sfery Q (np. ). Rozpoczynając od bieguna północnego sfery Q i przesuwając się ku południowi, kolejne równoleżniki odpowiadają stanom bazowym z coraz większą liczbą jedynek; równoleżnik stanu bazowego wyznacza jego odległość Hamminga od stanu zerowego. Sfera Q zawiera pełną informację o stanie kwantowym w zwartej reprezentacji.
Rozważmy poniższy obwód kwantowy i odpowiadającą mu sferę Q, reprezentującą stan tworzony przez ten obwód:
Możesz kliknąć, przytrzymać i przeciągnąć, aby obrócić sferę Q. Aby przywrócić domyślną orientację sfery Q, kliknij przycisk cofnięcia w prawym górnym rogu sfery Q.
Należy podkreślić, że sfera Q nie jest tym samym co sfera Blocha, nawet dla jednego kubitu. Podobnie jak dysk fazowy, sfera Blocha daje lokalny widok stanu kwantowego, w którym każdy kubit rozpatrywany jest osobno. Gdy chcemy zrozumieć, jak rejestry kubitów (stany wieloqubitowe) zachowują się pod wpływem obwodów kwantowych, bardziej użyteczne jest przyjęcie globalnego punktu widzenia i spojrzenie na stan kwantowy w całości. Sfera Q dostarcza wizualnej reprezentacji stanu kwantowego, a tym samym tego globalnego spojrzenia. Dlatego podczas eksplorowania aplikacji i algorytmów kwantowych na małej liczbie kubitów sfera Q powinna być podstawową metodą wizualizacji.
Widok wektora stanu
Limit 6 qubitów
Wyrażenie powszechnie nazywa się amplitudą kwantową. Ten widok przedstawia amplitudy kwantowe w postaci wykresu słupkowego. Oś pozioma opisuje stany bazy obliczeniowej. Oś pionowa mierzy wartości bezwzględne amplitud () powiązanych z każdym stanem bazy obliczeniowej. Kolor każdego słupka reprezentuje fazę kwantową ().
Rozważmy poniższy obwód kwantowy i odpowiadający mu widok wektora stanu:
obwód wprowadza dwa kubity w stan . Stany bazy obliczeniowej to , , oraz . Wartości bezwzględne amplitud wynoszą , a fazy kwantowe względem stanu podstawowego są równe dla i oraz dla .
Słownik operacji Composera
Ta strona stanowi odniesienie definiujące różne klasyczne i kwantowe operacje, których możesz używać do manipulowania qubitami w obwodzie kwantowym. Operacje kwantowe obejmują bramki kwantowe, takie jak bramka Hadamarda, a także operacje, które nie są bramkami kwantowymi, jak na przykład operacja pomiaru.
Każdy poniższy wpis zawiera szczegóły oraz odniesienie OpenQASM dla danej operacji. Więcej informacji znajdziesz w temacie Budowanie obwodu za pomocą kodu OpenQASM.
Obraz q-sfery w każdym wpisie bramki pokazuje stan po tym, jak bramka działa na początkowy stan równej superpozycji , gdzie to liczba qubitów potrzebnych do obsługi bramki. Więcej informacji na temat tej wizualizacji znajdziesz w temacie q-sfera.
Możesz zdefiniować własną operację do użycia w IBM Quantum Composer. Instrukcje znajdziesz w temacie Tworzenie własnej operacji w OpenQASM.
Kolory bramek nieznacznie różnią się w jasnym i ciemnym motywie. Pokazane tu kolory pochodzą z jasnego motywu.
Kliknij poniższą operację kwantową, aby wyświetlić jej definicję.
Bramki klasyczne
Bramka NOT
Bramka NOT, znana również jako bramka Pauliego X, zamienia stan na i odwrotnie. Bramka NOT jest równoważna RX dla kąta lub operacji HZH.
| Odniesienie w Composerze | Odniesienie OpenQASM | Q-sfera | Uwaga dotycząca reprezentacji q-sfery |
|---|---|---|---|
x q[0]; | Reprezentacja q-sfery pokazuje stan po tym, jak bramka działa na początkowy stan równej superpozycji gdzie to liczba qubitów potrzebnych do obsługi bramki. |
Bramka CNOT
Bramka kontrolowanego NOT, znana również jako bramka kontrolowanego X (CX), działa na parze qubitów, z których jeden pełni rolę „sterującego" (control), a drugi „docelowego" (target). Wykonuje operację NOT na qubicie docelowym zawsze wtedy, gdy qubit sterujący jest w stanie . Jeśli qubit sterujący jest w superpozycji, bramka ta tworzy splątanie.
Wszystkie unitarne obwody można rozłożyć na bramki jednokubitowe i bramki CNOT. Ponieważ dwukubitowa bramka CNOT wymaga znacznie więcej czasu na wykonanie na rzeczywistym sprzęcie niż bramki jednokubitowe, koszt obwodu mierzy się niekiedy liczbą bramek CNOT.
| Odniesienie w Composerze | Odniesienie OpenQASM | Q-sfera | Uwaga dotycząca reprezentacji q-sfery |
|---|---|---|---|
cx q[0], q[1]; | Reprezentacja q-sfery pokazuje stan po tym, jak bramka działa na początkowy stan równej superpozycji gdzie to liczba qubitów potrzebnych do obsługi bramki. |
Bramka Toffoliego
Bramka Toffoliego, znana również jako bramka podwójnie kontrolowanego NOT (CCX), ma dwa qubity sterujące i jeden docelowy. Stosuje operację NOT na qubicie docelowym tylko wtedy, gdy oba qubity sterujące są w stanie .
Bramka Toffoliego wraz z bramką Hadamarda stanowią uniwersalny zestaw bramek dla obliczeń kwantowych.
| Odniesienie w Composerze | Odniesienie OpenQASM | Q-sfera | Uwaga dotycząca reprezentacji q-sfery |
|---|---|---|---|
ccx q[0], q[1], q[2]; | ![]() | Reprezentacja q-sfery pokazuje stan po tym, jak bramka działa na początkowy stan równej superpozycji gdzie to liczba qubitów potrzebnych do obsługi bramki. |
Bramka SWAP
Bramka SWAP zamienia stany dwóch qubitów.
| Odniesienie w Composerze | Odniesienie OpenQASM | Q-sfera | Uwaga dotycząca reprezentacji q-sfery |
|---|---|---|---|
swap q[0], q[1]; | Reprezentacja q-sfery pokazuje stan po tym, jak bramka działa na początkowy stan równej superpozycji gdzie to liczba qubitów potrzebnych do obsługi bramki. |
Bramka tożsamości
Bramka tożsamości (nazywana niekiedy bramką Id lub bramką I) jest w istocie brakiem bramki. Zapewnia ona, że do qubitu przez jedną jednostkę czasu bramki nie jest stosowana żadna operacja.
| Odniesienie w Composerze | Odniesienie Qasm |
|---|---|
id q[0]; |
Bramki fazowe
Bramka T
Bramka T jest odpowiednikiem RZ dla kąta . Odporne na błędy komputery kwantowe będą kompilować wszystkie programy kwantowe wyłącznie do bramki T i jej odwrotności, a także do bramek Clifforda.
| Odniesienie w Composerze | Odniesienie OpenQASM | Sfera Q | Uwaga dotycząca reprezentacji na sferze Q |
|---|---|---|---|
t q[0]; | Reprezentacja na sferze Q pokazuje stan po tym, jak bramka działa na początkowy stan równej superpozycji gdzie jest liczbą kubitów potrzebną do obsługi bramki. |
Bramka S
Bramka S stosuje fazę do stanu . Jest równoważna RZ dla kąta . Zauważ, że S=P().
| Odniesienie w Composerze | Odniesienie OpenQASM | Sfera Q | Uwaga dotycząca reprezentacji na sferze Q |
|---|---|---|---|
s q[0]; | Reprezentacja na sferze Q pokazuje stan po tym, jak bramka działa na początkowy stan równej superpozycji gdzie jest liczbą kubitów potrzebną do obsługi bramki. |
Bramka Z
Bramka Pauliego Z działa jako identyczność na stanie i mnoży znak stanu przez -1. W związku z tym zamienia stany i miejscami. W bazie +/- pełni tę samą rolę, co bramka NOT w bazie /.
| Odniesienie w Composerze | Odniesienie OpenQASM | Sfera Q | Uwaga dotycząca reprezentacji na sferze Q |
|---|---|---|---|
z q[0]; | Reprezentacja na sferze Q pokazuje stan po tym, jak bramka działa na początkowy stan równej superpozycji gdzie jest liczbą kubitów potrzebną do obsługi bramki. |
Bramka
Znana również jako bramka Tdg lub T-dagger.
Odwrotność bramki T.
| Odniesienie w Composerze | Odniesienie OpenQASM | Sfera Q | Uwaga dotycząca reprezentacji na sferze Q |
|---|---|---|---|
tdg q[0]; | Reprezentacja na sferze Q pokazuje stan po tym, jak bramka działa na początkowy stan równej superpozycji gdzie jest liczbą kubitów potrzebną do obsługi bramki. |
Bramka
Znana również jako bramka Sdg lub S-dagger.
Odwrotność bramki S.
| Odniesienie w Composerze | Odniesienie OpenQASM | Sfera Q | Uwaga dotycząca reprezentacji na sferze Q |
|---|---|---|---|
sdg q[0]; | Reprezentacja na sferze Q pokazuje stan po tym, jak bramka działa na początkowy stan równej superpozycji gdzie jest liczbą kubitów potrzebną do obsługi bramki. |
Bramka Phase
Bramka Phase (wcześniej nazywana bramką U1) stosuje fazę do stanu . Dla pewnych wartości jest równoważna innym bramkom. Na przykład P()=Z, P(/)=S oraz P()=T. Z dokładnością do globalnej fazy jest równoważna RZ().
| Odniesienie w Composerze | Odniesienie OpenQASM | Sfera Q | Uwaga dotycząca reprezentacji na sferze Q |
|---|---|---|---|
p(theta) q[0]; | Reprezentacja na sferze Q pokazuje stan po tym, jak bramka działa na początkowy stan równej superpozycji gdzie jest liczbą kubitów potrzebną do obsługi bramki. |
W IBM Quantum Composer domyślna wartość theta wynosi .
Bramka RZ
Bramka RZ implementuje . Na sferze Blocha bramka ta odpowiada obrotowi stanu kubitu wokół osi z o podany kąt.
| Odniesienie w Composerze | Odniesienie OpenQASM | Sfera Q | Uwaga dotycząca reprezentacji na sferze Q |
|---|---|---|---|
rz(angle) q[0]; | Reprezentacja na sferze Q pokazuje stan po tym, jak bramka działa na początkowy stan równej superpozycji gdzie jest liczbą kubitów potrzebną do obsługi bramki. |
W IBM Quantum Composer domyślna wartość angle wynosi . Dlatego właśnie ten kąt jest używany w wizualizacji na sferze Q.
Operatory nieunitarne i modyfikatory
Operacja reset
Operacja reset przywraca kubit do stanu , niezależnie od jego stanu przed zastosowaniem operacji. Nie jest to operacja odwracalna.
| Odniesienie w Composerze | Odniesienie OpenQASM |
|---|---|
reset q[0]; |
Pomiar
Pomiar w bazie standardowej, zwanej również bazą z lub bazą obliczeniową. W połączeniu z bramkami można go użyć do realizacji dowolnego rodzaju pomiaru. Nie jest to operacja odwracalna.
| Odniesienie w Composerze | Odniesienie OpenQASM |
|---|---|
measure q[0]; |
Modyfikator sterowania
Modyfikator sterowania tworzy bramkę, w której oryginalna operacja jest uzależniona od stanu kubitu sterującego. Gdy qubit sterujący jest w stanie , docelowe kubity przechodzą określoną ewolucję unitarną. Natomiast jeśli qubit sterujący jest w stanie , żadna operacja nie jest wykonywana. Jeśli qubit sterujący jest w stanie superpozycji, wynikowa operacja wynika z zasady liniowości.
Przeciągnij modyfikator sterowania na bramkę, aby dodać do niej qubit sterujący. Nad i pod bramką pojawią się kropki na przewodach kubitów, które mogą pełnić rolę celów sterowania; kliknij jedną lub więcej kropek, aby przypisać cel do jednego lub więcej kubitów. Możesz też przypisać qubit sterujący, klikając bramkę prawym przyciskiem myszy.
Aby usunąć qubit sterujący, kliknij bramkę prawym przyciskiem myszy i wybierz opcję usunięcia sterowania.
| Odniesienie w Composerze | Odniesienie OpenQASM |
|---|---|
c |
Operacja barrier
Aby zwiększyć efektywność programu kwantowego, kompilator będzie próbował łączyć bramki. Barrier jest instrukcją dla kompilatora, która zapobiega takim połączeniom. Ponadto jest przydatny do wizualizacji.
| Odniesienie w Composerze | Odniesienie OpenQASM |
|---|---|
barrier q; |
Bramka Hadamarda
Bramka H
Bramka H, czyli bramka Hadamarda, obraca stany i odpowiednio do stanów i . Jest przydatna do tworzenia superpozycji. Jeśli dysponujesz uniwersalnym zestawem bramek na komputerze klasycznym i dodasz do niego bramkę Hadamarda, stanie się on uniwersalnym zestawem bramek na komputerze kwantowym.
| Odniesienie w Composerze | Odniesienie w OpenQASM | Sfera Q | Uwaga dotycząca reprezentacji na sferze Q |
|---|---|---|---|
h q[0]; | Reprezentacja na sferze Q pokazuje stan po działaniu bramki na początkowy stan równej superpozycji gdzie to liczba kubitów potrzebnych do obsługi bramki. |
Bramki kwantowe
Bramka
Znana również jako bramka pierwiastka kwadratowego z NOT.
Bramka ta implementuje pierwiastek kwadratowy z X, . Dwukrotne zastosowanie tej bramki z rzędu daje standardową bramkę Pauliego X (bramkę NOT). Podobnie jak bramka Hadamarda, tworzy stan równej superpozycji, gdy kubit jest w stanie , ale z inną fazą względną. Na niektórych urządzeniach jest to natywna bramka, którą można zaimplementować za pomocą impulsu lub X90.
| Odniesienie w Composerze | Odniesienie w OpenQASM | Sfera Q | Uwaga dotycząca reprezentacji na sferze Q |
|---|---|---|---|
sx q[0]; | Reprezentacja na sferze Q pokazuje stan po działaniu bramki na początkowy stan równej superpozycji gdzie to liczba kubitów potrzebnych do obsługi bramki. |
Bramka
Znana również jako bramka SXdg lub pierwiastka kwadratowego z NOT-dagger.
Jest to odwrotność bramki . Dwukrotne jej zastosowanie z rzędu daje bramkę Pauliego X (bramkę NOT), ponieważ bramka NOT jest swoją własną odwrotnością. Podobnie jak bramka , ta bramka może służyć do tworzenia stanu równej superpozycji i jest również natywnie implementowana na niektórych urządzeniach za pomocą impulsu X90.
| Odniesienie w Composerze | Odniesienie w OpenQASM | Sfera Q | Uwaga dotycząca reprezentacji na sferze Q |
|---|---|---|---|
sxdg q[0]; | Reprezentacja na sferze Q pokazuje stan po działaniu bramki na początkowy stan równej superpozycji gdzie to liczba kubitów potrzebnych do obsługi bramki. |
Bramka Y
Bramka Pauliego Y jest równoważna Ry dla kąta . Jest równoważna zastosowaniu X i Z z dokładnością do globalnego czynnika fazowego.
| Odniesienie w Composerze | Odniesienie w OpenQASM | Sfera Q | Uwaga dotycząca reprezentacji na sferze Q |
|---|---|---|---|
y q[0]; | Reprezentacja na sferze Q pokazuje stan po działaniu bramki na początkowy stan równej superpozycji gdzie to liczba kubitów potrzebnych do obsługi bramki. |
Bramka RX
Bramka RX implementuje . Na sferze Blocha bramka ta odpowiada obrotowi stanu kubitu wokół osi x o zadany kąt.
| Odniesienie w Composerze | Odniesienie w OpenQASM | Sfera Q | Uwaga dotycząca reprezentacji na sferze Q |
|---|---|---|---|
rx(angle) q[0]; | Reprezentacja na sferze Q pokazuje stan po działaniu bramki na początkowy stan równej superpozycji gdzie to liczba kubitów potrzebnych do obsługi bramki. |
W IBM Quantum Composer domyślna wartość parametru angle wynosi . Dlatego właśnie ten kąt jest używany w wizualizacji na sferze Q.
Bramka RY
Bramka RY implementuje . Na sferze Blocha bramka ta odpowiada obrotowi stanu kubitu wokół osi y o zadany kąt i nie wprowadza zespolonych amplitud.
| Odniesienie w Composerze | Odniesienie w OpenQASM | Sfera Q | Uwaga dotycząca reprezentacji na sferze Q |
|---|---|---|---|
ry(angle) q[0]; | Reprezentacja na sferze Q pokazuje stan po działaniu bramki na początkowy stan równej superpozycji gdzie to liczba kubitów potrzebnych do obsługi bramki. |
W IBM Quantum Composer domyślna wartość parametru angle wynosi . Dlatego właśnie ten kąt jest używany w poniższej wizualizacji na sferze Q.
Bramka RXX
Bramka RXX implementuje . Bramka Mølmera–Sørensena, będąca natywną bramką w układach z pułapkami jonowymi, może być wyrażona jako suma bramek RXX.
| Odniesienie w Composerze | Odniesienie w OpenQASM | Sfera Q | Uwaga dotycząca reprezentacji na sferze Q |
|---|---|---|---|
rxx(angle) q[0], q[1]; | Reprezentacja na sferze Q pokazuje stan po działaniu bramki na początkowy stan równej superpozycji gdzie to liczba kubitów potrzebnych do obsługi bramki. |
W IBM Quantum Composer domyślna wartość parametru angle wynosi .
Bramka RZZ
Bramka RZZ wymaga jednego parametru: kąta wyrażonego w radianach. Bramka ta jest symetryczna – zamiana miejscami dwóch kubitów, na które działa, nie zmienia niczego.
| Odniesienie w Composerze | Odniesienie w OpenQASM | Sfera Q | Uwaga dotycząca reprezentacji na sferze Q |
|---|---|---|---|
rzz(angle) q[0], q[1]; | Reprezentacja na sferze Q pokazuje stan po działaniu bramki na początkowy stan równej superpozycji gdzie to liczba kubitów potrzebnych do obsługi bramki. |
W IBM Quantum Composer domyślna wartość parametru angle wynosi .
Bramka U
(Poprzednio nazywana bramką U3) Trzy parametry umożliwiają skonstruowanie dowolnej bramki jednokubitowej. Ma czas trwania równy jednej jednostce czasu bramki.
| Odniesienie w Composerze | Odniesienie w OpenQASM | Sfera Q | Uwaga dotycząca reprezentacji na sferze Q |
|---|---|---|---|
u(theta, phi, lam) q[0]; | Reprezentacja na sferze Q pokazuje stan po działaniu bramki na początkowy stan równej superpozycji gdzie to liczba kubitów potrzebnych do obsługi bramki. |
W IBM Quantum Composer domyślna wartość parametru angle wynosi .
Bramka RCCX
Uproszczona bramka Toffoliego, zwana również bramką Margolusa.
Uproszczona bramka Toffoliego implementuje bramkę Toffoliego z dokładnością do faz względnych. Ta implementacja wymaga trzech bramek CX, co jest minimalną możliwą liczbą, jak pokazano w https://arxiv.org/abs/quant-ph/0312225. Należy zauważyć, że uproszczona bramka Toffoliego nie jest równoważna bramce Toffoliego, ale może być używana w miejscach, gdzie bramka Toffoliego jest następnie odwracana.
| Odniesienie w Composerze | Odniesienie w OpenQASM | Sfera Q | Uwaga dotycząca reprezentacji na sferze Q |
|---|---|---|---|
rccx a, b, c; | Reprezentacja na sferze Q pokazuje stan po działaniu bramki na początkowy stan równej superpozycji gdzie to liczba kubitów potrzebnych do obsługi bramki. |
Bramka RC3X
Uproszczona bramka Toffoliego z 3 bitami kontrolnymi.
Uproszczona bramka Toffoliego implementuje bramkę Toffoliego z dokładnością do faz względnych. Należy zauważyć, że uproszczona bramka Toffoliego nie jest równoważna bramce Toffoliego, ale może być używana w miejscach, gdzie bramka Toffoliego jest następnie odwracana.
| Odniesienie w Composerze | Odniesienie w OpenQASM | Sfera Q | Uwaga dotycząca reprezentacji na sferze Q |
|---|---|---|---|
rc3x a, b, c, d; | ![]() | Reprezentacja na sferze Q pokazuje stan po działaniu bramki na początkowy stan równej superpozycji gdzie to liczba kubitów potrzebnych do obsługi bramki. |

