To kontynuacja algorytmu kwantowego dla liniowych układów równań (HHL09): Krok 2 - Co to jest ?
W artykule: Algorytm kwantowy dla liniowych układów równań (Harrow, Hassidim i Lloyd, 2009) nie podano szczegółów rzeczywistej implementacji algorytmu. To , jak dokładnie tworzone są stany i , jest swego rodzaju „ czarną skrzynką ” (patrz strony 2-3).
i
gdzie to stan początkowy rejestru zegara, a to stan początkowy rejestru wejściowego.
(Powiedz) Chcę wykonać ich algorytm na komputerze kwantowym IBM qubit. Chcę rozwiązać pewne równanie gdzie to macierz hermitowska z prawdziwymi wpisami, a to wektor kolumnowy z prawdziwymi wpisami.
Weźmy przykład:
i
Biorąc pod uwagę wymiary i , powinniśmy potrzebować kubity dla rejestru wejściowego i kolejne kubitów dla rejestru zegara, zakładając, że chcemy, aby wartości własne były reprezentowane z dokładnością i dokładnością do bitów dla wartości własnych (zostało to wcześniej omówione tutaj ). Tak więc w tym celu będzie potrzebnych ogółem kubitów (dodatkowy kubit to ancilla).
Pytania:
Korzystając z tych informacji, czy można utworzyć początkowe stany i w wersji qubit IBM ?
Jeśli uważasz, że jest zbyt duży, aby go zaimplementować na komputerach kwantowych IBM, możesz nawet pokazać przykład przygotowania stanu początkowego dla macierzy Hermitian (lub po prostu podać odniesienie do takiego przykład).
Chcę po prostu uzyskać ogólne pojęcie o tym, czy można to zrobić (tj. Czy jest to możliwe) na komputerze kwantowym IBM 16-qubit i do tego, które bramy będą konieczne. Jeśli nie jest to komputer kwantowy IBM 16-qubit, czy można użyć symulatora QISKit do odtworzenia stanu początkowego i w algorytmie HHL? Czy jest jakaś inna lepsza alternatywa, aby to zrobić?
źródło
Odpowiedzi:
Nie można utworzyć stanów początkowych|Ψ0⟩ i |b⟩ w wersji kubitów IBM 16. Z drugiej strony możliwe jest ich przybliżenie z arbitralnie niskim błędem 1, ponieważ bramki zaimplementowane przez układy IBM oferują taką możliwość.
Tutaj pytasz o 2 różne stany kwantowe:
Dzięki tej analizie można zastosować dowolną metodę tworzenia|b⟩ można również użyć do tworzenia |Ψ0⟩ . Z drugiej strony, jak|Ψ0⟩ jest bardziej ograniczony, możemy mieć nadzieję, że istnieją wydajniejsze algorytmy do produkcji |Ψ0⟩ .
Użyteczny do|b⟩ i |Ψ0⟩ : W oparciu o syntezę układów logiki kwantowej (Shende, Bullock i Markov, 2006) zestaw QISKit Python SDK implementuje ogólną metodę inicjowania dowolnego stanu kwantowego.
Użyteczny do|Ψ0⟩ : Tworzenie superpozycji, które odpowiadają efektywnie integrowalnym rozkładom prawdopodobieństwa (Grover i Rudolph, 2002), przedstawia szybko algorytm do inicjalizacji stanu, którego amplitudy reprezentują rozkład prawdopodobieństwa z uwzględnieniem niektórych ograniczeń. Te ograniczenia są przestrzegane|Ψ0⟩ zgodnie z algorytmem kwantowym rozwiązywania liniowych układów równań (Harrow, Hassidim i Lloyd, 2009) , ostatni wiersz strony 5.
Dla implementacji w QISKit, oto próbka inicjalizacji danego stanu kwantowego:
1 Tutaj „błąd” odnosi się do błędu między stanem idealnym a przybliżeniem w przypadku idealnego komputera kwantowego (tj. Bez dekoherencji, bez błędu bramki).
źródło
Algorytm HHL z macierzą 4 x 4 A może być zbyt duży dla komputera IBM. Wypróbowałem mniejszą zabawkową wersję algorytmu zgodnie z arXiv 1302.1210 link Układy rozwiązywania równań liniowych
Wyjaśniłem trochę o tym obwodzie tutaj na stackexchange: /cs/76525/could-a-quantum-computer-perform-linear-algebra-faster-than-a-classical-computer/ 77036 # 77036
Niestety jest to tylko 1 qubit wejściowy z macierzą A = 2 x 2, w odpowiedzi podano link do obwodu IBM.
źródło