qpandalite.task.result_types module#

Unified result types for all quantum backends.

This module defines a standardized result format that all platform adapters must convert their outputs to. This ensures consistent handling of results regardless of which quantum cloud platform was used.

The UnifiedResult dataclass provides: - Measurement counts and probabilities in a consistent format - Platform identification and task metadata - Optional advanced results (expectation values, statevector) - Raw platform result for debugging

Usage:

# Create from counts result = UnifiedResult.from_counts(

counts={"00": 512, "11": 488}, platform="quafu", task_id="abc123"

)

# Create from probabilities result = UnifiedResult.from_probabilities(

probabilities={"00": 0.512, "11": 0.488}, shots=1000, platform="originq", task_id="xyz789"

)

class qpandalite.task.result_types.UnifiedResult(counts, probabilities, shots, platform, task_id, backend_name=None, execution_time=None, raw_result=None, error_message=None)[源代码]

基类:object

Unified quantum execution result format.

All platform adapters must normalize their output to this format, ensuring consistent result handling across different quantum backends.

参数:
  • counts (Dict[str, int])

  • probabilities (Dict[str, float])

  • shots (int)

  • platform (str)

  • task_id (str)

  • backend_name (str | None)

  • execution_time (float | None)

  • raw_result (Any)

  • error_message (str | None)

counts

Measurement counts as dict mapping bitstrings to counts. Example: {"00": 512, "11": 488}

Type:

Dict[str, int]

probabilities

Measurement probabilities as dict mapping bitstrings to probs. Example: {"00": 0.512, "11": 0.488}

Type:

Dict[str, float]

shots

Total number of shots executed.

Type:

int

platform

Platform identifier ('originq', 'quafu', 'ibm', 'dummy').

Type:

str

task_id

Unique task identifier from the platform.

Type:

str

backend_name

Name of the quantum backend/hardware used (optional).

Type:

str | None

execution_time

Execution time in seconds (optional).

Type:

float | None

raw_result

Original platform result object for debugging (optional).

Type:

Any

error_message

Error message if execution failed (optional).

Type:

str | None

示例

>>> result = UnifiedResult.from_counts(
...     counts={"00": 512, "11": 488},
...     platform="quafu",
...     task_id="task-123"
... )
>>> print(result.probabilities)
{'00': 0.512, '11': 0.488}
backend_name: str | None = None
counts: Dict[str, int]
error_message: str | None = None
execution_time: float | None = None
classmethod from_counts(counts, platform, task_id, **kwargs)[源代码]

Create UnifiedResult from measurement counts.

Probabilities are automatically computed from counts.

参数:
  • counts (Dict[str, int]) -- Dict mapping bitstrings to measurement counts.

  • platform (str) -- Platform identifier.

  • task_id (str) -- Task identifier.

  • **kwargs (Any) -- Additional attributes (backend_name, execution_time, etc.).

返回:

UnifiedResult instance with computed probabilities.

返回类型:

UnifiedResult

示例

>>> result = UnifiedResult.from_counts(
...     {"00": 512, "11": 488}, "quafu", "task-1"
... )
classmethod from_probabilities(probabilities, shots, platform, task_id, **kwargs)[源代码]

Create UnifiedResult from probability distribution.

Counts are computed by multiplying probabilities by shots count.

参数:
  • probabilities (Dict[str, float]) -- Dict mapping bitstrings to probabilities.

  • shots (int) -- Number of shots used.

  • platform (str) -- Platform identifier.

  • task_id (str) -- Task identifier.

  • **kwargs (Any) -- Additional attributes.

返回:

UnifiedResult instance with computed counts.

返回类型:

UnifiedResult

示例

>>> result = UnifiedResult.from_probabilities(
...     {"00": 0.5, "11": 0.5}, 1000, "originq", "task-2"
... )
get_expectation(observable='Z')[源代码]

Compute expectation value for a simple observable.

Currently only supports single-qubit Z expectation value computed from the first qubit's measurement results.

参数:

observable (str) -- Observable type (currently only 'Z' supported).

返回:

Expectation value in range [-1, 1].

返回类型:

float

备注

This is a simplified implementation. For complex observables, use qpandalite.analyzer module.

platform: str
probabilities: Dict[str, float]
raw_result: Any = None
shots: int
task_id: str