PeakUsageGreedyQubitManager 類別

一個量子位元管理器,分別追蹤計算量子位元與記憶體量子位元。

它由兩個獨立的量子位元管理器組成,對應每種量子位元類型。 每位管理者都使用來自 cirq.GreedyQubitManager的貪婪配置策略。

一種類型的量子位元在被釋放後,無法再作為不同類型的量子位元重複使用。 因此,峰值量子位元數等於每種類型峰值量子位數的總和。

初始化 PeakUsageGreedyQubit Manager。

建構函式

PeakUsageGreedyQubitManager(prefix: str, *, size: int, maximize_reuse: bool)

參數

名稱 Description
prefix
必要

分配量子位元的命名前綴。

size
必要

初始池大小通過到 cirq.GreedyQubitManager。 範例:0。

maximize_reuse
必要

標記控制量子位元重用策略。 若 False,此模式採用先入先出(FIFO)策略 s.t.,下一個分配的量子位元即為最早被釋放的量子位元。 若 True,此模式使用 LIFO(後入先出)策略,下一個分配的量子位元為最近被釋放的量子位元。

僅限關鍵字的參數

名稱 Description
size
必要
maximize_reuse
必要

方法

compute_qubit_count

回傳同時使用的 COMPUTE 量子位元峰值數量。

current_in_use

目前使用的量子位元數量。

memory_qubit_count

回傳同時使用的 MEMORY 量子位元峰值數量。

qalloc

n分配量子位元並更新使用計數器。

qborrow

借用量子位元(不支援)。

qfree

釋放給定的量子位元。

qubit_count

回傳所有類型量子位元的峰值數量。

它等於每種類型的峰值計數總和,因為同一類型的量子位不能重複用作不同類型的量子位元。

compute_qubit_count

回傳同時使用的 COMPUTE 量子位元峰值數量。

compute_qubit_count() -> int

current_in_use

目前使用的量子位元數量。

current_in_use() -> int

memory_qubit_count

回傳同時使用的 MEMORY 量子位元峰值數量。

memory_qubit_count() -> int

qalloc

n分配量子位元並更新使用計數器。

qalloc(n: int, dim: int, qubit_type: QubitType = QubitType.COMPUTE) -> list[cirq.ops.raw_types.Qid]

參數

名稱 Description
n
必要

分配量子位元數量。

dim
必要

每個量子位元的維度。 範例:量子位元為 2。

qubit_type

量子位元類型(COMPUTE 或 MEMORY)。

預設值: QubitType.COMPUTE

傳回

類型 Description

分配量子位元列表。

qborrow

借用量子位元(不支援)。

qborrow(n: int, dim: int = 2) -> list[cirq.ops.raw_types.Qid]

參數

名稱 Description
n
必要
dim
預設值: 2

qfree

釋放給定的量子位元。

qfree(qubits: Iterable[Qid]) -> None

參數

名稱 Description
qubits
必要

qubit_count

回傳所有類型量子位元的峰值數量。

它等於每種類型的峰值計數總和,因為同一類型的量子位不能重複用作不同類型的量子位元。

qubit_count() -> int