Pour chaque puce IBM quantique, on peut écrire un dictionnaire mappant chaque qubit de contrôle j sur une liste de ses cibles physiquement autorisées, en supposant que j soit le contrôle d'un CNOT. Par exemple,
ibmqx4_c_to_tars = {
0: [],
1: [0],
2: [0, 1, 4],
3: [2, 4],
4: []} # 6 edges
pour leur puce ibmqx4.
Quel serait ce dicton pour la puce Bristlecone de 72 qubit de Google. Vous pouvez écrire le dict comme une compréhension. Même question pour la puce 19 qubit de Rigetti.
bristlecone
rigetti
cirq
rrtucci
la source
la source
Réponses:
L'opération native de Bristlecone est la CZ, pas les CNOT. Cependant, vous pouvez transformer entre les deux avec des portes Hadamard, donc c'est une sorte de différence triviale.
Bristlecone peut effectuer une CZ entre n'importe quelle paire adjacente de qubits sur une grille. Vous pouvez voir la grille en installant cirq et en imprimant le périphérique Bristlecone:
Voici comment obtenir un ensemble contenant les opérations CZ autorisées:
L'ensemble contient 121 éléments, et il est quelque peu aléatoire que vous obteniez CZ (x, y) ou CZ (y, x) dans l'ensemble, donc je n'inclurai pas d'imprimé de l'ensemble ici.
Une contrainte supplémentaire à garder à l'esprit est que vous ne pouvez pas effectuer deux CZ côte à côte en même temps. Cirq en tient compte lors de la création de circuits ciblant Bristlecone. Par exemple:
Les deux premières opérations ont été échelonnées parce qu'elles sont des ZC adjacentes, mais les deux autres ne l'ont pas été parce qu'elles ne le sont pas.
la source
Du blog original présentant la puce quantique Bristlecone, voici la carte de connectivité de la puce:
Chaque croix représente un qubit, avec une connectivité au plus proche voisin. Si vous numérotez les qubits de gauche à droite, de haut en bas (tout comme la façon dont vous lisez l'anglais), en commençant par la carte de connectivité serait donnée par:0
Attention : l'expression ci-dessus n'est pas vérifiée. Cela semble fonctionner pour les premiers qubits, cela me semble logique, mais c'est à vous de vérifier que la carte est 100% correcte.
Avertissement 2 : le blog de Google ne parle pas de l'orientation des connexions entre les qubits. La carte de connectivité ci-dessus suppose que les connexions sont bilatérales.
la source
La version actuelle de PyQuil fournit un objet "ISA" qui contient les informations que vous souhaitez sur les processeurs quantun de Rigetti, mais il n'est pas formaté comme vous le demandez. Je suis un pauvre programmeur Python, donc vous devrez excuser mon non-Pythonic-ness, mais voici un extrait qui va prendre
device_name
et reformater le pyQuil ISA dans l'un de vos dictionnaires:Comme dans le cas de Google, la porte native à deux qubits généralement disponible sur un processeur quantique Rigetti est un
CZ
, qui (1) est bidirectionnel (†) dans le sens quiCZ q0 q1
est le même queCZ q1 q0
et (2) est facilement converti en l'un de vos préférésCNOT
s en prenant la cible en sandwich avec des portes Hadamard.† - L'implémentation physique d'une
CZ
porte dans une architecture supraconductrice est remise, c'est pourquoi vous voyez souvent les descriptions architecturales inclureCZ q0 q1
mais pasCZ q1 q0
. C'est un raccourci pour lequel qubit participe à quelle moitié de l'interaction physique, même si le résultat (en ignorant les effets de bruit) est le même avec l'un ou l'autre ordre.la source