Chciałbym zasymulować algorytm kwantowy, w którym jednym z kroków jest „Pierwiastek kwadratowy bramki wymiany” między 2 kubitami.
Jak mogę zaimplementować ten krok za pomocą kompozytora IBM ?
Chciałbym zasymulować algorytm kwantowy, w którym jednym z kroków jest „Pierwiastek kwadratowy bramki wymiany” między 2 kubitami.
Jak mogę zaimplementować ten krok za pomocą kompozytora IBM ?
Odpowiedzi:
Oto konstrukcja SQRT (SWAP), która wymaga tylko CNOT w jednym kierunku, Hadamards, S bram ( ), bram sztyletowych S ( ), T bramy ( ) i T bramy sztylet ( ):
Powinieneś być w stanie zakodować go bezpośrednio w kompozytorze.
To, co chcesz zrobić, to obrót w podprzestrzeni o zakresie i który obraca go o . W tym celu możesz najpierw wykonać CNOT, który mapuje tę podprzestrzeń na . Teraz musisz wykonać obrót na pierwszym kubicie, pod warunkiem, że drugi kubit będzie jednym. Wdrażanie kontrolowanych bramek za pomocą CNOT jest standardową konstrukcją, którą można znaleźć w wielu miejscach, patrz np . Https://arxiv.org/abs/quant-ph/9503016 . W zależności od tego, jak wykonasz ten krok, być może będziesz musiał naprawić fazę „globalną” pierwszego kubita (biorąc pod uwagę, że drugi to ). Na koniec musisz cofnąć CNOT.
Każda 2-kubitowa bramka ma „rozkład Paulinomialny”, co oznacza, że można ją zapisać jako wielomian macierzy Pauliego.
W przypadku bramy, którą chcesz:
gdzie jest bramą zastosowaną do qubit .