协议 -- CommProtocolConfig
pyqpanda3.utils 中二进制通信协议相关接口的 API 参考。
CommProtocolConfig
python
CommProtocolConfig()用于嵌入到协议负载中的执行配置。
| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
open_mapping | bool | True | 是否启用硬件映射。 |
open_error_mitigation | bool | True | 是否启用读出误差缓解。 |
optimization_level | int | 4 | 编译优化级别。 |
circuits_num | int | 100 | 优化阶段生成的线路变体数量。 |
shots | int | 1000 | 采样次数。 |
comm_protocol_encode
python
comm_protocol_encode(
prog_list: list[QProg],
config: CommProtocolConfig = CommProtocolConfig(),
) -> bytes把一个或多个 QProg 与协议配置一起序列化为二进制负载。
python
from pyqpanda3.core import CNOT, H, QProg
from pyqpanda3.utils import CommProtocolConfig, comm_protocol_encode
prog = QProg() << H(0) << CNOT(0, 1)
config = CommProtocolConfig()
config.shots = 4096
payload = comm_protocol_encode([prog], config)
print(type(payload).__name__, len(payload) > 0)comm_protocol_encode_originir_string
python
comm_protocol_encode_originir_string(
originir: str,
config: CommProtocolConfig = CommProtocolConfig(),
) -> bytes直接把 OriginIR 文本编码成同一种通信协议二进制流。
| 参数 | 类型 | 说明 |
|---|---|---|
originir | str | OriginIR 程序文本。 |
config | CommProtocolConfig | 要嵌入的执行配置。 |
如果 OriginIR 无法解析,或包含当前通信协议编码器不支持的节点,会抛出 RuntimeError。
python
from pyqpanda3.utils import comm_protocol_encode_originir_string
originir = "QINIT 1\nCREG 1\nH q[0]\nMEASURE q[0],c[0]\n"
payload = comm_protocol_encode_originir_string(originir)
print(type(payload).__name__)comm_protocol_encode_originir_file
python
comm_protocol_encode_originir_file(
file_path: str,
config: CommProtocolConfig = CommProtocolConfig(),
) -> bytes把 OriginIR 文件编码为协议负载。
如果文件无法打开、无法解析,或程序无法编码,会抛出 RuntimeError。
comm_protocol_decode
python
comm_protocol_decode(
encode_data: bytes,
) -> tuple[list[QProg], CommProtocolConfig]把协议字节流还原为量子程序列表和配置对象。
python
from pyqpanda3.core import H, QProg
from pyqpanda3.utils import CommProtocolConfig, comm_protocol_decode, comm_protocol_encode
prog = QProg() << H(0)
payload = comm_protocol_encode([prog], CommProtocolConfig())
prog_list, config = comm_protocol_decode(payload)
print(len(prog_list), config.shots)说明
comm_protocol_encode_originir_string()和comm_protocol_encode_originir_file()依据当前 0.4.0 源码绑定整理。comm_protocol_decode()返回的是普通QProg,因此可以继续用 core 模块里的常规接口做检查、转储和再导出。