Skip to content

vv0.2.2

v0.2.2

新功能和重要的更新

1.增加了适用于量子程序,量子线路和量子逻辑门比特重新映射的接口

[remap](@ref pyqpanda3.core.QProg.remap)接口需要1-2个参数,分别是量子比特目标映射结果和经典寄存器映射结果,例如当原始 量子线路有6个比特和3个经典寄存器,当调用prog.remap([5,4,3,2,1,0],[3,2,1]),映射结果如下

量子比特从默认[0,1,2,3,4,5]初始比特映射到[5,4,3,2,1,0]

经典寄存器从[0,1,2]初始寄存器映射到[3,2,1]

@note
量子线路和量子逻辑门的remap接口只接收一个参数,即量子比特目标映射结果

[remap](@ref pyqpanda3.core.QProg.remap)示例程序如下:

python
from pyqpanda3.core import H, CNOT, SWAP, measure, QProg
 
prog = QProg()
prog << H(0)
prog << H(2)
prog << H(4)
prog << CNOT(0, 1)
prog << CNOT(0, 2)
prog << CNOT(0, 3)
prog << CNOT(2, 4)
prog << SWAP(1, 3)
prog << measure(0, 0)
prog << measure(1, 1)

print(prog.originir())
prog.remap([5,4,3,2,1,0],[3,2,1])
print(prog.originir())

输出如下:

python

# before remap
QINIT 5
CREG 2
H q[0]
H q[2]
H q[4]
CNOT q[0],q[1]
CNOT q[0],q[2]
CNOT q[0],q[3]
CNOT q[2],q[4]
SWAP q[1],q[3]
MEASURE q[0],c[0]
MEASURE q[1],c[1]
# after remap

QINIT 6
CREG 4
H q[5]
H q[3]
H q[1]
CNOT q[5],q[4]
CNOT q[5],q[3]
CNOT q[5],q[2]
CNOT q[3],q[1]
SWAP q[4],q[2]
MEASURE q[5],c[3]
MEASURE q[4],c[2]

2.pyqpanda3新增版本查看方式

python
import pyqpanda3
print(pyqpanda3.__version__)

The output is as follows:

python
0.2.2

3.增加了获取芯片拓扑结构的接口 [get_chip_topology](@ref pyqpanda3.qcloud.ChipInfo.get_chip_topology),该接口返回指定芯片拓扑中所有的边。可以传入要使用的qubits来获取指定qubits的拓扑结构。 获取到的芯片拓扑结构可以用在transpile接口中,如果拓扑结构是一个非连通图,则默认编译会选择最大的连通子图进行编译,比如悟空芯片有72比特,但是最大连通子图为23比特, 所以编译支持的最大量子比特线路为23比特的线路。

python
from pyqpanda3.qcloud import *

apikey = ''
service = QCloudService(apikey)

backend_wukong = service.backend("WK_C102_400")

topo_use_qbits = list(range(30))
topo = backend_wukong.chip_info().get_chip_topology(topo_use_qbits)

circuit = random_qcircuit([0,1,2,3,4], 100, ["RX", "RY", "RZ", "H", "U1", "U2", "U3", "CP", "CNOT", "SWAP"])
prog_1 = QProg()
prog_2 = QProg()
prog_1 << circuit
transpiler = Transpiler()
basic_gates = ["U3", "CZ"]
prog_2 = transpiler.transpile(prog_1, topo, {}, 2, basic_gates)

问题修复

  1. 解决了去极化噪声算符在模拟中的异常问题

Released under the MIT License.