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

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

385da418a213556b734059bd85a205b3?s=47 Ayumu-walker
December 03, 2020

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

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

385da418a213556b734059bd85a205b3?s=128

Ayumu-walker

December 03, 2020
Tweet

Transcript

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

    Shiraishi Qiskit Advocate
  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をご覧ください。
  3. Quantum Tokyo Agenda • 自己紹介 • 量子コンピューター概説 • IBM Quantum

    Experience(IQX)について • ハンズオン
  4. Quantum Tokyo おことわり • 本セッションは量子コンピューターの入門者向けの内容になります。 • すでに量子コンピューターの経験があり、時間が余った方には追加問題を用意しています ので、それを解いてもらっても構いません。 • 量子コンピューターと区別するために、通常のコンピューターを“古典コンピュー

    ター”という表現を使います。 • IBM Quantum ExperienceをIQXという略称を使用する場合があります。 • ハンズオンではIBM Quantum Experienceへの登録が済んでおり、ログインできる 状態を前提に解説をしていきます。 • 時間の関係上、量子コンピューターのビジネス的側面については解説しません。 • 質問がありましたら、チャット欄にご記入をお願いいたします。本セッションの サポーターが回答いたします。
  5. Quantum Tokyo 量子コンピューターとは 量子コンピューターでは、古典コンピューターのビットに相当する量子ビットが|0> と|1>で表現される量子状態の確率振幅を操作し、最終的に求めたい解が求められる ように計算するデバイスを指します。 |0>= 1 0 |1>=

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

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

    (エックスゲート、別名 ノットゲート) 作用した量子ビットの状 態|0>と状態|1>を入れ替 える。 Zゲート (ゼットゲート) − 状態|1>の確率振幅の符号 を反転させる。 Hゲート (アダマールゲート) − 古典的状態と均等な重ね 合わせ状態を入れ替える。 CNOTゲート (シーノットゲート) 2量子ビットの場合に利 用可能で、制御量子ビッ トの状態が|0>の場合は何 もせず、|1>の場合はもう 一方の対象量子ビットにX ゲートを作用させる。 測定ゲート N/A その量子ビットでの計算 を終わらせ値を読み出す。
  9. Quantum Tokyo IBM Q:量子コンピューターの実機 IBM Quantum Experience:IBM Cloud上に公開されている開発ツール(GUIおよびJupyter Notebook) Qiskit:Pythonベースの量子コンピューターフレームワーク

    IBM Quantum ExperienceとIBM Qの関係 IBM Quantum Experience
  10. Quantum Tokyo IBM Quantum Experienceの画面全体

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

    or シミュレーター 量子回路名
  12. Quantum Tokyo 量子状態の見方 量子状態の可視化では以下の2種類の見方を切り替えることができます。 確率振幅表示 確率表示 |0. 5|2 = 0.25

    *状態の測定確率は状態ベクトルの確率振幅の絶対値の2乗で計算可能です。 *本セッションでは確率振幅が複素数になるケースは扱いませんが、量子フーリエ変換では重要になってきます。
  13. Quantum Tokyo ハンズオン:量子回路を作ってみよう! ここからはハンズオンを行いながら、いろいろなゲートを配置してみて、量子状態が どのようになるかを観察していきましょう! 操作をゆっくりやっていきますので、同じように進めてみてください。 まずはIBM Quantum Experienceにログインしてください! 量子計算で基本的かつ重要となる、以下の2つを実装することをゴールとします!

    • エンタングルメント状態の作成 • 2量子ビットで状態|11>だけが残るグローバーのアルゴリズムの実装
  14. Quantum Tokyo 参考:量子ビット数の増やし方減らし方 量子ビット数は適宜増やしたり減らしたりできます。 増やす場合は、左側の「+」をクリックします。 減らす場合は、qxと書かれている箇所にカーソルを当てて、ゴミ箱マークを押して ください。 増やす 減らす

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

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

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

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

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

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

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

  22. Quantum Tokyo 参考:量子コンピューターの実機に計算 をリクエストする方法 Backendに表示されているもので、 32q – ibmq_qasm_simulator以外のものを選択 し、右上の「Run on(量子コンピューターの実機名)」で実行可能です。

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

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

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

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

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

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

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

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

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

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

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

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

    → |11>→|11>をマーキング(符号反転)→ -|00> |01> → |11>→|11>をマーキング(符号反転)→ -|01> |10> → |11>→|11>をマーキング(符号反転)→ -|10>
  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
  37. Thank you Ayumu Shiraishi AHA03784@jp.ibm.com © 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.