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 Circuit i uruchamiania ich na sprzęcie kwantowym.
Co potrafi?
Wizualizacja stanów Qubit
Obserwuj, jak zmiany w Circuit wpływają na stany Qubit — widoczne jako interaktywna sfera-q lub histogramy przedstawiające prawdopodobieństwa pomiarów albo symulacje wektora stanu.
Uruchamianie na sprzęcie kwantowym
Uruchamiaj swoje Circuit 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 Circuit utworzony w Composerze.
Przegląd interfejsu
IBM Quantum Composer dysponuje konfigurowalnym zestawem narzędzi umożliwiających budowanie, wizualizację i uruchamianie Circuit 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 Circuit. Przeciągaj i upuszczaj te Gate oraz inne operacje na graficzny edytor Circuit. Różne typy Gate są pogrupowane kolorami. Na przykład klasyczne Gate są ciemnoniebieskie, Gate fazy — jasnoniebieskie, a operacje nie-unitarne — szare.
Aby dowiedzieć się więcej o dostępnych Gate 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 Circuit. Możesz edytować kod OpenQASM; kod Qiskit jest tylko do odczytu.
-
Graficzny edytor Circuit — Tu budujesz Circuit. Przeciągaj Gate i inne operacje na poziome „przewody" Qubit tworzące twój rejestr kwantowy.
Aby usunąć Gate z przewodu, zaznacz go i kliknij ikonę kosza.
Aby edytować parametry i ustawienia Gate obsługujących edycję, zaznacz Gate 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 Gate oraz przełączania trybu inspekcji. W trybie inspekcji widzisz krok po kroku widok stanów Qubit w trakcie ewolucji obliczeń Circuit. Aby dowiedzieć się więcej, zobacz Sprawdzaj swój Circuit krok po kroku.
-
Dyski fazy — Faza wektora stanu Qubit 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 Circuit podczas jego budowania. Korzystają z symulatora wektora stanu na jedną próbę, który różni się od QPU określonego w ustawieniach „Uruchom Circuit". Pamiętaj, że wizualizacje ignorują wszelkie dodane przez ciebie operacje pomiarowe. Zaloguj się i kliknij Uruchom Circuit, aby uzyskać wyniki z określonego Backend.
Dowiedz się więcej w sekcji Wizualizacje.
Budowanie, edytowanie i inspekcja Circuit
Jeśli chcesz kontynuować pracę z Circuit w późniejszym czasie, pobierz plik Circuit 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 Circuit, przejdź do menu Plik i wybierz „Wgraj plik .qasm", a następnie przejdź do pliku Circuit 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 Qubit. Jeśli chcesz uruchomić Circuit na komputerze kwantowym lub chcesz zwizualizować Circuit z więcej niż czterema Qubit, musisz się zalogować.
-
Otwórz IBM Quantum Composer, klikając link na stronie nawigacyjnej Nauka. Obszar roboczy wyświetla pusty Circuit bez nazwy. Możesz utworzyć nowy Circuit lub wgrać plik .qasm, aby kontynuować pracę z Circuit, który już stworzyłeś.
-
Nazwij swój Circuit, 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 Qubit w Circuit 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ć Circuit, możesz albo przeciągać i upuszczać operacje, albo wpisać kod OpenQASM do edytora kodu.
2. Budowanie Circuit 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 Circuit. Aby uzyskać bardziej zwartą prezentację Circuit, 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 Circuit, 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 pojedynczy Gate.
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ą Gate Hadamarda na q1 oraz Gate CX. Gate Hadamarda na q0 nie jest zaznaczony.
Wybierz Kopiuj z menu kontekstowego, aby skopiować grupę.
Aby wkleić grupę operacji, kliknij prawym przyciskiem myszy na Circuit 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 Circuit, jak i w katalogu operacji.
Teraz możesz przeciągać i upuszczać nową operację w dowolne miejsce Circuit. Pamiętaj, że operacja jest zapisana w tym Circuit i nie pojawia się w katalogu operacji innych Circuit.
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ć Gate 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 Gate. 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 Circuit.
Usunięcie niestandardowej operacji z samego Circuit 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ę Qubit lub bitów w Circuit 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 Qubit.
Dodawanie warunku
Aby dodać warunek do Gate, przeciągnij operację if na Gate i ustaw parametry w panelu Edytuj operację, który otworzy się automatycznie. Możesz też dwukrotnie kliknąć Gate, aby uzyskać dostęp do panelu Edytuj operację, i w ten sposób ustawić parametry warunkowe.
Dodawanie modyfikatora sterującego
Modyfikator sterujący daje Gate, którego oryginalna operacja jest teraz uzależniona od stanu Qubit 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 Gate, aby dodać do niego sterowanie. Na Qubit sterującym pojawi się kropka, a linia połączy go z Qubit docelowym. Aby edytować, który Qubit jest sterującym, a który docelowym, kliknij Gate i wybierz ikonę Edytuj operację (lub dwukrotnie kliknij Gate), aby otworzyć panel Edytuj operację, a następnie określ parametry. W panelu Edytuj operację możesz też usunąć sterowanie z Qubit, klikając x obok jego nazwy.
Wizualizacja dyskami fazy w całym Circuit
Aby zwizualizować stan wszystkich Qubit w dowolnym miejscu Circuit, przeciągnij ikonę dysku fazy z katalogu operacji i umieść ją w dowolnym miejscu Circuit. Zostanie dodana kolumna operacji bariery oraz kolumna dysków fazy (jedna operacja bariery i jeden dysk fazy na każdy Qubit). Najedź kursorem na każdy dysk fazy, aby odczytać stan Qubit w tym punkcie Circuit. Pamiętaj, że dodanie dysków fazy nie zmienia Circuit; są one jedynie narzędziem wizualizacji.
Dowiedz się więcej o wizualizacji dysku fazy tutaj.
Eksportowanie obrazu Circuit
3. Zbuduj swój Circuit 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 Gate'ów 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 Qubitó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 unitarny Gate | (zob. treść pracy) |
opaque name(params) qargs; | Deklaruje nieprzezroczysty Gate | (zob. treść pracy) |
// comment text | Komentuje linię tekstu | // oops! |
U(theta,phi,lambda) qubit|qreg; | Stosuje wbudowane Gate(y) jednego Qubitu (zob. [b]) | U(pi/2,2*pi/3,0) q[0]; |
CX qubit|qreg,qubit|qreg; | Stosuje wbudowane Gate(y) CNOT | CX q[0],q[1]; |
measure qubit|qreg -> bit|creg; | Wykonuje pomiar(y) w bazie | measure q -> c; |
reset qubit|qreg; | Przygotowuje Qubit(y) w stanie | reset q[0]; |
gatename(params) qargs; | Stosuje zdefiniowany przez użytkownika unitarny Gate | 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 | |
|---|---|
| Gate'y do uwzględnienia w niestandardowej operacji: | |
| Kod dla nowej operacji: | |
| Nowa operacja w edytorze graficznym: |
4. Sprawdź swój Circuit krok po kroku
Tryb inspekcji demistyfikuje wewnętrzne działanie tworzonych Circuitów. Przechodzi przez symulację Circuitu warstwa po warstwie, dzięki czemu możesz obserwować stan Qubitó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 Circuit 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 Circuitu, 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 Circuitu, 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 Circuitów i przeglądanie wyników
Wykonaj poniższe kroki, aby uruchamiać kwantowe Circuity na QPU i przeglądać wyniki.
Wybierz ustawienia zadania
Kliknij Uruchom Circuit 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ń) Circuitu, które Backend wykona.
W tym panelu możesz też opcjonalnie nadać zadaniu nazwę i dodać tagi. Nie zmieni to nazwy Circuitu. Wstępnie uzupełniony tag „Composer" ułatwia filtrowanie tabeli Workloads według zadań Composera. Możesz ten tag usunąć.
Gdy uruchamiasz Circuit, jest on automatycznie wysyłany do najmniej obciążonego QPU, chyba że określisz QPU w ustawieniach uruchamiania. Jeśli uruchomisz ten sam Circuit 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 Circuitu, histogram wyników oraz zakładki OpenQASM i Qiskit umożliwiające wyświetlenie zarówno oryginalnych, jak i transpilowanych Circuitów w OpenQASM lub Qiskit.
Możesz pobrać Circuity 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). Circuity OpenQASM możesz otwierać bezpośrednio w Composerze.
Wizualizacje
Wizualizacje na żywo w IBM Quantum Composer pokazują różne widoki tego, jak kwantowe Circuity wpływają na stan zbioru Qubitó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 Qubitu). 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 Qubitu można zapisać jako
gdzie to prawdopodobieństwo, że Qubit jest w stanie , a to faza kwantowa. jest ścisłym analogiem klasycznego bitu probabilistycznego. Dla Qubit 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 Qubitu w IBM Quantum Composer pokazuje lokalny stan każdego Qubitu po zakończeniu obliczeń. Składowe dysku fazowego opisano poniżej.
Prawdopodobieństwo, że Qubit jest w stanie
Prawdopodobieństwo, że Qubit jest w stanie , jest reprezentowane przez niebieskie wypełnienie dysku.
Faza kwantowa
Fazę kwantową stanu Qubitu 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ą Qubitu. Przeliczenie na reprezentację sfery Blocha: , , oraz .
Stany N-qubitowe: maksymalnie 15 qubitów
N-qubitowy stan kwantowy przyjmuje postać
gdzie to prawdopodobieństwo, że Qubity są w stanie z fazą kwantową względem stanu . to prawdopodobieństwo, że Qubity 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 reprezentuje zredukowaną czystość stanu Qubitu, która dla Qubitu w N-qubitowym stanie wyraża się wzorem . Zredukowana czystość jednego Qubitu mieści się w przedziale ; wartość jeden oznacza, że Qubit nie jest splątany z żadną inną składową. Z kolei zredukowana czystość równa wskazuje, że Qubit jest w stanie całkowicie mieszanym i wykazuje pewien poziom splątania z pozostałymi Qubitami, 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 Qubit jest mierzony, a wynik zapisywany we własnym bicie klasycznym.
Rozważmy poniższy Circuit kwantowy i odpowiadający mu widok prawdopodobieństw:
Circuit wprowadza dwa Qubity 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 Qubitó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 Circuit kwantowy i odpowiadającą mu sferę Q, reprezentującą stan tworzony przez ten Circuit:
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 Qubitu. Podobnie jak dysk fazowy, sfera Blocha daje lokalny widok stanu kwantowego, w którym każdy Qubit rozpatrywany jest osobno. Gdy chcemy zrozumieć, jak rejestry Qubitów (stany wieloqubitowe) zachowują się pod wpływem Circuitó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 Qubitó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 Circuit kwantowy i odpowiadający mu widok wektora stanu:
Circuit wprowadza dwa Qubity 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 jednoQubitowe i bramki CNOT. Ponieważ dwuQubitowa bramka CNOT wymaga znacznie więcej czasu na wykonanie na rzeczywistym sprzęcie niż bramki jednoQubitowe, 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ą Qubitó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ą Qubitó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ą Qubitó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ą Qubitó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ą Qubitó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ą Qubitó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 Qubitu 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ą Qubitó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 Qubit 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 Qubitu sterującego. Gdy qubit sterujący jest w stanie , docelowe Qubity 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 Qubitów, które mogą pełnić rolę celów sterowania; kliknij jedną lub więcej kropek, aby przypisać cel do jednego lub więcej Qubitó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 Qubitó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 Qubit 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
