ApplyPermutationUsingTransformation-Vorgang

Warnung

Diese Dokumentation bezieht sich auf das klassische QDK, das durch das moderne QDK ersetzt wurde.

Weitere Informationen finden https://aka.ms/qdk.api Sie in der API-Dokumentation für das moderne QDK.

Namespace: Microsoft.Quantum.Synthesis

Paket: Microsoft.Quantum.Standard

Permutiert die Amplituden in einem Quantenzustand bei einer Permutation mithilfe einer transformationsbasierten Synthese.

operation ApplyPermutationUsingTransformation (perm : Int[], qubits : Microsoft.Quantum.Arithmetic.LittleEndian) : Unit is Adj + Ctl

BESCHREIBUNG

Dieses Verfahren implementiert den unidirektionalen transformationsbasierten Syntheseansatz. Input ist eine Permutation $\pi$ über $2^n$-Elemente ${0, \dots, 2^n-1}$, die eine $n$-variable reversible boolesche Funktion darstellt. Der Algorithmus führt die folgenden Schritte iterativ aus:

  1. Suchen Sie die kleinste $x$ so, dass $x \ne \pi(x) = y$.
  2. Suchen sie nach mehrstufigen Toffoli-Vorgängen, die auf die Ausgaben angewendet werden, machen $\pi(x) = x$ und ändern $\pi(x')$ für alle $x' < x$ nicht.

Eingabe

perm : Int[]

Eine Permutation von $2^n$-Elementen ab 0.

Qubits : LittleEndian

Eine Liste von $n$-Qubits, auf die die Permutation angewendet wird.

Ausgabe: Einheit

Beispiel

So synthetisieren Sie einen SWAP Vorgang:

using (qubits = Qubit[2]) {
  ApplyPermutationUsingTransformation([0, 2, 1, 3], LittleEndian(qubits));
}

Referenzen

Weitere Informationen