Skip to content

协议 -- CommProtocolConfig ​

pyqpanda3.utils 中二进制通信协议相关接口的 API 参考。

CommProtocolConfig ​

python
CommProtocolConfig()

用于嵌入到协议负载中的执行配置。

字段类型默认值说明
open_mappingboolTrue是否启用硬件映射。
open_error_mitigationboolTrue是否启用读出误差缓解。
optimization_levelint4编译优化级别。
circuits_numint100优化阶段生成的线路变体数量。
shotsint1000采样次数。

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 文本编码成同一种通信协议二进制流。

参数类型说明
originirstrOriginIR 程序文本。
configCommProtocolConfig要嵌入的执行配置。

如果 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)

说明 ​

另见 ​

Released under the MIT License.