量子プログラミング1
初めましての方は初めまして。
狐ฅ^•ﻌ•^ฅと初音ミクが大好きな大学生ぐーたらきつねと申します。
今日から量子プログラミングに関する記事を書いていこうと思います。今回はその1回目です。
はじめに
そもそも、量子プログラミングってなんなんですかね?
量子プログラミングという言葉はなんにでも量子をつけたらカッΣ(ノ∀・´)カクィィみたいな最近のあれな感じなものってわけではなく、量子コンピュータ上での動作を従来のコンピュータ上でシュミレートするプログラミングのことらしいです。現在制作されている量子コンピュータ上で動くプログラムではありません。量子情報で学ぶような理論に沿ったシュミレーションを可能にするプログラミングって感じです。(本当か?)
この記事の概要としてはMicrosoftが開発したQ#という量子プログラミングが可能な言語の環境構築になります。*1
なお自分の開発環境は
- MacBook Air (13-inch, Early 2015)
- 1.6 GHz デュアルコアIntel Core i5
- 8 GB 1600 MHz DDR3
- Mac OS Catlina 10.15.2
です。
※注意
- 筆者はプログラミングのガチ初心者です。(色々問題点等教えてください)
- 2020年1月2日時点で成功したものになります。
Q#について
Q#というのはMicrosoftが開発した量子プログラミング用のプログラミング言語です。 Windows、MacOS、Linuxで使用することが可能です。
英語版の公式サイトには以下のようなことが書いてあります。(以下抜粋意訳)
- Q#はゲートシーケンスの最適化や量子コンピュータの物理的実装を抜きして、プログラマがアルゴリズムだけに集中できるようなフレームワークを与えてくれる言語です。
- Q#では量子コンピュータの内部で起きていることを気にする事なく開発が可能です。
- Q#を用いる事で古典的な量子回路による表現を超えた量子アルゴリズムの開発が可能になるとMicrosoftは期待してる。
- 今までだと回路図を使わないと理解できなかった量子アルゴリズムが、Q#を用いた量子プログラミングを学ぶ事で理解できるようにもなると考えてる。
まあ、なんか凄そうですね。
さて、Q#の概要がわかってきたところで実際に使える環境を作っていきましょう。
環境構築
いくつか方法があるのですが、今回はdotnet command-line を用いたC#での開発が可能となるような環境構築を行っていきます。 なお、エディターはVS Codeを使っています。Q#の拡張機能がVS Codeにはあるので便利だと思います。
参考としたのはMicrosoftの公式サイトとC97で入手した技術書『量子プログラミング入門』(カドラ著)*2です。
開発には * VS Code * .NET Core SKD がまず必要になります。
VS Code
僕が好んで使ってるエディターですが、公式サイトを見る限りに別にこれである必要はないと思います。
必要ならこちらからダウンロードしてください。
なおQ#の拡張はMicrosoft Quantum Development Kit for Visual Studio Codeをinstallしてください。下の写真のものです。
.NET Core SKD
Q#の動作には.NET Core SKDが必要になります。.NETとは一言でいうと様々なアプリケーションの開発が可能な開発者向けのオープンソースプラットフォームのことです。詳細はこちらのサイトのムービーを見ると詳しくわかるかなと思います。(僕は今回までその存在を知りませんでしたが・・・)
ダウンロードはこちらから行ってください。
このページの 『Download .NET Core SKD』をクリックです。 僕が今回使用しているのは.NET Core 3.1になります。*3
Q#
.NET Core SKDが無事ダウンロード出来たら今度はターミナルを開いてください。ターミナルに
$ dotnet tool install -g Microsoft.Quantum.IQSharp
と打ち込むことで、Q#のインストールができます。既にインストール済みでアップデートの必要があれば
$ dotnet tool update -g Microsoft.Quantum.IQSharp
で行ってください。
次にC#からQ#のを呼び出すためのテンプレートのインストールを行います。
先ほどと同様にターミナルに
$dotnet new -i Microsft.Quantum.ProjectTemplates
と打ち込めばOKです。
以上でQ#のインストールは終わりです。
インストールの確認
最後に環境構築がきちんとできているかの確認を行います。 GitHubのこちらのサイトからファイルを自分のPCの適当な場所にcloneしてください。
$cd Quantum-master/samples/getting-started/teleportation
でサンプルコードの置いてあるところに移動できます。移動したら
$dotnet run
でサンプルの実行が可能になります。
実行した結果以下のようになれば環境構築は成功です。
次回以降からは実際にQ#を用いたプログラミングを行っていきたいと思います。