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

IBM Cloud Festa 2020 GUIから始める量子コンピューター超入門

Ayumu-walker
December 03, 2020

IBM Cloud Festa 2020 GUIから始める量子コンピューター超入門

2020年12月4日 Room C 14:00-14:50

Ayumu-walker

December 03, 2020
Tweet

More Decks by Ayumu-walker

Other Decks in Technology

Transcript

  1. Quantum Tokyo
    Qt
    IBM Cloud Festa 2020 Online
    GUIから始める量子コンピューター超入門
    Ayumu Shiraishi
    Qiskit Advocate

    View Slide

  2. Quantum Tokyo
    ワークショップ、セッション、および資料は、IBMまたはセッション発表者によって準備され、それぞれ独自の見解を反映したものです。それらは情報
    提供の目的のみで提供されており、いかなる参加者に対しても法律的またはその他の指導や助言を意図したものではなく、またそのような結果を生むも
    のでもありません。本講演資料に含まれている情報については、完全性と正確性を期するよう努力しましたが、「現状のまま」提供され、明示または暗
    示にかかわらずいかなる保証も伴わないものとします。本講演資料またはその他の資料の使用によって、あるいはその他の関連によって、いかなる損害
    が生じた場合も、IBMは責任を負わないものとします。 本講演資料に含まれている内容は、IBMまたはそのサプライヤーやライセンス交付者からいかな
    る保証または表明を引きだすことを意図したものでも、IBMソフトウェアの使用を規定する適用ライセンス契約の条項を変更することを意図したもので
    もなく、またそのような結果を生むものでもありません。
    本講演資料でIBM製品、プログラム、またはサービスに言及していても、IBMが営業活動を行っているすべての国でそれらが使用可能であることを暗示
    するものではありません。本講演資料で言及している製品リリース日付や製品機能は、市場機会またはその他の要因に基づいてIBM独自の決定権をもっ
    ていつでも変更できるものとし、いかなる方法においても将来の製品または機能が使用可能になると確約することを意図したものではありません。本講
    演資料に含まれている内容は、参加者が開始する活動によって特定の販売、売上高の向上、またはその他の結果が生じると述べる、または暗示すること
    を意図したものでも、またそのような結果を生むものでもありません。 パフォーマンスは、管理された環境において標準的なIBMベンチマークを使用し
    た測定と予測に基づいています。ユーザーが経験する実際のスループットやパフォーマンスは、ユーザーのジョブ・ストリームにおけるマルチプログラ
    ミングの量、入出力構成、ストレージ構成、および処理されるワークロードなどの考慮事項を含む、数多くの要因に応じて変化します。したがって、
    個々のユーザーがここで述べられているものと同様の結果を得られると確約するものではありません。
    記述されているすべてのお客様事例は、それらのお客様がどのようにIBM製品を使用したか、またそれらのお客様が達成した結果の実例として示された
    ものです。実際の環境コストおよびパフォーマンス特性は、お客様ごとに異なる場合があります。
    IBM、IBM ロゴ、ibm.com、IBM Q ® 、IBM Q Experience ® 、Qiskit、Db2®は、 世界の多くの国で登録されたInternational Business Machines
    Corporationの商標です。他の製品名およびサービス名等は、それぞれIBMまたは各社の商標である場合があります。現時点での IBM の商標リストについ
    ては、www.ibm.com/legal/copytrade.shtmlをご覧ください。

    View Slide

  3. Quantum Tokyo
    Agenda
    • 自己紹介
    • 量子コンピューター概説
    • IBM Quantum Experience(IQX)について
    • ハンズオン

    View Slide

  4. Quantum Tokyo
    おことわり
    • 本セッションは量子コンピューターの入門者向けの内容になります。
    • すでに量子コンピューターの経験があり、時間が余った方には追加問題を用意しています
    ので、それを解いてもらっても構いません。
    • 量子コンピューターと区別するために、通常のコンピューターを“古典コンピュー
    ター”という表現を使います。
    • IBM Quantum ExperienceをIQXという略称を使用する場合があります。
    • ハンズオンではIBM Quantum Experienceへの登録が済んでおり、ログインできる
    状態を前提に解説をしていきます。
    • 時間の関係上、量子コンピューターのビジネス的側面については解説しません。
    • 質問がありましたら、チャット欄にご記入をお願いいたします。本セッションの
    サポーターが回答いたします。

    View Slide

  5. Quantum Tokyo
    量子コンピューターとは
    量子コンピューターでは、古典コンピューターのビットに相当する量子ビットが|0>
    と|1>で表現される量子状態の確率振幅を操作し、最終的に求めたい解が求められる
    ように計算するデバイスを指します。
    |0>=
    1
    0
    |1>=
    0
    1

    View Slide

  6. Quantum Tokyo
    量子状態とは
    1量子ビットの任意の状態は|x>=

    =|0> + |1>と書けます。
    ここで、α、は複素数であり、||2 + ||2 = 1とします。
    とは、確率振幅と呼ばれ、それぞれが係数として付いている量子状態の測定(計
    算結果の読み出し)時の出現しやすさの指標として数学的に定義されています。
    左図は
    =0.866、 = −0.5 の量子状態
    |0>が0.8662 = 0.75 = 3
    4
    |1>が(−0.5)2 = 0.25 = 1
    4
    の確率で測定される量子状態

    View Slide

  7. Quantum Tokyo
    量子コンピューターでの計算イメージ
    量子計算では出現しうる全ての解に確率振幅が存在し、その中から求めたい解の量子
    状態の確率を増幅するように処理を組み立てます。
    • グローバーのアルゴリズムで|11>という状態を求める例

    View Slide

  8. Quantum Tokyo
    量子ゲート
    量子コンピューターは“量子ゲート”を使って計算処理を組み立てます。
    以下は今回使う代表的なゲートです。(ここに紹介しないゲートも出てきます)
    量子ゲート 数学的行列表現 IQXでのアイコン 動作
    Xゲート
    (エックスゲート、別名
    ノットゲート)


    作用した量子ビットの状
    態|0>と状態|1>を入れ替
    える。
    Zゲート
    (ゼットゲート)


    状態|1>の確率振幅の符号
    を反転させる。
    Hゲート
    (アダマールゲート)




    古典的状態と均等な重ね
    合わせ状態を入れ替える。
    CNOTゲート
    (シーノットゲート)








    2量子ビットの場合に利
    用可能で、制御量子ビッ
    トの状態が|0>の場合は何
    もせず、|1>の場合はもう
    一方の対象量子ビットにX
    ゲートを作用させる。
    測定ゲート N/A その量子ビットでの計算
    を終わらせ値を読み出す。

    View Slide

  9. Quantum Tokyo
    IBM Q:量子コンピューターの実機
    IBM Quantum Experience:IBM Cloud上に公開されている開発ツール(GUIおよびJupyter Notebook)
    Qiskit:Pythonベースの量子コンピューターフレームワーク
    IBM Quantum ExperienceとIBM Qの関係
    IBM Quantum Experience

    View Slide

  10. Quantum Tokyo
    IBM Quantum Experienceの画面全体

    View Slide

  11. Quantum Tokyo
    IBM Quantum Experienceの画面の説明
    量子ゲート=量子計算のパーツ
    量子回路=量子プログラミング環境
    量子状態=計算結果の視覚化
    量子計算実行環境
    =量子コンピューター
    or シミュレーター
    量子回路名

    View Slide

  12. Quantum Tokyo
    量子状態の見方
    量子状態の可視化では以下の2種類の見方を切り替えることができます。
    確率振幅表示 確率表示
    |0. 5|2 = 0.25
    *状態の測定確率は状態ベクトルの確率振幅の絶対値の2乗で計算可能です。
    *本セッションでは確率振幅が複素数になるケースは扱いませんが、量子フーリエ変換では重要になってきます。

    View Slide

  13. Quantum Tokyo
    ハンズオン:量子回路を作ってみよう!
    ここからはハンズオンを行いながら、いろいろなゲートを配置してみて、量子状態が
    どのようになるかを観察していきましょう!
    操作をゆっくりやっていきますので、同じように進めてみてください。
    まずはIBM Quantum Experienceにログインしてください!
    量子計算で基本的かつ重要となる、以下の2つを実装することをゴールとします!
    • エンタングルメント状態の作成
    • 2量子ビットで状態|11>だけが残るグローバーのアルゴリズムの実装

    View Slide

  14. Quantum Tokyo
    参考:量子ビット数の増やし方減らし方
    量子ビット数は適宜増やしたり減らしたりできます。
    増やす場合は、左側の「+」をクリックします。
    減らす場合は、qxと書かれている箇所にカーソルを当てて、ゴミ箱マークを押して
    ください。
    増やす 減らす

    View Slide

  15. Quantum Tokyo
    参考:量子ゲートを削除する場合
    削除したいゲートにアイコンを合わせて右クリックし、一番下の「Delete」をクリッ
    クしてください。

    View Slide

  16. Quantum Tokyo
    参考:可視化部分の表示変更
    「View」タブをクリックすると、表示するパレットが選択できますので、今回は以
    下のように設定してください。

    View Slide

  17. Quantum Tokyo
    Xゲートを置いてみよう!
    Xゲートを置いてみましょう。
    量子状態、確率はどうなりましたか?
    Xゲートの後にもう一度Xゲートを置いてみましょう。
    量子状態、確率はどうなりましたか?
    入力前 入力後
    |0> |1>
    |1> |0>
    Xゲートの状態遷移

    View Slide

  18. Quantum Tokyo
    Zゲートを置いてみよう!
    Zゲートを置いてみましょう。
    量子状態、確率はどうなりましたか?
    Zゲートの前にXゲートを置いてみましょう。
    量子状態、確率はどうなりましたか?
    Zゲートの後にもう一つZゲートを置いてみましょう。
    量子状態確率はどうなりましたか?
    入力前 入力後
    |0> |0>
    |1> -|1>
    Zゲートの状態遷移

    View Slide

  19. Quantum Tokyo
    Hゲートを置いてみよう!
    Hゲートを置いてみましょう。
    量子状態、確率はどうなりましたか?
    Hゲートの後にもう一度ゲートを置いてみましょう。
    量子状態、確率はどうなりましたか?
    入力前 入力後
    |0> 1
    2
    (|0>+|1>) = |+>
    |1> 1
    2
    (|0>-|1>) = |->
    |+> |0>
    |-> |1>
    Hゲートの状態遷移

    View Slide

  20. Quantum Tokyo
    Hゲートを入れた回路を実行してみよう!
    Hゲートを1つだけにして、回路の最後に測定ゲートを置きます。測定ゲートは計算
    を実行させる際に1つ以上必要です。
    Hゲートが残った状態で、画面右上の「Run Settings」をクリックし、「Backend」
    から、「32q – ibmq_qasm_simulator」(量子計算シミュレーター)を選択します。

    View Slide

  21. Quantum Tokyo
    計算結果を見てみよう!

    View Slide

  22. Quantum Tokyo
    参考:量子コンピューターの実機に計算
    をリクエストする方法
    Backendに表示されているもので、 32q – ibmq_qasm_simulator以外のものを選択
    し、右上の「Run on(量子コンピューターの実機名)」で実行可能です。
    リクエストが多い場合は、キューに入り、計算終了後に計算結果が記録されます。

    View Slide

  23. Quantum Tokyo
    XゲートとHゲートを同時に置いてみよう!
    XゲートとHゲートを置いてみましょう。
    順番はどちらでも構いませんが、入れ替えてみて違いを確認してみてください。
    X-HとH-Xのそれぞれの並びで、量子状態、確率はどうなりましたか?
    X-H、H-Xの組み合わせを2回並べると量子状態、確率はどうなりましたか?とある
    ゲートと同じ結果になっていますが、どのゲートと同じでしょうか?

    View Slide

  24. Quantum Tokyo
    確率振幅が不均衡な
    重ね合わせ状態を作ってみよう!
    Ryゲートを置いてみて、設定値をπ/3に設定してみましょう。
    確率振幅、確率はどうなりましたか?
    次にRyゲートの後ろにXゲートを置いてみましょう。
    確率振幅、確率はどうなりましたか?

    View Slide

  25. Quantum Tokyo
    2量子ビットにしてHゲートを置いてみよう!
    2量子状態にして、それぞれにHゲートを置いてみましょう。
    量子状態、確率はどうなりましたか?

    View Slide

  26. Quantum Tokyo
    CNOTゲートを置いてみよう!
    CNOTゲートを置いてみましょう。
    量子状態、確率はどうなりましたか?
    CNOTゲートの状態遷移
    入力前
    q0
    入力前
    q1
    入力後
    q0
    入力後
    q1
    |0> |0> |0> |0>
    |0> |1> |0> |1>
    |1> |0> |1> |1>
    |1> |1> |1> |0>

    View Slide

  27. Quantum Tokyo
    CNOTゲートとXゲートを配置してみよう!
    CNOTゲートの前にXゲートを配置してみましょう。
    Xゲートを両方の量子ビットに配置してみてください。
    それぞれ量子状態、確率はどうなりましたか?

    View Slide

  28. Quantum Tokyo
    エンタングルメント状態を作ってみよう!
    CNOTゲートの前にHゲートを作用させると何が起こるでしょうか?

    View Slide

  29. Quantum Tokyo
    追加問題
    GHZ状態を作ってみよう!
    3量子ビットを使って、以下のように状態|000>と|111>が半々の確率で測定できるよう
    な状態を作ってみてください!
    • この状態をGHZ状態と呼ばれています。(グリーンバーガー=ホーン=ツァイリンガー状態)

    View Slide

  30. Quantum Tokyo
    グローバーのアルゴリズムを実装してみよう!
    以下の回路は最後に状態|11>のみが観測できるようなグローバーのアルゴリズムの
    回路です。これを順に実装してみましょう。途中経過の量子状態、確率がどのよう
    に変化しているかを確認していきましょう。
    ステップ1 ステップ2 ステップ3 ステップ4

    View Slide

  31. Quantum Tokyo
    グローバーのアルゴリズムを実装してみよう!
    ステップ1:
    最初に全ての状態の均等な重ね合わせ状態を作ります。

    View Slide

  32. Quantum Tokyo
    グローバーのアルゴリズムを実装してみよう!
    ステップ2:
    状態|11>にマーキング(確率振幅の符号をマイナスに)します。
    マーキング!

    View Slide

  33. Quantum Tokyo
    グローバーのアルゴリズムを実装してみよう!
    ステップ3:
    マーキングした状態の確率振幅を折り返します。
    折り返し!

    View Slide

  34. Quantum Tokyo
    グローバーのアルゴリズムを実装してみよう!
    ステップ4:
    最後に、測定ゲートを置いて完成です!
    実機に処理を投入してみましょう!

    View Slide

  35. Quantum Tokyo
    追加問題
    グローバーのアルゴリズムを実装してみよう!
    それぞれ|00>、|01>、|10>だけが残る回路を作成してみましょう!
    ヒント:ステップ2のマーキングする状態を上手く作ることです。ステップ2の前後
    に適切なゲートを入れることで、マーキングしたい状態を一度|11>にしてから、
    マーキングした後で戻す方法を考えてみてください。
    アイデア:
    |00> → |11>→|11>をマーキング(符号反転)→ -|00>
    |01> → |11>→|11>をマーキング(符号反転)→ -|01>
    |10> → |11>→|11>をマーキング(符号反転)→ -|10>

    View Slide

  36. Quantum Tokyo
    参考資料
    • Quantum Tokyo (YouTubeチャンネル)
    • https://www.youtube.com/channel/UCT_lkXOYYBIbfk8CnvQ6Heg
    • Qiskit Textbook
    • https://qiskit.org/textbook/preface.html
    • Quantum Challenge
    • https://github.com/quantum-challenge/2019
    • https://github.com/qiskit-community/may4_challenge_exercises
    • https://github.com/qiskit-community/IBMQuantumChallenge2020

    View Slide

  37. Thank you
    Ayumu Shiraishi
    [email protected]
    © Copyright IBM Corporation 2020. All rights reserved. The information contained in these materials is provided for informational purposes only, and is provided AS IS without warranty of
    any kind, express or implied. Any statement of direction represents IBM’s current intent, is subject to change or withdrawal, and represent only goals and objectives. IBM, the IBM logo, and
    ibm.com are trademarks of IBM Corp., registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM
    trademarks is available at Copyright and trademark information.

    View Slide