qpanda3_runtime.task.qtask_info#

Classes#

QTaskInfo

Abstract base class for quantum task information.

SampleQTaskInfo

Information container for quantum sampling tasks.

EstimateQTaskInfo

Information container for quantum expectation value estimation tasks.

Module Contents#

class qpanda3_runtime.task.qtask_info.QTaskInfo(qtask_type: str)#

Abstract base class for quantum task information.

This class defines the common interface for all quantum task information classes, including sampling and estimation tasks.

Parameters:

qtask_type (str) – Type of quantum task (e.g., ‘sample’, ‘estimate’).

Variables:

qtask_type (str) – Type of quantum task.

Notes

This is an abstract base class. Subclasses must implement the to_json_dict method for serialization.

qtask_type#
abstractmethod to_json_dict()#

Convert task information to JSON-serializable dictionary.

Returns:

JSON-serializable dictionary representation of task information.

Return type:

dict

Raises:

NotImplementedError – This method must be implemented by subclasses.

class qpanda3_runtime.task.qtask_info.SampleQTaskInfo(circuits: qpanda3_runtime.utils.union_type.QProgUnionType | List[qpanda3_runtime.utils.union_type.QProgUnionType] | qpanda3_runtime.task.program_set.observable_bind_rule.AnsatzParamsBinding | Tuple[pyqpanda3.vqcircuit.VQCircuit, List[numpy.ndarray]], device: qpanda3_runtime.device.QDevice | qpanda3_runtime.device.FakeBackend, measure_qubits: List[int] | None = None, specified_block: List[int] | None = None, shots: int = 10, is_amend: bool = True, is_mapping: bool = True, is_optimization: bool = True, point_label: int = 0, task_describe: str = '')#

Bases: QTaskInfo

Information container for quantum sampling tasks.

This class encapsulates all parameters required for quantum circuit sampling tasks, including circuits, device configuration, and execution parameters.

Parameters:
  • circuits (Union[QProgUnionType, List[QProgUnionType], AnsatzParamsBinding, Tuple[VQCircuit, List[numpy.ndarray]]]) – Quantum circuits to sample. Can be: - Single quantum program - List of quantum programs - Ansatz with parameter binding - Tuple of variational circuit and parameter list

  • device (Union[QDevice, FakeBackend]) – Quantum device or simulator to execute the circuits.

  • measure_qubits (Optional[List[int]], default None) – Specific qubits to measure. If None, all qubits are measured.

  • specified_block (Optional[List[int]], default None) – Specific circuit blocks to execute. Used for partial execution.

  • shots (int, default 10) – Number of measurement shots per circuit.

  • is_amend (bool, default True) – Whether to apply measurement error mitigation.

  • is_mapping (bool, default True) – Whether to apply qubit mapping for device topology.

  • is_optimization (bool, default True) – Whether to apply circuit optimization.

  • point_label (int, default 0) – Label for parameter point in variational algorithms.

  • task_describe (str, default '') – Human-readable description of the task.

Variables:
  • circuits (Union[QProgUnionType, List[QProgUnionType], AnsatzParamsBinding, Tuple[VQCircuit, List[numpy.ndarray]]]) – Quantum circuits to sample.

  • device (Union[QDevice, FakeBackend]) – Execution device.

  • measure_qubits (Optional[List[int]]) – Measurement qubits.

  • specified_block (Optional[List[int]]) – Circuit blocks to execute.

  • shots (int) – Number of shots.

  • is_amend (bool) – Error mitigation flag.

  • is_mapping (bool) – Qubit mapping flag.

  • is_optimization (bool) – Circuit optimization flag.

  • point_label (int) – Parameter point label.

  • task_describe (str) – Task description.

Examples

>>> from qpanda3_runtime.task import SampleQTaskInfo
>>> from qpanda3_runtime.device import QDevice
>>> # Create sampling task for single circuit
>>> task_info = SampleQTaskInfo(
...     circuits=quantum_circuit,
...     device=qdevice,
...     shots=1000,
...     task_describe='Ground state sampling'
... )
circuits#
device#
measure_qubits = None#
specified_block = None#
shots = 10#
is_amend = True#
is_mapping = True#
is_optimization = True#
point_label = 0#
task_describe = ''#
circuits2dict()#

Convert circuits to JSON-serializable dictionary.

This method serializes the circuits attribute into a dictionary format suitable for JSON serialization and network transmission.

Returns:

Dictionary with ‘type’ and ‘data’ keys representing the serialized circuits.

Return type:

dict

Raises:

RuntimeError – If the circuits type is not recognized.

Notes

The serialization format depends on the circuits type: - QProgUnionType: Serialized as OriginIR string - List[QProgUnionType]: List of OriginIR strings - AnsatzParamsBinding: JSON representation from binding object - Tuple[VQCircuit, List[numpy.ndarray]]: Serialized ansatz and parameters

static json_dict_to_ciruits(cirs: ast.Dict)#

Convert JSON dictionary back to circuits object.

This method deserializes a dictionary representation back into the original circuits object format.

Parameters:

cirs (Dict) – Dictionary with ‘type’ and ‘data’ keys representing serialized circuits.

Returns:

Deserialized circuits object.

Return type:

Union[QProgUnionType, List[QProgUnionType], AnsatzParamsBinding, Tuple[VQCircuit, List[numpy.ndarray]]]

Raises:

RuntimeError – If the dictionary is missing required keys or contains invalid data.

Notes

This is the inverse operation of circuits2dict.

to_json_dict()#

Convert sampling task information to JSON-serializable dictionary.

Returns:

Dictionary containing all task parameters in JSON-serializable format with the following structure: - type: Class name - qtask_type: Task type identifier - circuits: Serialized circuits from circuits2dict() - device: Serialized device information - measure_qubits: Measurement qubit indices - specified_block: Circuit block indices - shots: Number of measurement shots - is_amend: Error mitigation flag - is_mapping: Qubit mapping flag - is_optimization: Circuit optimization flag - point_label: Parameter point label - task_describe: Task description

Return type:

dict

Notes

This method implements the abstract method from QTaskInfo.

static from_json_dict(runtime_service, data)#
input_for_service_sample()#
class qpanda3_runtime.task.qtask_info.EstimateQTaskInfo(circuit_with_observable: Tuple[qpanda3_runtime.utils.union_type.QProgUnionType | List[qpanda3_runtime.utils.union_type.QProgUnionType], qpanda3_runtime.utils.union_type.ObservableUnionType] | qpanda3_runtime.task.program_set.observable_bind_rule.CircuitObservableBinding | qpanda3_runtime.task.program_set.observable_bind_rule.AnsatzObservableBinding, device: qpanda3_runtime.device.QDevice | qpanda3_runtime.device.FakeBackend, specified_block: List[int] | None = None, shots: int = 1000, is_amend: bool = True, is_mapping: bool = True, is_optimization: bool = True, task_describe: str = '')#

Bases: QTaskInfo

Information container for quantum expectation value estimation tasks.

This class encapsulates all parameters required for estimating expectation values of observables on quantum circuits.

Parameters:
  • circuit_with_observable (Union[Tuple[Union[QProgUnionType, List[QProgUnionType]], ObservableUnionType], CircuitObservableBinding, AnsatzObservableBinding]) – Quantum circuit(s) with associated observable(s). Can be: - Tuple of circuit(s) and observable - CircuitObservableBinding object - AnsatzObservableBinding object

  • device (Union[QDevice, FakeBackend]) – Quantum device or simulator to execute the circuits.

  • specified_block (Optional[List[int]], default None) – Specific circuit blocks to execute. Used for partial execution.

  • shots (int, default 1000) – Number of measurement shots per circuit.

  • is_amend (bool, default True) – Whether to apply measurement error mitigation.

  • is_mapping (bool, default True) – Whether to apply qubit mapping for device topology.

  • is_optimization (bool, default True) – Whether to apply circuit optimization.

  • task_describe (str, default '') – Human-readable description of the task.

Variables:
  • circuit_with_observable (Union[Tuple[Union[QProgUnionType, List[QProgUnionType]], ObservableUnionType], CircuitObservableBinding, AnsatzObservableBinding]) – Circuit-observable combination.

  • device (Union[QDevice, FakeBackend]) – Execution device.

  • specified_block (Optional[List[int]]) – Circuit blocks to execute.

  • shots (int) – Number of shots.

  • is_amend (bool) – Error mitigation flag.

  • is_mapping (bool) – Qubit mapping flag.

  • is_optimization (bool) – Circuit optimization flag.

  • task_describe (str) – Task description.

Examples

>>> from qpanda3_runtime.task import EstimateQTaskInfo
>>> from qpanda3_runtime.device import QDevice
>>> # Create estimation task for single circuit and observable
>>> task_info = EstimateQTaskInfo(
...     circuit_with_observable=(quantum_circuit, observable),
...     device=qdevice,
...     shots=5000,
...     task_describe='Energy expectation estimation'
... )
circuit_with_observable#
device#
specified_block = None#
shots = 1000#
is_amend = True#
is_mapping = True#
is_optimization = True#
task_describe = ''#
to_json_dict_circuit_with_observable()#
static json_dict_to_circuit_with_observable(data: ast.Dict)#
to_json_dict()#

Convert task information to JSON-serializable dictionary.

Returns:

JSON-serializable dictionary representation of task information.

Return type:

dict

Raises:

NotImplementedError – This method must be implemented by subclasses.

static from_json_dict(runtime_service, data)#
input_for_service_estimate()#