예제 #1
0
def plot(pt,counts):
    if pt == 'hist':
        from qiskit.tools.visualization import plot_histogram
        plot_histogram(counts)
    if pt == 'bloch_mv':
        from qiskit.tools.visualization import plot_bloch_multivector
        plot_bloch_multivector(counts)
예제 #2
0
파일: qbits.py 프로젝트: mikecokina/quant
def bloch_1():
    qc = q.QuantumCircuit(2)
    init = [1j / sqrt(2), 1j / sqrt(2)]
    qc.initialize(init, 0)
    backend = Aer.get_backend('statevector_simulator')

    state_vector = q.execute(qc, backend=backend).result().get_statevector()
    plot_bloch_multivector(state_vector)
    plt.show()
def GroverTwo():
    n = 2
    grover_circuit = QuantumCircuit(n)

    for qubit in range(n):
        grover_circuit.h(qubit)

    # Оракул для |00>

   # for qubit in range(n):
    #    grover_circuit.x(qubit)

#        grover_circuit.cz(0, 1)

 #   for qubit in range(n):
  #      grover_circuit.x(qubit)


    # Оракул для |01>
    # grover_circuit.x(1)
    # grover_circuit.cz(0, 1)
    # grover_circuit.x(1)

    # Оракул для |10>
    # grover_circuit.x(0)
    # grover_circuit.cz(0, 1)
    # grover_circuit.x(0)

    # Оракул для |11>
    grover_circuit.cz(0, 1)

    for qubit in range(n):
        grover_circuit.h(qubit)

    # Рефлексия

    for qubit in range(n):
        grover_circuit.z(qubit)
    grover_circuit.cz(0, 1)

    for qubit in range(n):
        grover_circuit.h(qubit)

    backend_sim = Aer.get_backend('statevector_simulator')
    job_sim = execute(grover_circuit, backend_sim)
    statevec = job_sim.result().get_statevector()
    plot_bloch_multivector(statevec)

    grover_circuit.measure_all()

    backend = Aer.get_backend('qasm_simulator')
    shots = 1024
    results = execute(grover_circuit, backend=backend, shots=shots).result()
    answer = results.get_counts()
    return {"name": "00", "value": answer}
예제 #4
0
    def inititalizeQbitStates(self):
        qr = QuantumRegister(3)
        cr = ClassicalRegister(3)
        qc = QuantumCircuit(qr, cr)
        backend = Aer.get_backend('statevector_simulator')
        out = execute(qc,backend).result().get_statevector()
        fig0 = plot_bloch_multivector(out)
        fig0.savefig("./img0_BlochDiagram")

        # step-1 for counter =1 
        qc.ry(np.pi/2, 0) #pi/2 rotation of q0
        qc.draw(output='mpl',filename='./img1_CircuitDiagram')
        backend = Aer.get_backend('statevector_simulator')
        out = execute(qc,backend).result().get_statevector()
        fig1 = plot_bloch_multivector(out)
        fig1.savefig("./img1_BlochDiagram")

        # step-2 for counter =2
        qc.cx(0, 1)
        qc.draw(output='mpl',filename='./img2_CircuitDiagram')
        backend = Aer.get_backend('statevector_simulator')
        out = execute(qc,backend).result().get_statevector()
        fig2 = plot_bloch_multivector(out)
        fig2.savefig("./img2_BlochDiagram")

        # step-3 for counter =3
        qc.ry(np.pi, 0)
        qc.draw(output='mpl',filename='./img3_CircuitDiagram')
        backend = Aer.get_backend('statevector_simulator')
        out = execute(qc,backend).result().get_statevector()
        fig3 = plot_bloch_multivector(out)
        fig3.savefig("./img3_BlochDiagram")

        # step-4 for counter =4
        qc.cx(0,2)
        qc.measure(qr, cr)
        qc.draw(output='mpl',filename='./img4_CircuitDiagram')
        backend = Aer.get_backend('statevector_simulator')
        out = execute(qc,backend).result().get_statevector()
        fig4 = plot_bloch_multivector(out)
        fig4.savefig("./img4_BlochDiagram")

        #histogram plot
        simulator = Aer.get_backend('qasm_simulator')
        result = execute(qc, backend = simulator).result()
        from qiskit.tools.visualization import plot_histogram
        fig = plot_histogram(result.get_counts(qc))
        fig.savefig("./Histogram")
    def inititalizeQbitStates(self):
        global qr
        global cr
        global qc
        backend = Aer.get_backend('statevector_simulator')
        out = execute(qc, backend).result().get_statevector()
        fig0 = plot_bloch_multivector(out)
        fig0.savefig("./img0_BlochDiagram")

        # step-1 for counter =1
        qc.ry(np.pi / 2, 0)  #pi/2 rotation of q0
        qc.draw(output='mpl', filename='./img1_CircuitDiagram')
        backend = Aer.get_backend('statevector_simulator')
        out = execute(qc, backend).result().get_statevector()
        fig1 = plot_bloch_multivector(out)
        fig1.savefig("./img1_BlochDiagram")

        # step-2 for counter =2
        qc.cx(0, 1)
        qc.draw(output='mpl', filename='./img2_CircuitDiagram')
        backend = Aer.get_backend('statevector_simulator')
        out = execute(qc, backend).result().get_statevector()
        fig2 = plot_bloch_multivector(out)
        fig2.savefig("./img2_BlochDiagram")

        # step-3 for counter =3
        qc.ry(np.pi, 0)
        qc.draw(output='mpl', filename='./img3_CircuitDiagram')
        backend = Aer.get_backend('statevector_simulator')
        out = execute(qc, backend).result().get_statevector()
        fig3 = plot_bloch_multivector(out)
        fig3.savefig("./img3_BlochDiagram")

        # step-4 for counter =4
        qc.cx(0, 2)
        qc.measure(qr, cr)
        qc.draw(output='mpl', filename='./img4_CircuitDiagram')
        backend = Aer.get_backend('statevector_simulator')
        out = execute(qc, backend).result().get_statevector()
        fig4 = plot_bloch_multivector(out)
        fig4.savefig("./img4_BlochDiagram")
예제 #6
0
    def qgate(self, gate):
        if not isinstance(gate, str):
            self.state_vector = self.state_vector @ gate
        else:
            self.state_vector = np.array([1 + 0j, 0 + 0j])

        fig = plot_bloch_multivector(self.state_vector)
        fig_mpl = FigureCanvasTkAgg(fig, f_mpl)
        fig_mpl._tkcanvas.grid(row=0, column=0, sticky="n")
        plt.close(fig)

        c = []
        for n in self.state_vector.tolist():
            c.append(f"{round(n.real, 2)} + {round(n.imag, 2)}j")

        state_out = f"[{c[0]}, {c[1]}]"
        l_state_v.configure(text=f"State Vector: {state_out}")
예제 #7
0
파일: flappyq.py 프로젝트: kanejess/FlappyQ
def getGoalBlochs(state):
    if state == '00':
        psi = np.array([1, 0, 0, 0])
        return plot_bloch_multivector(psi, title="Goal Qubits")

    elif state == '01':
        psi = np.array([0, 1, 0, 0])
        return plot_bloch_multivector(psi, title="Goal Qubits")

    elif state == '10':
        psi = np.array([0, 0, 1, 0])
        return plot_bloch_multivector(psi, title="Goal Qubits")

    elif state == '11':
        psi = np.array([0, 0, 0, 1])
        return plot_bloch_multivector(psi, title="Goal Qubits")
    elif state == '1':
        psi = np.array([0, 1])
        return plot_bloch_multivector(psi, title="Goal Qubits")
    elif state == '0':
        psi = np.array([1, 0])
        return plot_bloch_multivector(psi, title="Goal Qubits")
예제 #8
0
from qiskit import *
from qiskit.tools.visualization import plot_bloch_multivector

circuit = QuantumCircuit(1,1)

circuit.cx(0,1)
simulator = Aer.get_backend('statevector_simulator')
result = execute(circuit, backend = simulator).result()
statevector = result.get_statevector()
print(statevector)

circuit.draw(output = 'mpl')

plot_bloch_multivector(statevector)
예제 #9
0
circuit.h(qr[2])

circuit.draw(output='mpl')

circuit.measure(qr,cr)

circuit.draw(output='mpl')
# Procedemos a ejecutar en entorno ideal
simulator=Aer.get_backend('qasm_simulator')
result=execute(circuit,backend=simulator).result()
# visualizacion resultado
from qiskit.tools.visualization import plot_histogram
plot_histogram(result.get_counts(circuit))

from qiskit.tools.visualization import plot_bloch_multivector
plot_bloch_multivector(result.get_counts(circuit))

from qiskit.tools.visualization import plot_gate_map

plot_gate_map(result.get_counts(circuit))
# ejecucion en entorno real

IBMQ.load_account()
provider=IBMQ.get_provider('ibm-q')

qcomp=provider.get_backend('ibmq_london')

job=execute(circuit,backend=qcomp)

from qiskit.tools.monitor import job_monitor
예제 #10
0
# Add a CX (CNOT) gate on control qubit 0 and target qubit 1
circuit.cx(0, 1)

circuit.t(0)

#circuit.measure_all()

# Execute the circuit on the statevector simulator
job = execute(circuit, simulator)

# Grab results from the job
result = job.result()

statevector = result.get_statevector(circuit)
plot_bloch_multivector(statevector, title='Bloch sphere')
plot_state_city(statevector, title='State vector')
print(statevector)

# Returns counts
counts = result.get_counts(circuit)
print("\nCounts:",counts)

# Draw the circuit
circ_plt = circuit.draw(output='mpl')
plt.show(block=False)
print(circuit.draw(output='text'))

# Plot a histogram
fig = plot_histogram(counts)
import qiskit as q
from qiskit import Aer,execute
from qiskit import IBMQ
from qiskit.tools.visualization import plot_histogram,plot_bloch_multivector
from qiskit.tools.monitor import job_monitor
import matplotlib
statevector=q.Aer.get_backend("statevector_simulator")
qasm_sim=q.Aer.get_backend("qasm_simulator")
def do_jobs(circuit):
    result=execute(circuit,backend=statevector).result()
    statevec = result.get_statevector()
    n_qubits=circuit.num_qubits
    circuit.measure([i for i in range(n_qubits)],[i for i in range(n_qubits)])

    result2=execute(circuit,backend=qasm_sim).result()
    counts = result2.get_counts()
    return statevec,counts

circuit=q.QuantumCircuit(3,3)
circuit.h(0)
circuit.cx(0,1)
circuit.cx(1,2)
print(circuit)
statevec,counts=do_jobs(circuit)
plot_bloch_multivector(statevec).show()
#plot_histogram(counts).show()
예제 #12
0
"""
from qiskit import *
from qiskit.tools.visualization import plot_bloch_multivector
from qiskit.tools.visualization import plot_histogram #get plot_histogram

#Circuit manipulation
circuit = QuantumCircuit(3,3)  #Create circuit with 1 qubit and 1 bit
 circuit.x(0)                   #Give the qubit X gate    (0) means 1st qubit (1) means 2nd qubit

#Show the result in state vector. 
simulator = Aer.get_backend("statevector_simulator")          
job = execute( circuit, simulator)
result = job.result()
statevector = result.get_statevector()
print(statevector)                                         #State vector representation
plot_bloch_multivector(statevector)                        #show vector in bloch
circuit.draw(output="mpl")

#Show the matrix representation of gate 
simulator = Aer.get_backend("unitary_simulator")          
result1 = execute(circuit,simulator).result()
unitary = result1.get_unitary()
print(unitary)                                         #gate matrix representation representation


#Show the measurement result in bits representation and probabilities. 
circuit.measure([0,1,2],[0,1,2])                           #in this representation, measurement is required. 
backend = Aer.get_backend("qasm_simulator")
answer = execute(circuit, backend, shots=2000).result()   #Note that 001 for this case because the last bit is the result of qubit 0.
counts = answer.get_counts(circuit)
plot_histogram(counts)
예제 #13
0
f_mpl.grid(row=0, column=1, sticky="n", pady=5)

l_state_v = Label(info,
                  text="State Vector:",
                  width=50,
                  height=1,
                  anchor="w",
                  relief=GROOVE)
l_state_v.grid(row=0, column=0, pady=5)
b_reset = Button(info,
                 text="RESET",
                 width=50,
                 command=lambda: V.qgate("reset")).grid(row=1, column=0)

V = BSVector()
fig = plot_bloch_multivector(V.state_vector)
V.qgate("reset")

operators = Frame(info)
operators.rowconfigure([0, 1], pad=10)
operators.grid(row=2, column=0, sticky="n")

pauli = Frame(operators, borderwidth=2, relief=GROOVE)
pauli.grid(row=0, column=0, sticky="n")

hadamard = Frame(operators, borderwidth=2, relief=GROOVE)
hadamard.grid(row=1, column=0, sticky="n")

other = Frame(operators, borderwidth=2, relief=GROOVE)
other.grid(row=2, column=0, sticky="n")
예제 #14
0
파일: flappyq.py 프로젝트: kanejess/FlappyQ
def getCurrentBlochs(psi):
    return plot_bloch_multivector(psi, title="Current Qubits")