【量子コンピュータ101】Pythonで体感する量子コンピューティング
What you'll learn
- ゲート型量子コンピュータのコンピューティングの基礎的な原理がわかります。
- 代表的な量子ゲート(NOT, アダマール, CNOT)の動作がわかります。
- 簡単な量子回路の見方がわかります。
- キュビット(量子ビット)の表記方法の1つのブロッフォ球の見方が分かります。
- ゲート型量子コンピュータのキュビットとはなにかを説明できるようになります。
- キュビットの「重ね合わせ」や「もつれ」とはなにか、その基本を説明できるようになります。
- キュビットとビットの違いを説明できるようになります。
- 従来のコンピュータとゲート型量子コンピュータの違いを説明できるようになります。
Requirements
- 必須ではありませんが、プログラミング経験があると理解しやすいと思います。
- IBMidのアカウント登録が必要です。
- パソコンに無償版のAnaconda NavigatorおよびJupyter Notebookをインストールしていただきます。
- このコースではIndividual版Anaconda Navigator(≧2019.07)を使用します。既にPython環境をパソコンに構築済みのとき、Anacondaをインストールしたり、バージョンアップすることで、既存のPython環境が使用できなくなる場合があります。詳細は「ハンズオンの環境」(プレビュー可)をご覧ください。
Description
【このコースに適した方】
このコースは、量子コンピューティング(量子ゲート方式)を実際に手を動かして体験する、量子コンピュータ初学者のためのコースです。
量子コンピューティングに関心を持つITエンジニアの方、量子コンピュータのプログラミングを体験してみたいソフトウェアエンジニアの方に適したコースです。
※このコースでは量子アニーリングについては触れません。また、量子コンピュータの歴史や今後の展望、量子ネットワークや量子暗号といったトピックは扱いません。量子コンピュータを動かすことに主眼をおき、あくまでもソフトウェアエンジニアの目線で、量子コンピューティングの基礎的なしくみの理解を目指すのがこのコースの目標です。
※量子キーディストリビューションについては、別コースで扱う予定です。
【受講上のご注意】
このコースは、実際に手を動かすことでゲート型量子コンピュータのしくみを体感する、量子コンピューティング(ゲート型)にフォーカスしたコースです。
量子コンピューティングの原理をおさえるのがこのコースの目標です。課題解決に実用できる知識を得られるものではないことをご理解いただいたうえでご受講ください。
ハンズオンではPythonプログラミング言語の詳細については触れません。量子コンピュータへの理解を深めるために、必要となる部分にフォーカスしてコードを概観しながら量子コンピュータを動かします。
<すでにPytho環境を構築されている方へのご注意>
このコースではIndividual EditionのAnaconda Navigator(≧2019.07)を使用します。Anacondaをインストールしたり、バージョンアップすることで、既存のPython環境が使用できなくなる場合がありますのでご注意ください。
詳細は「ハンズオンの環境」(プレビュー可)をご覧ください。
【コース概要】
「量子コンピュータ」は量子力学の原理を応用したコンピュータです。量子特有のふるまいである「量子重ね合わせ」や「量子もつれ」といった性質を応用することで、従来のコンピュータでは時間がかかりすぎる処理を効率よく実行することが期待されています。
このコースでは、パソコンから、無償で使用できる(2021年1月現在)IBM Quantum Experienceを介してゲート型量子コンピュータに接続し、Qiskit(オープンソースの量子コンピュータ用のソフトウェア開発キット)を使ったPythonのサンプルコードを使って量子ビットを操作します。
量子コンピュータは量子力学や高度な数学にもとづく技術ですが、このコースでは量子論や数式には触れずに、あくまでもプログラマ目線で量子コンピューティングの基礎的なしくみの理解を目指します。
量子コンピュータは難解な量子力学にもとづいているため非常にとっつきにくい印象があるかもしれませんが、講師と一緒にソフトウェア技術者目線で量子ゲートを読み解き、そのしくみを探っていきましょう!
【ハンズオン概要】
IBM Quantum Experienceを介してパソコンからゲート型量子コンピュータに接続し、Pythonのサンプルコードを使って量子ビットに代表的なゲート(NOTゲート、アダマールゲート、CNOTゲート)を適用し、量子ビットを「反転」、「重ね合わせ」、「もつれ」状態にします。いずれのハンズオンもパソコンでシミュレーションしてから、実機で量子ビットを操作する手順で実施します。
また、量子コンピュータ版コインフリップゲームを動かすことで、量子コンピュータがその能力を発揮するための重要な要素である「重ね合わせ」の力を実感します。
そして、「量子もつれ」を実機で試すことで、暗号鍵の交換にも利用されている、「もつれ」という、量子力学の不思議な力の一端にも触れます。
実用的な用途の一端に触れるため、セキュアな情報通信に利用できるアルゴリズム、量子テレポーテーションにもチャレンジします。
一連のハンズオンを通して量子ゲートに対する理解を深めるとともに、従来のコンピュータとは全く異なるしくみで動作する量子コンピューティングを体感し、量子コンピュータ利用のはじめの一歩とします。
【各セクションの内容】
このコースについて
このコースの目標や対象となる受講者、ハンズオン環境について解説します。
ハンズオン準備
ハンズオンを実施するための環境を構築します。オープンソースの「Anaconda Navigator」と、同じくオープンソースの量子コンピュータ用ソフトウェア開発キットの「Qiskit」をパソコンにインストールします。
量子コンピュータとは
まずはじめに、私たちに身近なコンピュータの土台となる演算のしくみを、代表的な論理ゲート(NOT, AND, XOR)を通しておさえます。そのあとで、量子コンピュータやキュビット、ゲート型量子コンピュータとはどのようなものなのかその概要をおさえ、ゲート型量子コンピュータのプログラミング言語であるOpenQASMを概観します。
ハンズオンの概要とノートブックのダウンロード
ハンズオンの概要や進め方をおさえたあとで、サンプルコードが記述されたノートブックをダウンロードします。
NOTゲートで量子の状態を反転させよう
NOTゲートや量子の波の性質、ブロッホ球について理解したあとで、実際にキュビットにNOTゲートを適用し、キュビットの状態を反転させます。
アダマールゲートでキュビットを1と0の「重ね合わせ」状態にしよう
アダマールゲートや波の干渉、重ね合わせについて理解したあとで、実際にキュビットにアダマールゲートを適用し、量子を重ね合わせ状態にします。さらに、重ね合わせ状態のキュビットにアダマールゲートを適用して、キュビットの状態を変えてみます。
量子コインフリップゲームのトリック「重ね合わせ」の力を実感
量子コンピュータ版コインフリップゲームを動かしてみることで、量子コンピュータがその能力を発揮するための重要な要素である「重ね合わせ」の力を実感します。
キュビットを量子もつれ状態にしよう
キュビットを「もつれ」状態にするしくみや、CNOTゲートについて理解したあとで、実際にキュビットをもつれ状態にさせます。
量子テレポーテーションにチャレンジ
実用的な用途の一端に触れるため、セキュアな情報通信に利用できるアルゴリズム、量子テレポーテーションに挑戦してみます。
コースのまとめ
プログラミング言語の歴史から見て量子コンピューティングは今どの段階にあるのかを考察します。また、このコースで体験したこととポイントをふり返ります。
Who this course is for:
- ゲート型量子コンピュータに関心を持つ量子コンピュータ初学者のITエンジニアの方
- ゲート型量子コンピュータのプログラミングを体験してみたい量子コンピュータ初学者のソフトウェアエンジニアの方
- 最新のコンピュータ・テクノロジーに触れてみたい方
Course content
- Preview07:22
- Preview03:21
Instructor
インターネット黎明期、TCP/IPプロトコルスタックの開発とオペレーティングシステムへの組み込み、ルーターやパケット交換機のプログラムのサステイニングに携わる。TCP/IPを使ったインターネットが広く使われるようになったことを機に、北米スタートアップ企業複数社にて20年以上にわたり技術者として参画する。
MONOxIT(モノクロスIT)創業後は、モノを使ったIoTハンズオンセミナーを企画・開催するとともに講師を務め、IoTやAI技術を業種や職種を問わずさまざまな人に伝えている。対面でのセミナー受講者数は1,500名以上。セミナーの他にIoT教室も運営し、ITコンサルタントとしても活動する。