ApplyPermutationUsingDecomposition-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 auf der Zerlegung basierenden Synthese.
operation ApplyPermutationUsingDecomposition (perm : Int[], qubits : Microsoft.Quantum.Arithmetic.LittleEndian) : Unit is Adj + Ctl
BESCHREIBUNG
Dieses Verfahren implementiert den analysebasierten Syntheseansatz. Die Eingabe ist eine Permutation $\pi$ über $2^n$-Elemente ${0, \dots, 2^n-1}$, die eine $n$-Variable umkehrbare boolesche Funktion darstellt. Der Algorithmus führt iterativ die folgenden Schritte für jeden Variablenindex $i$ aus:
- Berechnen Sie $((\pi_l, \pi_r), \pi')$ so, dass die Bilder von $\pi_l$ und $\pi_r$ keine Bits in ihren Elementen an anderen Indizes als $i$ ändern, und Bilder von $\pi'$ ändern bit $i$ in ihren Elementen nicht.
- Legen Sie $\pi \leftarrow \pi'$ fest, und leiten Sie Wahrheitstabellen von $\pi_l$ und $\pi_r$ basierend auf Elementen ab, die keine Fixpunkte sind.
Nach dem Anwenden dieser Schritte für alle Variablenindizes ist die verbleibende Permutation $\pi$ die Identität, und basierend auf den gesammelten Wahrheitstabellen und Indizes kann man wahrheitstabellengesteuerte X-Vorgangsvorgänge mithilfe des Vorgangs ApplyXControlledOnTruthTable anwenden.
Die variable Reihenfolge ist $0, \dots, n - 1$. Eine benutzerdefinierte Variablenreihenfolge kann im Vorgang ApplyPermutationUsingDecompositionWithVariableOrder angegeben werden.
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]) {
ApplyPermutationUsingDecomposition([0, 2, 1, 3], LittleEndian(qubits));
}
Referenzen
- Alexis De Vos, Yvan Van Rentergem, Adv. in Mathematik. von Comm. 2(2), 2008, S. 183--200
- Mathias Soeken, Laura Tague, Gerhard W. Dueck, Rolf Drechsler, Journal der Symbolischen Berechnung 73 (2016), S. 1--26