8
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Drag&Dropな量子回路シミュレータQuirk

Last updated at Posted at 2021-07-16

この記事について

  • ブラウザベースの量子回路シミュレータQuirkの利用方法をまとめます
  • 特徴は以下で、
  • ブラウザ上で動作します
  • ドラッグ&ドロップで簡単に回路を構成できます
  • ブロッホ球表示、観測確率表示等のデバッグ機能も充実しています
  • 教科書で勉強した回路を確認する、勉強会で人に説明するといったシーンで便利です

Quirk.gif

また、他の量子コンピュータ関係の他の記事は、下記で紹介しています。

説明するオペレーション

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を起動しましょう。
ゲートは、ツールボックスからドラッグ&ドロップで配置できます

haichi.gif

ゲートのコピー

配置済みのゲートをコピーします。Shiftを押しながらドラッグでゲートをコピーできます。
gate_copy.gif

ゲートの削除

配置済みのゲートを削除します。ツールボックスにドラッグすることで配置したゲートを削除できます。
remove_gate.gif

量子ビットの追加

量子ビットを追加します。画面下方にゲートを配置することで量子ビットを追加できます
add_qubit.gif

初期状態の変更

量子ビットの一番左側のケットをクリックすることで初期状態を変更できます。
initial.gif

表示(ブロッホ球、観測確率)

量子ビットの状態を表示するには、Displaysのブロックを利用します。
ここでは、ブロッホ球表示と観測確率表示を使ってみたいと思います。
display.gif

Undo/Redo

やりなおし(Undo/Redo)は、Ctrl + Z / Shift + Ctrl + Z で実施可能です。

undo.gif

応用

行の移動

行を移動するには、一番左のケットをCtrlを押しながらドラッグします
line_move.gif

列の移動

列を移動するには、Ctrlを押しながら列をドラッグします
move_col.gif

列の複製

列を複製するには、Ctrl+Shiftを押しながら列をドラッグします
これを使うと、GHZも簡単につくれますね。
ghz.gif

発展

ゲートの作成

ゲートを組合せて複雑なゲートを構成することもできます。手順は以下の通りです。

  • 作成したい内部処理をQuirk上に配置する
  • Make Gateボタンを押下し、From Circuitに合成後のゲートに含める範囲とラベルを入力
  • 右下のCustom Gateに作成したゲートが表示される

make_gate.gif

たとえば、Grover SearchでOracle(Uw) と **振幅増幅(Us)**を定義したいといった場合に便利です

image.png

まとめ

量子回路シミュレータ Quirkの操作方法についてまとめてみました。
実際の計算においては、QiskitやblueqatといったSDKが便利ですが、、、
ちょっと試したいや勉強会等でちょっと触ってほしいといったユースケースでやはり、ブラウザベースのシミュレータは便利です。
やや冗長な記事となりましたが、どなたかのお役に立てばと。。

おまけ

過去にQuirkを利用し書いた記事をリンクしておきます

8
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?