Skip to content

generate_topology ​

为指定数量的量子比特和拓扑类型生成芯片耦合图(拓扑)。

签名 ​

python
generate_topology(
    num_qubit: int,
    topology_type: str,
) -> list[list[int]]

参数 ​

参数类型描述
num_qubitint拓扑中的量子比特数量。
topology_typestr要生成的拓扑类型。支持的值:"linear"(最近邻链)、"square"(二维网格拓扑)和 "all-to-all"(全连接拓扑,每个量子比特与其他所有量子比特相连)。

返回值 ​

list[list[int]] -- 边列表,其中每条边是一个二元素列表 [u, v],表示物理量子比特 u 和物理量子比特 v 之间的双向连接。

示例 ​

生成 4 量子比特的线性拓扑:

python
from pyqpanda3.transpilation import generate_topology

topology = generate_topology(4, "linear")
# topology = [[0, 1], [1, 2], [2, 3]]

生成 4 量子比特的二维方形网格拓扑:

python
from pyqpanda3.transpilation import generate_topology

topology = generate_topology(4, "square")
# topology = [[0, 1], [0, 3], [1, 2], [1, 4], [2, 5],
#             [3, 4], [3, 6], [4, 5], [4, 7], [5, 8],
#             [6, 7], [7, 8]]

将生成的拓扑用于 Transpiler:

python
from pyqpanda3.transpilation import Transpiler, generate_topology

from pyqpanda3.core import QProg, H, CNOT

topology = generate_topology(5, "linear")
prog = QProg() << H(0) << CNOT(0, 1)
transpiler = Transpiler()
result = transpiler.transpile(prog, chip_topology_edges=topology)

另见 ​

Released under the MIT License.