本記事はFIXERが提供する「cloud.config Tech Blog」に掲載された「Azure Quantumを使ってみる」を再編集したものです。
今回はAzure上で量子コンピューターを使うことができる、Azure Quantumを使ってみた記事です。
量子コンピューターに関する詳しい説明は割愛します… 詳細はMicrosoftのドキュメントなどを参照ください。
流れ
・Azure Quantumワークスペースの作成
・Azure Quantumノートブックの作成
・プログラムの実行
Azure Quantumワークスペースの作成
まずはAzure PortalでAzure Quantumのリソースにアクセスし、ワークスペースを作成します。
このときに簡易作成か高度な作成のどちらを選択するか聞かれますが、今回はお試しなので簡易作成で行ないます。
任意のリソース名とリージョンを選択して作成をクリックするとワークスペースが作成されます。今回はEastUSリージョンで行ないました。
リソースグループ名はAzureQuantum固定になります。
ノートブックの作成
作成されたワークスペースを開き、左のNotebookを選択、 表示されるMy Notebookを選択します。Add Newを押すと新規ノートブックを作成できます。
今回はQ#言語を用いてプログラムを作成していくのでIQ#を選択します。名前の欄はよしなに入れましょう。
作成されたノートブックを開くと、接続文字列がデフォルトで入れられているのでこちらを押すと使用可能なQPUが出力されます。
%azure.target 使いたいQPU
のコードブロックを作成し、実行することで使用するQPUを選択できます。今回は ionq.simulatorを使って実行したいと思います(ionq.qpu を使いたかったのですが人気のQPUのため実行時間が結構かかるので…)。
今回はこちらのプログラムを使って実行します。プログラムはこちらを参考にしました。このコードブロックを実行すると関数が定義されます。
open Microsoft.Quantum.Canon; open Microsoft.Quantum.Intrinsic; open Microsoft.Quantum.Measurement; open Microsoft.Quantum.Math; open Microsoft.Quantum.Convert; operation GenerateRandomBit() : Result { use q = Qubit(); // 量子ビットの割り当て H(q); // H操作を行ない、量子を重ね合わせる let r = M(q); // 量子ビットの測定を行なう return r; }
次に
%azure.execute GenerateRandomBit
を実行し、この関数を実行します。
実行すると結果が表示されます。今回は量子ビットの観測を行なったので、どの程度の確率で1と0が出力されるのかのヒストグラムが出力されています。
今回は量子ビットを重ね合わせて実行したので1と0が50%の確率で出るようになっています。
もし処理結果が出なかった場合は
%azure.status
を実行、もしくは左ブレードのジョブ管理をクリックすることでジョブのステータスを確認することができます。
まとめ
AzureQuantumを使ってAzure上から量子コンピューターを使うことができました。意外と簡単に使うことができたので使う機会があれば使いたいと思います(量子コンピューターを使うほど高度な問題を解く予定がないので今後使うかは微妙ですが)。
余談
本当は量子コンピューターを使った乱数生成の記事を書こうと思っていたのですがドキュメントに
注意
現在このコード スニペットは、呼び出し可能な ResultArrayAsIntで完全な計算プロファイルを持つQPUが必要であるため、どの使用可能なAzure Quantumハードウェアターゲットでも実行できません。
https://learn.microsoft.com/ja-jp/azure/quantum/tutorial-qdk-quantum-random-number-generator?tabs=tabid-qsharp
と書かれていたので頓挫しました。将来的に実行できるようになったらこちらもまた機会を見て書きたいですね。
小松尾 真優/FIXER
[転載元]
Azure Quantumを使ってみる