协议 -- CommProtocolConfig
通信协议配置类及其关联编解码函数的 API 参考。这些工具将量子程序序列化为二进制格式用于传输,并将其反序列化还原。
CommProtocolConfig
控制量子程序在执行期间处理方式的配置对象。所有字段均可读写。
构造
python
CommProtocolConfig()创建一个使用默认值的新 CommProtocolConfig。
字段
| 字段 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| open_mapping | bool | True | 是否启用量子门映射(量子比特路由到硬件拓扑)。 |
| open_error_mitigation | bool | True | 是否对测量结果启用读出错误缓解。 |
| optimization_level | int | 4 | 线路编译的优化级别。较高的值启用更激进的优化。 |
| circuits_num | int | 100 | 优化期间生成的不同线路变体数量。 |
| shots | int | 1000 | 每条线路的测量采样次数(重复次数)。 |
示例
python
from pyqpanda3.utils import CommProtocolConfig
config = CommProtocolConfig()
config.open_mapping = True
config.open_error_mitigation = False
config.optimization_level = 2
config.circuits_num = 50
config.shots = 2000comm_protocol_encode
将量子程序列表连同配置一起编码为二进制字节串。
签名
python
comm_protocol_encode(
prog_list: list[QProg],
config: CommProtocolConfig = CommProtocolConfig(),
) -> bytes参数
| 参数 | 类型 | 描述 |
|---|---|---|
| prog_list | list[QProg] | 要编码的量子程序列表。 |
| config | CommProtocolConfig | 要嵌入编码数据的配置。默认为默认构造的 CommProtocolConfig。 |
返回值
bytes -- 编码后的二进制数据。
示例
python
from pyqpanda3.utils import CommProtocolConfig, comm_protocol_encode
from pyqpanda3.core import QProg, H, CNOT
prog = QProg() << H(0) << CNOT(0, 1)
config = CommProtocolConfig()
config.shots = 4096
encoded = comm_protocol_encode([prog], config)comm_protocol_decode
将二进制字节串解码回量子程序列表和关联的配置。
签名
python
comm_protocol_decode(
encode_data: bytes,
) -> tuple[list[QProg], CommProtocolConfig]参数
| 参数 | 类型 | 描述 |
|---|---|---|
| encode_data | bytes | 之前由 comm_protocol_encode 生成的二进制数据。 |
返回值
tuple[list[QProg], CommProtocolConfig] -- 一个元组,包含解码后的量子程序列表和嵌入在二进制数据中的配置。
示例
python
from pyqpanda3.utils import comm_protocol_decode
prog_list, config = comm_protocol_decode(encoded)
print(f"Recovered {len(prog_list)} programs, shots={config.shots}")另见
- OriginBIS -- 使用 Protocol Buffers 的替代二进制序列化方案