wy_qcos.transpiler.cmss.mapping.aggregate package
Submodules
wy_qcos.transpiler.cmss.mapping.aggregate.bplus_tree module
- class wy_qcos.transpiler.cmss.mapping.aggregate.bplus_tree.BPlusTreeNode(is_leaf=False)
基类:
objectB+树节点基类.
- 参数:
is_leaf (bool)
- class wy_qcos.transpiler.cmss.mapping.aggregate.bplus_tree.BPlusTreeInternalNode
-
B+树内部节点.
- insert_key_child(key, child)
插入键值对和对应的子节点.
- 参数:
key (int) -- 键值
child (BPlusTreeNode) -- 子节点
- split()
分裂内部节点.
- 返回:
(新节点, 提升的键值)
- 返回类型:
Tuple[BPlusTreeInternalNode, int]
- class wy_qcos.transpiler.cmss.mapping.aggregate.bplus_tree.BPlusTreeLeafNode
-
B+树叶子节点.
- insert_key_value(key, value)
插入键值对.
- 参数:
key (int) -- 键值(量子比特数量)
value (list[int]) -- 候选区域(量子比特列表)
- split()
分裂叶子节点.
- 返回:
(新节点, 提升的键值)
- 返回类型:
Tuple[BPlusTreeLeafNode, int]
- class wy_qcos.transpiler.cmss.mapping.aggregate.bplus_tree.BPlusTree(order=3)
基类:
objectB+树实现,用于快速查找量子比特候选区域.
在论文: <A New Qubits Mapping Mechanism for Multiprogramming Quantum Computing> 的基础上,使用B+树来存储和搜索可靠的映射区域
- 参数:
order (int)
- insert(key, value)
插入键值对.
- 参数:
key (int) -- 键值(量子比特数量)
value (list[int]) -- 候选区域(量子比特列表)
- search_candidates(min_qubits)
搜索满足最小量子比特数量要求的候选区域.
使用自上而下的搜索方式.
- 参数:
min_qubits (int) -- 最小量子比特数量
- 返回:
候选区域列表
- 返回类型:
List[List[int]]
- get_all_candidates()
获取所有候选区域.
- 返回:
(量子比特数量, 候选区域)的列表
- 返回类型:
List[Tuple[int, List[int]]]
- print_tree()
打印B+树结构(用于调试).
- wy_qcos.transpiler.cmss.mapping.aggregate.bplus_tree.build_bplus_tree_from_hierarchy(ht)
从层次树构建B+树.
层次树中的所有节点都是B+树中叶子节点对应的可选择区域.
- 参数:
ht -- 层次树对象
- 返回:
构建好的B+树
- 返回类型:
- wy_qcos.transpiler.cmss.mapping.aggregate.bplus_tree.get_block_bplus(ht, qnum)
使用B+树快速查找满足量子比特数量要求的候选区域.
- 参数:
ht -- 层次树对象
qnum (int) -- 需要的量子比特数量
- 返回:
最佳候选区域,如果没有找到则返回None
- 返回类型:
Optional[List[int]]
wy_qcos.transpiler.cmss.mapping.aggregate.hierachy_tree module
- class wy_qcos.transpiler.cmss.mapping.aggregate.hierachy_tree.Node(qubits, left=None, right=None, ignore=False)
基类:
object
- class wy_qcos.transpiler.cmss.mapping.aggregate.hierachy_tree.HierarchyTree(qpu_config, weight=1.0)
基类:
object基于CDAP构建搜索树.
- 参数:
qpu_config -- 硬件配置,包含硬件拓扑信息
weight -- 错误率所占权重,越高表示越看中门和测量的保真度, 0表示只关心耦合情况
1.0. (Defaults to)
- construct()
构建层次树,每次合并两个节点,直到最终只剩下一个节点.
- origin_node()
初始叶节点,每个比特/位置为一个叶节点.
Returns: 节点
- visit(node)
- get_all_leaf()
dfs获取所有的叶节点.
Returns: 所有的叶节点
- average_fidelity(node)
当前节点的平均保真度,主要为节点包含比特的测量保真度和两比特门保真度.
- 参数:
node -- 节点
Returns: 当前节点的平均保真度
- calc_modularity(nodes)
衡量当前划分的指标.
- 参数:
nodes -- 当前划分下所有的节点
Returns: 模块度
- calc_eigenvector(node_a, node_b)
计算两个节点间的平均两比特门保真度,以及平均测量保真度.
- 参数:
node_a -- 节点a
node_b -- 节点b
Returns: 两个节点间的平均两比特门保真度,以及平均测量保真度
- calc_merge_gain(nodes)
奖励函数,每次找奖励函数值最大的合并方案.
F = Qmerge - Qori + w * EV.
- 参数:
nodes -- 当前划分下所有的节点
Returns: 奖励函数值最大的合并方案
- wy_qcos.transpiler.cmss.mapping.aggregate.hierachy_tree.remove(node)
- wy_qcos.transpiler.cmss.mapping.aggregate.hierachy_tree.ignore_node(node)
- wy_qcos.transpiler.cmss.mapping.aggregate.hierachy_tree.get_block(ht, qnum)