Para cada chip cuántico de IBM, se puede escribir un diccionario que asigna cada qubit de control j a una lista de sus objetivos físicamente permitidos, suponiendo que j es el control de un CNOT. Por ejemplo,
ibmqx4_c_to_tars = {
0: [],
1: [0],
2: [0, 1, 4],
3: [2, 4],
4: []} # 6 edges
por su chip ibmqx4.
¿Cuál sería ese dict para el chip Bristlecone de 72 qubits de Google? Puedes escribir el dict como una comprensión. La misma pregunta para el chip de 19 qubit de Rigetti.
bristlecone
rigetti
cirq
rrtucci
fuente
fuente
Respuestas:
La operación nativa de Bristlecone es la CZ, no las CNOT. Sin embargo, puede transformarse entre los dos con puertas Hadamard, por lo que esta es una diferencia trivial.
Bristlecone puede realizar una CZ entre cualquier par de qubits adyacentes en una cuadrícula. Puede ver la cuadrícula instalando cirq e imprimiendo el dispositivo Bristlecone:
Así es como puede obtener un conjunto que contenga las operaciones CZ permitidas:
El conjunto tiene 121 elementos, y es algo aleatorio si obtienes CZ (x, y) o CZ (y, x) en el conjunto, por lo que no incluiré una impresión del conjunto aquí.
Una restricción adicional a tener en cuenta es que no puede realizar dos CZ una al lado de la otra. Cirq tiene esto en cuenta al crear circuitos destinados a Bristlecone. Por ejemplo:
Las dos primeras operaciones fueron escalonadas porque son CZ adyacentes, pero las dos últimas no lo fueron porque no lo son.
fuente
De la publicación original del blog que presenta el chip cuántico Bristlecone, aquí está el mapa de conectividad del chip:
Advertencia : la expresión anterior no está completamente verificada. Parece funcionar para los primeros qubits, me parece lógico, pero depende de usted verificar que el mapa sea 100% correcto.
Advertencia 2 : la publicación del blog de Google no habla sobre la orientación de las conexiones entre qubits. El mapa de conectividad dado anteriormente supone que las conexiones son bilaterales.
fuente
La versión actual de PyQuil proporciona un objeto "ISA" que contiene la información que desea sobre los procesadores cuánticos de Rigetti, pero no está formateada como lo solicita. Soy un pobre programador de Python, por lo que tendrá que disculpar mi falta de pitonismo, pero aquí hay un fragmento que tomará
device_name
y formateará el PyQuil ISA en uno de sus diccionarios:Como en el caso de Google, la puerta nativa de dos qubits típicamente disponible en un procesador cuántico Rigetti es un
CZ
, que (1) es bidireccional (†) en el sentido de queCZ q0 q1
es el mismoCZ q1 q0
y (2) se convierte fácilmente en cualquiera de sus preferidosCNOT
s al emparedar el objetivo con las puertas Hadamard.† - La implementación física de una
CZ
puerta en una arquitectura superconductor se entregó, por lo que a menudo se ve descripciones arquitectónicas incluyenCZ q0 q1
, pero noCZ q1 q0
. Es una forma abreviada de qué qubit participa en qué mitad de la interacción física, incluso si el resultado (ignorando los efectos de ruido) es el mismo con cualquier pedido.fuente