Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Tam ad: Std.Canon.Relabel
operation Relabel(current : Qubit[], updated : Qubit[]) : Unit is Adj
Özet
current dizisindeki kubitleri updated dizisindeki kubitlerle yeniden etiketler.
updated dizisi, current dizisinin geçerli bir permütasyonu olmalıdır.
Girdi
geçerli
Yeniden etiketlenecek kubit dizisi.
Güncel -leştirilmiş
current dizisinin yeniden etiketlendiği kubit dizisi.
Açıklamalar
Bu işlem, kubitleri herhangi bir kuantum işlemine neden olmayacak şekilde yeniden etiketlemeniz gerektiğinde kullanışlıdır.
Sınırlı kubit bağlantısına sahip donanımlarda yürütme için derleme yapılırken bu işlemin kubit bitişikliği üzerinde herhangi bir değişiklik yapılmasına neden olmayabileceğini ve bir veya daha fazla SWAP kapısı gerekebileceğini unutmayın.
Örnek
Aşağıdaki örnekte, bir yazmaçtaki kubitlerin nasıl yeniden etiketlendir olduğu gösterilmektedir:
use qubits = Qubit[3];
let newOrder = [qubits[2], qubits[0], qubits[1]];
Relabel(qubits, newOrder);
Bu işlemden sonra, qubits[0] kullanımı başlangıçta qubits[2]olan kubite başvurur ve bu şekilde devam eder.
Etiketleri bir SWAP geçidinin sanal eşdeğeri olan iki kubitte değiştirmek için aşağıdaki kodu kullanabilirsiniz:
use (q0, q1) = (Qubit(), Qubit());
Relabel([q0, q1], [q1, q0]);
Bu işlemin bir parçasının bağımsız değişkenlerin sırasını etkili bir şekilde değiştirdiğini, Adjoint Relabel(qubits, newOrder)Relabel(newOrder, qubits)eşdeğer olduğunu unutmayın.