qml.qcut¶
该模块包含用于切割量子电路的量子函数变换。
概述¶
本模块定义了电路切割的变换函数。这允许将大型电路“切割”(或拆分)为较小的电路,以便在量子比特数量受限的设备上执行。
电路切割的变换¶
|
将量子电路切割成更小的电路片段。 |
|
使用蒙特卡洛方法将包含样本测量的电路切割成更小的片段。 |
工具函数¶
还有一些低级函数可以用于构建电路切割功能:
|
将量子带转换为有向多重图。 |
将图中的每个 |
|
将图分割成一组子图,并返回通信(商)图。 |
|
将有向多重图转换为相应的 |
|
|
将一个片段磁带扩展为每个包含的 |
|
将片段磁带扩展为包含的 |
|
处理 |
|
用于对 |
|
对 |
|
一种用于在可用(相对较小)设备上执行(大型)电路的电路切割分配策略。 |
|
调用 KaHyPar 来划分图。 |
|
为电路图中的每个提供的切边插入一个 |
|
自动找到并将最佳 |
切割电路¶
电路切割可以让您用一组电路替换一个N根线的电路,这组电路的线数少于N根(另见Peng et. al)。这会带来一个成本:较小的电路需要更多的设备执行次数来进行评估。
在 PennyLane 中,针对以期望值终止的电路,可以通过在所需切割位置放置 WireCut 操作符来激活电路切割,以及通过用 cut_circuit() 变换装饰 QNode。
剪切电路保持完全可微分,结果电路可以在并行设备上执行(如果可用的话)。有关更多详细信息,请参见cut_circuit()文档。
注意
产生样本的模拟量子电路可以使用
cut_circuit_mc()
变换进行切割,这基于蒙特卡洛方法。
自动切割¶
PennyLane还实验性支持自动切割电路——也就是说,可以在不显式放置 WireCut 操作符的情况下确定最佳切割位置。可以通过使用cut_circuit() 的 auto_cutter 关键字参数来启用此功能;有关更多详细信息,请参阅该函数文档。