Skip to content
分享链接
回到顶部

编译优化

这个模块主要提供拓扑结构适配、量子线路简化等编译优化功能。

1. 拓扑结构适配

在用户进行量子程序设计时,无需关注底层物理量子比特之间的连接关系。Cqlib提供的工具将在执行前完成与目标芯片拓扑结构的适配。

python
from cqlib import Circuit
from cqlib.visualization import draw_text

circuit = Circuit(3)
circuit.cz(0, 1)
circuit.cz(1, 2)
circuit.cz(0, 2)
circuit.measure_all()

print(draw_text(circuit))
             ┌──┐   
 Q0: ───■──────■──M─
        │      │    
 Q1: ───■──■──M┼────
           │   │    
 Q2: ──────■───■──M─
             └──┘   

以下以天衍云平台上的物理量子计算机 "天衍-176-Ⅱ" 为例:

python
from cqlib import TianYanPlatform
from cqlib.mapping import transpile_qcis
from cqlib.visualization import draw_text

# 这里需要将 “连接密钥”替换为用户实际的云平台访问密钥
pf = TianYanPlatform(login_key='连接密钥', machine_name='tianyan176-2')
new_circuit, initial_layout, swap_mapping, mapping_virtual_to_final = transpile_qcis(circuit.qcis, pf)

print(f'new_circuit: \n{draw_text(new_circuit)}')
print(f'初始映射: {initial_layout}\n'
      f'最终映射: {mapping_virtual_to_final}')
0 gates unfinishednew_circuit: 
                 ┌──┐   
 Q13: ───■──■──X───■──M─
         │  │  │   │    
 Q19: ───■──┼──X──M┼────
            │      │    
 Q20: ──────■──────■──M─
                 └──┘   


初始映射: {0: 19, 1: 13, 2: 20}
最终映射: {0: 13, 1: 19, 2: 20}

2. 线路简化

Cqlib 内置了若干常见的量子逻辑门优化策略 ,用于合并冗余门操作并简化量子线路。

python
from cqlib.utils import QCIS_Simplify

circuit = Circuit(2)
circuit.x2p(0)
circuit.x2m(0)
circuit.x2p(1)
circuit.measure_all()
print(f'原线路:\n{draw_text(circuit)}')

new_qcis = QCIS_Simplify().simplify(circuit.qcis)
print(f'简化后的线路:\n{draw_text(Circuit.load(new_qcis))}')
原线路:
                    
 Q0: ───X2P──X2M──M─
                    
 Q1: ───X2P───M─────
                    


简化后的线路:
                
 Q0: ───I(0)──M─
                
 Q1: ───X2P───M─