Je veux créer une porte Toffoli contrôlée par n qubits et l'implémenter dans QISKit. Cela peut-il être fait? Si c'est le cas, comment?
quantum-gate
programming
qiskit
Ali Javadi
la source
la source
Réponses:
Un moyen simple de le faire est illustré à la figure 4.10 de Nielsen & Chuang.
Où U peut être une rotation à un seul qubit (dans ce cas, une porte X).
Ce circuit fonctionne comme ceci: Nous voulons appliquer U au qubit cible uniquement si le ET de tous les qubits de contrôle est 1. Un Toffoli normal nous donne le ET de 2 qubits. Ainsi, en enchaînant quelques Toffolis, nous pouvons obtenir c1.c2.c3.c4.c5, avec le hic que certains qubits "de travail" (ou ancilla) ont été introduits pour stocker les résultats intermédiaires. Après avoir appliqué l'UC finale, nous obtenons le résultat final dans la cible. Nous pouvons maintenant nettoyer les qubits de travail intermédiaires en annulant leurs calculs et en les remettant à l'état | 0>. Ce modèle de calcul réversible est connu sous le nom de méthode "calcul-copie-non-calcul", et a été proposé pour la première fois par Charlie Bennett en 1973 .
Voici le code QISKit pour construire le circuit et le visualiser:
Rendements:
la source
Je veux ajouter une méthode qui n'utilise pas de qubits ancilla, mais nécessite des portes plus compliquées que simplement contrôlées. Je crois que cette méthode a été présentée pour la première fois par Barenco et. Al. dans cet article , Lemme 7.5:
Il s'agit d'une définition récursive, donc la porte de qubit de contrôle n est définie en termes de porte de qubit de contrôle n-1. Cela continuerait jusqu'à ce que vous atteigniez la porte CNOT à deux qubits.
Cette implémentation est un peu difficile, cependant, il en existe une plus simple si cela ne nous dérange pas de collecter une phase relative (voir le lemme 7.9 du même article).
la source
QuantumCircuit de Qiskit a une méthode mct pour construire une porte Toffoli à plusieurs contrôles avec plusieurs modes: basique, basique-ancilla sale, avancé, noancilla. Par exemple la porte Toffoli avec 3 qubits de contrôle:
Production:
la source