BConfig
class BConfig(backend, indicator=True)
Bases: object
This class is used to create a GHZ circuit with parallellized CNOT gates to increase fidelity
Methods
get_ghz_layout
BConfig.get_ghz_layout(n, transpiled=True, barriered=True)
Feeds the Tier Dict of the backend to create a basic qiskit GHZ circuit with no measurement; :type n: int
:param n: number of qubits :type transpiled: bool
:param transpiled: toggle on/off transpilation - useful for tomography :type barriered: bool
:param barriered: yes/no whether to barrier each step of CNOT gates
Return type
Tuple
[QuantumCircuit
, Dict
]
Returns
A GHZ Circuit and its initial GHZ layout
get_ghz_mqc
BConfig.get_ghz_mqc(n, delta, full_measurement=True)
This function creates an MQC circuit with n qubits, where the middle phase rotation around the z axis is by delta
Parameters
- n (
int
) – number of qubits - delta (
float
) – the rotation of the middle phase around the z axis - full_measurement (
bool
) – Whether to append full measurement, or only on the first qubit
Return type
Tuple
[QuantumCircuit
, Dict
]
Returns
The MQC circuit and the initial GHZ layout
get_ghz_mqc_para
BConfig.get_ghz_mqc_para(n, full_measurement=True)
Get a parametrized MQC circuit. Remember that get_counts() method accepts an index now, not a circuit
Parameters
- n (
int
) – number of qubits - full_measurement (
bool
) – Whether to append full measurement, or only on the first qubit
Return type
Tuple
[QuantumCircuit
, Parameter
, Dict
]
Returns
The MQC circuit, its delta parameter, and the initial GHZ layout
get_ghz_po
BConfig.get_ghz_po(n, delta)
This function creates an Parity Oscillation circuit with n qubits, where the middle superposition rotation around the x and y axes is by delta
Parameters
- n (
int
) – number of qubits - delta (
float
) – the middle superposition rotation
Return type
Tuple
[QuantumCircuit
, Dict
]
Returns
The Parity Oscillation circuit and the initial GHZ layout
get_ghz_po_para
BConfig.get_ghz_po_para(n)
Get a parametrized PO circuit. Remember that get_counts() method accepts an index now, not a circuit. The two phase parameters are a quirk of the Parameter module
Parameters
n (int
) – number of qubits
Return type
Tuple
[QuantumCircuit
, List
[Parameter
], Dict
]
Returns
A parity oscillation circuit, its Delta/minus-delta parameters,
and the initial ghz layout
get_ghz_simple
BConfig.get_ghz_simple(n, full_measurement=True)
Get simple GHZ circuit with measurement
Parameters
- n (
int
) – number of qubits - full_measurement (
bool
) – Whether to append full measurement, or only on the first qubit
Return type
Tuple
[QuantumCircuit
, QuantumRegister
, Dict
]
Returns
A GHZ Circuit, its measurement circle quantum register and the initial GHZ layout
get_measurement_circ
BConfig.get_measurement_circ(n, qregname, cregname, full_measurement=True)
Creates a measurement circuit that can toggle between measuring the control qubit or measuring all qubits. The default is measurement of all qubits.
Parameters
- n (
int
) – number of qubits - qregname (
str
) – name of the qubit register - cregname (
str
) – name of the classical register - full_measurement (
bool
) – Whether to append full measurement, or only on the first qubit
Return type
QuantumCircuit
Returns
The measurement circuit
get_tier_dict
BConfig.get_tier_dict()
Take the nodes of the BConfig to create a Tier Dictionary, where keys are the steps in the process, and the values are the connections following pattern of: [controlled qubit, NOT qubit]. Thus the backend’s GHZ state is parallelized.
Return type
Dict
Returns
Tier dictionary - [step in process, control-target connection]
Facilitates parallelized GHZ circuits