Contenu connexe Similaire à ゼロから始めるQ# (20) Plus de Takayoshi Tanaka (20) ゼロから始めるQ#2. 自己紹介
Software Maintenance Engineer @ Red Hat K.K.
◦ OpenShift, Red Hat on Azure/Azure Stack,
.NET Core/SQL Server on RHEL
Microsoft MVP for Azure (2018 Jul- )
◦ 今年6月までは MVP for VSDT (旧C#, ,NET)でした
ソーシャル活動
◦ Twitter: @tanaka_733
◦ Blog: 銀の光と碧い空
◦ Blog: Red Hat Developers
8. 先進的なMRI研究への適用事例(意訳)
Case Western Reserve UniversityとMicrosoft Quantumチームが協力
ガン性腫瘍の検知において量子アルゴリズムを利用
MRI画像診断の正確性向上、時間短縮のためMRF(Magnetic resonance
fingerprinting)の利用を検討
MRIでは画像を構築して診断するが、MRFでは最適化したパルス列から単一の値を
測定できる。
量子アルゴリズムにより、最適化したパルス列を効率よく見つけたい
現状ではAzure上でのSimulatorで計算している
スキャンした画像をHoloLensで可視化もしている
https://blogs.microsoft.com/blog/2018/05/18/microsoft-quantum-
helps-case-western-reserve-university-advance-mri-research/
10. 参考資料
QiitaファンミーティングLT: 量子コンピュータはじめました
◦ https://qiita.com/gyu-don/items/7d8e41b7653257ed4b46
量子コンピュータアプリ 勉強会オンラインコミュニティ
◦ connpassにて勉強会情報が載っています(週1回以上の高頻度)
◦ Slackがあるので、物理的に参加できない人も議論できます (福岡で開催したこともあるとのこと)
◦ https://qnn.connpass.com/
◦ #microsoft-q-sharp というチャネルに過去の資料がリンクされています
私の発表資料
◦ 5分でわかった気にさせないMicrosoft Quantum (JAZUG LT)
◦ https://www.slideshare.net/tanakata/microsoft-quantumn-in-5-mins
◦ 量子コンピューターを支える物理を覗いてみよう (JAZUG)
◦ https://www.slideshare.net/tanakata/20171219-84443097
◦ 量子コンピューター向け冷凍機について
◦ https://www.slideshare.net/tanakata/ss-88589352
◦ マヨラナ粒子によるスケーラブルな量子コンピューターの設計
◦ https://www.slideshare.net/tanakata/ss-91004676
12. Credits; Eric Brown, Creative Destruction Lab https://www.bohr.technology/blog/quantum-computing-landscape-july-2018
24. Q#開発の準備
Visual StudioかVisual Studio CodeでQ#を動かしてみよう!
必要なもの
◦ .NET Core が動くOS
◦ 初期のQ#では新し目のCPUが必須だったが、今はOK
◦ Visual Studio or Visual Studio Code
◦ Q#開発キット
https://docs.microsoft.com/en-us/quantum/quantum-
installconfig?view=qsharp-preview&tabs=tabid-vs2017
30. Q#プロジェクト Internal
作成されたプロジェクトは普通のC#プロジェクトにQ#SDKが参照されているもの
◦ .NET Core 2.0 (netcoreapp2.0)
Q#のソースはC#(g.cs)にいったんコンパイルされる
◦ WPFとかSilverlightのXAMLやASP.NETのcshtmlと同じイメージ
◦ ただし、プロジェクトのビルド時にしかビルドされない (コード編集中に自動ビルドされない)
◦ NuGetで配られる microsoft.quantum.development.kit の中にビルド定義があり、
プロジェクトのビルド時にトリガーされる == .NET Core標準の仕組みを利用
Q#コードの支援機能はない
◦ C#(Roslyn)のような Intellisence はおろか、コードフォーマットもない。つらい。
というのを頭に入れておくと、Q#コード書くときに(C#との感覚の違いがわかって)便利かも
31. Q. うまくコンパイルできないのですが?
"QS0001 Internal error: Parsing produced an error node without logging an
error“
という実質役に立たないメッセージしかでないのですが!!!111
(他にも同様の役立たずメッセージあり)
A. 文法ミスがあるはずなので、がんばってコンパイルエラーを解消しましょう…
Feedbackに登録されている通り、文法エラーのメッセージが不親切極まりないです
あと、ドキュメントに書かれているサンプルが正しくないことがあります…
C#のようなコーディング支援もないので、いまのところは気合と根性でがんばりましょう
35. 3種類の制御構文
◦ if…elif…else 文
◦ elseじゃなくてelif
◦ forループ
◦ C#のforeachに相当
◦ ループの変数を事前に定義する必要なし
◦ repeat-untilループ
◦ 今回は省略
◦ Do-while文で、条件判定に複数の文が
記述できるイメージ
◦ 「当たるまで引けば当たる」
42. 型モデル
Primitive
◦ Int 2, -107, 49 (64bit)
◦ Double 0.0, -43.2, 5e-7
◦ Bool true, false
◦ Pauli PauliI, PauliX, PauliY, PauliZ
◦ Result Zero, One (測定結果を表現)
◦ Range 1..10, 5..-2..1 (start..step..end なので 5,3,1)
◦ String “qsharp” (ログメッセージに利用)
◦ Qubit
Tuple (Int, (Qubit, Qubit))
配列 [1; 4], new Int[13]
Operation & Function型
ユーザー定義型 newtype Complex = (Double, Double);
C#でいう暗黙的な型変換はない。
Microsoft.Quantum.Extensions.Convert 以下
のFunctionを使って明示的に変換しないといけない
52. Q# をはじめてみよう(おさらい)
まずは Q# ドキュメントを読む
◦ 量子コンピューティング概念
◦ 量子コンピューター初めての人におすすめ
◦ インストール
◦ Q#開発基礎 今回の資料の大半はここ
◦ Q#標準ライブラリ
◦ 標準ライブラリに入っている操作の説明など。利用可能なゲートなども把握できる
◦ Q#プログラミング言語
57. まとめ
Visual StudioかVisual Studio Codeが動く環境があれば、今すぐQ#をはじめられる
量子コンピューターの原理は物理学や数学を知らないといけないが、
Q#はそこまで知らなくともはじめられる
C#(やJava)に似た構造なので、比較的とっつきやすい(はず)
Quantum KatasやCoding Contestなど実際に解いて学ぶ環境も増えてきた
58. 参考リンク
Microsoft Quantum
◦ 公式ページ: https://cloudblogs.microsoft.com/quantum/
◦ Quantum Development Kit: https://www.microsoft.com/en-us/quantum/development-
kit
◦ 開発用ドキュメント: https://docs.microsoft.com/en-us/quantum/?view=qsharp-preview
学習リソース
◦ SDKとサンプルのリポジトリ:
◦ Quantum Katas: https://github.com/Microsoft/QuantumKatas
◦ Q# Coding Contest (warm up)
◦ Q# Coding Contest
59. 参考リンク
Q#の設計を学術的に知りたい人向け
◦ Q#: Enabling scalable quantum computing and development with a high-level domain-
specific language
https://www.microsoft.com/en-us/research/publication/q-enabling-scalable-quantum-
computing-and-development-with-a-high-level-domain-specific-language/
◦ Programming Quantum Computers Using Design Automation
https://www.microsoft.com/en-us/research/publication/programming-quantum-
computers-using-design-automation/
MRFの学術的背景を知りたい人向け
◦ https://www.nature.com/articles/nature11971
◦ http://case.edu/mrf/
◦ Magnetic resonance fingerprintingとその最新動向 :
http://www.innervision.co.jp/sp/ad/suite/siemens/technical_notes/1511techinfo
◦ 最新の高速撮像技術─fingerprinting─:
http://www.innervision.co.jp/ad/suite/siemens/technical_notes/160976