Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W pełni kwalifikowana nazwa: Std.Diagnostics.CheckOperationsAreEqual
operation CheckOperationsAreEqual(nQubits : Int, actual : (Qubit[] => Unit), expected : (Qubit[] => Unit is Adj)) : Bool
Streszczenie
Biorąc pod uwagę dwie operacje, sprawdza, czy działają identycznie dla wszystkich stanów wejściowych.
Opis
Ta kontrola jest implementowana przy użyciu izomorfizmu Choi–Jamiołkowskiego w celu zmniejszenia tej kontroli do sprawdzenia dwóch splątanych rejestrów. W związku z tym ta operacja wymaga tylko jednego wywołania do każdej testowanej operacji, ale wymaga przydzielenia dwukrotnie większej liczby kubitów. Ta kontrola może służyć do zapewnienia, na przykład, że zoptymalizowana wersja operacji działa identycznie z jego naiwną implementacją lub że operacja, która działa na różnych danych wejściowych nie kwantowych zgadza się ze znanymi przypadkami.
Uwagi
Ta operacja wymaga, aby modelowanie operacji oczekiwane zachowanie było przylegające, dzięki czemu odwrotność może być wykonywana w samym rejestrze docelowym. Formalnie można określić operację transponowania, która złagodzi to wymaganie, ale operacja transponowania nie jest ogólnie fizycznie zrozumiała dla dowolnych operacji kwantowych, a tym samym nie jest tu uwzględniona jako opcja.
Wkład
nQubits
Liczba kubitów do przekazania do każdej operacji.
faktyczny
Operacja do przetestowania.
oczekiwany
Operacja definiująca oczekiwane zachowanie dla operacji testowej.
Wyjście
Prawda, jeśli operacje są równe, w przeciwnym razie wartość false.