この記事について
- ブラウザベースの量子回路シミュレータQuirkの利用方法をまとめます
- 特徴は以下で、
- ブラウザ上で動作します
- ドラッグ&ドロップで簡単に回路を構成できます
- ブロッホ球表示、観測確率表示等のデバッグ機能も充実しています
- 教科書で勉強した回路を確認する、勉強会で人に説明するといったシーンで便利です
また、他の量子コンピュータ関係の他の記事は、下記で紹介しています。
説明するオペレーション
Quirk@githubのページの Basic Circuit Editing の内容をカバーするように説明します。
- 基本
- 回路の保存
- ゲートの配置
- ゲートのコピー
- ゲートの削除
- 量子ビットの追加
- 初期状態の変更
- 表示(ブロッホ球/観測確率)
- Undo/Redo
- 応用
- 行の移動
- 列の移動
- 列の複製
- 発展
- ゲートの作成
基本編
回路の保存
Quirkでは量子回路はURLとして表現されています。
よって、回路をブックマーク or URLを記録することで量子回路を保存できます。
例えば、量子テレポーテーションであれば、以下のリンクをクリックすることで表示できます。
回路の構成はURLのcircuitというリクエストパラメータに保存されています。
https://algassert.com/quirk#circuit=%7B%22cols%22:%5B%5B%22X%5Et%22,%22Bloch%22,%22Bloch%22%5D,%5B%22Z%5Et%22,%22H%22%5D,%5B1,%22%E2%80%A2%22,%22X%22%5D,%5B%22Bloch%22,%22Bloch%22,%22Bloch%22%5D,%5B%22%E2%80%A2%22,%22X%22%5D,%5B%22H%22%5D,%5B%22Measure%22,%22Measure%22%5D,%5B1,%22%E2%80%A2%22,%22X%22%5D,%5B%22%E2%80%A2%22,1,%22Z%22%5D,%5B1,1,%22Bloch%22%5D%5D%7D
ゲートの配置
ではゲートを配置していきましょう。下記をクリックしQuirkを起動しましょう。
ゲートは、ツールボックスからドラッグ&ドロップで配置できます
ゲートのコピー
配置済みのゲートをコピーします。Shiftを押しながらドラッグでゲートをコピーできます。
ゲートの削除
配置済みのゲートを削除します。ツールボックスにドラッグすることで配置したゲートを削除できます。
量子ビットの追加
量子ビットを追加します。画面下方にゲートを配置することで量子ビットを追加できます
初期状態の変更
量子ビットの一番左側のケットをクリックすることで初期状態を変更できます。
表示(ブロッホ球、観測確率)
量子ビットの状態を表示するには、Displaysのブロックを利用します。
ここでは、ブロッホ球表示と観測確率表示を使ってみたいと思います。
Undo/Redo
やりなおし(Undo/Redo)は、Ctrl + Z / Shift + Ctrl + Z で実施可能です。
応用
行の移動
行を移動するには、一番左のケットをCtrlを押しながらドラッグします
列の移動
列の複製
列を複製するには、Ctrl+Shiftを押しながら列をドラッグします
これを使うと、GHZも簡単につくれますね。
発展
ゲートの作成
ゲートを組合せて複雑なゲートを構成することもできます。手順は以下の通りです。
- 作成したい内部処理をQuirk上に配置する
- Make Gateボタンを押下し、From Circuitに合成後のゲートに含める範囲とラベルを入力
- 右下のCustom Gateに作成したゲートが表示される
たとえば、Grover SearchでOracle(Uw) と **振幅増幅(Us)**を定義したいといった場合に便利です
まとめ
量子回路シミュレータ Quirkの操作方法についてまとめてみました。
実際の計算においては、QiskitやblueqatといったSDKが便利ですが、、、
ちょっと試したいや勉強会等でちょっと触ってほしいといったユースケースでやはり、ブラウザベースのシミュレータは便利です。
やや冗長な記事となりましたが、どなたかのお役に立てばと。。
おまけ
過去にQuirkを利用し書いた記事をリンクしておきます