0
$\begingroup$

From my circuits in ibm q the final output is given by only a single qbit Which gives state |ψ⟩

Tell me a combination of gates to do the following

If |ψ⟩ = |0⟩ Then output |0⟩

If |ψ⟩=α|0⟩+β|1⟩ Then output |1⟩

If |ψ⟩=|1⟩ Then output |1⟩

$\endgroup$
3
$\begingroup$

As you've specified it, given a state $|\psi\rangle$, there is no deterministic strategy that can fulfil all three conditions that you specify.

However, you imply that what you actually have is a unitary procedure $U$ to create $U|0\rangle=|\psi\rangle$. This means that you can, in fact, do what you ask. It's called amplitude amplification. Basically, the Grover iterator that you need is $$ U^\dagger ZUZ, $$ where $Z$ is the standard Pauli Z matrix. You haven't specified if $\alpha$ is a known or unknown parameter. If it's known, you just need to run the thing $R$ times where $(2R+1)\theta\approx\pi/2$ and $\sin\theta=\beta$ to at least get close. If you don't know $\alpha$, there's a version of the protocol which includes phase estimation, which helps you do the job.

| improve this answer | |
$\endgroup$
0
$\begingroup$

In first and last case you don't need to apply any gate directly measure the qubit you will get desire answer but in the second case you can't get |1⟩ state because your |ψ⟩ is in superposition of |0⟩, |1⟩. If you try to measure the |ψ⟩ you will get $|0\rangle$ with probability $|\alpha|^2$ and $|1\rangle$ with probability $|\beta|^2$. The code below shows your second case.

import qiskit as q
from qiskit.visualization import plot_histogram

circuit = q.QuantumCircuit(2,1) 
circuit.h(0)
circuit.measure([0],[0])
job = execute(circuit, backend = Aer.get_backend('qasm_simulator'), shots=1024)
result = job.result()
counts = result.get_counts(circuit)
print(counts)
circuit.draw()
plot_histogram([counts], legend=['Device'])

or you can do it like this with little manipulation.

import qiskit as q
from qiskit.visualization import plot_histogram

circuit = q.QuantumCircuit(2,1) 
circuit.x(0)
circuit.h(0)
circuit.h(0)
circuit.measure([0],[0])
job = execute(circuit, backend = Aer.get_backend('qasm_simulator'), shots=1024)
result = job.result()
counts = result.get_counts(circuit)
print(counts)
circuit.draw()
plot_histogram([counts], legend=['Device'])
| improve this answer | |
$\endgroup$

Not the answer you're looking for? Browse other questions tagged or ask your own question.