本文整理汇总了Python中qiskit.QuantumRegister方法的典型用法代码示例。如果您正苦于以下问题:Python qiskit.QuantumRegister方法的具体用法?Python qiskit.QuantumRegister怎么用?Python qiskit.QuantumRegister使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类qiskit
的用法示例。
在下文中一共展示了qiskit.QuantumRegister方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: qft_circuit
# 需要导入模块: import qiskit [as 别名]
# 或者: from qiskit import QuantumRegister [as 别名]
def qft_circuit(num_qubits, measure=True):
"""Create a qft circuit.
Args:
num_qubits (int): number of qubits
measure (bool): include measurement in circuit.
Returns:
QftCircuit: A qft circuit.
"""
# Create quantum/classical registers of size n
qr = QuantumRegister(num_qubits)
circuit = QuantumCircuit(qr)
for i in range(num_qubits):
for j in range(i):
circuit.cu1(math.pi/float(2**(i-j)), qr[i], qr[j])
circuit.h(qr[i])
if measure is True:
circuit = _add_measurements(circuit, qr)
return circuit
示例2: simple_cnot_circuit
# 需要导入模块: import qiskit [as 别名]
# 或者: from qiskit import QuantumRegister [as 别名]
def simple_cnot_circuit(num_qubits, measure=True):
"""Creates a simple circuit composed by cnot gates, with measurements or
not at the end of each qubit.
Args:
num_qubits (int): Number of qubits
measure (bool): Add measurements at the end of each qubit
Returns:
QuantumCircuit: The simple quantum circuit
"""
qr = QuantumRegister(num_qubits)
circuit = QuantumCircuit(qr)
for i in range(num_qubits):
# for the last qubit, we exchange control and target qubits
target_qubit = i + 1 if num_qubits - 1 > i else i - 1
circuit.cx(qr[i], qr[target_qubit])
if measure:
circuit = _add_measurements(circuit, qr)
return circuit
# pylint: disable=invalid-name
示例3: quantum_fourier_transform_circuit
# 需要导入模块: import qiskit [as 别名]
# 或者: from qiskit import QuantumRegister [as 别名]
def quantum_fourier_transform_circuit(num_qubits):
"""Create quantum fourier transform circuit.
Args:
num_qubits (int): Number of qubits
Returns:
QuantumCircuit: QFT circuit
"""
qreg = QuantumRegister(num_qubits)
creg = ClassicalRegister(num_qubits)
circuit = QuantumCircuit(qreg, creg, name="qft")
n = len(qreg)
for i in range(n):
for j in range(i):
circuit.cu1(math.pi/float(2**(i-j)), qreg[i], qreg[j])
circuit.h(qreg[i])
circuit.measure(qreg, creg)
return circuit
示例4: test_amplitude_damping_error
# 需要导入模块: import qiskit [as 别名]
# 或者: from qiskit import QuantumRegister [as 别名]
def test_amplitude_damping_error(self):
"""Test amplitude damping error damps to correct state"""
qr = QuantumRegister(1, 'qr')
cr = ClassicalRegister(1, 'cr')
circuit = QuantumCircuit(qr, cr)
circuit.x(qr) # prepare + state
for _ in range(30):
# Add noisy identities
circuit.barrier(qr)
circuit.i(qr)
circuit.barrier(qr)
circuit.measure(qr, cr)
shots = 4000
backend = QasmSimulator()
# test noise model
error = amplitude_damping_error(0.75, 0.25)
noise_model = NoiseModel()
noise_model.add_all_qubit_quantum_error(error, 'id')
# Execute
target = {'0x0': 3 * shots / 4, '0x1': shots / 4}
circuit = transpile(circuit, basis_gates=noise_model.basis_gates)
qobj = assemble([circuit], backend, shots=shots)
result = backend.run(qobj, noise_model=noise_model).result()
self.assertSuccess(result)
self.compare_counts(result, [circuit], [target], delta=0.05 * shots)
示例5: test_no_noise
# 需要导入模块: import qiskit [as 别名]
# 或者: from qiskit import QuantumRegister [as 别名]
def test_no_noise(self):
qr = QuantumRegister(3, 'qr')
circuit = QuantumCircuit(qr)
circuit.x(qr[0])
circuit.y(qr[1])
circuit.z(qr[2])
target_circuit = QuantumCircuit(qr)
target_circuit.x(qr[0])
target_circuit.y(qr[1])
target_circuit.z(qr[2])
noise_model = NoiseModel() #empty
result_circuit = insert_noise(circuit, noise_model)
self.assertEqual(target_circuit, result_circuit)
示例6: test_all_qubit_quantum_errors
# 需要导入模块: import qiskit [as 别名]
# 或者: from qiskit import QuantumRegister [as 别名]
def test_all_qubit_quantum_errors(self):
qr = QuantumRegister(3, 'qr')
circuit = QuantumCircuit(qr)
circuit.x(qr[0])
circuit.y(qr[1])
circuit.z(qr[2])
error_x = pauli_error([('Y', 0.25), ('I', 0.75)])
error_y = pauli_error([('X', 0.35), ('Z', 0.65)])
noise_model = NoiseModel()
noise_model.add_all_qubit_quantum_error(error_x, 'x')
noise_model.add_all_qubit_quantum_error(error_y, 'y')
target_circuit = QuantumCircuit(qr)
target_circuit.x(qr[0])
target_circuit.append(error_x.to_instruction(), [qr[0]])
target_circuit.y(qr[1])
target_circuit.append(error_y.to_instruction(), [qr[1]])
target_circuit.z(qr[2])
result_circuit = insert_noise(circuit, noise_model)
self.assertEqual(target_circuit, result_circuit)
示例7: test_nonlocal_quantum_errors
# 需要导入模块: import qiskit [as 别名]
# 或者: from qiskit import QuantumRegister [as 别名]
def test_nonlocal_quantum_errors(self):
qr = QuantumRegister(3, 'qr')
circuit = QuantumCircuit(qr)
circuit.x(qr[0])
circuit.x(qr[2])
error_x = pauli_error([('Y', 0.25), ('I', 0.75)])
noise_model = NoiseModel()
noise_model.add_nonlocal_quantum_error(error_x, 'x', [0], [1])
target_circuit = QuantumCircuit(qr)
target_circuit.x(qr[0])
target_circuit.append(error_x.to_instruction(), [qr[1]])
target_circuit.x(qr[2])
result_circuit = insert_noise(circuit, noise_model)
self.assertEqual(target_circuit, result_circuit)
示例8: test_transpiling
# 需要导入模块: import qiskit [as 别名]
# 或者: from qiskit import QuantumRegister [as 别名]
def test_transpiling(self):
qr = QuantumRegister(3, 'qr')
circuit = QuantumCircuit(qr)
circuit.x(qr[0])
circuit.y(qr[1])
circuit.z(qr[2])
error_x = pauli_error([('Y', 0.25), ('I', 0.75)])
error_y = pauli_error([('X', 0.35), ('Z', 0.65)])
noise_model = NoiseModel()
noise_model.add_all_qubit_quantum_error(error_x, 'x')
noise_model.add_all_qubit_quantum_error(error_y, 'u1')
target_circuit = QuantumCircuit(qr)
target_circuit.x(qr[0])
target_circuit.append(error_x.to_instruction(), [qr[0]])
target_circuit.u3(pi, pi / 2, pi / 2, qr[1])
target_circuit.u1(pi, qr[2])
target_circuit.append(error_y.to_instruction(), [qr[2]])
result_circuit = insert_noise(circuit, noise_model, transpile=True)
self.assertEqual(target_circuit, result_circuit)
示例9: create_statevector_circuit
# 需要导入模块: import qiskit [as 别名]
# 或者: from qiskit import QuantumRegister [as 别名]
def create_statevector_circuit(self):
""" Creates a simple circuit for running in the statevector """
qr = QuantumRegister(10)
cr = ClassicalRegister(10)
circuit = QuantumCircuit(qr, cr)
circuit.u3(0.1, 0.1, 0.1, qr[0])
circuit.barrier(qr)
circuit.x(qr[0])
circuit.barrier(qr)
circuit.x(qr[1])
circuit.barrier(qr)
circuit.x(qr[0])
circuit.barrier(qr)
circuit.u3(0.1, 0.1, 0.1, qr[0])
circuit.barrier(qr)
circuit.measure(qr, cr)
return circuit
示例10: create_circuit_for_truncate
# 需要导入模块: import qiskit [as 别名]
# 或者: from qiskit import QuantumRegister [as 别名]
def create_circuit_for_truncate(self):
qr = QuantumRegister(4)
cr = ClassicalRegister(4)
circuit = QuantumCircuit(qr, cr)
circuit.u3(0.1,0.1,0.1,qr[1])
circuit.barrier(qr)
circuit.x(qr[2])
circuit.barrier(qr)
circuit.x(qr[1])
circuit.barrier(qr)
circuit.x(qr[3])
circuit.barrier(qr)
circuit.u3(0.1,0.1,0.1,qr[0])
circuit.barrier(qr)
circuit.measure(qr[0], cr[0])
circuit.measure(qr[1], cr[1])
return circuit
示例11: measure_circuits_nondeterministic
# 需要导入模块: import qiskit [as 别名]
# 或者: from qiskit import QuantumRegister [as 别名]
def measure_circuits_nondeterministic(allow_sampling=True):
""""Measure test circuits with non-deterministic count output."""
circuits = []
qr = QuantumRegister(2)
cr = ClassicalRegister(2)
# Measure |++> state (sampled)
circuit = QuantumCircuit(qr, cr)
circuit.h(qr)
circuit.barrier(qr)
circuit.measure(qr, cr)
if not allow_sampling:
circuit.barrier(qr)
circuit.i(qr)
circuits.append(circuit)
return circuits
示例12: pauli_measure_error_circuits
# 需要导入模块: import qiskit [as 别名]
# 或者: from qiskit import QuantumRegister [as 别名]
def pauli_measure_error_circuits():
"""Local Pauli measure error noise model circuits"""
circuits = []
qr = QuantumRegister(2, 'qr')
cr = ClassicalRegister(2, 'cr')
# 25% all-qubit Pauli error on measure
circuit = QuantumCircuit(qr, cr)
circuit.measure(qr, cr)
circuits.append(circuit)
# 25% local Pauli error on measure of qubit 1
circuit = QuantumCircuit(qr, cr)
circuit.measure(qr, cr)
circuits.append(circuit)
# 25 % non-local Pauli error on qubit 1 for measure of qubit-1
circuit = QuantumCircuit(qr, cr)
circuit.measure(qr, cr)
circuits.append(circuit)
return circuits
示例13: h_gate_circuits_deterministic
# 需要导入模块: import qiskit [as 别名]
# 或者: from qiskit import QuantumRegister [as 别名]
def h_gate_circuits_deterministic(final_measure=True):
"""H-gate test circuits with deterministic counts."""
circuits = []
qr = QuantumRegister(1)
if final_measure:
cr = ClassicalRegister(1)
regs = (qr, cr)
else:
regs = (qr, )
# HH=I
circuit = QuantumCircuit(*regs)
circuit.h(qr)
circuit.barrier(qr)
circuit.h(qr)
if final_measure:
circuit.barrier(qr)
circuit.measure(qr, cr)
circuits.append(circuit)
return circuits
示例14: _gate_rules_to_qiskit_circuit
# 需要导入模块: import qiskit [as 别名]
# 或者: from qiskit import QuantumRegister [as 别名]
def _gate_rules_to_qiskit_circuit(self, node, params):
"""From a gate definition in qasm, to a QuantumCircuit format."""
rules = []
qreg = QuantumRegister(node['n_bits'])
bit_args = {node['bits'][i]: q for i, q in enumerate(qreg)}
exp_args = {node['args'][i]: Real(q) for i, q in enumerate(params)}
for child_op in node['body'].children:
qparams = []
eparams = []
for param_list in child_op.children[1:]:
if param_list.type == 'id_list':
qparams = [bit_args[param.name] for param in param_list.children]
elif param_list.type == 'expression_list':
for param in param_list.children:
eparams.append(param.sym(nested_scope=[exp_args]))
op = self._create_op(child_op.name, params=eparams)
rules.append((op, qparams, []))
circ = QuantumCircuit(qreg)
circ.data = rules
return circ
示例15: definition
# 需要导入模块: import qiskit [as 别名]
# 或者: from qiskit import QuantumRegister [as 别名]
def definition(self) -> List:
"""Return definition in terms of other basic gates. If the gate has
open controls, as determined from `self.ctrl_state`, the returned
definition is conjugated with X without changing the internal
`_definition`.
"""
if self._open_ctrl:
closed_gate = self.copy()
closed_gate.ctrl_state = None
bit_ctrl_state = bin(self.ctrl_state)[2:].zfill(self.num_ctrl_qubits)
qreg = QuantumRegister(self.num_qubits, 'q')
qc_open_ctrl = QuantumCircuit(qreg)
for qind, val in enumerate(bit_ctrl_state[::-1]):
if val == '0':
qc_open_ctrl.x(qind)
qc_open_ctrl.append(closed_gate, qargs=qreg[:])
for qind, val in enumerate(bit_ctrl_state[::-1]):
if val == '0':
qc_open_ctrl.x(qind)
return qc_open_ctrl
else:
return super().definition