OriginBIS Conversion
API reference for functions that convert quantum programs and variational circuits to and from OriginBIS binary strings. OriginBIS uses Protocol Buffers-based serialization for efficient storage and network transmission.
QProg Conversion
convert_qprog_to_originbis
Converts a quantum program into an OriginBIS binary string.
Signature
convert_qprog_to_originbis(
qprog: QProg,
) -> bytesParameters
| Parameter | Type | Description |
|---|---|---|
| qprog | QProg | The quantum program to serialize. |
Returns
bytes -- The OriginBIS binary string.
Examples
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
Deserializes an OriginBIS binary string back into a quantum program.
Signature
convert_originbis_to_qprog(
originbis: bytes,
) -> QProgParameters
| Parameter | Type | Description |
|---|---|---|
| originbis | bytes | An OriginBIS binary string previously produced by convert_qprog_to_originbis. |
Returns
The deserialized QProg object.
Examples
from pyqpanda3.utils import convert_originbis_to_qprog
prog = convert_originbis_to_qprog(originbis)VQCircuit Conversion
convert_vqcircuit_to_originbis
Converts a variational quantum circuit into an OriginBIS binary string.
Signature
convert_vqcircuit_to_originbis(
vqcircuit: VQCircuit,
) -> bytesParameters
| Parameter | Type | Description |
|---|---|---|
| vqcircuit | VQCircuit | The variational quantum circuit to serialize. |
Returns
bytes -- The OriginBIS binary string.
Examples
from pyqpanda3.utils import convert_vqcircuit_to_originbis
# from pyqpanda3.vqcircuit import VQCircuit
originbis = convert_vqcircuit_to_originbis(vqc)convert_originbis_to_vqcircuit
Deserializes an OriginBIS binary string back into a variational quantum circuit.
Signature
convert_originbis_to_vqcircuit(
originbis: bytes,
) -> VQCircuitParameters
| Parameter | Type | Description |
|---|---|---|
| originbis | bytes | An OriginBIS binary string previously produced by convert_vqcircuit_to_originbis. |
Returns
The deserialized VQCircuit object.
Examples
from pyqpanda3.utils import convert_originbis_to_vqcircuit
vqc = convert_originbis_to_vqcircuit(originbis)Variational Circuit with Run Config
The following functions serialize and deserialize a VQCircuit bundled together with a CommProtocolConfig. This is useful when both the circuit and its execution configuration need to be transmitted as a single unit.
convert_vqcircuit_with_run_config_to_bytes
Converts a variational quantum circuit and its execution configuration into a binary byte string.
Signature
convert_vqcircuit_with_run_config_to_bytes(
vqcircuit: VQCircuit,
config: CommProtocolConfig,
) -> bytesParameters
| Parameter | Type | Description |
|---|---|---|
| vqcircuit | VQCircuit | The variational quantum circuit to serialize. |
| config | CommProtocolConfig | The execution configuration to bundle with the circuit. |
Returns
bytes -- The combined binary data.
Examples
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
Extracts the VQCircuit from a combined binary string.
Signature
convert_vqc_with_run_config_bytes_to_vqcircuit(
vqc_with_run_config_bytes: bytes,
) -> VQCircuitParameters
| Parameter | Type | Description |
|---|---|---|
| vqc_with_run_config_bytes | bytes | Binary data produced by convert_vqcircuit_with_run_config_to_bytes. |
Returns
The deserialized VQCircuit object.
Examples
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
Extracts the CommProtocolConfig from a combined binary string.
Signature
convert_vqc_with_run_config_bytes_to_config(
vqc_with_run_config_bytes: bytes,
) -> CommProtocolConfigParameters
| Parameter | Type | Description |
|---|---|---|
| vqc_with_run_config_bytes | bytes | Binary data produced by convert_vqcircuit_with_run_config_to_bytes. |
Returns
The deserialized CommProtocolConfig object.
Examples
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}")See Also
- Protocol --
CommProtocolConfigclass andcomm_protocol_encode/comm_protocol_decode