qpanda3_runtime.task.qtask_info#
Classes#
Abstract base class for quantum task information. |
|
Information container for quantum sampling tasks. |
|
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:
QTaskInfoInformation 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 listdevice (
Union[QDevice,FakeBackend]) – Quantum device or simulator to execute the circuits.measure_qubits (
Optional[List[int]], defaultNone) – Specific qubits to measure. If None, all qubits are measured.specified_block (
Optional[List[int]], defaultNone) – Specific circuit blocks to execute. Used for partial execution.shots (
int, default10) – Number of measurement shots per circuit.is_amend (
bool, defaultTrue) – Whether to apply measurement error mitigation.is_mapping (
bool, defaultTrue) – Whether to apply qubit mapping for device topology.is_optimization (
bool, defaultTrue) – Whether to apply circuit optimization.point_label (
int, default0) – 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:
QTaskInfoInformation 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 objectdevice (
Union[QDevice,FakeBackend]) – Quantum device or simulator to execute the circuits.specified_block (
Optional[List[int]], defaultNone) – Specific circuit blocks to execute. Used for partial execution.shots (
int, default1000) – Number of measurement shots per circuit.is_amend (
bool, defaultTrue) – Whether to apply measurement error mitigation.is_mapping (
bool, defaultTrue) – Whether to apply qubit mapping for device topology.is_optimization (
bool, defaultTrue) – 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()#