Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

日本アイ・ビー・エム株式会社 東京基礎研究所 量子コンピューティング Qiskit 開発者コミュニティー担当 物性物理学 有機超伝導材料研究 2019年より、オープンソースの量子開発フレー ムワークQiskitのコミュニティーを担当。量子 コンピューターを使ったプログラミングコンテ スト、ハッカソン、ワークショップ等を主催を 通じた量子人材の育成に注力。 IBM Quantum / © 2020 IBM Corporation 3 ⼩林有⾥ Yuri Kobayashi Twitter @YuriKobaya

Slide 4

Slide 4 text

内容 量⼦コンピューターは誰もが使える時代に 量⼦ビットとは 量⼦計算の基礎 従来の計算⽅法との⽐較 量⼦回路を組んでみよう(グローバーの探索回路の実装) 更に深く学びたい⽅のために まとめ

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

従来のコンピューターが苦⼿とする分野 化学シミュレーション 素因数分解 乱択アルゴリズム 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“

Slide 11

Slide 11 text

量⼦コンピューターという着想 ⾃然をシミュレーションしたければ、 量⼦⼒学の原理でコンピューターを作らなくてはならない 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.”

Slide 12

Slide 12 text

量子コンピューターで 解いてみましょう 量⼦ビットとは︖

Slide 13

Slide 13 text

量⼦ビット 0 1 0 1 通常のビット (bit) 量⼦ビット (qubit) 0 1 量⼦重ね合わせ 従来のコンピューターが扱う情報の基本単位はビット。状態は0か1のどちらかをとる。 量子コンピューターの計算は量子ビットが基本単位。量子ビットは量子力学の原理に基づ く重ね合わせや量子もつれといった特性を活かすことのできる素子 もつれと位相を利用した干渉で 効率的に解を導き出せる 量⼦もつれ n 個の量⼦ビットがあるとき︓2n個の情報を扱える

Slide 14

Slide 14 text

𝑥 時刻 𝑡 ある時刻 𝑡 に、ある位置𝑥に車が存在すると確定できる 電子の位置は観測するまでは確定せず、重ね合わせ状態を取る。 複素確率振幅が波として振る舞うので、量子ビットの状態は × × × ⟩ |Ψ = α ⟩ |0 + β ⟩ |1 とかける 粒子がどこに存在しているかという重みを表現している 例)均等な重ね合わせ ( ⟩ |0 の位置で観測される確率𝑃0 と ⟩ |1 の位置 で観測される確率 𝑃1 が50%ずつの状態をさす) 𝑃0 = |α|2, 𝑃1 = |β|2, |α|2+ |β|2 =1 ⇒ α = 1 2 , β = 1 2 α,β は確率振幅と呼ばれ、絶対値の二乗が確率になる。 古典物理学の世界 量子力学の世界 ? 量⼦の世界 ⟩ |Ψ = ! " ⟩ |0 + ! " ⟩ |1 電子 ビーム

Slide 15

Slide 15 text

量子コンピューターで 解いてみましょう 量⼦計算の基礎

Slide 16

Slide 16 text

量⼦状態はベクトルとして表現できる 量子ビットの状態は右図のブロッホ球と呼ばれる 球体の中止から球面まで伸びたベクトルとして表現可。 ベクトル: ⃗ 𝑎、( 𝑎 ⇒ ⟩ |𝑎 は ケットと呼ばれる列ベクトル、,𝑎|はブラと呼ばれる行ベクトル 量子状態を表す複素ベクトル ⟩ |Ψ = α ⟩ |0 + β ⟩ |1 ⟩ |0 = 1 0 ⟩ |1 = 0 1 前ページで登場した量子状態表現 ⇒正規直交基底とする単位ベクトル ブロッホ球 北極方向をさす 南極方向をさす

Slide 17

Slide 17 text

ゲート操作で量⼦計算(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

Slide 18

Slide 18 text

ゲート操作で量⼦計算(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

Slide 19

Slide 19 text

ゲート操作で量⼦計算(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軸周りの % & 回転

Slide 20

Slide 20 text

ゲート操作で量⼦計算(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

Slide 21

Slide 21 text

量子コンピューターで 解いてみましょう 従来の計算⽅法との⽐較

Slide 22

Slide 22 text

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 例)4ビットの暗号解読をしてみましょう。

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

量子コンピューター 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 量⼦コンピューターで解読する場合

Slide 25

Slide 25 text

量子コンピューターで 解いてみましょう 量⼦回路を組んでみよう (グローバーの探索回路の実装)

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

グローバーの探索回路をつくる(2) Step 2: 探している解の位相を反転させてマーキング 00 → 1 2 (|00⟩ + |01⟩+|10⟩+|11⟩) → 1 2 (|00⟩ + |01⟩+|10⟩−|11⟩) H⨂H CZ Control Z 制御ビットが ⟩ |1 でかつ ターゲットが ⟩ |1 のときにマイナス位相 制御ビット ターゲットビット

Slide 32

Slide 32 text

グローバーの探索回路をつくる(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 → 位相の違いによって打ち消し合う波が発生し 求めている解の振幅が測定される

Slide 33

Slide 33 text

グローバーの探索回路をつくる(4) Step 4: 観測(測定)を⾏います

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

量⼦コンピューターの技術は黎明期 NISQ: Noisy Intermediate-Scale Quantum Computer ノイズのある⼩中規模の量⼦コンピューター Fault-tolerant Universal Quantum Computer エラー耐性のある万能量子コンピューターへ

Slide 37

Slide 37 text

量⼦体積︓量⼦コンピューターの性能を測る指標 Qubits added: 50 Error rate decrease: 0x Quantum volume increase: 0x Qubits added: 0 Error rate decrease: 10x Quantum volume increase: 500x 2030年までに量子優位性を達成するには量子体積を 毎年倍にする必要がある。

Slide 38

Slide 38 text

No content

Slide 39

Slide 39 text

遂に⽇本に上陸した量⼦コンピューター 39 Quantum Computing and IBM Q: An Introduction #IBMQ 3月23日にプレスリリースされました。

Slide 40

Slide 40 text

量⼦コンピューターの応⽤分野 ・新しい材料、創薬の開発 ・金融計算 ・最適化問題 ・AI・機械学習

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

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チャネル

Slide 43

Slide 43 text

7月12−23日 2次募集:2021年6月9日 量子機械学習について学ぼう! Qiskit夏学校2021 量子機械学習に重点をおいたカリキュラム 先行2000人分が満席(2次募集:2021年6月9日) https://qiskit.org/events/summer-school/

Slide 44

Slide 44 text

まとめ 量⼦コンピューターは • 量⼦⼒学の性質(重ね合わせ、もつれ、⼲渉)を利⽤した新しい計算技術です • 従来のコンピューターよりも速いのではなく、異なる原理で特定の領域におい て効率良く解を導出します • 実装においては、量⼦ゲートと呼ばれる演算⼦(⾏列で表現可)を組み合わせ た回路(プログラム)で実⾏されます • 実⽤化に向けて量⼦システムの性能を全体的に⾼めていくことが必要です • 機械学習、データ解析、最適化問題などへの応⽤も期待されます • 応⽤例については次の沼⽥さんのセッションで詳しい解説があります