예제 #1
0
import sys
sys.path.append('../..')
from methods import test_locally, run_main_loop_with_chsh_test
from qiskit import ClassicalRegister, QuantumRegister, QuantumCircuit

# Create a Quantum Register called "qr" with 2 qubits.
qr = QuantumRegister(2)
# Create a Classical Register called "cr" with 2 bits.
cr = ClassicalRegister(2)
# Create a Quantum Circuit called involving "qr" and "cr"
qc = QuantumCircuit(qr, cr, name='Hello-Quantum')

# Add a H gate on qubit 0, putting this qubit in superposition.
qc.h(qr[0])
# Add a CX (CNOT) gate on control qubit 0 and target qubit 1, putting
# the qubits in a Bell state.
qc.cx(qr[0], qr[1])
# Add X Pauli gat, to get different Bell state
qc.x(qr[1])
# Barrier added due to qasm parsing issue
# https://github.com/QISKit/qiskit-sdk-py/issues/309
qc.barrier(qr)
# Add a Measure gate to see the state.
qc.measure(qr, cr)

print('Circuit prepared for execution.')

#run_main_loop_with_chsh_test(qc)
test_locally([qc])
예제 #2
0
파일: N4Grover_qx4.py 프로젝트: Tomev/QEL
    qc.h(qr[T])

    qc.x(qr[C0])
    qc.x(qr[C1])
    qc.x(qr[C2])
    qc.x(qr[T])

    qc.h(qr[C0])
    qc.h(qr[C1])
    qc.h(qr[C2])
    qc.h(qr[T])


states = ['{0:04b}'.format(x) for x in range(2**4)]
circuits = []

print(states)

for state in states:
    initialization(state)

    for i in range(algorithm_repetition_times):
        oracle(state)
        diffusion()

    qc.measure(qr, cr)
    circuits.append(qc)

test_locally(circuits, True)
# run_main_loop_with_chsh_test(circuits)
예제 #3
0
    return rotated_states


def name_circuits(circuits: list):
    for step in range(len(circuits)):
        circuits[step].name = 'Mermin_' + str(2 * step) + 'pi/' + str(
            len(circuits)) + '_B'


def get_mermin_circuits(steps=8):
    mermin_circuit = create_ghz_state()
    mermin_circuit.name = 'Mermin_B'
    rotated_states = apply_symmetric_rz_rotations(mermin_circuit, steps)
    name_circuits(rotated_states)
    mermin_circuits = add_measurements_in_selected_bases(rotated_states)
    return mermin_circuits


def get_mermin_test_circuits():
    mermin_test_base_circuits = create_ghz_state()
    mermin_test_base_circuits.name = "Mermin-test"
    mermin_test_circuits = add_measurements_in_selected_bases(
        [mermin_test_base_circuits])
    return mermin_test_circuits


# run_main_loop_with_chsh_test(get_mermin_circuits())
# test_locally(get_mermin_circuits(), use_mapping=True, save_to_file=True, number_of_simulations=1)
# draw_circuit(get_mermin_circuits()[0])
test_locally(get_mermin_circuits())
예제 #4
0
    qr3 = QuantumRegister(3)
    cr3 = ClassicalRegister(3)

    # bases_n3 = ['XXX', 'YYX', 'YXY', 'XYY', 'ZZX', 'ZXZ', 'XZZ']
    bases_n3 = ['XXX', 'YYX', 'YXY', 'XYY']

    c3 = QuantumCircuit(qr3, cr3)
    c3.name = "SC_000"

    c4 = QuantumCircuit(qr3, cr3)
    c4.x(qr3[0])
    c4.x(qr3[1])
    c4.x(qr3[2])
    c4.barrier()
    c4.name = "SC_111_B"

    circuits_n3 = [c3, c4]

    sc_n3_circuits = []

    for c in circuits_n3:
        for b in bases_n3:
            sc_n3_circuits.append(add_measure_in_base(c.copy(), b))

    return sc_n3_circuits


# test_locally(SC_Circuits, use_mapping=True, save_to_file=True, number_of_simulations=100)
# test_locally_with_noise(SC_Circuits)
test_locally(get_sc_n3_circuits())
예제 #5
0
파일: N2Grover.py 프로젝트: fbm2718/IBMQE
import sys

sys.path.append('../..')
from methods import test_locally, create_circuit_from_qasm, run_main_loop_with_chsh_test

available_file_names = [
    'Grover_2_00_1.qasm', 'Grover_2_01_1.qasm', 'Grover_2_10_1.qasm',
    'Grover_2_11_1.qasm'
]
selected_file_index = 0

circuits = []

for file_name in available_file_names:
    qc = create_circuit_from_qasm(file_name)
    qc.name = file_name.split('.')[0]
    circuits.append(qc)

#run_main_loop_with_chsh_test(circuits)
test_locally(circuits)
예제 #6
0
from methods import test_locally


def get_bell_circuits(circuits_copies_number: int = 50):
    qr = QuantumRegister(5)
    cr = ClassicalRegister(5)

    circuits = []

    # Circuits preparation
    for i in range(0, circuits_copies_number):
        qc = QuantumCircuit(qr, cr)
        qc.h(qr[2])
        qc.cx(qr[2], qr[0])
        qc.cx(qr[2], qr[4])
        qc.h(qr[2])
        qc.ry(np.pi / 4, qr[0])
        qc.measure(qr, cr)

        circuits.append(qc)
        circuits[i].name = "Bell_" + str(i)

    return circuits


print("Bell experiment start")

test_locally(get_bell_circuits())

print("Bell experiment finished")
예제 #7
0
import os
import sys

current_dir = os.path.dirname(os.path.realpath(__file__))
parent_dir = os.path.dirname(current_dir)
sys.path.append(parent_dir)

from CHSH.CHSH_XY import get_symmetric_chsh_circuits, get_symmetric_chsh_test_circuits
from Mermin.Mermin import get_mermin_circuits, get_mermin_test_circuits
from SanityCheck.SanityCheck import get_sc_n2_circuits, get_sc_n3_circuits, get_n2_calibration_circuits, \
    get_n3_calibration_circuits
from methods import test_locally

chsh_circuits = get_sc_n2_circuits() + get_symmetric_chsh_circuits(
    8) + get_symmetric_chsh_test_circuits() + get_n2_calibration_circuits()
mermin_circuits = get_sc_n3_circuits() + get_mermin_circuits(
    8) + get_mermin_test_circuits() + get_n3_calibration_circuits()

# no_signaling_circuits = [chsh_circuits, mermin_circuits]
no_signaling_circuits = mermin_circuits

# print(f'CHSH Experiment Circuits Length: {len(chsh_circuits)}')
print(f'Mermin Experiment Circuits Length: {len(mermin_circuits)}')

print(f'No_signaling_experiments num: {len(no_signaling_circuits)}')

# run_main_loop(no_signaling_circuits)
# run_main_loop_with_chsh_test(circuits)
test_locally(no_signaling_circuits, True, False, 1)
예제 #8
0
    circuit = qiskit.QuantumCircuit(qr, cr)
    circuit.measure(qr[i], cr[i])
    return circuit


def get_teleportation_circuits():
    # A circuit to teleport state from qubit 0 to qubit 2.
    teleport = qiskit.QuantumCircuit(qr, cr)

    # Prepare bell state on qubits 1 and 2.
    teleport.h(qr[1])
    teleport.cx(qr[1], qr[2])

    teleport.measure(qr[0], cr[0])
    teleport.measure(qr[1], cr[1])

    # Prepare circuits
    circuits = []

    for theta in np.linspace(0, np.pi, 10):
        qc_test = prepare_state(theta) + measure(0) + measure(1) + measure(2)
        circuits.append(qc_test)
        qc_teleport = prepare_state(theta) + teleport + measure(2)
        circuits.append(qc_teleport)

    return circuits


# Execute
test_locally(get_teleportation_circuits())