

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# ローカル量子デバイスエミュレーター
<a name="braket-local-emulator"></a>

Amazon Braket のローカルエミュレーターツールを使用すると、逐語的な量子プログラムを実際の量子ハードウェアで実行する前に、ローカルでエミュレートできます。このエミュレータはデバイスキャリブレーションデータを使用して逐語的な回路を検証し、互換性の問題を早期に捕捉できるようにします。

また、ローカルエミュレーターは、次のプロセスを通じて量子ハードウェアノイズをシミュレートします。
+ デバイスキャリブレーションデータを使用してノイズモデルを構築する
+ 回路内の各ゲートに脱分極ノイズを適用する
+ 回路の最後に読み出しエラーを適用する
+ ローカル密度マトリックスシミュレーターを使用してノイズの多い回路をシミュレートする

ローカルエミュレーターの使用の詳細については、amazon-braket-examples GitHub リポジトリの「[Local emulation for verbatim circuits on Amazon Braket](https://github.com/amazon-braket/amazon-braket-examples/blob/main/examples/braket_features/Device_emulation/01_Local_Emulation_for_Verbatim_Circuits_on_Amazon_Braket.ipynb)」を参照してください。

**Topics**
+ [ローカルエミュレーションの利点](#braket-local-emulator-benefits)
+ [ローカルエミュレーターを作成する](#braket-create-local-emulator)

## ローカルエミュレーションの利点
<a name="braket-local-emulator-benefits"></a>
+ リアルタイムまたは過去のキャリブレーションデータを使用して、逐語的な回路をデバイスの制約と照らし合わせて検証できます。
+ タスクを量子ハードウェアに送信する前に、問題をデバッグできます。
+ ノイズのないエミュレーション、ノイズの多いエミュレーション、ハードウェアの結果を比較することで、ノイズの影響を理解できます。
+ ノイズ対応量子アルゴリズムを開発するワークフローを効率化できます。

## ローカルエミュレーターを作成する
<a name="braket-create-local-emulator"></a>

ローカル量子デバイスエミュレーターは、量子デバイスまたは一連のデバイスプロパティから直接作成できます。デバイスを直接エミュレートする場合、エミュレーターはインスタンス化されたデバイスにある最新のキャリブレーションデータを使用します。次のコード例は、Rigetti's Ankaa-3 デバイスを直接エミュレートする方法を示しています。

```
from braket.aws.aws_device import AwsDevice

ankaa3 = AwsDevice("arn:aws:braket:us-west-1::device/qpu/rigetti/Ankaa-3")
ankaa3_emulator = ankaa3.emulator()
```

次の例は、Ankaa-3 デバイスの、JSON 形式の一連のプロパティからローカルデバイスエミュレーターを作成する方法を示しています。

```
from braket.aws import AwsDevice
from braket.emulation.local_emulator import LocalEmulator
import json

# Instantiate the device
ankaa3 = AwsDevice("arn:aws:braket:us-west-1::device/qpu/rigetti/Ankaa-3")
ankaa3_properties = ankaa3.properties

# Put the Ankaa-3 properties in a file named ankaa3_device_properties.json
with open("ankaa3_device_properties.json", "w") as f:
    json.dump(ankaa3_properties.json(), f)

# Load the json into the ankaa3_data_json variable
with open("ankaa3_device_properties.json", "r") as json_file:
    ankaa3_data_json = json.load(json_file)

# Create the Ankaa-3 local emulator from the json file you created
ankaa3_emulator = LocalEmulator.from_json(ankaa3_data_json)
```

上記の例をカスタマイズするには、以下の方法を使用します。
+ 別の QPU デバイスのプロパティを使用する
+ エミュレーターに別の JSON ファイルを指定する
+ エミュレーターをインスタンス化する前にデバイスプロパティの値を変更する