I am trying to rule out the state |000>
for a simple 3 qbits quantum circuit executed on a real quantum backend.
The code exctract below is unelegant but I guess it does the trick and for the time being the value |000>
hasn't come up. Still I don't clearly understand why the statevector based on the instructions set analysis (measurement excepted) shows that all the state are strictly equiprobable while the CCNOT
gate is such that q0
is forced to |0>
in all instances where both q1
AND q2
are in state |0>
. I tend to think that the explanation has to do with density matrixes applied to mixed states but I don't know where to get precisely from there...Could you point me in the right direction?
qcM=QuantumCircuit (3)
qcM.h(0)
qcM.h(1)
qcM.h(2)
qcM.x(1)
qcM.x(2)
qcM.ccx(1,2,0)
qcM.x(1)
qcM.x(2)
#Statevector du circuit décrit
st1 = Statevector.from_instruction(qcM)
print('State vector : ', st1)
qcM.measure_all()
The statevector I am getting upon execution is the following:
The best backend is ibmq_manila
State vector : Statevector([0.35355339+0.j, 0.35355339+0.j, 0.35355339+0.j,
0.35355339+0.j, 0.35355339+0.j, 0.35355339+0.j,
0.35355339+0.j, 0.35355339+0.j],
dims=(2, 2, 2))
Here is a picture of the circuit:
Thanks for your help,
Kind regards,
Bertrand