Quantum Development Kit : Q# 開発環境をインストールして検証する (翻訳/実践)

#Quantum Development Kit : Q# 開発環境をインストールして検証する (翻訳/実践)

>12月11日に [Microsoft Quantum Development Kit (QDK)](https://www.microsoft.com/en-us/quantum/development-kit) の free preview 版がリリースされたことを受けて、先に、本家サイトのドキュメント "[What is Quantum Computing?](https://docs.microsoft.com/en-us/quantum/quantum-concepts-1-intro)" を 「[QDK: 量子コンピューティングとは何でしょう？](https://qiita.com/masao-classcat/items/9fbac737a46447a392e3)」 として翻訳しておきました。
このドキュメントは量子コンピューティングと QDK の基本概念を説明しています。

>次のステップとして、他にも基本概念を説明したドキュメントは多々ありますが、
少し実践的に Q# の開発環境を整えて簡単な量子テレポーテーション・サンプルを動かしてみたいと思います。

>具体的には、"[Installing and Validating the Q# Development Environment](https://docs.microsoft.com/en-us/quantum/quantum-installconfig)" を翻訳した上で忠実に実行していきます。

>動作検証は Windows Server 2016 で行ないました。非常に簡単ですので、興味があれば是非お試しください。以下のステップを全部なぞっても 30 分程度しかかかりません :

>- (まだ持っていないのであれば) Visual Studio 2017 Community Edition をインストール。
- QDK をインストール。
- Github レポジトリのサンプルを取り込んで実行する。

>なお、ドキュメントの通りにやれば問題なくインストールができますが、文章だけでは分かりにくい箇所もありましたので、画面のスナップショットも併せて載せておきました。



##要件

<ul>
<li>Quantum Development Kit と共にインストールされる、Microsoft の量子シミュレータは Advance Vector Extensions (AVX) を利用し、そして AVX が有効な CPU を必要とします。Q1 2011 (Sandy Bridge) またはそれ以後に出荷されたインテル・プロセッサーは AVX をサポートします。早期の CPU へのサポートは評価中で、詳細は後で発表するかもしれません。
<li>Quantum Development Kit と共に含まれるシミュレータは、実行するために Microsoft Windows の 64-bit インストールを必要とします。
<li>Visual Studio 2017
</ul>


もし Visual Studio をインストールしていないのであれば、Visual Studio 2017 Community Edition を無料でダウンロードできます。

1. [Visual Studio ダウンロード・ページ](https://www.visualstudio.com/downloads/) に行きます。

2. "Visual Studio Community 2017" の "Free download (無償ダウンロード)" ボタンをクリックします。

3. ブラウザのダウンロード・フォルダにナビゲートして名前が "vs_community" で始まる、実行ファイルの上をダブルクリックします。ファイル名は一様ではない数字のシークエンスを含むでしょう。

4. <b>重要！</b> 特定のワークロードのためのツールを選択するためのオプションが提示された時には、<b>Universal Windows Platform development</b> と <b>.NET desktop development</b> のためのボックスをチェックしてください。

5. ワークロードを選択した後は、インストールを完了するために "Install" をクリックします。

※ 訳注: 以下の画像は、上の 4. の指示どおりに選択したところです :
<img src="http://quantum.classcat.com/wp-content/uploads/2017/12/ms-vs-install2.png" alt="" width="640" class="alignnone size-full wp-image-136" vspace="8" />



##Q# 開発環境を作成する

Microsoft Quantum Development Kit をインストールします。

1. <a href="https://www.microsoft.com/en-us/quantum/development-kit" target="_blank">Microsoft Quantum</a> ページへブラウズして左上の "Download now" ボタンをクリックします。
2. Visual Studio マーケットプレースの <a href="https://marketplace.visualstudio.com/items?itemName=quantum.DevKit" target="_blank">Quantum Development Kit</a> ページで、"Download" をクリックします。
3. ブラウザがダウンロード (ファイル) を "Open" あるいは "Save" のどちらを望むか尋ねてくるので、"Open" をクリックします。
4. セキュリティ・ソフトウェアが確認ペインを提示するかもしれません。"Allow" またはブラウザにより使用される同等な用語をクリックします。
5. Quantum Development Kit extension が Visual Studio 2017 内にインストールされます。



##貴方の環境を検証する

このセクションでは量子サンプル & ライブラリをクローンして、貴方の Q# 環境が正しくインストールされて構成されているか検証するためにサンプル・アプリケーションを実行します。

####1. Microsoft QDK Samples and Libraries GitHub レポジトリをクローン

a. Visual Studio をオープンします。
b. "Team Explorer" の "Connect" ビューをオープンします (Team > Manage Connections)。
c. "Local Git Repositories" の下の "Clone" を選択して "https://github.com/Microsoft/Quantum.git" を入力します。
d. レポジトリをクローンするために "Clone" をクリックします。
e. レポジトリはローカル・コンピュータにクローンされて、Visual Studio はライブラリとサンプルが導入された右の方の Solution Explorer にスイッチします。

※ 訳注 : 上の手順で Solution Explorer のペインが出現しています :

<img src="https://qiita-image-store.s3.amazonaws.com/0/203151/e1320af8-12ee-acda-7da5-2e614670bc80.png" width="720" vspace="8"/>


####2. QsharpLibraries.sln ソリューションをオープン

- この時、"Install Missing Features" ペインで促された場合には、必要なフィーチャーのインストールを許可するために "Install" をクリックしてください。これは殆どの場合、幾つかのサンプルにより使用される F# とツールです。

※ 訳注 : QsharpLibraries.sln ソリューションのオープンが完了した画面です :

<img src="https://qiita-image-store.s3.amazonaws.com/0/203151/be114e3f-65b1-e021-d41c-a905aef59772.png" width="720" vspace="8"/>


####3. teleport サンプルプログラムを実行することにより貴方の Q# 環境を検証

a. QsharpLibraries ソリューションの "Samples > 0.Introduction" フォルダの <b>TeleportationSample</b> プロジェクト上を右クリックして、"Set as Startup Project" 上を左クリックします。
b. ソリューションを実行します (F5 キー)。もし teleport が動作して出力が次と同様であれば (各ラウンドで送られた各種 True/False 値で成功した teleportation を 8 ラウンド持ちます)、貴方の Q# 環境は Q# 開発をサポートする準備ができています :

```
Round 0:        Sent True,      got True. 
Teleportation successful!!
Round 1:        Sent False,     got False. 
Teleportation successful!!
...
Round 6:        Sent True,      got True. 
Teleportation successful!!
Round 7:        Sent False,     got False. 
Teleportation successful!!
```

※ 訳注 : TeleportationSample の実行画面です。上手くいったようです！

<img src="https://qiita-image-store.s3.amazonaws.com/0/203151/3db2f932-f94c-54ff-7da6-9dfa578b1895.png" width="720" vspace="8"/>



**以上**