{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 第9章 量子誤り訂正" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "現実的な状況で動作する計算機を構成するデバイスは外部からのノイズに絶えずさらされており、様々な理由で100%正確に動作することはなく有限の確率でエラーを起こしてしまう。\n", "起きたエラーが計算の目的と関係ない箇所だったり、エラーが計算する時間に生じる可能性が無視できるほど小さいなら良いが、一般にはエラーが起きた計算の結果が正しいことを保証することは困難である。\n", "\n", "こうした状況で意味のある計算を行うためには、エラー訂正が必要となる。エラー訂正とは、$n$ビットの情報を表すのに$n$ビットより多いビット数で冗長に表現することで、ビットにある程度のエラーが生じてももとの状態を復元できるようにすることである。$n$ビットの情報を冗長な表現にうつすことをエンコード (符号化) 、冗長な情報を読んで元の情報を復元することをデコード(復号化)と呼ぶ。量子計算機上でエラー訂正を行うことを量子誤り訂正と呼ぶ。また、誤り訂正機能を持ったまま、符号化された状態で計算を行うことを、誤り耐性計算と呼ぶ。\n", "1024ビットの素因数分解のような複雑な計算を量子計算で行うには、量子誤り耐性計算を行うことが必須となる。\n", "\n", "誤り訂正技術は、量子計算機が考えられる以前から長く用いられてきた。現代でもスーパーコンピュータのような大規模計算、ノイジーな環境での通信、複数のノードを用いた分散システム、金融やインフラにおける高信頼性の確保などのために広く利用されている。こうした歴史ある誤り訂正の理論を用いれば、量子誤り訂正や量子誤り耐性計算を行うことは可能だろうか?答えはNoである。\n", "量子計算機は量子ビットの持つNo cloning theoremなどの特徴から、従来のエラー訂正で前提となるビットの直接観測などが行えない。このことから、量子計算機において誤り訂正を実現するには、量子計算機専用の誤り訂正理論が必要となる。\n", "\n", "本章は次のような構成になっている。まず、「古典エラー訂正」の節では古典計算機におけるエラーの仕組みと程度、そして古典エラー訂正の代表的な手法を概説する。「量子エラー」の節では、量子ビットのデバイスごとに生じるエラーの原因と定式化について説明する。特に、量子ビットの寿命に依存するエラーと、量子操作に際するバックアクションに関するエラーについて解説する。そして、古典エラー訂正で用いた線形符号を拡張した量子エラー訂正について学ぶ。さらに、スタビライザー符号・トポロジカル符号といった概念について学び、最後に実現に適していると言われている表面符号を紹介する。" ] }, { "cell_type": "markdown", "metadata": { "nbsphinx-toctree": {} }, "source": [ "- [9-1. 古典エラー](9.1_error_correction.ipynb)\n", "- [9-2. 量子エラー](9.2_quantum_error_correction.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 }