--- layout: page title: Qni 入門 description: QPU シミュレータ Qni の使い方 ---

本チュートリアルでは、量子コンピュータのシミュレータである Qni (https://qniapp.net/) を使って学習します。なぜ、実機ではなくシミュレータを使うのでしょう? 現在、さまざまな実機の量子コンピュータがクラウド経由で利用可能ですが、残念ながら次の理由により実機は初心者の学習にはあまり向いていません。

そこで本チュートリアルでは、量子コンピュータ実機 (数十〜百量子ビット程度) よりも小規模 (十量子ビット程度) になりますが、Qni シミュレータを使います。このチュートリアルの方針は、大きなシステムに焦点を当てるのではなく、最小のシステムを詳細に説明することで、量子コンピュータの最も基本的で、最も興味深い、そして時に不穏な結果を説明することです。最小の量子コンピュータの考え方を学ぶことで、より大きな量子コンピュータがどのように、そしてなぜ強力であるかを感じることができるようになります。

そして何よりシミュレータは自分専用なので、実機と違って好きなだけ使うことができます。Qni ではリアルタイムに実行結果が返ってきますので、初心者にとって重要なトライアル & エラーにもってこいです。そして将来的に実現するであろう理想的な (エラー率ゼロの) 量子コンピュータと同じ動きをしますので、チュートリアルの内容と実行結果がぴったり一致します。

初心者にとって Qni がうれしいもうひとつの点は、グラフィカルにプログラミングできることです。ほとんどの量子コンピュータでは、プログラミングに Python などの量子計算ライブラリを使う必要があります。量子コンピュータを学ぶためには、まずこれらに習熟しておく必要があるというわけです。 一方 Qni では、GUI によって直接量子回路を編集したり実行したりできるので、ハードルがかなり低くなっています。

Qni のツール群

これから Qni をひんぱんに使いますので、使いかたについて少し時間をとって確認してください。

Qni (https://qniapp.net/) のユーザインタフェース

命令パレット

量子回路に配置する命令の並んだツールです。ここからドラッグアンドドロップで回路に命令を置いていくことで、回路に命令を追加できます。それぞれの命令については、後の項目でそれぞれ詳しく紹介します。

QPU 演算の並ぶ命令パレット

量子回路エディタ

量子回路を表示したり編集したりするためのエディタです。量子回路エディタは、プログラムの途中状態での量子ビットの内容を表示するのにも使います。

量子プログラムを量子回路として視覚的に編集できる量子回路エディタ

状態ベクトル表示

量子ビットの状態を視覚的に表示します。表示の読み方と使い方については、後の項目で説明します。

量子ビットの状態 (状態ベクトル) を円表示する状態ベクトル表示

ライブプログラミングによる開発

Qni の一番の特徴はそのリアルタイム性です。命令パレットからドラッグした命令を量子回路エディタ上にかざすだけで、結果を状態ベクトル表示にリアルタイム描画します。これによって、命令の働きとその実行結果を素早く確認できます。

リアルタイムに量子ビットの状態変化を表示

また、ステップ実行によるデバッグも簡単です。プログラムの途中状態を確認したい場合にはその箇所にマウスポインタをホバーするだけで、状態ベクトルが更新されます。また、クリックするとその場所にブレークポイント (濃い紫の線) が表示されます。プログラム中の異なる地点での状態ベクトルの変化を確認するには、基準となる地点にブレークポイントを設定しておき、別の場所にマウスポインタをホバーするだけです。

ブレークポイントによる量子回路のデバッグ

興味がある人は、次に進む前に Qni (https://qniapp.net/) をいろいろいじって実験してみましょう!