Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

20190806 Q# Measurements

225 views

Published on

Q#ハンズオンの資料

Published in: Technology
  • Be the first to comment

20190806 Q# Measurements

  1. 1. Measurement in Q# たぶん(1) OpenQL勉強会 @tanaka_733
  2. 2. 【宣伝】 n月刊ラムダノート https://www.lambdanote.com/collections/n
  3. 3. 最近のQ# Q# 0.8 (まで)リリース ◦ https://docs.microsoft.com/en-us/quantum/relnotes/?view=qsharp-preview ◦ 0.6で名前空間の変更など大幅な変更あり ◦ 量子アルゴリズムより、Q#の文法解説に特化した説明が聞きたい場合 アンケートにお願いします。 Quantum Development Kit OSS化 ◦ コンパイラー ◦ https://github.com/microsoft/qsharp-compiler/ ◦ C#やF#で書かれている ◦ Runtime ◦ https://github.com/microsoft/qsharp-runtime ◦ C#, C++, F# など
  4. 4. 今日のテーマ「Q#における測定」 Q#における1量子ビットの測定 ◦ そもそも測定とは ◦ |0>と|1>を測定する ◦ 任意の状態を測定する。測定後の量子ビットの状態。 ◦ ある正規直交基底にある2状態の識別 ◦ 正規直交基底にない2状態の識別 Q#における2量子ビットの測定 ◦ (Q#ドキュメントの)Pauli測定の入り口 ※資料へのフィードバック歓迎です!
  5. 5. 今回の参考資料 Qunatum KatasよりMeasurementとJointMeasurement ◦ ハンズオンの課題はKatasの課題を改変し、 測定前後の状態を出力するなどしたものです。 ◦ https://github.com/microsoft/QuantumKatas Q# Docs ◦ Quantum computing conceptsのThe qubits, Multiple qubits, Pauli measurements あたり ◦ https://docs.microsoft.com/en-us/quantum/concepts ◦ Q# library reference のM, Measureなど
  6. 6. 量子コンピューターにおける測定と は 1量子ビットを標準基底(computational basis)で測定する場合 θ |0>|1> Zeroの確率: cos2θ Oneの確率: sin2θ cos 𝜃 0 + sin 𝜃 1 任意の状態に対し、|0>か|1>のどちらかの値が観測されるか調べる。 観測した後、状態は観測された値に変化する。
  7. 7. 測定を数式で書いてみる 𝜓 = 𝛼 0 + β 1 𝑃(𝑀 𝑚 𝜓 ) = 𝜓 𝑀 𝑚 † 𝑀 𝑚 𝜓 𝑀 𝑚 𝜓 𝑃(𝑀 𝑚 𝜓 ) 𝛼 2 𝛽 2 𝛼 𝛼 0 𝛽 𝛽 1 確率 測定後の状態 元の状態 |0>で測定した場合の確率 |0>で測定した場合の状態 |1>で測定した場合の確率 |1>で測定した場合の状態
  8. 8. Q#における測定(その1) M operation https://docs.microsoft.com/en- us/qsharp/api/qsharp/microsoft.quantum.intrinsic.m?view=qsharp-preview
  9. 9. |0>と|1>のどちらかに揃えて 測定する 𝐻 + = 0 𝐻 − = 1 z軸とx軸の間の軸を中心に 180度回転させる
  10. 10. |0>と|1>のどちらかに揃えて 測定する y軸周りに-90度回転させる
  11. 11. 2量子ビットの測定 2量子以上になるともはやBloch球で表現できない! ◦ 2n次元複素ベクトル空間上の単位球面上 ◦ 1量子の場合、2次元複素ベクトル+長さが1の制約から3次元球面上に表現できた n番目のQubitが|0>か|1>かは測定できるが、測定すると状態が破壊される エンタングルしていなければ別の量子ビットも測定できるが エンタングルしていると別の量子ビットの状態が変化するので 別の量子ビットを測定しても意味がない (という理解でいるが、と主張してよいか自信がない…)
  12. 12. 2量子ビット測定の数式 𝜓 = 𝛼 00 + β 01 + 𝛾 10 + 𝛿 11元の状態 𝛼 2 + 𝛽 2 𝛾 2 + 𝛿 2 最初のQubitを|0>,|1>で測定 𝛼 2 + 𝛾 2 𝛽 2 + 𝛿 2 2番目のQubitを|0>,|1>で測定 1 𝛼 2 + 𝛽 2 𝛼 00 + β 01 1 𝛾 2 + 𝛿 2 𝛾 10 + 𝛿 11 1 𝛼 2 + 𝛾 2 𝛼 00 + 𝛾 10 1 𝛽 2 + 𝛿 2 β 01 + 𝛿 11
  13. 13. ここからJoint Measurementへ
  14. 14. 1量子ビットの測定と固有値 |0>と|1>は、実はPauliZ演算子の固有ベクトル 測定というのは、+1と-1を固有値にもつ2つの固有ベクトルのどちらであるかを観測す る。 測定後は観測した固有ベクトルに変化する。 固有値+1がQ#での測定結果Zeroに 固有値-1がQ#での測定結果Oneに対応する 1 0 0 −1
  15. 15. Parity測定 PauliZのテンソル積を考えてみると、2つの固有値がある 𝜎 𝑍⨂𝜎 𝑍 = 1 0 0 −1 0 0 0 0 0 0 0 0 −1 0 0 1 固有値1 固有値-1 それぞれの固有ベクトルが表現する状態については、変更することなく測定できる 1 2 1 0 0 1 1 2 0 1 1 0
  16. 16. 次回どちらがよいですか? 測定その2 ◦ 通常の測定(Joint Measurementではない)のさらなる応用 ◦ Joint Measurementのさらなるパターン Q#の文法 ◦ 量子アルゴリズムはいったんおいて、文法についておさらい ◦ (配列操作、制御構文、基本的な操作の使い方)

×