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 11para B1y en B2lugar de 11y 00para la segunda, como si B2se ejecutara en un estado completamente nuevo inicializado 00después) B1.