quri_parts.backend.device module

class QubitProperty(T1=None, T2=None, frequency=None, prob_meas0_on_state1=None, prob_meas1_on_state0=None, readout_time=None, name=None)

Bases: object

Noise property of a qubit.

Parameters:
  • T1 (TimeValue, optional) – t1 relaxation time

  • T2 (TimeValue, optional) – t2 relaxation time

  • frequency (FrequencyValue,optional) – qubit frequency

  • prob_meas0_on_state1 (float, optional) – readout error probability of measuring 0 when the state is 1

  • prob_meas1_on_state0 (float, optional) – readout error probability of measuring 1 when the state is 0

  • readout_time (TimeValue, optional) – time duration on measurement.

  • name (str, optional) – name of the qubit

T1: TimeValue | None = None
T2: TimeValue | None = None
frequency: FrequencyValue | None = None
prob_meas0_on_state1: float | None = None
prob_meas1_on_state0: float | None = None
readout_time: TimeValue | None = None
name: str | None = None
class GateProperty(gate, qubits, gate_error=None, gate_time=None, name=None)

Bases: object

Noise property of a gate.

Parameters:
  • gate (str) – gate name

  • qubits (Sequence[int]) – target qubits for the gate. The order is control_index0, control_index1, …, target_index0, …

  • gate_error (float, optional) – 1 - fidelity of the gate operation

  • gate_time (float, optional) – time duration of the gate operation

  • name (str, optional) – name of the gate

gate: str
qubits: Sequence[int]
gate_error: float | None = None
gate_time: TimeValue | None = None
name: str | None = None
class DeviceProperty(qubit_count, qubits, qubit_graph, qubit_properties, native_gates, gate_properties, physical_qubit_count=None, background_error=None, name=None, provider=None, transpiler=None, parametric_transpiler=None, analyze_transpiler=None, analyze_parametric_transpiler=None, noise_model=None)

Bases: object

Stores properties of a quantum device for circuit cost estimation.

Parameters:
  • qubit_count (int) – Number of qubits.

  • qubits (Sequence[int]) – Qubit indices.

  • qubit_graph (newtorkx.Graph) – Topology of qubit connections.

  • qubit_properties (Mapping[int, QubitProperty]) – Mapping from qubit index to QubitProperty.

  • native_gates (Collection[str]) – Names of supported gates.

  • gate_properties (Collection[GateProperty]) – Collection of GateProperty.

  • physical_qubit_count (int | None) – (int, optional): Number of physical qubits.

  • background_error (tuple[float, TimeValue] | None) – (tuple[float, TimeValue], optional): The errors that occur with respect to the passage of time for each qubit, regardless of the application of gates, etc. It must be given together with the time unit.

  • name (str, optional) – Name of the device.

  • provider (str, optional) – Provider of the device.

  • transpiler (CircuitTranspiler, optional) – CircuitTranspiler for converting to an instruction sequence supported by the target device.

  • parametric_transpiler (ParametricCircuitTranspiler, optional) – ParametricCircuitTranspiler for converting to an instruction sequence supported by the target device.

  • noise_model (NoiseModel, optional) – Noise models that reproduce device behaviour.

  • analyze_transpiler (circuit.transpile.transpiler.CircuitTranspiler | None)

  • analyze_parametric_transpiler (circuit.transpile.transpiler.ParametricCircuitTranspiler | None)

qubit_count: int
qubits: Sequence[int]
qubit_graph: Graph
qubit_properties: Mapping[int, QubitProperty]
native_gates: Sequence[str]
physical_qubit_count: int | None = None
background_error: tuple[float, TimeValue] | None = None
name: str | None = None
provider: str | None = None
transpiler: circuit.transpile.transpiler.CircuitTranspiler | None = None
parametric_transpiler: circuit.transpile.transpiler.ParametricCircuitTranspiler | None = None
analyze_transpiler: circuit.transpile.transpiler.CircuitTranspiler | None = None
analyze_parametric_transpiler: circuit.transpile.transpiler.ParametricCircuitTranspiler | None = None
noise_model: NoiseModel | None = None
gate_property(quantum_gate)

Returns GateProperty of the device corresponding to the given QuantumGate.

If the given quantum gate is not specified with qubits, the GateProperty for the kind of the quantum gate is searched.

Parameters:

quantum_gate (QuantumGate)

Return type:

GateProperty