$30 off During Our Annual Pro Sale. View Details »

量子コンピューター超入門ハンズオン 補足資料 線形代数

Ayumu-walker
April 24, 2020

 量子コンピューター超入門ハンズオン 補足資料 線形代数

Ayumu-walker

April 24, 2020
Tweet

More Decks by Ayumu-walker

Other Decks in Science

Transcript

  1. 量子コンピューター超入門ハンズオン
    補足資料:線形代数

    View Slide

  2. 2
    簡単なベクトル/行列計算の復習
    • 始める前に、ちょっとした計算ルールを頭に入れておきましょう!
    • 量子コンピューターの世界では、数学の世界と以下のような対応関係があります。
    11
    ⋯ 1
    ⋮ ⋱ ⋮
    1

    1


    ベクトル
    行列
    量子状態
    (計算に使うデータ)
    量子状態(データ)に
    対する操作(ゲート)
    1

    量子コンピューターの世界
    (量子力学)
    数学の世界 計算上の表現
    縦ベクトル
    横ベクトル

    View Slide

  3. 3
    簡単なベクトル/行列計算の復習
    1


    +
    1


    =
    1
    + 1


    +
    1
    … + 1
    … = 1
    + 1

    +
    11
    ⋯ 1
    ⋮ ⋱ ⋮
    1

    +
    11
    ⋯ 1
    ⋮ ⋱ ⋮
    1

    =
    11
    + 11
    ⋯ 1
    + 1
    ⋮ ⋱ ⋮
    1
    + 1

    +
    縦ベクトル:
    横ベクトル:
    行列:
    • ベクトル/行列は、同じ成分の箇所通しを足し引きすることが可能です。
    • 構造の同じもの同士でしか、演算はできません。
    • 引き算についても同様です。

    View Slide

  4. 4
    簡単なベクトル/行列計算の復習
    • ベクトルと行列の定数倍
    • 全ての成分に定数倍を掛けるだけ
    • 行列とベクトルの掛け算
    • 黄色の行と青色の列の成分を、1つずつ掛けて、全て足し合わせて、ベクトルの1つの成分(緑色)とな

    • 行列同士の掛け算
    • 行列とベクトルの掛け算と同じ計算をして、行列の1つの成分(緑色)となる
    11
    ⋯ 1
    ⋮ ⋱ ⋮
    1

    1


    =
    11
    1
    + … +1

    ⋮ ⋮
    1
    1
    + … +

    11
    ⋯ 1
    ⋮ ⋱ ⋮
    1

    11
    ⋯ 1
    ⋮ ⋱ ⋮
    1

    =
    11
    11
    + … + 1
    1
    ⋯ 11
    1
    + ⋯ + 1

    ⋮ ⋱ ⋮
    1
    11
    + … +
    1
    ⋯ 1
    1
    + ⋯ +


    1


    =
    1



    11
    ⋯ 1
    ⋮ ⋱ ⋮
    1

    =
    11
    ⋯ 1
    ⋮ ⋱ ⋮
    1

    View Slide

  5. 5
    簡単なベクトル/行列計算の復習
    • 以下のベクトルと行列を使って計算の仕方を学びます。
    • ベクトル/行列の足し算/引き算
    • ベクトル/行列の定数倍
    v=
    1
    3
    w=
    2
    5
    A=
    −2 4
    3 1
    B=
    −1 1
    3 6
    v+w=
    1
    2
    +
    2
    5
    =
    1 + 2
    2 + 5
    =
    3
    7
    v-w=
    1
    2

    2
    5
    =
    1 − 2
    2 − 5
    =
    −1
    −3
    A+B=
    −2 4
    3 1
    +
    −1 1
    3 6
    =
    −2 − 1 4 + 1
    3 + 3 1 + 6
    =
    −3 5
    6 7
    A-B=
    −2 4
    3 1

    −1 1
    3 6
    =
    −2 − (−1) 4 − 1
    3 − 3 1 − 6
    =
    −1 3
    0 −5
    2v=2*
    1
    3
    =
    2 ∗ 1
    2 ∗ 3
    =
    2
    6
    3A=3 ∗
    −2 4
    3 1
    = 3 ∗ −2 3 ∗ 4
    3 ∗ 3 3 ∗ 1
    =
    −6 12
    9 3

    View Slide

  6. 6
    簡単なベクトル/行列演算の例 ~続き~
    • 行列とベクトルを掛ける例(量子状態にゲートを通した後の状態を計算していることに等しい)
    • 行列同士の掛け算
    Av=
    −2 4
    3 1
    1
    3
    =
    −2 ∗ 1 + 4 ∗ 3
    3 ∗ 1 + 1 ∗ 3
    =
    −2 ∗ 1 + 4 ∗ 3
    3 ∗ 1 + 1 ∗ 3
    =
    −2 + 12
    3 + 3
    =
    10
    6
    AB=
    −2 4
    3 1
    −1 1
    3 6
    =
    −2 ∗ −1 + 4 ∗ 3 −2 ∗ 1 + 4 ∗ 6
    3 ∗ −1 + 1 ∗ 3 3 ∗ 1 + 1 ∗ 6
    =
    2 + 12 −2 + 24
    −3 + 3 3 + 6
    =
    14 22
    0 9
    BA=
    −1 1
    3 6
    −2 4
    3 1
    =
    −1 ∗ −2 + 1 ∗ 3 −1 ∗ 4 + 1 ∗ 1
    3 ∗ −2 + 6 ∗ 4 3 ∗ 4 + 6 ∗ 1
    =
    2 + 3 −4 + 1
    −6 + 24 12 + 6
    =
    5 −3
    18 18
    *行列の掛け算は順番を変えても同じになるとは限らない!
    → どのゲートをどの順番で通すかを慎重に考えることが必要になる!

    View Slide

  7. 7
    量子計算に使う量子状態のベクトル表現
    • 古典ビットと同様に、1つの量子ビットも、2つの値を持ちえる
    • これは、古典ビットにおける0と1に相当
    • 通例として、|0>と|1>のように表現する
    • この表現方法は、ブラケット表記と呼ばれ、上記はケットベクトルと呼ぶ
    • 便宜的に、|0>と|1>は次のようなベクトルとして表現すると、演算が簡単になる
    • 後続のハンズオンでは、以下を使って計算を行う
    • 2量子ビットの場合は4つ(00、01、10、11)を使って表現できる
    |0>=
    1
    0
    |1>=
    0
    1
    |00>=
    1
    0
    0
    0
    |01>=
    0
    1
    0
    0
    |10>=
    0
    0
    1
    0
    |11>=
    0
    0
    0
    1

    View Slide

  8. 8
    量子計算に使う量子状態のベクトル表現の例
    |+>= 1
    2
    |0> + 1
    2
    |1>= 1
    2
    1
    0
    + 1
    2
    0
    1
    =
    1
    2
    1
    2
    |->= 1
    2
    |0> − 1
    2
    |1>= 1
    2
    1
    0
    − 1
    2
    0
    1
    =
    1
    2
    − 1
    2

    View Slide

  9. 9
    量子計算に使う量子状態のベクトル表現の例
    |>= 1
    2
    |00> + 1
    2
    |01> + 1
    2
    |10>+ 1
    2
    |11>
    = 1
    2
    1
    0
    0
    0
    + 1
    2
    0
    1
    0
    0
    + 1
    2
    0
    0
    1
    0
    + 1
    2
    0
    0
    0
    1
    =
    Τ
    1
    2
    Τ
    1
    2
    Τ
    1
    2
    Τ
    1
    2

    View Slide

  10. 10
    代表的な量子ゲート一覧
    10
    行列表現
    Qiskitでの
    コード
    Qiskitでの
    回路表示
    Xゲート

    x
    Yゲート 0 −
    0
    y
    Zゲート

    z
    Hゲート




    h
    CNOTゲート








    cx
    Sゲート 1 0
    0
    s
    Tゲート
    1 0
    0

    2
    t
    |0>と|1>の状態を入れ替える
    |1>の状態の確率振幅の
    符号を逆にする
    |0>もしくは|1>の状態から
    重ね合わせ状態を作りだす
    上の状態が|1>なら下の状態
    にXゲートと同じ操作をする。
    それ以外は何もしない

    View Slide

  11. 11
    • |0>の状態にXゲート(|0>と|1>を入れ替える)に通した場合
    • |0>の状態をHゲート(重ね合わせ状態を作る)に通した場合
    ゲートの計算例
    X ۧ
    |0 =
    0 1
    1 0
    1
    0
    =
    0 ∗ 1 + 1 ∗ 0
    1 ∗ 1 + 0 ∗ 0
    =
    0
    1
    = ۧ
    |1
    H ۧ
    |0 = 1
    2
    1 1
    1 −1
    1
    0
    = 1
    2
    1 ∗ 1 + 1 ∗ 0
    1 ∗ 1 − 1 ∗ 0
    = 1
    2
    1
    1
    = 1
    2
    1
    0
    + 1
    2
    0
    1
    = 1
    2
    ۧ
    |0 + 1
    2
    ۧ
    |1 = ۧ
    |+

    View Slide