注意:この記事は2019年4月20日時点の情報で記載しています。
先日、Quantum Programming Studioというサイトが公開されました。
このサイトは量子コンピュータのコミュニティサイトを目指しているように見え、非常に興味深いです。
この記事ではこのサイトについて簡単にご紹介します。
Quantum Programming Studioとは何か?
概要
Quantum Programming Studioのトップページには次のような紹介文が記載されています。
What is Quantum Programming Studio?
The Quantum Programming Studio is a web based graphical user interface designed to allow users to construct quantum algorithms and obtain results by simulating directly in browser or by executing on real quantum computers.
WebベースのGUIで量子アルゴリズムを構築し、ブラウザ上でシミュレーションしたり、実物の量子コンピュータで実行できるそうです。
Cross platform
Circuit can be exported to multiple quantum programming languages and can be executed on various simulators and quantum computers.
WebベースのGUIで作成した量子回路を、複数の量子プログラミング言語にエクスポートでき、様々なシミュレータや量子コンピュータで実行できます。
Simple UI
You can use simple drag & drop user interface to assemble circuit diagram which automatically translates to code, and vice versa - you can type the code and diagram is updated accordingly.
ドラッグ&ドロップのシンプルなUIで量子回路図を組み立てることができ、自動でコードに変換されます。
また、その逆も可能で、コードをタイプすることで量子回路図が更新されます。
Discover
このサイトに登録しユーザが作成・公開した量子回路を見たり、コードをダウンロードできます。
メニューの「Discover」をクリックすると、このような画面になります。
「View Detail」をクリックすると詳細を確認できます。少し長いので、いくつかの画像で説明します。
画面上部にはプロジェクトに関する基本情報や詳細説明、量子回路図が表示されます。
「Embed」は作成した量子回路をMediumなどのブログに埋め込むリンクです。
ブログに埋め込む詳しい方法は、こちらで紹介されています。
How to embed interactive quantum circuit into Medium blog post
(https://medium.com/@petar.korponaic/how-to-embed-interactive-quantum-circuit-into-medium-blog-post-8331024501b7)
「REST API」は作成した回路のソースコードや画像データをダウンロードするためのURLです。
Community
このサイトに登録しユーザを検索したり、ユーザにメッセージを送ったりできます。
このあと、ユーザ登録についても紹介しますが、上の図の「Satoyuki Tsukano」の部分が「full name」に該当し、「snuffkin」の部分が「Username」に該当します。
ユーザ登録とプロジェクト作成
では、ユーザ登録をしてみましょう。
トップページの上部に「Register」ボタンがあるので、クリックしましょう。
full name、Username、Email address、Passwordを登録します。
Usernameはハンドルネームのような扱いだと思われます。
パッと見た感じ、Username、Email addressは後から変更できないように見えたので、この点は注意が必要そうです。
ユーザ登録すると、次のような「My Projects」画面で自分が作成したプロジェクトを確認することができます。
※この図は「spike」というプロジェクトを作成した後の画面です。最初に表示したときはプロジェクトはありません。
forksやstarsといった機能もあることが分かります。
「New Project」をクリックすると、プロジェクト情報を入力する画面になります。
Public/Privateを指定できるのは良いですね。
ここに記載した内容は後から変更することもできるので、ひとまず気負わずに入力して良いと思います。
プロジェクト情報を入力して「Continue」をクリックすると、量子回路図の作成画面に遷移します。
量子回路図の作成
プロジェクトを開き、「Edit」メニューをクリックすると、量子回路図を作成できます。
Drag & Drop
Drag & DropのGUIで手軽に量子回路図を作成できます。
Edit QASM
QASMのエディター画面です。
画面上部でQASMを編集すると、下の量子回路図がリアルタイムに更新されます。
文法ミスをしたりすると、×印でエラー箇所が可視化され、Messagesのタブや吹き出しでエラー内容が表示されます。
量子回路図のシミュレーション
「Simulate」メニューをクリックすると、量子回路図をシミュレーションする画面が開きます。
2019年1月24日現在はBrowser上でのシミュレーションのみサポートされています。
Browser
「▶Simulate」をクリックすることで、作成した量子回路図をシミュレーションできます。
「Show angles」「Show state vector」のトグルをonにすることで、これらの情報を表示することができます。
「Bloch」の部分をクリックするとBloch球の画面になり、ドラッグすることで回転させたりできます。
量子回路図の実機での実行
「Run」メニューをクリックすると、量子回路図の実機で実行するための画面が開きます。
「Rigetti QCS」「IBM Q」のタブがあります。
「Rigetti QCS」での実行方法については、このサイトのTwitterアカウントで紹介されている動画が参考になると思います。
Running quantum circuit on real quantum computer from https://t.co/RxnroSdElJ UI. Video: https://t.co/r3KlfHigYG @rigetti #quantumcomputer #quantum
— Quantum Circuit (@quantcirc) 2019年1月22日
量子プログラミング言語へのエクスポート
「Export」メニューをクリックすると、量子プログラミング言語へのエクスポートするための画面が開きます。
プルダウンメニューで言語を選択すると、下の画面にコードが表示されます。
「Download」をクリックすると、ファイルとしてダウンロードできます。
プルダウンメニューを開くと、サポートしている言語が分かります。
「Drawing」とあるように、量子プログラミング言語だけでなく、量子回路図をSVG形式やPNG形式でもエクスポートできて便利です。
また、Jupyter Notebookの形式でもダウンロードできます。
不具合報告
「Reposrt a bug」メニューをクリックすると、GitHubのissue画面が開きます。ここで不具合報告を行う事ができます。
このGitHubプロジェクトを見ると、Quantum Programming Studioはある程度OSSとして公開されているようですね。
まとめ
駆け足でひと通りの様子を見てみました。
まだまだ粗削りで、今後に期待するサイトであることは否めません。
ただ、ユーザが集まって知見を共有する流れが広まると、強力なサイトになるかもしれません。
期待しつつ、自分自身も使ってみたいと思います。