Vous pouvez simplifier les problèmes de "production d'un état" en les divisant en trois parties:
- Préparez la collection des grandeurs dont vous aurez besoin, sans vous soucier de la phase ou de quel état a quelle grandeur.
- Fixez les phases.
- Fixez la commande.
Considérons maintenant l'état Hardy. Quelles sont les grandeurs que nous devons faire? Nous avons besoin d'une instance de et de trois instances d'instance de . Nous pouvons les faire un à la fois, en ayant un état "d'amplitude restante" dont nous continuons à nous séparer.3 / 12--√1 / 12--√
On commence par toute l'amplitude dans un état avec une excitation à gauche, où . Ce que nous voulons faire, c'est déplacer l'excitation vers la droite tout en laissant les amplitudes souhaitées. Donc, pour commencer, nous voulons laisser la magnitude . Nous pouvons le faire avec une opération contrôlée , où le contrôle est le qubit le plus à gauche et la cible est le qubit juste à sa droite. En choisissant juste la bonne valeur pour , cela donnera l'état . Nous avons ensuite CNOT le deuxième qubit de retour sur le premier qubit pour arriver àℓ0| 1000 ...00⟩ℓ0= 13 / 12--√Ry( θ0)θ3 / 12--√| 1000 ...00⟩+ ℓ1| 1100 ...00⟩ℓ1| 1000 ... 00⟩+3 / 12--√| 0100 ...00⟩. Ensuite, nous voulons retirer . Nous effectuons un autre contrôlé par le qubit le plus à gauche suivi d'un CNOT vers l'arrière, mais cette fois avec la cible est le qubit troisième de la gauche. En choisissant le parfait nous produirons l'état . Et vous continuez à faire cela jusqu'à ce que vous ayez toutes les amplitudes dont vous avez besoin, commodément adressées par des qubits individuels excités.1 / 12--√Ryθ1ℓ2| 1000 ... 00⟩+3 / 12--√| 0100 ... 00⟩+1 / 12--√ℓ2| 0010 ...00⟩
Vous voulez maintenant corriger toutes les phases incorrectes produites par les rotations Y. Pour l'état Hardy, c'est facile, car toutes les phases sont positives. En général, vous ciblez chaque position de qubit avec une opération avec des valeurs choisies de manière appropriée , et cela obtiendra les bonnes phases.kRz( ϕk)ϕk
Maintenant, nous voulons obtenir la bonne commande. La façon la plus simple de le faire est d'avoir des qubits supplémentaires qui sont vos qubits de sortie et, pour chacun des qubits que nous avons préparés jusqu'à présent et chacun des qubits de sortie, ajoutez un CNOT entre les deux ou ne le faites pas. Par exemple, si l'état d'amplitude est supposé être un , alors nous devons CNOT de notre qubit le plus à gauche sur les deux qubits de sortie. Ensuite, nous devons calculer le qubit le plus à gauche en utilisant une opération NOT à plusieurs contrôlés. Il doit y avoir un contrôle pour chaque qubit de sortie, et le type de contrôle (qubit-must-be-on vs qubit-must-be-off) est déterminé selon que vous avez ou non basculé le qubit.3 / 12--√| 11⟩
L'application de ces étapes produit un circuit inefficace, mais correct, pour créer un état Hardy. Vous pouvez ouvrir le circuit dans Quirk :
Si vous voulez produire un état sans utiliser autant d'espace de travail, la tâche devient plus difficile. Mais vous pouvez toujours suivre les grandeurs puis les phases puis le modèle de commande. En outre, il existe des moyens plus intelligents de préparer des ensembles de magnitudes avec de beaux motifs. Par exemple, lorsqu'une seule amplitude est différente des autres, un cycle d'amplification d'amplitude partielle peut être suffisant pour préparer l'état.