Skip to content

协议 -- CommProtocolConfig

通信协议配置类及其关联编解码函数的 API 参考。这些工具将量子程序序列化为二进制格式用于传输,并将其反序列化还原。

CommProtocolConfig

控制量子程序在执行期间处理方式的配置对象。所有字段均可读写。

构造

python
CommProtocolConfig()

创建一个使用默认值的新 CommProtocolConfig

字段

字段类型默认值描述
open_mappingboolTrue是否启用量子门映射(量子比特路由到硬件拓扑)。
open_error_mitigationboolTrue是否对测量结果启用读出错误缓解。
optimization_levelint4线路编译的优化级别。较高的值启用更激进的优化。
circuits_numint100优化期间生成的不同线路变体数量。
shotsint1000每条线路的测量采样次数(重复次数)。

示例

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 = 2000

comm_protocol_encode

将量子程序列表连同配置一起编码为二进制字节串。

签名

python
comm_protocol_encode(
    prog_list: list[QProg],
    config: CommProtocolConfig = CommProtocolConfig(),
) -> bytes

参数

参数类型描述
prog_listlist[QProg]要编码的量子程序列表。
configCommProtocolConfig要嵌入编码数据的配置。默认为默认构造的 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_databytes之前由 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 的替代二进制序列化方案

Released under the MIT License.