12K Views
June 27, 23
スライド概要
『量子コンピュータの頭の中―計算しながら理解する量子アルゴリズムの世界』刊行記念イベント(2023/06/27 書泉グランデ)での発表
大阪大学量子情報・量子生命研究センター Quantum Computer(QC) programmer/system software for QC/developing QC clouds 実用的な量子コンピュータを実現するため、ソフトウェアを開発しています。量子コンピュータ・クラウドの中の人。 量子コンピュータの面白さを多くの人に広めたいと思い、量子コンピュータの入門書、入門記事等を書いています。
数学で理解する量子コンピュータ 2023/6/27(火) 大阪大学 量子情報・量子生命研究センター 特任研究員 束野 仁政(つかの さとゆき) @snuffkin 1
自己紹介 つかの さとゆき @snuffkin https://snuffkin.github.io/ ◆所属 • 大阪大学 量子情報・量子生命研究センター(QIQB) 特任研究員 量子ソフトウェア開発 量子コンピュータ・プログラマ ◆QIQB • 「量子技術イノベーション戦略」 量子技術イノベーション拠点のひとつ • スタッフ規模(2023年6月16日時点) • 常勤専任教員(兼任を除く) 32名 • +非常勤研究員、技術補佐員 合計65名 • +特任事務職員、事務補佐員 合計78名 2
目次 1. 2. 3. 4. 5. 私が量子コンピュータに携わるまで 『量子コンピュータの頭の中』とは? 量子コンピュータの現状・概要 量子コンピュータの計算ルール 量子コンピュータに役立つ数学 3
1. 私が量子コンピュータに携わるまで 4
学生時代 • 数学科修士(物理系ではありません)。整数論 • 計算機で一般ベルヌーイ数に関する予想を立てたりしました Isaacson, Osaka J. Math. 57 (2020), 543–561 5
就職(ITエンジニア) • 世界を変えていく熱気に憧れ、IT業界に就職 • 分散システム、ビッグデータ、企業内検索といった 比較的新しい技術に関する仕事が多かった • オープンソース(OSS)の検索システムに関する書籍 「Elasticsearch NEXT STEP」を出版(共著) • GitHubからバッチを貰いました 将来の世代のため北極の地下に保存 (数百万人) NASAの火星探査に貢献したOSS (約1万2000人) snuffkin 6
量子コンピュータを学び始めたキッカケ • 「名前は聞いたことがある」程度だった • 2016年にIBMが量子コンピュータをクラウド公開→興味を持った • 日曜数学会やOpenQL(量子コンピュータの同好会)等でTL 7
量子コンピュータにハマっていく ◆量子コンピュータのオープンソース活動 • 量子星占い(2019~) • https://www.quantumcomputer.tokyo/horoscope.html • 量子コンピュータの実機を使ったアプリケーションを開発し、公開・運用 • 量子コンピュータ・クラウド基盤gaqqie(2021~) • https://github.com/gaqqie/gaqqie • 情報処理推進機構(IPA)の未踏ターゲット事業に採択 8
量子コンピュータが仕事になる ◆仕事にしようと思い立つ • プログラマ公募のツイートがきっかけ • 古典計算機が発展したときのような 発展に内側から貢献したい ◆仕事にしてから • 量子計算機について本格的に学んだ (密度行列とかそれ以前は知らなかった) • 量子トモグラフィのソフトウェアを開発(Quara) • 入門記事・入門書の執筆 「ラズパイ電子工作&光の実験で理解する量子コンピュータ」 (共著) • 未踏ターゲット事業に採択 9
最近の成果 ◆国産超伝導量子コンピュータ初号機を公開(2023年3月) • 理化学研究所、大阪大学等の共同研究グループの成果。研究者向けに公開 • クラウドサービスのソフトウェア周りは 大阪大学(量子ソフトウェア研究拠点)が主に開発 提供:理化学研究所 10
2. 『量子コンピュータの頭の中』とは? 11
概要 ◆量子コンピュータの頭の中 ――計算しながら理解する量子アルゴリズムの世界 • https://gihyo.jp/book/2023/978-4-297-13511-9 • 監修(研究者の視点で) 藤井啓祐さん(大阪大学) • レビュー(ITエンジニアの視点で) 森俊夫さん(大阪大学) 山本大輝さん(アクロクエストテクノロジー) • 量子力学を学ばず、計算ルールから 量子コンピュータを学ぶ • 半導体の物理学を知らずに古典コンピュータを 使いこなせるのだから、可能なはず • ITエンジニアには難しい本が多いため、 学ぶハードルを下げたい 12
発売までの流れ • 2019年12月 • 同人誌「高校数学からはじめる量子コンピュータ」を見た 編集者の石井さんから、企画についてお話があった • 12月25日に第1回打合せ • 2020年秋 • 同人誌「高校数学からはじめる量子コンピュータ2」を頒布 • この頃は250ページくらいの想定だった • 2022年12月 • 初校の内容を執筆完了。以降、組版や校正 • 2023年6月 • 発売。最終的に384ページになった 13
想定した読者 ◆対象の読者層 • 数学が好きな一般の方、 ITエンジニア、理系の大学生くらいを想定 (数式への抵抗が比較的少ない方) • ビジネス書ではわかった気にならない • 専門書は難しすぎる ◆方針 • 数式は使うが、高校数学+αくらいの範囲で難しくならないように • 量子力学そのものは扱わない。量子力学の結果を計算ルールとして使う (量子コンピュータを学ぶより、量子力学を学ぶ方が大変) • 手を動かして定着させるために、計算する、量子プログラミングする (時間をかけてじっくり読む本) • 基本ルールを理解し、具体的なアルゴリズムにいくつか理解する →読者が次のレベルに進むための基礎 14
大切にしたこと ◆多くの読者に最後まで読んで欲しい • ゆっくり進む(1量子ビット→2量子ビット→𝑛量子ビット) • 新しい概念が出てきたら例を出す • 抽象的な証明より、具体的な計算を重視する (量子複製不可能定理のように、理解に必要な証明は残した) • 必要になる数学の概念から説明する(2章) • 式変形に「行間」を作らない • そのアルゴリズムの意義を最初に読者に伝える • 専門書には載らない情報も提示する(ギリシャ文字の読み方など) ◆読者に楽しんでもらいたい • 実機に触ってもらう。結果を分析し、量子コンピュータ現状を体験する • この本を読んだ先を提示する(コラム、発展的内容、学習案内) 15
構成 前半(基本ルール)は一本道。後半は興味あるところを自由に読める 第1章 概要 基本ルール プログラミング 第7章 量子プログラミング 付録A 実機 第2章 数学の基礎 第3章 1量子ビットのルール アルゴリズム等(各章は独立) 第4章 1量子ビットの回路 第9章 量子テレポーテーション 第5章 2量子ビットのルール 第10章 量子誤り訂正 第6章 2量子ビットの回路 第11章 ドイッチュのアルゴリズム 第8章 n量子ビット 第12章 グローバーのアルゴリズム 16
3. 量子コンピュータの現状・概要 17
量子コンピュータの現状 現在の量子コンピュータは ライト兄弟の初飛行に たとえられるような段階 Scott’s Supreme Quantum Supremacy FAQ! https://www.scottaaronson.com/blog/?p=4317 大勢乗せる(大量の量子ビットを扱う) 安全に長時間飛ぶ(正確に長時間計算する) 18
量子コンピュータの特徴 • 0と1以外の状態がある→量子状態。𝑛量子ビットで2𝑛 通り • 特徴の比較 • 古典コンピュータの並列計算 • 量子コンピュータの計算 ユニタリ行列で測定確率を変化させる 19
量子コンピュータに対する誤解が多い • 2019年にGoogleが「スパコンで1万年か かる見込みの計算を、量子コンで200秒 で計算した」という論文を発表 →量子コンはスパコンの10億倍高速? • 今は古典コンと抜きつ抜かれつ • 暗号解読には1000万量子ビット程度必要 • (とてもうまくいって)1年に2倍ずつ 量子ビットが増えたとしても15年 • 単に増えるだけでなく、精度向上が必要 →待てないので、小さくてノイズが ある量子コン(NISQ)の研究も盛ん 20
現時点で最大の量子コンピュータ ◆IBMが433量子ビットの超伝導量子コンピュータを公開(2023年5月) • 利用するには特別な契約が必要 • 2016年にクラウド公開された実機は 5量子ビットだった 2016年当時の実機は今は公開されていないが、 5量子ビットの実機は無料で利用可能 21
量子プログラミングの概況 • 古典コンピュータのプログラミング • C, Java, Pythonなど、様々な言語やツールがある • 利用者数、学習資料も多い ➢世界のITエンジニアは2000万人とも言われている • プログラミング言語理論など、ソフトウェア工学も発展している • 量子コンピュータのプログラミング(量子プログラミング) • メジャーなものはPythonライブラリであることが多い • 利用者数、学習資料はまだ少ない ➢世界規模の量子プログラミング・コンテストの参加者が2000人 • ソフトウェア工学の発展もこれから 22
量子プログラミングで可能なこと • 古典プログラミング • ソートなど、抽象度の高い関数を利用できる • 計算理論を詳しく知らなくても、 ある程度プログラミングできる 例: 4種類のデータから 1個の正解を検索する(Python) target_list = ["a", "b", "c", "d"] index = target_list.index("b") • 量子プログラミング • アセンブリ言語に近い • 現状では、量子計算を学ぶ必要あり(行列、確率) • 検索処理の例(Grover検索) 例: 4種類のデータから1個の正解を検索する(Grover検索) 23
量子プログラミングのライブラリ 量子コンピュータをクラウド提供している企業、スタートアップ、 研究機関などが開発している • IBM • QunaSys,大阪大学,NTT,富士通 • Amazon • Xanadu • Google • 理化学研究所など • Microsoft 24
量子プログラミング・コンテスト 1. IBM Quantum Challenge • 毎年、春と秋に開催される、規模の大きいコンテスト • 過去の優勝者の中には日本の大学生も 2. Microsoft Q# Coding Contest 3. QHACK 4. Quantum Algorithm Grand Challenge • QunaSys社が主催しているコンテスト。優勝賞金は$10,000 • 5/3~7/31まで開催中 など 25
古典コンピュータのハードウェア、ソウトウェア ◆様々な構成要素から成り立っている • • • • • • • • • CPU GPU バス メモリ SSD HDD ファン 電源 … • • • • • • アプリケーション アルゴリズム プログラミング言語 コンパイラ 機械語、命令セット … マザーボード 26
古典コンピュータの開発に必要な知識 ◆コンピュータを作るには様々な知識が必要 • ハードウェア寄り • • • • • 量子力学 電磁気学 電子回路 論理回路 … • ソフトウェア寄り • • • • • 計算理論 プログラミング言語 アルゴリズム ソウトウェア工学 … • その他 • ネットワーク • セキュリティ 大阪大学基礎工学部情報科学科のカリキュラムマップより抜粋 https://www.ics.es.osaka-u.ac.jp/curriculum/curriculum_map.jpg 27
古典コンピュータと量子コンピュータのレイヤ構造 実用的な量子コンピュータを実現するために 検討すべきことは大量にある 例.コンピュータのレイヤ構造 量子コンピュータの レイヤ化はこれから https://cra.org/ccc/wp-content/uploads/sites/2/2018/11/Next-Steps-in-Quantum-Computing.pdf より抜粋 28
量子技術に必要な知識 量子技術高等教育拠点のカリキュラム標準モデルより抜粋 https://qacademy.jp/curriculum/ 29
量子技術に必要な知識 注目度が高い分野 • ソフトウェア • ハードウェア これら以外にも多くの分野がある (たとえば、ソフトウェア工学) 総合的な発展が不可欠 幅広い分野の専門家が必要 論文誌(PRX Quantum)のスコープ(18分野) • fundamental concepts in quantum information • quantum computation and simulation • quantum software: algorithms, protocols, and code • quantum hardware: materials, engineering and technologies • quantum error correction • quantum gates • quantum machine learning and intelligence • quantum communication and cryptography • quantum networks, quantum repeaters, and quantum memories • quantum control • quantum metrology and sensing • quantum architectures and implementations • quantum thermodynamics • quantum effects in biological systems • quantum algorithms for chemical calculations • materials for quantum technologies • hybrid quantum systems and interconnects • relativistic quantum information 30
4. 量子コンピュータの計算ルール 31
量子コンピュータの計算ルール(状態ベクトル) ◆量子状態の定義 ◆測定の定義 32
量子コンピュータの計算ルール(状態ベクトル) ◆演算の定義 ◆演算の例 0 1 0 ۧ • 𝑋|1 = 1 • 𝑋|0ۧ = 1 0 1 0 1 0 = = |1ۧ 0 1 0 1 = = |0ۧ 1 0 33
状態ベクトルとは異なる状態を表現したい • 「確率1 − 𝑝で|0ۧ,確率𝑝で|1ۧ」のような状態を計算に使いたい • ノイズ(誤り)が入った量子状態を計算するときに有用 たとえば、こういうのを計算したい 1個の式で計算できると便利 (↓は別の回路の例ですが) 34
|φۧは状態ベクトルでは表現できない • 量子状態|+ۧ = 1 1 2 |0ۧ + 1 |1ۧ,|−ۧ = 2 1 1 2 |0ۧ − 1 2 |1ۧとする |φۧ = 「確率 で|+ۧ,確率 で|−ۧ」を返す装置があるとき、 2 2 これを状態ベクトルで表せるか? 1 1 2 2 • |φۧを測定すると、確率 で|0ۧを得て,確率 で|1ۧを得る • 重ね合わせ状態を真似して状態ベクトルを書くと、 1 1 1 1 1 1 1 1 |+ۧ + |−ۧ = |0ۧ + |1ۧ + |0ۧ − |1ۧ = |0ۧ 2 2 2 2 2 2 2 2 →これは間違い • |φۧは状態ベクトルでは書けない。これは重ね合わせ状態ではない 35
密度行列の概念を導入 • ケットとブラを掛け合わせたものを使う→密度行列 1 1 0 ・ 1, 0 = 0 0 0 0 0 0 • |1ۧۦ1| = ・ 0, 1 = 1 0 1 • |0ۧۦ0| = • 密度行列ρを測定を次のように定義する(正確にはもう少し複雑) 1 0 ρ , 1を得る確率= Tr 0 0 1 0 ※パウリ行列𝑍のスペクトル分解𝑍 = = 0 −1 0 0 1 0 • 0を得る確率= Tr 0 ρ 1 0 0 0 − に由来 0 0 1 • |0ۧۦ0|で具体的に計算(|0ۧを得る確率は1で、|1ۧを得る確率は0) • Tr • Tr 1 0 0 0 0 |0ۧۦ0| = Tr 0 0 |0ۧۦ0| = Tr 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 0 0 = Tr 0 = Tr 0 0 0 0 =1 =0 36
密度行列を使って|φۧの測定を表してみる • |+ۧや|−ۧを密度行列で表す • |+ۧۦ+| = • |−ۧۦ−| = 1 2 1 2 1 1 1 1 1 ・ 2 1, 1 = 2 1 1 1 1 1 1 −1 1 ・ 1, −1 = 2 2 −1 1 −1 1 • |+ۧۦ+|と|−ۧۦ−|が ずつ混ざった状態を考える 2 1 1 2 2 • ρ = |+ۧۦ+| + |−ۧۦ−| = 1 2 1 0 0 1 ※ρは|φۧを密度行列で表したもの • 正しく測定の確率を計算できる • Tr • Tr 1 0 0 0 0 ρ = Tr 0 0 ρ = Tr 1 1 0 0 0 1 0 ・2 0 1 0 ・ 2 1 1 0 1 0 0 1 0 1 = Tr = Tr 1 2 1 2 1 0 0 0 0 0 0 1 1 =2 = 1 2 37
密度行列を使ったユニタリ発展、測定後の密度行列 • 状態ベクトルのユニタリ発展 |φۧ → 𝑈|φۧ • 密度行列のユニタリ発展 ρ → 𝑈ρ𝑈† 0 1 0 • 𝑋|1ۧۦ1|𝑋 † = 1 • 𝑋|0ۧۦ0|𝑋 † = 1 0 1 0 1 0 0 0 0 0 0 1 0 1 0 1 1 0 0 = 0 1 0 1 0 1 = 0 0 0 • 密度行列の測定で使った行列を 測定後の密度行列𝑀0 ρ𝑀0 † + 𝑀1 ρ𝑀1 † • 1 0 1 0 0 0 0 0 |0ۧۦ0| + |0ۧۦ0| = 0 0 0 0 0 1 0 1 0 1 0 1 1 1 0 = = |1ۧۦ1| 0 0 1 1 1 0 = = |0ۧۦ0| 0 0 1 とすると 1 0 0 0 + = |0ۧۦ0| 0 0 0 0 38
ビット反転エラーを密度行列で表す • ビット反転のエラー率を𝑝とする 1 0 0 1 • エラーなし𝐸0 = 1 − 𝑝 , エラーあり𝐸1 = 𝑝 とし、 0 1 1 0 𝐸0 + 𝐸1 で時間発展する (もはやユニタリ発展ではない) →ノイズが入った量子状態を計算できる 39
密度行列の数学的な定義 ◆次の2つの条件を満たすρを密度行列(量子状態)という • ρ ≥ 0 (ρは半正定値行列。すなわち、すべての固有値が0以上) • Tr ρ = 1 ※ ρ ≥ 0 の条件に、ρ がエルミート行列(ρ = ρ†)であることが含まれている ※ 「ρの固有値=確率」という対応があり、 ρ ≥ 0 : 確率は0以上 Tr ρ = 1 : 全確率の和は1 ◆演算(ユニタリ発展)はTPCP写像𝐸に一般化される • TP(トレース保存, trace preserve) Tr 𝐸(ρ) = Tr ρ • CP(完全正, completely positive) (𝐸⊗id𝑛 ) ρ ≥ 0 ※id𝑛 は𝑛次元空間の恒等写像 40
密度行列では量子状態の表現が一意になる ◆状態ベクトルの表現は一意でない • |𝑧| = 1のとき、|φۧと𝑧 |φۧは区別できない(本書の定理3.2) 1 1 1 • たとえば、 |+ۧ = 2 |0ۧ + 2 |1ۧと−|+ۧ = − 2 |0ۧ − ベクトルの表現は異なるが量子状態としては同じ 1 2 |1ۧは ◆密度行列の表現は一意になる • |𝑧| = 1のとき𝑧† = 𝑧 −1 なので、𝑧|φۧۦφ|𝑧† = 𝑧𝑧 −1 |φۧۦφ| = |φۧۦφ| 41
密度行列をブロッホ球で表す ◆(本書8.10節の内容)2次正方行列はパウリ行列の線形結合で書ける 𝑎 𝑏 𝑎+𝑑 𝑏+𝑐 𝑏−𝑐 𝑎−𝑑 = 𝐼+ 𝑋+ 𝑖𝑌 + 𝑍 2 2 2 2 𝑐 𝑑 ※実は基底になっている ◆密度行列をパウリ行列の線形結合で表す(𝑎, 𝑏, 𝑐, 𝑑は実数) 𝑎 𝑏 − 𝑐𝑖 1 𝑎−𝑑 1 = 𝐼 + 𝑏𝑋 + 𝑐𝑌 + 𝑍 = 𝐼 + 2𝑏𝑋 + 2𝑐𝑌 + (𝑎 − 𝑑)𝑍 2 2 2 𝑏 + 𝑐𝑖 𝑑 3次元座標 2𝑏, 2𝑐, 𝑎 − 𝑑 で表したものがブロッホ球 1 1 0 ۧ ۦ • |0 0| = = 𝐼 + 0・𝑋 + 0・𝑌 + 1・𝑍 2 0 0 1 0 0 ۧ ۦ • |1 1| = = 2 𝐼 + 0・𝑋 + 0・𝑌 − 1・𝑍 0 1 • 𝑋, 𝑌, 𝑍の係数はすべて実数 42
ブロッホ球での時間発展 ◆ブロッホ球の表示を使うと、時間発展は実正方行列で書ける たとえば、𝑋 = と書ける 詳しくは、次のQiita記事を参照 Hilbert-Schmidt表現でブロッホ球を幾何学的にイメージする https://qiita.com/snuffkin/items/356758d5c2c915154f20 43
5. 量子コンピュータに役立つ数学 44
線形代数 • 量子コンピュータでもっとも役立つ数学は線形代数 • 基本的には行列計算 • 固有値、固有ベクトル • エルミート行列のスペクトル分解 • テンソル積 𝐴 • 行列指数関数 𝑒 = 1 𝑘 ∞ σ𝑘=0 𝐴 𝑘! (本書3章のコラムでも登場) 「量子計算のための線形代数」みたいな本が欲しい 45
複素数 • 本書のアルゴリズムでは使わないようにしたが、 基本的には必要な概念 複素平面、実部、虚部、偏角 絶対値 複素共役 46
確率と統計学 • 量子コンピュータの計算ルール(量子力学)のうち、 測定は確率の言葉で記述される • 確率を前提にしているため、統計学も利用する • 右の文章は、6章のコラムより • 二項分布の信頼区間の推定 𝑐 = 1.96, 𝑝empi = 1/2とすると 右辺はおおむね 1/𝑛になる • 量子情報理論 47
関数解析と偏微分方程式 • 量子力学は関数解析(≒無限次元の線形代数)と偏微分方程式の 言葉で定式化されている • 演算子(作用素)、偏微分 • 1次元のシュレディンガー方程式 とおくと、 • ハードウェアなど、量子力学を使う話になると出てくる • 量子コンピュータは有限次元の部分を利用しているため、 計算を行列(有限次元)で表している 48
最適化(半正定値計画問題) • 量子コンピュータの実行結果が正しいか確認するときに、 量子状態トモグラフィで推定したい(本書6章のコラム) • ρest :推定結果(ブロッホ球の表面or内側になるようにしたい) ρempi :経験分布から求めた密度行列(ブロッホ球の外側の可能性) • 半正定値の制約がついた最適化問題を解き、 ρest を推定する • minimize • subject to ρest − ρempi ρest ≥ 0, Tr ρest = 1. PRA 98, 062336(2018) 49
さまざまなところで数学が利用されている • 量子回路の最適化 →NP困難問題。ヒューリスティックな最適化アルゴリズム • 万能量子計算 1 →クリフォード群の構造: ℤ[ , 𝑖]成分のユニタリ群を調べたり 2 • 誤り訂正符号→トポロジー • トポロジカル量子計算→量子回路=組みひも 興味をもった方はぜひ調べてみてください 50
参考文献 • 量子コンピュータの頭の中――計算しながら理解する量子アルゴリ ズムの世界(技術評論社, 2023) • 量子コンピュータと量子通信(オーム社, 2004) • 量子情報科学入門(共立出版, 2012) 51