Implémentation de l'oracle de l'algorithme de Grover sur IBM Q en utilisant trois qubits

10

J'essaie de m'habituer à IBM Q en implémentant l'algorithme de Grover à trois qubits mais j'ai du mal à implémenter l'oracle.

Pourriez-vous montrer comment faire cela ou suggérer de bonnes ressources pour vous habituer à la programmation de circuits IBM Q?

Ce que je veux faire, c'est marquer un état arbitraire en retournant son signe comme l'oracle censé le faire.

Par exemple, j'ai

.1/8(|000+|001+|010+|011+|100+|101+|110+|111)

et je veux marquer en renversant son signe - | 111 . Je comprends en quelque sorte que la porte CCZ résoudrait le problème, mais nous n'avons pas de porte CCZ dans IBM Q. La combinaison de certaines portes agira de la même manière que CCZ, mais je ne sais pas encore comment le faire. Et je me bats aussi pour les autres cas non seulement pour | 111 .|111-|111|111

Le cas de deux qubits est assez simple pour moi à implémenter, mais le soin de trois qubits me prête toujours à confusion.

Bick
la source
1
Leur documentation comprend quelques exemples de l'algorithme de Grover, bien que je ne me souvienne pas de la taille de l'espace de recherche.
Norrius
Merci pour le commentaire. Oui, cette page ( quantumexperience.ng.bluemix.net/proxy/tutorial/full-user-guide/… ) explique l'implémentation de l'algorithme de Grover à deux qubits.
Bick

Réponses:

4

Je réponds à ma question. Après quelques recherches sur Google, j'ai trouvé cette image montrant la porte CCZ par CNOT, la dague T et la porte T. J'ai essayé cela sur IBM Q et cela a fonctionné. Je veux explorer pourquoi cela fonctionne, mais c'est une autre histoire.

Pour quelqu'un qui est intéressé, voici mon circuit quantique de l'algorithme de Grover trouvant | 111> avec une seule itération.

Recherche d'algorithme de Grover | 111> avec une seule itération

Bick
la source
1
Vous souhaitez rechercher des circuits standard pour la porte contrôlée-contrôlée-NON (également appelée Toffoli). C'est la Fig. 4.9 dans ma version de Nielsen & Chuang. Pour convertir en une porte à phase contrôlée contrôlée, il suffit de coller un Hadamard sur le qubit cible à la fois avant et après (ou, s'il y a déjà des Hadamards à chaque extrémité, retirez-les simplement).
DaftWullie
0

J'ai implémenté le même problème pour plusieurs qubits en utilisant qiskit ici .

...|111

En général, l'idée est de simuler une porte CCZ en utilisant Hadamard sur le bit cible suivi d'une porte CCX puis d'un autre Hadamard sur le bit cible.

tigerjack89
la source