Upgrade to Pro — share decks privately, control downloads, hide ads and more …

量子コンピューターで量子計算を試してみよう / The Basics of Quantum Computation

量子コンピューターで量子計算を試してみよう / The Basics of Quantum Computation

2021年6月4日開催 Women in Data Science Tokyo @ IBM
QUANTUM COMPUTING TALK #1資料
Speaker: 小林 有里
Qiskit開発者コミュニティー担当
東京基礎研究所
日本アイ・ビー・エム株式会社

https://widstokyoibm2021.splashthat.com/

8e308462954f8c38cc60dabb8b7bc6a3?s=128

wids-tky-i

June 04, 2021
Tweet

Transcript

  1. TECHNOLOGY TALK 量⼦コンピューターで量⼦計算を試してみよう ⼩林 有⾥(Yuri Kobayashi) ⽇本アイ・ビー・エム株式会社 東京基礎研究所 Qiskit Developer

    Community, IBM Quantum
  2. 本セッションのSNS投稿について SNS投稿︓ 全てOK OK: テキストによる⽂字のみの投稿 OK: スクリーンショットの画像/動画を含んだ投稿 ハッシュタグ: #WiDS2021 #WiDSTokyoIBM

  3. 日本アイ・ビー・エム株式会社 東京基礎研究所 量子コンピューティング Qiskit 開発者コミュニティー担当 物性物理学 有機超伝導材料研究 2019年より、オープンソースの量子開発フレー ムワークQiskitのコミュニティーを担当。量子 コンピューターを使ったプログラミングコンテ

    スト、ハッカソン、ワークショップ等を主催を 通じた量子人材の育成に注力。 IBM Quantum / © 2020 IBM Corporation 3 ⼩林有⾥ Yuri Kobayashi Twitter @YuriKobaya
  4. 内容 量⼦コンピューターは誰もが使える時代に 量⼦ビットとは 量⼦計算の基礎 従来の計算⽅法との⽐較 量⼦回路を組んでみよう(グローバーの探索回路の実装) 更に深く学びたい⽅のために まとめ

  5. 量子コンピューターで 解いてみましょう 量⼦コンピューターは誰もが使える時代に

  6. None
  7. IBM Yorktown Hights Quantum Lab 4年前(2016年5⽉)量⼦コンピューターを世界にさきがけてクラウド上に公開しました

  8. 公開後、世界中からユーザーが量⼦コンピューターにアクセスしています 280k

  9. 量子コンピューターで 解いてみましょう なぜ注⽬されているのか︖

  10. 従来のコンピューターが苦⼿とする分野 化学シミュレーション 素因数分解 乱択アルゴリズム 588 294 147 49 7 2

    2 7 3 新しいセキュリティー技術 創薬、新しい材料研究 探索、決定問題への応用 指数関数的に増える ʼ 2048ビットの整数(619桁の整数)の 素因数分解(古典:47億年*1, 量子:8時間*2) 小さな分子のシミュレーションは スーパーコンピューターでも困難 従来のコンピューターでは真の 乱数生成はできない [2] C. Gidney, Craig and M. Ekerå https://arxiv.org/abs/1905.09749(2019) [1] Kleinjung, Thorsten et al “Factorization of a 768-Bit RSA Modulus“
  11. 量⼦コンピューターという着想 ⾃然をシミュレーションしたければ、 量⼦⼒学の原理でコンピューターを作らなくてはならない 1982年 リチャード・ファインマン “Nature isn't classical, dammit, and

    if you want to make a simulation of nature, you'd better make it quantum mechanical, and by golly it's a wonderful problem, because it doesn't look so easy.”
  12. 量子コンピューターで 解いてみましょう 量⼦ビットとは︖

  13. 量⼦ビット 0 1 0 1 通常のビット (bit) 量⼦ビット (qubit) 0

    1 量⼦重ね合わせ 従来のコンピューターが扱う情報の基本単位はビット。状態は0か1のどちらかをとる。 量子コンピューターの計算は量子ビットが基本単位。量子ビットは量子力学の原理に基づ く重ね合わせや量子もつれといった特性を活かすことのできる素子 もつれと位相を利用した干渉で 効率的に解を導き出せる 量⼦もつれ n 個の量⼦ビットがあるとき︓2n個の情報を扱える
  14. 𝑥 時刻 𝑡 ある時刻 𝑡 に、ある位置𝑥に車が存在すると確定できる 電子の位置は観測するまでは確定せず、重ね合わせ状態を取る。 複素確率振幅が波として振る舞うので、量子ビットの状態は × ×

    × ⟩ |Ψ = α ⟩ |0 + β ⟩ |1 とかける 粒子がどこに存在しているかという重みを表現している 例)均等な重ね合わせ ( ⟩ |0 の位置で観測される確率𝑃0 と ⟩ |1 の位置 で観測される確率 𝑃1 が50%ずつの状態をさす) 𝑃0 = |α|2, 𝑃1 = |β|2, |α|2+ |β|2 =1 ⇒ α = 1 2 , β = 1 2 α,β は確率振幅と呼ばれ、絶対値の二乗が確率になる。 古典物理学の世界 量子力学の世界 ? 量⼦の世界 ⟩ |Ψ = ! " ⟩ |0 + ! " ⟩ |1 電子 ビーム
  15. 量子コンピューターで 解いてみましょう 量⼦計算の基礎

  16. 量⼦状態はベクトルとして表現できる 量子ビットの状態は右図のブロッホ球と呼ばれる 球体の中止から球面まで伸びたベクトルとして表現可。 ベクトル: ⃗ 𝑎、( 𝑎 ⇒ ⟩ |𝑎

    は ケットと呼ばれる列ベクトル、,𝑎|はブラと呼ばれる行ベクトル 量子状態を表す複素ベクトル ⟩ |Ψ = α ⟩ |0 + β ⟩ |1 ⟩ |0 = 1 0 ⟩ |1 = 0 1 前ページで登場した量子状態表現 ⇒正規直交基底とする単位ベクトル ブロッホ球 北極方向をさす 南極方向をさす
  17. ゲート操作で量⼦計算(1) 量子状態がベクトルならば、ベクトルを操作する量子ゲートは行列で書き表せる。 最も基本的なゲート操作であるパウリゲート:X, Y, Z 𝑋 = 0 1 1

    0 Y = 0 −𝑖 𝑖 0 Z = 1 0 0 −1 X軸周りのπ回転 Y軸周りのπ回転 Z軸周りのπ回転 https://github.com/cduck/bloch_sphere/blob/master/examples/common_gates.md ⟩ |0 = 1 0 ⟩ |1 = 0 1 𝑋 ⟩ |0 = 0 1 1 0 1 0 = 0 1 𝑌 ⟩ |0 = 0 −𝑖 𝑖 0 1 0 = 0 # 𝑍 ⟩ |0 = 1 0 0 −1 1 0 = 1 0 𝑍 ⟩ |1 = 1 0 0 −1 0 1 = 0 $𝟏 ⟩ |0 だと変化なし ⟩ |1 だとマイナス位相 ⟩ |0 ⟩ |1
  18. ゲート操作で量⼦計算(2) アダマールゲートは量子重ね合わせをつくる代表的な量子ゲート。 2度適用すると単位行列(適用しても元のベクトルは変わらない)になる。 𝐻 = 1 2 1 1 1

    −1 XZ間45度の軸周りのπ回転 重ね合わせをつくる アダマールゲート ⟩ |0 = 1 0 ⟩ |1 = 0 1 𝐻 ⟩ |0 = ! " 1 1 1 −1 1 0 = ! " 1 1 𝐻 ⟩ |0 = # $ ( ⟩ |0 + ⟩ |1 ) ⇒ 𝐻[ # $ ( ⟩ |0 + ⟩ |1 )] = ⟩ |0 𝐻 ⟩ |1 = # $ ( ⟩ |0 − ⟩ |1 ) ⇒ 𝐻[ # $ ( ⟩ |0 − ⟩ |1 ] = ⟩ |1 𝐻𝐻 = 𝕀 𝐻 ⟩ |1 = ! " 1 1 1 −1 0 1 = ! " 1 −1 ⟩ |0 ⟩ |0 → 𝐻 ⊗ 𝐻 → 1 2 ( ⟩ |0 + ⟩ |1 ) 1 2 ( ⟩ |0 + ⟩ |1 ) → 1 2( ⟩ |00 + ⟩ |01 + ⟩ |10 + ⟩ |11 ) 𝐻𝐻= # $ 1 1 1 −1 # $ 1 1 1 −1 = 1 2 2 0 0 2 = 1 0 0 1
  19. ゲート操作で量⼦計算(3) Z軸周りのπ以外の角度の回転ゲートのSゲート( & " 回転 )、Tゲート( & ' 回転 )や、

    X, Y, Z軸それぞれ周りの任意の角度(θ)の回転ゲートRx, Ry, Rzもある。 Ry = cos ( " −sin ( " sin ( " cos ( " S: Z軸周りの % $ 回転 Ry: Y軸周りの任意の回転角回転 S = 1 0 0 𝑖 T = 1 0 0 𝑒#! " T: Z軸周りの % & 回転
  20. ゲート操作で量⼦計算(4) 2量子ビットゲート:2つの量子ビットを操作する2入力2出力の論理ゲート アダマールゲートと2量子ビットのゲートの組合せによって量子もつれを起こさせる。 制御 標的 CNOT: 制御ビットが ⟩ |1 の時のみ標的を反転する

    CZ: 制御ビットが ⟩ |1 で標的が ⟩ |1 ならばマイナス位相 𝑦 𝑥 0 0 1 0 0 1 1 1 0 0 1 0 0 1 −1 1 𝑦 𝑥 input output
  21. 量子コンピューターで 解いてみましょう 従来の計算⽅法との⽐較

  22. 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001

    1010 1011 1100 1101 1110 1111 例)4ビットの暗号解読をしてみましょう。
  23. 〇 ふつうのコンピューター 0000 0001 0010 0011 0100 0101 0110 0111

    1000 1001 1010 1011 1100 1101 1110 1111 × 古典コンピューターで解読する場合 総当たりで検証していく必要がある
  24. 量子コンピューター 0000 0001 0010 0011 0100 0101 0110 0111 1000

    1001 1010 1011 1100 1101 1110 1111 0011 〇 Q グローバーのアルゴリズムで 効率的に解を導出 × 〇 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 量⼦コンピューターで解読する場合
  25. 量子コンピューターで 解いてみましょう 量⼦回路を組んでみよう (グローバーの探索回路の実装)

  26. 2 6 誰もが簡単に量⼦回路を組めるツール https://quantum-computing.ibm.com/ IBM Quantum Composer

  27. IBM Quantumのサイトのアクセス⽅法 ①IBM Quantumのサイトへ ②アカウント(IBMid) の作成 ③ログイン後Composerを立ち上げて量子計算を試行 ① https://quantum-computing.ibm.com/

  28. グローバーの探索回路 例)4ビットの例をさらに単純かした2ビットの探索問題 00 01 10 11

  29. グローバーの探索回路 量⼦回路の作成⼿順 ①重ね合わせをつくる (superposition) ②探している解のマーキング(oracle) ③探している解の確率振幅を増幅(diffusion) ④測定 (measure) ① ②

    ③ ④
  30. グローバーの探索回路をつくる(1) Step 1: 重ね合わせをつくる ふたつの量⼦ビットq[0], q[1]にアダマールゲートを 作⽤させて重ね合わせの状態をつくります。 ⟩ |0 ⟩

    |0 → 𝐻 ⊗ 𝐻 → 1 2 ( ⟩ |0 + ⟩ |1 ) 1 2 ( ⟩ |0 + ⟩ |1 ) → 1 2( ⟩ |00 + ⟩ |01 + ⟩ |10 + ⟩ |11 )
  31. グローバーの探索回路をつくる(2) Step 2: 探している解の位相を反転させてマーキング 00 → 1 2 (|00⟩ +

    |01⟩+|10⟩+|11⟩) → 1 2 (|00⟩ + |01⟩+|10⟩−|11⟩) H⨂H CZ Control Z 制御ビットが ⟩ |1 でかつ ターゲットが ⟩ |1 のときにマイナス位相 制御ビット ターゲットビット
  32. グローバーの探索回路をつくる(3) → Step 3: 探している解の確率振幅を増幅 振幅増幅⼿法によって、重ね合わせ状態の平均値の周りで反転を繰り返します [アダマール変換(H⨂H)]と[ビット変換(X⨂X)]と[制御 Z ゲート(cZ)]を 組み合わせて使います。

    (diffusion、または反転オラクルDと呼ばれる) 1 2 (|00⟩ + |01⟩+|10⟩−|11⟩) = 1 2 [|0⟩(|0⟩ + |1⟩ )+|1⟩(|0⟩−|1⟩)] 1 2 [ (|0⟩ + |1⟩ )|0⟩+ (|0⟩−|1⟩)|1⟩] → 1 2 [ (|0⟩ + |1⟩ )|1⟩−(|0⟩−|1⟩)|0⟩] 1 2 [(|0⟩ − |1⟩ )|1⟩−(|0⟩−|1⟩)|0⟩] → 1 2 [−(|0⟩ + |1⟩ )|1⟩ + (|0⟩−|1⟩)|1⟩] 1 2 [−|1⟩(|0⟩ + |1⟩ ) + |1⟩(|0⟩−|1⟩)] = −|11⟩ X⨂X X⨂X H⨂H → CZ H⨂H → 位相の違いによって打ち消し合う波が発生し 求めている解の振幅が測定される
  33. グローバーの探索回路をつくる(4) Step 4: 観測(測定)を⾏います

  34. 量⼦コンピューターの計算結果 実機の量⼦コンピューターの結果のほうはノイズがのっているのが⾒えます 量子シミュレーターの結果(simulator_mps) 実機の結果(ibmq_santiago)

  35. グローバーの探索回路 無事に1回でクイーンを引き当てることができました。 00 01 10 11

  36. 量⼦コンピューターの技術は黎明期 NISQ: Noisy Intermediate-Scale Quantum Computer ノイズのある⼩中規模の量⼦コンピューター Fault-tolerant Universal Quantum

    Computer エラー耐性のある万能量子コンピューターへ
  37. 量⼦体積︓量⼦コンピューターの性能を測る指標 Qubits added: 50 Error rate decrease: 0x Quantum volume

    increase: 0x Qubits added: 0 Error rate decrease: 10x Quantum volume increase: 500x 2030年までに量子優位性を達成するには量子体積を 毎年倍にする必要がある。
  38. None
  39. 遂に⽇本に上陸した量⼦コンピューター 39 Quantum Computing and IBM Q: An Introduction #IBMQ

    3月23日にプレスリリースされました。
  40. 量⼦コンピューターの応⽤分野 ・新しい材料、創薬の開発 ・金融計算 ・最適化問題 ・AI・機械学習

  41. 量子コンピューターで 解いてみましょう 更に深く学びたい⽅のために

  42. IBM Quantum / © 2020 IBM Corporation 42 IBM Quantumの使い⽅を実践的に学べる

    オススメ学習コンテンツのご紹介 日本IBMの技術者コミュニティTEC-Jの量子コンピューター勉強会 メンバーが講師となり、量子コンピュータ入門、代表的な量子アルゴリズム、 量子プログラミングのハンズオン等を日本語で解説しています。 http://ibm.biz/quantumtokyo Qiskit を使った量子計算の学習のためのオンライン教科書 日本語訳が3月2日にリリースされました。 Qiskitのインストール方法から、量子計算の基礎、そして応用分野について ソフトウェアのインストールなしにテキストブック内で直接コードを 実行しながら学ぶことができます。 https://qiskit.org/textbook/ja/preface.html Qiskit Textbook日本語版 Quantum Tokyo YouTubeチャネル
  43. 7月12−23日 2次募集:2021年6月9日 量子機械学習について学ぼう! Qiskit夏学校2021 量子機械学習に重点をおいたカリキュラム 先行2000人分が満席(2次募集:2021年6月9日) https://qiskit.org/events/summer-school/

  44. まとめ 量⼦コンピューターは • 量⼦⼒学の性質(重ね合わせ、もつれ、⼲渉)を利⽤した新しい計算技術です • 従来のコンピューターよりも速いのではなく、異なる原理で特定の領域におい て効率良く解を導出します • 実装においては、量⼦ゲートと呼ばれる演算⼦(⾏列で表現可)を組み合わせ た回路(プログラム)で実⾏されます

    • 実⽤化に向けて量⼦システムの性能を全体的に⾼めていくことが必要です • 機械学習、データ解析、最適化問題などへの応⽤も期待されます • 応⽤例については次の沼⽥さんのセッションで詳しい解説があります