量子コンピュータっていいよね。
みんな一度は使ってみたいと思ったことあるはず。根拠はない。
普通のコンピュータと違って量子コンピュータはまだまだ一般人の手には入らないし実物をこの目で見るのも難しいけど、IBMが作ってる量子コンピュータをインターネット経由で無料で使えるので、ありがたく使わせてもらおう。
まずはお手持ちのパソコンで、量子コンピュータに実行してほしい計算内容をプログラムで記述する。そしてそれをIBMが持ってる量子コンピュータ”IBM Q”に渡して、計算結果が返ってくるのを待つ。
プログラミング言語はPythonを使うことになってるけど、他にもいくつか準備が必要なので、本記事ではまずこの事前準備(具体的にはQiskitのインストールと動作確認まで)を備忘録としてメモしておく。Qiskitというのは、我々がIBMの量子コンピュータを使うために必要なフレームワークだ。
手順は基本的にはIBMが出してる説明(https://qiskit.org/documentation/locale/ja_JP/install.html)の通りに行っていく。
1. Python実行環境を作る。
本記事では、自分のパソコンにPythonの実行環境がまったくない状態をスタートとする。
まずはAnacondaをインストールするといいようだ。ここ(https://www.anaconda.com/products/individual)からお使いのパソコンのOSに合ったインストーラを選んでダウンロードする。ダウンロードリンクはページの下の方にある。

僕のパソコンはwindows10(64bit)なので、赤枠のやつを選んだ。
ダウンロードが終わったらそのファイルを実行し、インストールを進める。途中でなんか選択しろと言わんばかりのチェックボックスがいくつか出てくるが、特にこだわりがないならデフォルトのまま何もせずNextをクリックしていけばよい。
Anacondaのインストール手順は以下に詳しく書かれている。
さて、Anacondaのインストールが終わったら、次は仮想環境を作る。
仮想環境というのは要するに、プログラムを実行する環境に余計な機能がインストールされていてそれが邪魔して予期せぬ動作をしないよう、プロジェクトごとに別の環境を用意してあげたほうがよくて、その環境のことを指す。
量子計算をしたいのに他のライブラリが邪魔しちゃったり、逆に量子計算なんて一切しないのに環境にはQiskitが含まれていたりして厄介なことにならないように、Qiskitのインストールは全体に対して行うのではなく、個別に作った枠の中だけにインストールしよう、ということ。
さっきAnacondaをインストールしたことによって、Anaconda Promptというのがパソコンに追加されているはずなので、これを開いて…

conda create -n 作りたい仮想環境の名前 python=3
というコマンドを入力してエンターキーを押す。「作りたい仮想環境の名前」のところは半角英数で好きな名前を入れてね。今回の例ではquantumENVと入れた。エンターを押すとごちゃごちゃといろんな文字が表示されたあと、本当に実行してよいかどうかの確認であるProceed ([y]/n)?と表示されたところで止まる。

そうしたら、y を1文字だけ入力してエンターを押すと、仮想環境の構築が進む。
これで、quantumENVという名前の仮想環境が新たに作られる。
本当にちゃんと環境が作られたかどうか確認してみよう。さっきのAnaconda Promptに、
conda info -e
を入れて実行してみる。すると、こんな文字が出てくる。

今ある環境は、base、つまり最初からある基本のものと、さっき作ったquantumENVがありますよ、ということがわかる。ここで、baseの方には*というマークが付いている。これは、今はbaseという環境のほうが有効になっていますよ、ということを表している。よく見るとコマンドの先頭にも(base)という記述があり、ここからも今の環境がbaseであることがわかる。
今からの操作、すなわち量子コンピュータを使うための機能であるQiskitのインストールやその実行などは、いま作った仮想環境の方で行いたいので、quantumENVの方を有効にする。
conda activate さっき作った仮想環境の名前
を入力してエンターを押す。
実行後、先頭のカッコの中がさっき作った仮想環境の名前になっていればOK。念の為conda info -eを実行してみても良い。*マークがbaseではなく仮想環境の方についているはずだ。
2. Qiskitのインストール
さて、次はこの仮想環境に、Qiskitをインストールしよう。
pip install qiskit
を入力して実行し、しばらく待つ。なんのエラーも出ずに終了したらOK。一応これがIBMのWebサイトに書いてある方法だからこれでうまくいくはずなんだけど、僕の場合はこれではエラーが出た。

インストール作業の途中にこんな感じで赤字でブワーッと何かが表示されたらアウト。インストール失敗。なんでIBM推奨のやり方じゃダメなの……と愚痴を言いつつ、別の方法を試そう。
さっきの仮想環境を作るコマンドの末尾に「anaconda」を追加して、下記のようなコマンドを実行する。
conda create -n 作りたい仮想環境の名前 python=3 anaconda
これで新たに仮想環境を作る。名前はさっき作ったものとは別にすること。どうしてもさっきの名前が良いのなら、先に最初に作った仮想環境を削除しよう。
conda remove -n 最初に作った仮想環境の名前 --all
このコマンドで作った仮想環境を消すことができる。
で、conda activate 仮想環境の名前 を実行していま新たに作った2つめの仮想環境を有効にする。そしてこれまた同様にpip install qiskitを実行。僕の場合はこれでエラーなくインストールが終わった。
本当にちゃんとインストールできているかどうか確認しよう。今の環境にインストールされているライブラリの一覧は、
conda list
で確認できる。これを入力し実行する。インストールされているものが全て出てきてしまうので大量の文字列が表示されるが、上の方にスクロールしてQiskit関連のものを探そう。アルファベット順に並んでいる。

このように、Qiskit関連のライブラリ(ひとつではなくいくつかある)がリスト内にあれば、ちゃんとインストールできている。
3. ちゃんと動くかテスト
Qiskitのインストールが完了したが、これがちゃんと動くのか実際に確認しよう。
ここでは、Anacondaをインストールしたときに同時にインストールされているはずのJupyter Notebookを使う。

ここにある。末尾のカッコには仮想環境の名前が入っている。さっき作ったQiskitがインストールされている方のを選んでクリックしよう。つまりJupyter Notebook(anaconda3)ではない方。すると、ブラウザが立ち上がって下のような画面が出てくる。

おそらく、普通に起動したらC:\Users\(ユーザー名) という場所にあるファイルやフォルダが表示されていると思う。画面右上の方にあるNew▼をクリックし、Folderを選んで、新しいフォルダを作成しよう(もちろん、今ある既存のフォルダのどれかを使っても良い)。Untitled Folderという名前のフォルダができて一覧に追加されるので、これをクリックして開く。フォルダ名は後で好きなものに変えて良い。
フォルダを開いたら、先程と同じく右上のNewをクリックし、Python 3を選ぼう。すると、Pythonのプログラムを新たに作成することができる。

Jupyter Notebookの使い方をここで詳しくは説明しない。左上のほうにあるロゴの右隣にあるUntitledという文字をクリックすると、今編集しているこのプログラムのファイル名を設定できる。好きなものに変えよう(変えなくても良い)。
In[ ]のところの灰色の領域にコードを書くことができる。コードの内容等は後日別記事にて解説するので、とりあえず今は動作確認だと割り切って以下のコードをコピペしよう。
#Qiskitに必要なライブラリをインポート
from qiskit import *
from qiskit.visualization import *
#図を表示するために必要なライブラリをインポート
import matplotlib.pyplot as plt
#量子ビットを2個、古典ビットを2個用意する
q = QuantumRegister(2)
c = ClassicalRegister(2)
#量子回路を用意
qc = QuantumCircuit(q,c)
#0番目の量子ビットを反転させる
qc.x(0)
#n番目の量子ビットの状態を測定し、n番目の古典ビットに保存する
qc.measure(0,0)
qc.measure(1,1)
#↑で作った量子回路の図を作って表示する
qc.draw(output = "mpl")
コピペしたら、Shift + Enterでここに書いたコードを実行できる。今のコードは、量子回路を作ってそれを図として表示するだけで何の計算もしていない。図が無事に表示されればOKなんだけど…

僕の場合はエラーが出た。なんかごちゃごちゃ書いてあるけど、要するに「ImportError: The class(中略), run “pip install pylatexenc” .」とのことだ。つまり、pylatexencというライブラリが入ってないからこのコードは実行できないよ、実行したいならまずはpip install pylatexencを実行してライブラリをインストールしてね、ということなので、そのエラーの下に新たにできたIn [ ]の枠の灰色のところにpip install pylatexencと入力し、シフト+エンターで実行する。
しばらく待ってインストールが終わったら、下に結果が表示される。

インストールは成功したが、これを使いたいならカーネルを再起動してくれ、と表示されている。上の方にある更新ボタンみたいなやつ(Run の2つ右にあるやつ)をクリックし、Restartを選択するとカーネルが再始動する。
そうしたら、上までスクロールして、もう一度さっきコードをコピペしたIn[1]をクリックして選択し、Shift+Enterで実行してみる。

さっきのIn[1]に対する結果であるOut[1]はエラーが出ていたが、これがコードの再実行によって上書きされ、上の画面のような量子回路の画像が表示されていればOK。Qiskitは無事に動いている。
4. まとめ&次回予告
AnacondaとJupyter Notebookを導入し、QiskitをインストールすることでIBMの量子コンピュータを利用可能な状態となった。
まあ、Jupyter Notebookを使わなくてもVSCodeのようなエディタでPythonプログラミングを書いてAnaconda Promptから実行できるし、もっと言うと自分のパソコンにわざわざこれらをインストールしなくても、IBMのQiskitページからブラウザ上で実行することもできる。
しかし、IBMクラウド上でのQiskit実行は見た目的にもわかりやすいとはいえ、機能面ではできることが限られているので、後々のことを考えたら今回のようにPCに環境インストールしたほうがよい(Python環境はQiskitプログラミング以外にも使えるしね)。
今回の記事でQiskitを使う準備が済んだので、次回は解説とともに簡単な量子計算を実行してみる。
(厳密に言うと、本記事でできるのはシミュレータ実行までであり、量子コンピュータ実機を使うにはIBMのアカウントを作る作業が必要となる。それも後日の別記事に載せる)
おわり
Header illustration by Freepik Storyset
私はあまりPCが得意ではないが、それにも関わらず、非常に分かりやすかった
元々バックグラウンドが情報技術分野でなくて物理(電子)なので、量子計算の
このほう面に強い関心を持っています。
コメントありがとうございます。
私もバックグラウンドは物理であり情報系はさっぱりなのですが、個人的興味から独学でいろいろ勉強を進め、覚えたことをメモ代わりにブログに残しています。
今後とも宜しくお願いします。(更新サボり気味ですが…)