Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Nama yang sepenuhnya memenuhi syarat: Std.Canon.Relabel
operation Relabel(current : Qubit[], updated : Qubit[]) : Unit is Adj
Ringkasan
Melabeli kembali qubit dalam array current dengan qubit dalam array updated. Array updated harus merupakan permutasi array current yang valid.
Masukan
arus
Array qubit yang akan dilabeli kembali.
Diperbarui
Array qubit untuk melabeli ulang array current.
Komentar
Operasi ini berguna ketika Anda perlu melabeli qubit dengan cara yang tidak menimbulkan operasi kuantum apa pun.
Perhatikan bahwa saat mengkompilasi untuk eksekusi pada perangkat keras dengan konektivitas kubit terbatas, operasi ini mungkin tidak mengakibatkan perubahan pada adjacency qubit dan satu atau beberapa gerbang SWAP mungkin masih diperlukan.
Contoh
Contoh berikut menunjukkan cara melabeli kubit dalam register:
use qubits = Qubit[3];
let newOrder = [qubits[2], qubits[0], qubits[1]];
Relabel(qubits, newOrder);
Setelah operasi ini, setiap penggunaan qubits[0] akan mengacu pada qubit yang awalnya qubits[2], dan sebagainya.
Untuk bertukar label pada dua qubit, yang setara dengan gerbang SWAP, Anda dapat menggunakan kode berikut:
use (q0, q1) = (Qubit(), Qubit());
Relabel([q0, q1], [q1, q0]);
Perhatikan bahwa berdekatan dari operasi ini secara efektif mengubah urutan argumen, sehingga Adjoint Relabel(qubits, newOrder) setara dengan Relabel(newOrder, qubits).