Me preguntaba si hay una manera de componer un programa con múltiples circuitos cuánticos sin tener el registro reinicializado en para cada circuito.
Específicamente, me gustaría ejecutar un segundo circuito cuántico después de ejecutar el primero, como en este ejemplo:
qp = QuantumProgram()
qr = qp.create_quantum_register('qr',2)
cr = qp.create_classical_register('cr',2)
qc1 = qp.create_circuit('B1',[qr],[cr])
qc1.x(qr)
qc1.measure(qr[0], cr[0])
qc1.measure(qr[1], cr[1])
qc2 = qp.create_circuit('B2', [qr], [cr])
qc2.x(qr)
qc2.measure(qr[0], cr[0])
qc2.measure(qr[1], cr[1])
#qp.add_circuit('B1', qc1)
#qp.add_circuit('B2', qc2)
pprint(qp.get_qasms())
result = qp.execute()
print(result.get_counts('B1'))
print(result.get_counts('B2'))
Desafortunadamente, lo que obtengo es el mismo resultado para las dos ejecuciones (es decir, un recuento de 11
para B1
y en B2
lugar de 11
y 00
para la segunda, como si B2
se ejecutara en un estado completamente nuevo inicializado 00
después) B1
.