{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 第2章 量子アルゴリズム入門" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "量子コンピュータは、量子力学的な重ね合わせによって、$n$個の量子ビットを用いて$2^n$個の状態を同時に処理できる。しかし、これだけでは「計算が速い」ということにはならない。なぜなら、計算終了後に結果を観測する際に、$2^n$個の状態の内どれか一つがランダムに得られるのみだからである。したがって、欲しい答えが高確率で得られるように設計された、量子コンピュータ専用のアルゴリズムが不可欠である。そのようなアルゴリズムを**量子アルゴリズム**と呼ぶ。量子アルゴリズムの有名な例として、Shorの素因数分解アルゴリズム、Groverの探索アルゴリズム等がある。\n", "\n", "この章では、量子アルゴリズムの初歩を学んでいく。まず、量子アルゴリズムは、この数年で実現される量子コンピュータ=「NISQデバイス」で実行可能(と思われる)なアルゴリズムと、十年後以降に実現されるであろう誤り訂正ありの真の量子コンピュータでしか実行が難しいアルゴリズムとの2種類に大別されることを見る。次に、アダマールテストという最も簡単な量子アルゴリズムを学ぶ。その後、量子フーリエ変換、その発展である位相推定アルゴリズムという、量子コンピュータの応用を考える上で最も重要な量子アルゴリズムについて学ぶ。(ちなみに、量子フーリエ変換・位相推定アルゴリズム共に、実用的なサイズの問題をNISQマシンで実行することは難しいと考えられているので、long-termアルゴリズムに分類される)" ] }, { "cell_type": "markdown", "metadata": { "nbsphinx-toctree": {} }, "source": [ "- [2-1. NISQアルゴリズムとlong-termアルゴリズム](2.1_NISQ_and_long_term.ipynb)\n", "- [2-2. アダマールテスト](2.2_Hadamard_test.ipynb)\n", "- [コラム:量子乱数生成](2.2c_quantum_random_number_generator.ipynb)\n", "- [2-3. 量子フーリエ変換](2.3_quantum_Fourier_transform.ipynb)\n", "- [2-4. 位相推定アルゴリズム(入門編)](2.4_phase_estimation_beginner.ipynb)" ] } ], "metadata": { "celltoolbar": "Edit Metadata", "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.5" } }, "nbformat": 4, "nbformat_minor": 2 }