Skip to content

OriginBIS 转换

用于在量子程序和变分线路与 OriginBIS 二进制字符串之间进行转换的 API 参考。OriginBIS 使用基于 Protocol Buffers 的序列化,用于高效存储和网络传输。

QProg 转换

convert_qprog_to_originbis

将量子程序转换为 OriginBIS 二进制字符串。

签名

python
convert_qprog_to_originbis(
    qprog: QProg,
) -> bytes

参数

参数类型描述
qprogQProg要序列化的量子程序。

返回值

bytes -- OriginBIS 二进制字符串。

示例

python
from pyqpanda3.utils import convert_qprog_to_originbis
from pyqpanda3.core import QProg, H, CNOT

prog = QProg() << H(0) << CNOT(0, 1)
originbis = convert_qprog_to_originbis(prog)

convert_originbis_to_qprog

将 OriginBIS 二进制字符串反序列化为量子程序。

签名

python
convert_originbis_to_qprog(
    originbis: bytes,
) -> QProg

参数

参数类型描述
originbisbytes之前由 convert_qprog_to_originbis 生成的 OriginBIS 二进制字符串。

返回值

反序列化后的 QProg 对象。

示例

python
from pyqpanda3.utils import convert_originbis_to_qprog

prog = convert_originbis_to_qprog(originbis)

VQCircuit 转换

convert_vqcircuit_to_originbis

将变分量子线路转换为 OriginBIS 二进制字符串。

签名

python
convert_vqcircuit_to_originbis(
    vqcircuit: VQCircuit,
) -> bytes

参数

参数类型描述
vqcircuitVQCircuit要序列化的变分量子线路。

返回值

bytes -- OriginBIS 二进制字符串。

示例

python
from pyqpanda3.utils import convert_vqcircuit_to_originbis
# from pyqpanda3.vqcircuit import VQCircuit

originbis = convert_vqcircuit_to_originbis(vqc)

convert_originbis_to_vqcircuit

将 OriginBIS 二进制字符串反序列化为变分量子线路。

签名

python
convert_originbis_to_vqcircuit(
    originbis: bytes,
) -> VQCircuit

参数

参数类型描述
originbisbytes之前由 convert_vqcircuit_to_originbis 生成的 OriginBIS 二进制字符串。

返回值

反序列化后的 VQCircuit 对象。

示例

python
from pyqpanda3.utils import convert_originbis_to_vqcircuit

vqc = convert_originbis_to_vqcircuit(originbis)

变分线路与运行配置

以下函数序列化和反序列化捆绑了 CommProtocolConfigVQCircuit。当线路及其执行配置需要作为单个单元传输时,这非常有用。

convert_vqcircuit_with_run_config_to_bytes

将变分量子线路及其执行配置转换为二进制字节串。

签名

python
convert_vqcircuit_with_run_config_to_bytes(
    vqcircuit: VQCircuit,
    config: CommProtocolConfig,
) -> bytes

参数

参数类型描述
vqcircuitVQCircuit要序列化的变分量子线路。
configCommProtocolConfig要与线路捆绑的执行配置。

返回值

bytes -- 组合后的二进制数据。

示例

python
from pyqpanda3.utils import (
    CommProtocolConfig,
    convert_vqcircuit_with_run_config_to_bytes,
)

config = CommProtocolConfig()
config.shots = 4096

data = convert_vqcircuit_with_run_config_to_bytes(vqc, config)

convert_vqc_with_run_config_bytes_to_vqcircuit

从组合二进制字符串中提取 VQCircuit

签名

python
convert_vqc_with_run_config_bytes_to_vqcircuit(
    vqc_with_run_config_bytes: bytes,
) -> VQCircuit

参数

参数类型描述
vqc_with_run_config_bytesbytesconvert_vqcircuit_with_run_config_to_bytes 生成的二进制数据。

返回值

反序列化后的 VQCircuit 对象。

示例

python
from pyqpanda3.utils import convert_vqc_with_run_config_bytes_to_vqcircuit

vqc = convert_vqc_with_run_config_bytes_to_vqcircuit(data)

convert_vqc_with_run_config_bytes_to_config

从组合二进制字符串中提取 CommProtocolConfig

签名

python
convert_vqc_with_run_config_bytes_to_config(
    vqc_with_run_config_bytes: bytes,
) -> CommProtocolConfig

参数

参数类型描述
vqc_with_run_config_bytesbytesconvert_vqcircuit_with_run_config_to_bytes 生成的二进制数据。

返回值

反序列化后的 CommProtocolConfig 对象。

示例

python
from pyqpanda3.utils import convert_vqc_with_run_config_bytes_to_config

config = convert_vqc_with_run_config_bytes_to_config(data)
print(f"shots={config.shots}, optimization_level={config.optimization_level}")

另见

  • 协议 -- CommProtocolConfig 类和 comm_protocol_encode/comm_protocol_decode

Released under the MIT License.