Skip to content

Instantly share code, notes, and snippets.

@leachy14
Created August 5, 2017 05:18
Show Gist options
  • Save leachy14/7c18e1cccb5e0a99a71d8513ee06176a to your computer and use it in GitHub Desktop.
Save leachy14/7c18e1cccb5e0a99a71d8513ee06176a to your computer and use it in GitHub Desktop.
ibmq program for factorial
import sys
sys.path.append('/.../.../.../')
from qiskit import QuantumProgram
import Qconfig
# Creating Programs
Q_SPECS = {
'circuits': [{
'name': 'Circuit',
'quantum_registers': [{
'name': 'qr',
'size': 5
}],
'classical_registers': [{
'name': 'cr',
'size': 5
}]}],
}
qp = QuantumProgram(specs=Q_SPECS)
circuit = qp.get_circuit('Circuit')
quantum_r = qp.get_quantum_register('qr')
classical_r = qp.get_classical_register('cr')
circuit.x(quantum_r[0])
circuit.x(quantum_r[4])
circuit.cx(quantum_r[2], quantum_r[0])
circuit.h(quantum_r[0])
circuit.h(quantum_r[2])
circuit.cx(quantum_r[2], quantum_r[0])
circuit.h(quantum_r[0])
circuit.h(quantum_r[2])
circuit.cx(quantum_r[2], quantum_r[0])
circuit.cx(quantum_r[2], quantum_r[3])
circuit.cx(quantum_r[2], quantum_r[0])
circuit.h(quantum_r[0])
circuit.h(quantum_r[2])
circuit.cx(quantum_r[2], quantum_r[0])
circuit.h(quantum_r[0])
circuit.h(quantum_r[2])
circuit.cx(quantum_r[2], quantum_r[0])
circuit.cx(quantum_r[2], quantum_r[1])
circuit.h(quantum_r[1])
circuit.h(quantum_r[2])
circuit.cx(quantum_r[2], quantum_r[1])
circuit.h(quantum_r[1])
circuit.h(quantum_r[2])
circuit.cx(quantum_r[2], quantum_r[1])
circuit.cx(quantum_r[2], quantum_r[4])
circuit.cx(quantum_r[2], quantum_r[1])
circuit.h(quantum_r[1])
circuit.h(quantum_r[2])
circuit.cx(quantum_r[2], quantum_r[1])
circuit.h(quantum_r[1])
circuit.h(quantum_r[2])
circuit.cx(quantum_r[2], quantum_r[1])
circuit.measure(quantum_r[0], classical_r[0])
circuit.measure(quantum_r[1], classical_r[1])
# Coupling map for ibmqx2 "bowtie"
coupling_map = {0: [1, 2],
1: [2],
2: [],
3: [2, 4],
4: [2]}
# Place the qubits on a triangle in the bow-tie
#initial_layout={("q", 0): ("q", 2), ("q", 1): ("q", 3), ("q", 2): ("q", 4)}
#circuit should produce 0 50 1 50
backend = 'ibmqx2' # Backend where you execute your program; in this case, on the Real Quantum Chip online
circuits = ['Circuit'] # Group of circuits to execute
shots = 8192 # Number of shots to run the program (experiment); maximum is 8192 shots.
max_credits = 5 # Maximum number of credits to spend on executions.
qp.set_api(Qconfig.APItoken, Qconfig.config['url']) # set the APIToken and API url
result_real = qp.execute(circuits, backend, coupling_map=coupling_map, shots=shots, max_credits=5, wait=10, timeout=300, silent=False)
# ground = np.zeros(2**1)
# ground[0]=1.0
#
# state_superposition = np.dot(result_real.get_data('circuit')['unitary'],ground)
# rho_superposition=np.outer(state_superposition, state_superposition.conj())
print(result_real.get_counts('Circuit'))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment