Microsoft Quantum リソース推定器をインストールして使用する方法

Microsoft Quantum リソース推定器は、Microsoft Quantum Development Kit (QDK) の一部です。 この記事では、量子リソース推定器をインストールし、既定のアーキテクチャ モデルを使用して単純な Q# プログラムの見積もりを実行する方法について説明します。

Warnung

VS Code 用 QDK 拡張機能のリソース推定機能は、間もなく非推奨になります。 リソース推定を実行するには、 qdk.qrePython モジュールを使用します。

Prerequisites

この記事の手順に従うには、次のものがインストールされている必要があります。

量子リソース推定器をインストールする

リソース推定器は、 qdk.qrePython モジュールを通じて使用できます。 リソース推定ツールを使用するには、qreを追加して最新バージョンのqdkPython パッケージをインストールします。

pip install --upgrade "qdk[qre]"

Tip

リソース推定器を使用するために、Azure アカウントを持っている必要はありません。

既定の設定で単純なリソース見積もりを実行する

基本的なリソース見積もりを実行するには、アプリケーション モデル、ハードウェア アーキテクチャ モデル、およびエラー修正モデルをリソース推定器に渡します。 次に、リソース推定器を実行して結果を取得します。 次の例では、VS Code のJupyter Notebookからリソース推定器を実行します。

アプリケーション モデルを作成する

この例では、QDK VS Code 拡張機能の Q# サンプルの 1D イシング モデル アルゴリズムを使用します。 または、既存の Q# プログラムのいずれかを使用します。

Q# プログラムを作成する

  1. VS Code で、新しいテキスト ファイルを作成し、 ising-1d-sample.qsとしてファイルを保存します。
  2. ファイルの最初の行に サンプル を入力して、Q# サンプル プログラムの一覧を表示します。
  3. [Ising Model (Simple 1D)] サンプルを選択し、ファイルを保存します。

アプリケーションを作成する

Q# プログラムを使用して、リソース推定器のアプリケーション モデルを作成します。

  1. VS Code で新しいJupyter Notebook ファイルを作成するには、コマンド パレットを開き、「Create: New Jupyter Notebook」と入力します。

  2. 最初のノートブック セルで、Q# プログラムを評価します。

    from pathlib import Path
    from qdk import qsharp
    
    qsharp.eval(Path("ising-1d-sample.qs").read_text(encoding="utf-8"))
    

    このコードは、Q# プログラムを含むMain名前空間にqdk.code オブジェクトを作成します。

  3. 新しいセルで、Q# プログラムからリソース推定アプリケーションを作成します。

    import qdk
    from qdk.qre.application import QSharpApplication
    
    app = QSharpApplication(qdk.code.Main)
    

アーキテクチャ モデルを作成する

ハードウェア アーキテクチャでは、リソース推定機能に付属する既定の GateBased モデルを使用します。 GateBasedモデルには、誤差率、ゲート時間、測定時間の入力が必要です。

新しいセルで、エラー率が $10^{-4}$ で、ゲート時間が 100 ns、測定時間が 500 ns のゲートベースのアーキテクチャを作成します。

from qdk.qre.models import GateBased

# Times are in units of nanoseconds
arch = GateBased(error_rate=1e-4, gate_time=100, measurement_time=500)

見積もりを実行する

見積もりを実行するには、 estimate 関数を使用し、次の入力を渡します。

  • Application
  • Architecture
  • 物理命令セット (ISA) クエリ
  • 最大エラー率

ISA クエリは、評価するエラー修正コードと T ファクトリ蒸留プロトコルの組み合わせをリソース推定器に伝えます。 リソース推定器は、これらの組み合わせからパレートフロンティア最適化された結果セットを見つけます。 この例では、リソース推定器に付属する既定の SurfaceCode QEC および RoundBasedFactory 蒸留プロトコルを使用します。

from qdk.qre import estimate
from qdk.qre.models import SurfaceCode, RoundBasedFactory

results = estimate(app, arch, isa_query=SurfaceCode.q() * RoundBasedFactory.q(), max_error=0.01)```

結果の表示

物理量子ビット数とプログラムの実行時間の最適な組み合わせを表示するには、 as_frame メソッドを使用して、推定結果を pandas DataFrame に表示します。

results.as_frame()

結果をプロットするには、 plot_estimates メソッドを使用し、実行時の単位を渡します。

from qdk.qre import plot_estimates

plot_estimates(results, figsize=(6, 4), runtime_unit="ms")