

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

# OpenQASM 3.0 での回路の実行
<a name="braket-openqasm"></a>

 Amazon Braket は、ゲートベースの量子デバイスとシミュレーターの [OpenQASM 3.0](https://openqasm.com/) をサポートするようになりました。このユーザーガイドでは、Braket でサポートされている OpenQASM 3.0 のサブセットについて説明します。Braket のお客様は、Braket 回路を送信するのに、[SDK](braket-constructing-circuit.md) を使用か、[Amazon Braket API](https://docs.aws.amazon.com/braket/latest/APIReference/Welcome.html) と [Amazon Braket Python SDK](https://github.com/aws/amazon-braket-sdk-python) を使用して OpenQASM 3.0 文字列をすべてのゲートベースのデバイスに直接提供するかを選択できるようになりました。

このガイドのトピックでは、以下の量子タスクの完了方法のさまざまな例について説明します。
+  [さまざまな Braket デバイスで OpenQASM 量子タスクを作成して送信する](braket-openqasm-create-submit-task.md) 
+  [サポートされているオペレーションと結果タイプにアクセスする](braket-openqasm-device-support.md#braket-openqasm-supported-operations-results-result-types) 
+  [OpenQASM でノイズをシミュレートする](braket-openqasm-noise-simulation.md) 
+  [OpenQASM で逐語的なコンパイルを使用する](braket-openqasm-verbatim-compilation.md) 
+  [OpenQASM の問題をトラブルシューティングする](https://docs.aws.amazon.com/braket/latest/developerguide/braket-troubleshooting-openqasm.html) 

また、このガイドでは、Braket の OpenQASM 3.0 で実装できる特定のハードウェア固有機能の概要と、その他のリソースへのリンクについても示します。

**Topics**
+ [OpenQASM 3.0 とは?](#braket-openqasm-what-is)
+ [OpenQASM 3.0 を使用するタイミング](#braket-openqasm-when-to-use)
+ [OpenQASM 3.0 の仕組み](#braket-openqasm-how-it-works)
+ [前提条件](#braket-openqasm-prerequisites)
+ [Braket はどのような OpenQASM 機能をサポートしていますか?](braket-openqasm-supported-features.md)
+ [OpenQASM 3.0 量子タスクの例を作成して送信する](braket-openqasm-create-submit-task.md)
+ [さまざまな Braket デバイスでの OpenQASM のサポート](braket-openqasm-device-support.md)
+ [OpenQASM 3.0 でノイズをシミュレートする](braket-openqasm-noise-simulation.md)
+ [OpenQASM 3.0 を使用したQubitの再配線](braket-openqasm-rewire-qubits.md)
+ [OpenQASM 3.0 を使用した逐語的なコンパイル](braket-openqasm-verbatim-compilation.md)
+ [Braket コンソール](#braket-openqasm-braket-console)
+ [その他のリソース](#braket-openqasm-more-resources)
+ [OpenQASM 3.0 を使用した勾配の計算](braket-openqasm-computing-gradients.md)
+ [OpenQASM 3.0 を使用した特定の量子ビットの測定](braket-openqasm-measure-qubits.md)

## OpenQASM 3.0 とは?
<a name="braket-openqasm-what-is"></a>

Open Quantum Assembly Language (OpenQASM) は、量子命令の[中間表現](https://en.wikipedia.org/wiki/Intermediate_representation)です。OpenQASM はオープンソースフレームワークであり、ゲートベースのデバイス用の量子プログラムの仕様に広く使用されています。OpenQASM を使用すると、ユーザーは量子計算の構成要素を形成する量子ゲートと測定操作をプログラムできます。以前のバージョンの OpenQASM (2.0) は、基本的なプログラムを記述するために多くの量子プログラミングライブラリで使用されました。

OpenQASM (3.0) の新しいバージョンでは、以前のバージョンを拡張して、パルスレベルの制御、ゲートのタイミング、古典的な制御フローなどの機能を追加することで、エンドユーザーインターフェイスとハードウェア記述言語間のギャップを埋めています。現在のバージョン 3.0 の詳細と仕様については、GitHub の「[OpenQASM 3.x Live Specification](https://github.com/openqasm/openqasm)」を参照してください。OpenQASM の将来の開発はOpenQASM 3.0 [テクニカルステアリング委員会](https://aws.amazon.com/blogs/quantum-computing/aws-joins-the-openqasm-3-0-technical-steering-committee/)によって管理されます。この委員会 AWS は、IBM、Microsoft、およびインスブルック大学のメンバーです。

## OpenQASM 3.0 を使用するタイミング
<a name="braket-openqasm-when-to-use"></a>

OpenQASM は、アーキテクチャ固有ではない低レベルな制御機能を通じて量子プログラムを指定する表現力豊かなフレームワークを提供するため、複数のゲートベースのデバイスにわたる表現として最適です。Braket による OpenQASM のサポートにより、OpenQASM がゲートベースの量子アルゴリズムの開発に対する一貫したアプローチとしてますます採用されるため、ユーザーが複数のフレームワークでライブラリを学習して維持する必要性が減ります。

OpenQASM 3.0 に既存のプログラムライブラリをお持ちの場合は、それらの回路を完全に書き換えるのではなく、Braket で使用するように調整できます。また、研究者やデベロッパーは、OpenQASM でのアルゴリズム開発をサポートする利用可能なサードパーティーライブラリの数が増えていることからもメリットを得られます。

## OpenQASM 3.0 の仕組み
<a name="braket-openqasm-how-it-works"></a>

Braket による OpenQASM 3.0 のサポートにより、現在の中間表現と同等の機能が提供されます。つまり、Braket を使用してハードウェアデバイスやオンデマンドシミュレーターで現在できていることが、すべて Braket API を使用して OpenQASM でも実行できるようになったということです。OpenQASM 3.0 プログラムを実行するには、OpenQASM 文字列をすべてのゲートベースのデバイスに直接供給します。これは、回路が現在 Braket でデバイスに供給されている方法に似ています。また、Braket ユーザーは、OpenQASM 3.0 をサポートするサードパーティーライブラリを統合することもできます。このガイドの残りの部分では、Braket で使用する OpenQASM 表現を開発する方法について説明します。

## 前提条件
<a name="braket-openqasm-prerequisites"></a>

Amazon Braket で OpenQASM 3.0 を使用するには、[Amazon Braket Python スキーマ](https://github.com/aws/amazon-braket-schemas-python)のバージョン v1.8.0 および [Amazon Braket Python SDK](https://github.com/aws/amazon-braket-sdk-python) のバージョン v1.17.0 以降が必要です。

Amazon Braket を初めて使用する場合は、Amazon Braket を有効にする必要があります。手順については、「[Amazon Braket を有効にする](https://docs.aws.amazon.com/braket/latest/developerguide/braket-enable-overview.html)」を参照してください。

## Braket コンソール
<a name="braket-openqasm-braket-console"></a>

OpenQASM 3.0 タスクが Amazon Braket コンソールで利用、管理できます。このコンソールでは、既存の量子タスクを送信する際に持ったのと同じ量子タスク送信経験を OpenQASM 3.0 で持つことができます。

## その他のリソース
<a name="braket-openqasm-more-resources"></a>

OpenQASM はすべての Amazon Braket リージョンで利用できます。

Amazon Braket での OpenQASM の使用を開始するためのノートブックの例については、「[Braket Tutorials GitHub](https://github.com/aws/amazon-braket-examples/blob/main/examples/braket_features/Getting_Started_with_OpenQASM_on_Braket.ipynb)」を参照してください。