量子プログラミング1

初めましての方は初めまして。

狐ฅ^•ﻌ•^ฅと初音ミクが大好きな大学生ぐーたらきつねと申します。
今日から量子プログラミングに関する記事を書いていこうと思います。今回はその1回目です。

はじめに

そもそも、量子プログラミングってなんなんですかね?
量子プログラミングという言葉はなんにでも量子をつけたらカッΣ(ノ∀・´)カクィィみたいな最近のあれな感じなものってわけではなく量子コンピュータ上での動作を従来のコンピュータ上でシュミレートするプログラミングのことらしいです。現在制作されている量子コンピュータ上で動くプログラムではありません。量子情報で学ぶような理論に沿ったシュミレーションを可能にするプログラミングって感じです。(本当か?)

この記事の概要としてはMicrosoftが開発したQ#という量子プログラミングが可能な言語の環境構築になります。*1
なお自分の開発環境は

です。

※注意

  • 筆者はプログラミングのガチ初心者です。(色々問題点等教えてください)
  • 2020年1月2日時点で成功したものになります。

Q#について

Q#というのはMicrosoftが開発した量子プログラミング用のプログラミング言語です。 WindowsMacOSLinuxで使用することが可能です。

英語版の公式サイトには以下のようなことが書いてあります。(以下抜粋意訳)

まあ、なんか凄そうですね。

さて、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してください。下の写真のものです。 f:id:mikusandaisuki:20200104140057p:plain

.NET Core SKD

Q#の動作には.NET Core SKDが必要になります。.NETとは一言でいうと様々なアプリケーションの開発が可能な開発者向けのオープンソースプラットフォームのことです。詳細はこちらのサイトのムービーを見ると詳しくわかるかなと思います。(僕は今回までその存在を知りませんでしたが・・・)

ダウンロードはこちらから行ってください。 f:id:mikusandaisuki:20200104134633p:plain

このページの 『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

でサンプルの実行が可能になります。

実行した結果以下のようになれば環境構築は成功です。 f:id:mikusandaisuki:20200104173129p:plain

次回以降からは実際にQ#を用いたプログラミングを行っていきたいと思います。

今回使ったサイトなど

  1. Learn how to install the Microsoft Quantum Development Kit (QDK) - Microsoft Quantum | Microsoft Docs
  2. 量子プログラミング入門(カドラ著)
  3. .NET | Free. Cross-platform. Open Source.
  4. GitHub - microsoft/Quantum: Microsoft Quantum Development Kit Samples

*1:なお、Q#はWindowsLinuxでも使用可能です。

*2:これについては後日ブログにします

*3:公式サイトを見る感じだと3.0以降である必要があるみたいなの過去にダウンロード済みの方もアップデートの必要があるかもしれません。