interop パッケージ

クラス

PeakUsageGreedyQubitManager

計算とメモリの量子ビットを個別に追跡する量子ビット マネージャー。

これは、量子ビットの種類ごとに 2 つの独立した量子ビット マネージャーで構成されます。 各マネージャーは、 cirq.GreedyQubitManagerからの最長一致の割り当て戦略を使用します。

解放後の 1 つの型の量子ビットは、異なる型の量子ビットとして再利用できません。 したがって、ピーク量子ビット数は、各種類のピーク量子ビット数の合計と等しくなります。

PeakUsageGreedyQubitManager を初期化します。

PopBlock

トレース内の現在の繰り返しブロックの終了を通知します。

PushBlock

トレース内の繰り返しブロックの開始を通知します。

ReadFromMemoryGate

量子ビットの状態を MEMORY レジスタから COMPUTE レジスタに移動します。

COMPUTE 量子ビットが 0 状態で準備されていることを前提としています。 MEMORY 量子ビットを 0 の状態のままにします。

ReadFromMemoryGate を初期化します。

TypedQubit

種類を持つ量子ビット。

型指定された量子ビットを初期化します。

WriteToMemoryGate

量子ビットの状態を COMPUTE レジスタから MEMORY レジスタに移動します。

MEMORY 量子ビットが 0 状態で準備されていることを前提としています。 COMPUTE 量子ビットは 0 状態のままにします。

WriteToMemoryGate を初期化します。

列挙型

QubitType

量子ビットの種類。

各論理量子ビットには、コンピューティング量子ビットまたはメモリ量子ビットのいずれかを指定できます。 計算量子ビットは通常どおり使用できます。

メモリ量子ビットには、ゲートを適用できないという制限があります。 メモリ量子ビットに対して許可される操作は読み取り/書き込みのみです。この場合、状態はメモリからコンピューティング ゲート、またはコンピューティングゲートからメモリ ゲートに移動されます。

エラー修正が適用されると、メモリ量子ビットは、リソースを少なくする必要があるが、ゲート アプリケーションを許可しない (例: ヨークサーフェス コード、 https://arxiv.org/abs/2312.04522) より効率的なエラー修正スキームでエンコードされると仮定します。

関数

assert_qubits_type

量子ビットが TypedQubits の場合にのみ、その量子ビットの型が指定されていることをアサートします。

assert_qubits_type(qs: Sequence[Qid], qubit_type: QubitType) -> None

パラメーター

名前 説明
qs
必須
qubit_type
必須

read_from_memory

メモリから量子ビットを読み取る操作。

read_from_memory(memory_qubits: Sequence[Qid], compute_qubits: Sequence[Qid]) -> Operation

パラメーター

名前 説明
memory_qubits
必須
compute_qubits
必須

trace_from_cirq

Cirq 回線をリソース推定トレースに変換します。

回路内のすべての瞬間と操作を反復処理し、各ゲートをトレース操作に変換します。 _to_traceメソッドを持つゲートは直接変換されます。その他のゲートは、Cirq の_decompose_with_context_または_decompose_プロトコルを介して再帰的に分解されます。

trace_from_cirq(circuit: cirq.CIRCUIT_LIKE, *, classical_control_probability: float = 0.5, rotation_threshold: float = 1e-06, track_memory_qubits: bool = True) -> Trace

パラメーター

名前 説明
circuit
必須

変換する Cirq 回線。

classical_control_probability
必須

古典的に制御された演算がトレースに含まれる確率。 既定値は 0.5 です。

rotation_threshold
必須

このしきい値を下回る絶対値を持つ回転指数は ID として扱われ、トレースからは省略されます。 これは、単一量子ビット回転 (RX、RY、RZ) と、制御された Z 分解の回転コンポーネントに適用されます。 既定値は 1e から 6 です。

track_memory_qubits
必須

True の場合、メモリ量子ビットは計算量子ビットとは別に追跡されます。 False の場合、すべての量子ビットは計算量子ビットとして扱われます。 また、True の場合、メモリからの読み取り命令とメモリへの書き込み命令はトレースに保持されます。それ以外の場合は、SWAP 命令と RESET 命令に逆コンパイルされます。 既定値は True です。

キーワードのみのパラメーター

名前 説明
classical_control_probability
規定値: 0.5
rotation_threshold
規定値: 1e-06
track_memory_qubits
規定値: True

返品

説明

回線の実行プロファイルを表すトレース。

trace_from_entry_expr

Q# エントリ式をリソース推定トレースに変換します。

エントリ式を評価して論理カウントを取得し、対応する量子演算を含むトレースを構築します。

trace_from_entry_expr(entry_expr: str | Callable | LogicalCounts, *args) -> Trace

パラメーター

名前 説明
entry_expr
必須
<xref:<xref:qdk.qre.interop.str | Callable | LogicalCounts>>

Q# エントリ式の文字列、呼び出し可能な論理カウント、または事前計算済みの論理カウント。

*args
必須

呼び出し可能な呼び出し可能に渡す引数 (指定されている場合)。

返品

説明

プログラムのリソース プロファイルを表すトレース。

trace_from_entry_expr_cached

オプションのキャッシュを使用して、Q# エントリ式を Trace に変換します。

cache_pathが指定され、存在する場合、トレースはディスクから読み込まれます。 それ以外の場合、トレースは trace_from_entry_expr を介して計算され、必要に応じて cache_pathに書き込まれます。

trace_from_entry_expr_cached(entry_expr: str | Callable | LogicalCounts, cache_path: Path | None, *args) -> Trace

パラメーター

名前 説明
entry_expr
必須
<xref:<xref:qdk.qre.interop.str | Callable | LogicalCounts>>

Q# エントリ式の文字列、呼び出し可能な論理カウント、または事前計算済みの論理カウント。

cache_path
必須
<xref:Optional>[<xref:Path>]

キャッシュされたトレースの読み取り/書き込みのパス。 None の場合、キャッシュは無効になります。

返品

説明

プログラムのリソース プロファイルを表すトレース。

trace_from_qir

QIR プログラムをリソース推定トレースに変換します。

QIR モジュールを解析し、量子ゲートを抽出し、リソース推定に使用できるトレースを構築します。 条件付き分岐は、常に false パスに従うことによって解決されます (測定結果が 0 であると仮定)。

trace_from_qir(input: str | bytes) -> Trace

パラメーター

名前 説明
input
必須

LLVM IR テキスト (str) またはビットコード (バイト) としての QIR 入力。

返品

説明

QIR プログラムからの量子演算を含むトレース。

write_to_memory

量子ビットをメモリに書き込む操作。

write_to_memory(memory_qubits: Sequence[Qid], compute_qubits: Sequence[Qid]) -> Operation

パラメーター

名前 説明
memory_qubits
必須
compute_qubits
必須