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)

基类:object

B+树节点基类.

参数:

is_leaf (bool)

class wy_qcos.transpiler.cmss.mapping.aggregate.bplus_tree.BPlusTreeInternalNode

基类:BPlusTreeNode

B+树内部节点.

insert_key_child(key, child)

插入键值对和对应的子节点.

参数:
split()

分裂内部节点.

返回:

(新节点, 提升的键值)

返回类型:

Tuple[BPlusTreeInternalNode, int]

class wy_qcos.transpiler.cmss.mapping.aggregate.bplus_tree.BPlusTreeLeafNode

基类:BPlusTreeNode

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)

基类:object

B+树实现,用于快速查找量子比特候选区域.

在论文: <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+树

返回类型:

BPlusTree

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)

Module contents